Für Menschen · Seien Sie begeistert und Sie werden begeistern !
Das Webmaster Help Center von Google empfiehlt, die Suchresultate der Website aus dem index zu nehmen, sie sollten nicht gecrawlt werden, da sie keinen wirklichen Wert für den Besucher haben.
Mit der robots.txt-Datei können Sie verhindern, dass Suchergebnisseiten und andere automatisch erstellte Seiten, die keinen wirklichen Wert für Besucher haben, die über eine Suchmaschine auf Ihre Website geleitet wurden, gecrawlt werden.
WordPress macht dies im Standard nicht. Allerdings kann das Theme schnell mit wenigen Handgriffen dafür optimiert werden, denn dazu stehen die Conditional-Tags zur Verfügung.
Einfach im head, in der Regel in der header.php zu finden, den folgenden Syntax unterbringen. Dazu den Eintrag meta name="robots" löschen und ersetzen.
<?php if (is_search()) { ?>
<?php } else { ?>
<?php } ?>
Alternativ kann man mit Hilfe der Conditional-Tags anders abfragen. Die obige Lösung sollte auch nur ein Beispiel sein. Thorsten sendet mir gleich seine Version, die ich Euch nicht vorenthalten möchte. Mit Hilfe dieser Lösung wird gleichzeitig das Problem doppelter Content ausgeschlossen.
<?php if(is_home() || is_single() || is_page() ) {
echo "";
} else {
echo "";
} ?>
So langsam wird aus der Vorlage zum Nachdenken eine Komplettlösung. Micha sendet mir eine weitere Lösung die das Problem der "wahren" Startseite einbezieht und so das Codeschnippselchen kompletiert.
<?php if ( ( is_home() && !is_paged() ) || is_single() || is_page() ) {
echo '';
} else {
echo '';
} ?>
Es geht weiter mit einer ganzen Reihe von Lösungen. Hierbei ist zu erwähnen, dass es nun ein kleines Plugin gibt, welches simpel und unkompliziert in den head der Seite integriert. Wer also lieber ein Plugin anstatt des händischen Änderns im Theme nutzen will, der findet im Anschluss nun das Plugin von Enrique, welches er mir dankenderweise zur Verfügung gestellt hat.
Ebenso sollte die Anmerkung nicht unbeachtet bleiben: Es lohnt die Apache-Logs auszulesen, denn die Suchseiten werden wohl nicht indiziert. Dabei durchsucht man einfach die Log-Datei nach GET /?s=. Ich für meinen Teil habe das mal getan und dabei keinerlei Eintrag gefunden. Ansonsten sind alle URLs korrekt, so dass die eigentliche Idee hinter diesem Beitrag: Suchresultate nicht zu indizieren, hinfällig geworden ist und die reine Ausprägung „doppelter Content“, wie eng man das auch sehen will, beachtet werden sollte. Dazu folgender Lösungsvorschlag und das entsprechende Plugin.
Im weiteren ist mir aufgefallen, dass der Feed indiziert wird, obwohl ich ihn per robots.txt ausschließe - Disallow: */feed/, allerdings nicht von klassischen Suchmaschinen, sondern von Statistiktools und (Blog-)Verzeichissen etc.
Das Plugin arbeitet nach folgendem Lösungsansatz, wobei es per Konfiguration möglich ist, die Kategorien ebenso mit dem index, follow-Tag zu versehen.
if ( ( is_single() || is_page() || is_home() ) && ( !is_paged() ) ) {
echo '' . "\n";
} else {
echo '' . "\n";
}
Download als php-Datei: seo-by-enrique.zip - 13 KByte
Kommentarregeln: Bleib cool, kritisch ist in Ordnung, aber wenn du unhöflich bist, dann lösche ich deinen Kommentar. Bitte benutze deinen persönlichen Namen oder Initialen und nicht den Namen eines Unternehmens, dies würde als Spam gewertet und wird gelöscht. Der Zusammenhang zwischen Namen und URL sollte nicht offensichtlich auf Spam hindeuten! ♥ Ansonsten, vielen Dank für den Kommentar und viel Spaß mit meinem Blog.
händischer Spam:
Beachte die Kommentarregeln, jede Form von versuchtem Spam wird gelöscht. Warum und wieso steht in einem meiner Beiträge.
Bezug auf Textstellen:
Du kannst direkt bezug auf Textstellen im Beitrag nehmen. Dazu muss lediglich der Bereich im Artikel markiert werden; daraufhin erscheint ein Button, der den markierten Text in das Kommentarfeld übernimmt und als Zitat auszeichnet. Die Funktion ist nur bei aktivem JavaScript nutzbar.
xHTML:
Du kannst folgende Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <pre> <em> <strong> <strike> <ul> <ul> <li>
Achte darauf, wenn du Code im Kommentar hinterlegen willst, dann muss der Code maskiert sein. Dann wird er nicht interpretiert. Der Code muss mit Hilfe von HTML-Entities dargestellt werden, d.h. dass man z.B. < als < und > als > einfügt.
E-Mail-Benachrichtigung bei neuen Kommentaren ?
Wenn der Haken in der Checkbox gesetzt ist, dann wirst du über neue Kommentare vie E-Mail informiert. Der Versand erfolgt nur, wenn du die URL in der Bestätigungs-E-Mail genutzt hast oder schon Abonnent hier im Blog bist.
Kommentar erscheint nicht:
Alle Kommentare werden manuell geprüft, freigegeben und nach Möglichkeit beantwortet. Bitte um etwas Geduld und Nachsicht.
Identifikationsbilder (Avatare):
Auf Gravatar.com kann man sich mit seiner E-Mail-Adresse registrieren und ein Bild hochladen, dann erscheint dieses Gravatar hier und in vielen weiteren Blogs.
Spamschutz:
Das Kommentarformular ist mit einem Spamschutz ausgerüstet. Solltest du diesen Artikel ohne JavaScript besuchen und kommentieren wollen, so muss du die Frage beantworten und das jeweilige Wort in das Textfeld eingeben.
bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.
Das Weblog wird angetrieben von WordPress und aktuell gibt es 893 Beiträge, 16526 Kommentare in 14 Kategorien und 450 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet.
Design und Code ist unter Copyright
© 2001 - 2010 bueltge.de [by:ltge.de]
17. August 2007 um 18:09
Kennst du das Plugin - Duplicate Content Cure Plugin for WordPress
Erledigt noch meiner Infos den gleichen Job, ohne den Code anzufassen. Für alle, die den Code nicht verändern wollen.
17. August 2007 um 18:28
Ein kleines Problem dabei gibts noch: die paged Seiten.
Also:
if(is_home() && !is_paged()) || is_single() || is_page {...}17. August 2007 um 18:29
ups, Klammer vergessen
if((is_home() && !is_paged()) || is_single() || is_page {...}
17. August 2007 um 22:05
@Oliver: nein, ist mir nciht bekannt. Empfinde aber für die Aufgabe ein Plugin überflüssig, da es im Template gut platziert ist. Aber sicher eine Alternative für alle, die so gar nicht an das Markup wollen.
@Micha: habe es oben noch ergänzt, für die Copy/Paste-Leute.
17. August 2007 um 22:26
@Oliver: Bevor ich mir wegen so einer Kleinigkeit ein Plugin antue, code ich lieber. mybeNI hat wieder ein Plugin gefunden, was XSS anfällig ist, SEO Title Tag. Plugins also nur wenn unbedingt nötig.
18. August 2007 um 00:00
Eingebaut und zum Ausprobieren bereit. Gute Idee.
Aber im Beispiel des Update 2 sind die Anführungszeichen falsch gesetzt! Und fehlt hinter "is_page" nicht die Klammer ()?
18. August 2007 um 04:48
Hi,
<meta name="robots" content="index, follow' />
ist unnötig, da dies eh die "Standardeinstellung" für die Bots ist.
Ich würde eher folgendes vorschlagen:
<?php if(is_search()) { ?><meta name="robots" content="noindex, follow" /> <?php } ?>
Die oben genannte Komplettlösung:
<?php if ( ( is_home() && !is_paged() ) || is_single() || is_page {echo '<meta name="robots" content="index, follow' />";
} else {
echo '<meta name="robots" content="noindex, follow' />";
} ?>
würde ich persönlich nicht einsetzen, da dann die Kategorie- und Tag-Übersicht nicht indiziert wird und Kategorieübersicht ist für mich kein doppelter Inhalt im Vergleich zu der Startseite. Bei mir unterscheidet sich die Kategorieübersicht an einigen Punkten von der Startseite.
Viele Grüße
18. August 2007 um 07:20
@Boris: Danke! gefixt.
18. August 2007 um 16:16
@Perun,
bevor ich diese Maßnahme ergriff, habe ich mal nach einem Beitragstitel von mir gegoogelt und mir dann die übersprungenen Ergebnisse angesehen. Der Beitrag war unter /page/2/, category/bla/, tag/foo/, tag/bar/, 2007/06/.
Überall doppelter Ihnalt. Jetzt, nachdem ich das umgesetzt habe, wird ein neuer Artikel nur noch 2x gelistet. Auf der Startseite, weil ich da die ersten 5 Beiträge mit the_exerpt anzeige und unter dem Permalink.
Der Idealzustand ist doch, das die Suchmaschine einen Beitrag nur 1x unter seinem Permalink indexiert. Die Kategorien, Tags, Archive dienen doch nur den Nutzern, darüber etwas für sie Interessantes zu finden.
19. August 2007 um 00:51
@Micha,
Für wen ist dieser Zustand ideal? Für Google, sicherlich. Für Menschen ... das bezweifle ich.
Ja sicher dienen sie den menschlichen Besuchern. Für die machen wir doch die ganze Arbeit ... nicht für Google. Daher macht es Sinn wenn z. B. ein Beitrag welcher sich z. B. mit WordPress beschäftigt dass dieser auch unter der Kategorie "WordPress" gelistet und indiziert wird.
19. August 2007 um 11:54
Hallo Frank!
Beiträge landen im Supplementalindex die Tag-Suche jedoch im normalen Index, da die Lieblingssuchmaschine diese dennoch nimmt, wenn man jetzt per deinem update script die Tag-Suchen nicht mehr indexieren lässt; ist man ganz draußen. Ich empfehle auf alle Fälle, daß pr-schwache Seiten wie ich vorher mit der Suche: site:www.bla-bla-bla.de& (die zeigt im Moment noch den Supplemental) anschauen auf was sie sich einlassen.
Ich benutze im Header nur den Ausschluß der Search; ich wollte nur kurz auf ein Problem hinweisen, das ihr als Pagerank starke Seiten wahrscheinlich garnicht mehr kennt.
Viele Grüße
Michael
19. August 2007 um 22:12
20. August 2007 um 20:50
@Michael und Perun: deshalb auch meine Empfehlung nur mit is_search() auszuschließen.
21. August 2007 um 12:43
Hallo Frank!
Habe die Diskussion hier gerade eben erst entdeckt. Ich habe mir vor einiger Zeit bereits ein einfaches Plugin geschrieben, das ich auf allen meinen WP-Domains erfolgreich und ohne Probleme einsetze. Ich schicke es Dir mit getrennter Post.
Lieben Gruß, Enrique
21. August 2007 um 17:38
Wahrscheinlich stelle ich mich gerade bloß super doof an, aber egal welche der drei Lösungen ich in meinen Header schmeiße, jedesmal zerstört es mein Blog. Es wird einfach nichts mehr an den Browser übertragen und eine weiße Seite angezeigt. Gucke ich mir den Sourcecode der Seite an, ist es ein leeres File.
was mach ich falsch?
22. August 2007 um 08:46
hm, was soll ich dazu sagen?! Dazu müsste ich mir deinen Code ansehen und dazu fehlen mir deine Login-Daten.
23. August 2007 um 02:43
Damit hast Du natürlich absolut Recht.
Manchmal hilft auch drüber schlafen, jetzt funktionierts nämlich.
Danke !
19. September 2007 um 05:41
Hi, ich habe tatsächlich das meiste verstanden. Habt ihr eine Idee, wie man es machen könnte, wenn für die fixen Seitenränder mit Links, standardmäßig eine Indexierung und follow erlaubt sein sollen, aber einzelne Beiträge und fixen Seiten nur nach Freigabe durch den Autor indexiert werden sollen (inkl. follow) und die Kommentare grundlegend gesperrt sein sollen? Ich bin gespannt, ob euch was einfällt. Die Metatags für Post-Beiträge und fixe Seitenbeiträge müssten dann dynamisch nach Eingabe ... äh, geht das überhaupt?
19. September 2007 um 09:26
@MBW: Die Freigabe durch den Autor könnte man über ein "benutzerdefiniertes Feld" abfragen. Der Autor müsste dieses dann im Editbereich setzen. Je nach Wert des Feldes wird follow oder nofolles in den head geschrieben.
Die Kommentare werden im Standard von WordPress nicht verfolgt - rel="nofollow". Warum das nicht so toll ist, dazu gibt es genügend Texte im www.
Damit sollte deine Anforderung einfach lösbar sein, denn genau dafür sind diese "benutzerdefinierten Felder". Schau mal hier im Blog, im Plugin-Tutorial nud im Photoblog-Theme nutze ich diese Felder für ähnliche Anwendungen. Dort kannst du auch sehen und nachlesen, wie man auf sie zugreift. Das Photoblog-Theme bringt auch ein Plugin mit, mit dem man nur ein einzelnes Feld auslesen kann.
LG Frank
19. September 2007 um 23:48
@Frank - Ach ja - doch so einfach
- danke. Ich werde mich auf den genannten Stellen umschauen, jetzt weiss ich auf jeden Fall wonach ich suchen muss.
28. September 2007 um 17:54
6. Oktober 2007 um 16:17
12. Oktober 2007 um 07:55
funktioniert wunderbar, Matt Cutts hat es ja gerade im letzten Interview gerade bestätigt. Vielen dank
13. Oktober 2007 um 11:04
WICHTIGER HINWEIS:
Wer seine Apache-Logs regelmäßig kontrolliert, wird feststellen, dass Google vor etwa zwei Wochen dazu übergegangen ist, simulierte Suchabfragen zu senden, um die Qualität der Datenbanken zu prüfen und verbessern. Abgesehen von der Tatsache, dass diese nervigen Abfragen die eigene Statistik verderben, sollten die vom Bot provozierten Ergebnis-Seiten das Noindex-Tag zurückliefern. Sonst ist doppelter Content garantiert.
26. April 2008 um 18:18
27. April 2008 um 13:19
10. September 2008 um 10:08
Hallo,
vielen Dank für diesen wertvollen Tipp. So konnte ich endlich die blöden PlugIns für diesen Mist rauswerfen, da diese sowieso nicht das gemacht haben, was ich wollte. Vielleicht hab ich mich einfach zu blöde angestellt, aber mit dem Schnipselchen klappt's jetzt...
Danke und Gruss Kiki
11. September 2008 um 18:43
19. Januar 2009 um 23:28
Hallo Frank Bültge
- kannst du mit meinem vorherigen Kommentar zusammenschmeißen? -
Wer nur eine bestimmte Seite nicht indexieren lassen will, kann das hier in setzen:
<?php if( is_page('Seitentitel') ) { echo ""; } ?>