Kategorien
Optimierung Seitenkomfort

Suchergebnisse bereinigen

Wenn Du ähnlich arbeitest wie ich, wirst Du wahrscheinlich in der Liste Deiner Beiträge oder Seiten den einen oder anderen Titel haben, der auf keinen Fall für die Augen der Öffentlichkeit gedacht ist. Solche Beiträge verwende ich beispielsweise zum Testen von Plugins oder von selbst geschriebenen PHP-Er­gän­zun­gen, deren Funktion ich auf Herz und Nieren prüfen will, bevor ich sie danach tatsächlich auf öffentlichen Seiten einsetze. Derartige Testbeiträge verlinke ich auf keiner anderen Seite, damit auch keiner meiner Besucher auf solchen Dum­my-Sei­ten landet.

Problematisch dabei ist jedoch, dass die eingebaute Word­Press-Su­che in ihren Ergebnissen auch solche nicht verlinkte Seiten anzeigt. Die Frage ist also:

Wie kann man bestimmte Beiträge aus den Word­Press-Such­er­geb­nis­sen ausblenden?

Du könntest solche Beiträge in den Einstellungen zur Sichtbarkeit als Privat kennzeichnen. Dann wären sie für nicht angemeldete Besucher nicht erreichbar. Und sie würden dann auch nicht in der internen Suche aufgeführt werden. Aber tatsächlich ist Sinn und Zweck meiner Tests ja gerade das Ausprobieren von Inhalten aus der Sicht meiner Besucher. Also möchte ich meine Testseiten aus Suchergebnissen ausblenden. Wie geht das?

Mit einem PHP-Dreizeiler ist das ganz einfach. Lade dazu aus dem Serververzeichnis Deines aktiven Themes die Datei functions.php mit Hilfe eines FTP-Pro­gramms auf Deinen PC herunter und öffne sie mit mit einem Texteditor. An das Ende dieser Datei, fügst Du vor der letzten Zeile ?> den folgenden Programmcode ein:

/* Einzelne Seiten aus der WordPress-Suche ausschließen: */

function wpf_exclude_from_search( $query ) {
    if ( $query->is_search ) {
        $query->set( 'post__not_in', array( 301, 302, 303, 304 ) ); 
    }
    return $query;
}

add_filter( 'pre_get_posts', 'wpf_exclude_from_search' );

Die Zahlen 301 bis 304 stehen hier beispielhaft für Nummern, die WordPress automatisch beim Anlegen von Texten vergibt. Die zu einem Text gehörende Nummer findet man in der Liste der Seiten oder Beiträge, wenn man mit der Maus über Bearbeiten fährt. Dann sieht man im Browserfenster (meist ganz unten links) die Ziel-Adresse, auf der man landen würde, wenn man nun klickt. In dieser Zieladresse findest Du die Sequenz …?post=xx…. Anstelle von xx steht dort die Beitragsnummer, die Du statt 301 bis 304 in den PHP-Code einfügen musst.

Du siehst, mit Hilfe dieser Funktion kann man beliebig viele Beiträge aus den Suchergebnis entfernen. Du könntest also beispielsweise auch alle rein organisatorische Seiten – wie etwa Impressum oder Datenschutzerklärung – aus den Suchergebnissen Deiner Websitegäste heraushalten.

Randnotiz: Wie man bestimmte Seiten aus den öffentlichen Goo­gle-Such­er­geb­nis­sen heraushält, beschreibe ich in einem separaten Beitrag.


Sobald Du fertig bist, lädst Du die abgeänderte Datei functions.php mit dem FTP-Pro­gramm von Deinem PC wieder hoch in das Themeverzeichnis auf Deinem Webserver.

Vorsicht: Beachte beim Bearbeiten und Hochladen unbedingt meine Hinweise im Beitrag zum Child-Theme. Denn mit der nächsten Aktualisierung des installierten Standardthemes werden alle Inhalte der Datei functions.php dort wieder durch die Standardinhalte überschrieben. Das kannst Du verhindern, indem Du ein Child-Theme anlegst und alle permanenten Änderungen dort einträgst.

***

Von Ulf Brossmann

Betreiber von und Autor der Beiträge auf WordPress fassbar. Eine Kurzbiografie von Ulf findest Du am unteren Ende der Seite über diese Website. Hier folgen nun alle Artikel, die Ulf bisher verfasst hat, in umgekehrt chronologischer Reihenfolge, also der neuste zuoberst:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert