Vor einiger Zeit machte mich Markus vom Newsburger.de auf das WordPress Problem mit der leeren Suche aufmerksam. Wer sein Suchfeld nicht mit einem Text vorbefüllt hat und einfach nur ohne etwas einzugeben auf Suche klickt, der kriegt inhaltlich das Ergebnis seiner Startseite geliefert, nur eben unter der URL domain.tld/?s= , also mit dem Anhang /?s= an seiner Domain. Da das Ganze wie die Startseite behandelt wird, ist diese leere Suche URL frei für die Suchmaschinen.
Die leere Suche in WordPress endet somit in einem Double Content Problem, wofür es aber Abhilfe mit zwei kurzen Code Snippets gibt. Double Content auf der eigenen Domain, zumal es in den Paramtern in den Google Webmaster Tools auch definiert werden kann, halte ich zwar für nicht wirklich wild, aber trotzdem, schön ist so ein leere Suche Double Content auch nicht.
Nach längerem Suchen im Netz wurde ich fündig und habe in zwei Schritten meine Suchfunktion aufgebohrt und damit die leere Suche abgefangen: Der erste Schritt besteht darin, die leere Suche als Suche zu definieren. Bis dato wird sie nämlich nicht mal als Suche erkannt von WordPress, sondern es wird einfach nur die Startseite unter einer anderen URL ausgegeben. Im zweiten Schritt leite ich die leere Suche dann auf die Startseite um. Damit ist alles wie gehabt, nur den Double Content gibt es nicht mehr, denn eine leere Suche landet dann, ebenfalls wie vorher, auf der Startseite und es wird, im Gegensatz zu vorher, die URL der Startseite ausgegeben. Dazu sind zwei Eingriffe in die Theme Dateien notwendig:
1. Leere Suche in der functions.php als Suche definieren
Da die leere Suche bis dato von WordPress nicht als Suche definiert wird, müssen wir dies mithilfe einer Funktion in der functions.php des WordPress Themes einrichten. Dazu habe ich folgenden Code im WordPress Support Bereich gefunden:
//leere Suche
function blank_search($query){
global $wp_query;
if (isset($_GET['s']) && $_GET['s']==''){
$wp_query->set('s',' ');
$wp_query->is_search=true;
}
return $query;
}
add_action('pre_get_posts','blank_search');
2. Leere Suche auf die Startseite umleiten und damit abfangen
Nun haben wir die leere Suche schon mal als Suche definiert und wollen sie noch auf die Startseite umleiten. Probiert aber erst einmal aus, ob Ihr diesen Schritt auch benötigt. Auf einigen Servern wird das schon alleine mit dem ersten Code Snippet umgesetzt. Andere Server wiederum benötigen diesen zweiten Schritt zusätzlich. Da bei einer leeren Suche sowieso nur der Inhalt der Startseite ausgegeben wird, aber unter einer anderen URL, sorgen wir mit dieser 301 Umleitung eigentlich nur dafür, dass auch die Startseite als URL ausgegeben wird. Dazu öffnen wir die header.php des WordPress Themes und geben ganz oben folgenden Code ein:
<?php if (isset($_GET['s']) && $_GET['s']==''){
header("Location: /",TRUE,301); }
?>
Als Alternative zu diesem zweiten Schritt kann die Umleitung auch via .htaccess eingerichtet werden:
RewriteCond %{QUERY_STRING} ^s=$
RewriteRule ^ /? [L,R=301]
Wer die WordPress Suche noch nicht in seinem Theme integriert hat und dies gerne manuell nachholen möchte, findet in meinem folgenden Artikel WordPress Suche manuell in das Theme einbinden eine ausführliche Anleitung dazu.








Ein…
?
Disallow: /*?
…in der robots.txt ist doch die schnellere Lösung, oder
@Marc: Alles was man über die robots.txt blockt wird von Google indexiert (ohne Titel und Beschreibung). Und dann sehen sie sich nicht mal an, was auf der Seite steht (z.B. meta tag noindex), weil sie es ja durch den robots.txt Tag nicht dürfen
Testkommentar… ich denke noch über Disallow: /*? nach
…das Disallow war generell eine doofe Idee, weil ich jetzt in den Webmastertools +100.000 Fehler habe!
@Marc: Seit Google das mit der robots.txt geändert hat (vor 2 Jahren oder so), lasse ich davon meine Finger. Das endet meist wie bei Dir, mit haufenweisen Fehlern in den Webmaster Tools
Danke für den Tipp, darüber hatte ich bisher nicht nachgedacht, mein Suchfeld ist leer… Werde ich mal umbauen später;) Schönes Wochenende!
Apropos Webmastertools… ich hatte in meiner Sitemap auch mal die Tags mit drin, und Anfang August gab es da mal einen 404er-Tag – das werfen mir die Webmastertools heute noch vor!
Nervt so ganz dezent, einen alten Fehler ewig präsentiert zu bekommen :-/
@Simon: Danke, Dir auch.
@Marc: Ja, die Webmaster Tools
Ich kuck da ehrlich gesagt nur alle heilige Zeit rein. Und wenn ich es mal brauch, dann reg ich mich meist drüber auf