Die Sache mit der WordPress-Suche ist schon eine ganz spezielle. Auf der einen Seite ist die Suche des Content Management Systems sehr nützlich, damit Besucher die von ihnen gesuchten Inhalte überhaupt finden können. Auf der anderen ist die Suchfunktion, die WordPress von Haus aus mitliefert, jedoch alles andere als effektiv oder effizient. Dies ist auch der Grund dafür, dass sie oft keine zufriedenstellenden Ergebnisse liefert, gleichzeitig aber viel Leistung für die Funktion selbst beansprucht.
Am Ende benötigt zudem nicht jeder Blog eine eigene Suchfunktion. Auf einer Firmenwebsite sollte beispielsweise die Navigation dafür sorgen, dass eine saubere Strukturierung entsteht und Besucher zielgerichtet weitergeleitet werden können. Eine Suche wäre an dieser Stelle eher im Weg oder fehlplatziert. Bei einem Blog hingegen darf diese auf gar keinen Fall fehlen, da viele alte Blogbeiträge sonst nicht gelesen werden würden.
Somit kann es mal mehr und mal weniger Sinn ergeben, die Suche in WordPress komplett zu deaktivieren. Genau darum geht es im heutigen Artikel.
3 Möglichkeiten, die WordPress-Suche zu deaktivieren
Es gibt verschiedene Methoden, mit der Suche von WordPress zu verfahren. Diese reichen vom einfachen Ausblenden bis hin zur kompletten Deaktivierung der eigentlichen Suchfunktion des CMS. Beides hat dabei seine Vor- und natürlich auch Nachteile.
Ist die Suche innerhalb von WordPress vollständig deaktiviert, gibt es einen klaren Performancegewinn. Vor allem, weil Bots nicht weiter automatisiert die Suchfunktion verwenden können. Zum anderen aber auch, weil alle URLs, die eventuell mit der Suche in Verbindung stehen, nicht mehr funktionieren. Die WordPress-Suche ist also vollständig deaktiviert, was häufig die beste Lösung ist.
Bei der Entfernung von Hand werden lediglich allle Verweise ausgeblendet, nicht aber die eigentliche Suchfunktion von WordPress. Das Snippet agiert hingegen ähnlich wie die meisten Plugins, entfernt die WordPress-Suche also vollständig. Doch schauen wir uns das im Einzelnen noch ein wenig genauer an.
Suchformular per Hand entfernen
Am einfachsten ist es, jegliche Verweise auf die WordPress-Suche aus dem Theme zu entfernen. Oft ist das Suchformular beispielsweise lediglich über ein Widget eingebunden. Ist das der Fall, kann dieses relativ problemlos gelöscht und somit entfernt werden. Ist die Suche nicht über ein Widget eingebunden, befindet sich im WordPress Theme normalerweise eine kleine PHP-Zeile, welche das Suchformular innerhalb des Themes integriert. Wer über etwas Anfängerwissen im Bereich PHP und WordPress verfügt, kann sich der Suchfunktion somit schnell entledigen.
Suchfunktion via Snippet deaktivieren
Mit einem einfachen Code-Snippet, welches über die functions.php eures Themes eingefügt werden kann, ist es möglich, WordPress sehr gezielt und umfangreich zu manipulieren. Selbstverständlich lässt sich mit dieser Methode auch die Suche deaktivieren. Dies gelingt, indem ihr folgenden Code in die functions.php einfügt und diese korrekt abspeichert. Fortan sind die Query-Strings und die Widgets der Suchfunktion komplett deaktiviert und können somit auch nicht länger aufgerufen werden.
/*------------------------------------------------------------------------------------------
# Disables WordPress Search feature
------------------------------------------------------------------------------------------*/
function fb_filter_query( $query, $error = true ) {
if ( is_search() & !is_admin()) {
$query->is_search = false;
$query->query_vars['s'] = false;
$query->query['s'] = false;
// to error
if ( $error == true )
$query->is_404 = true;
}
}
add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', function($a) {return null;});
Snippet Aktualisiert, danke an Kommentar schreiber
Suche via WordPress Plugin ausschalten
Die schnellste Lösung ist es, die WordPress-Suche via Plugin auszuschalten. Das gelingt unter anderem mit der Erweiterung Disable Search. Das WordPress Plugin hat nur eine Funktion und zwar die Deaktivierung der Suche. Rein technisch geht die Erweiterung dabei ähnlich vor wie das Snippet, entfernt die Suchfunktion jedoch noch ein wenig vollständiger, beispielsweise auch aus der Admin Bar im Backend. Die Lösung via Plugin hat zudem den großen Vorteil, dass sie bei Bedarf später relativ einfach deaktiviert und gelöscht werden kann. Snippets hingegen müssen erst entfernt und Eingriffe in das Theme entsprechend rückgängig gemacht werden.
Warum die Suchfunktion entfernt werden sollte
Es gibt jede Menge Anwendungsbeispiele, bei denen eine Suchfunktion von WordPress Sinn ergibt. In einem Online-Shop wie Amazon wird beispielsweise kaum jemand die einzelnen Kategorien durchgehen, um etwas Passendes zu finden. Vielmehr wird er eben nicht allzu konkret nach Produktnamen oder Keywords suchen. Auch auf großen Websites macht eine Suche Sinn, schließlich gibt es unzählige von Artikeln, die älter, aber deshalb nicht weniger lesenswert sind.
In einem Portfolio, einer Firmenwebsite oder ähnlichen Publikationen scheint die Suche hingegen überflüssig zu sein. Nutzer sollen hier schließlich gar nicht frei suchen können, sondern vielmehr gezielt zum CTA und der anschließenden Konversion weitergeleitet werden. Eine Suchfunktion ist in solchen Beispielen daher auch eher kontraproduktiv.
Nicht unterschätzen solltet ihr zudem die Performance der Suche. Eine Suchanfrage geht immer durch die Datenbank eures WordPress Blogs und wieder zurück. Weil die Begriffe einer Suche zudem sehr unterschiedlich sind, ist die Suchfunktion von WordPress oft eine Ausnahme im Cache. Mal davon abgesehen, dass all das auf die Leistung drückt, ist die WordPress-Suche somit häufig auch eine Schwachstelle, die bei Angriffen aktiv ausgenutzt werden kann. Der Performance hilft die Suche daher in keinem Fall.
All das sind Gründe dafür, warum ich meinen Kunden gerne die Deaktivierung der Suchfunktion empfehle oder die Einrichtung eines separaten Such-Plugins vorschlage. In meinem Artikel 8 WordPress Such-Plugins für eine bessere Suchfunktion verrate ich euch darüber noch ein wenig mehr. Falls ihr also interessiert seid, ist der Beitrag die perfekte Ergänzung zum Weiterlesen.
Fazit zur Suche innerhalb von WordPress
Wer wirklich eine zuverlässige Suchfunktion in seinem Blog bzw. auf seiner Website benötigt, der ist mit der integrierten WordPress-Lösung eher schlecht beraten und sollte sie deaktivieren. Hier ist ein zusätzliches Such-Plugin die deutlich bessere Wahl, weil mit diesem umfangreichere Suchen möglich werden. Diese helfen den Nutzern dann auch tatsächlich. Statt nur irgendetwas Ähnliches zu finden, filtern derartige Suchfunktionen oft genau das Richtige heraus. Ziemlich praktisch, wenn bereits Tausende Artikel und Inhaltstypen vorhanden sind.
Wer gar keine Suche verwendet, der sollte die interne Suchfunktion von WordPress sowieso ausschalten. Am besten so vollständig wie nur möglich, damit keinerlei unnütze Funktionen zurückbleiben. Auch deshalb, weil diese im Zweifel einfach Performancekiller sind oder gar einen nicht zu unterschätzenden Sicherheitsfaktor darstellen.
Persönlich deaktiviere ich die Suche gerne ganz oder zumindest teilweise und lasse sie nur dort zu, wo sie wirklich gebraucht wird und aktiv genutzt werden soll. Falls ihr das auch wollt und dabei Hilfe benötigt, scheut euch nicht davor mich zu kontaktieren. Gerne unterstütze ich euch bei der Realisierung einer besseren Suchfunktion in eurem Blog.
2 Kommentare
Webhmaster
Hello, danke für die Infos. Für die manuelle Methode ist das Beispiel des Code snippets für PHP 8 nicht mehr aktuell.
Hier findet man den Code der keine Fehlermeldung bei PHP verursacht:
https://gist.github.com/pradeepdotco/646410736ee5f1d7c7f7?permalink_comment_id=4225862#gistcomment-4225862
Thank you
Frank
Hi, wesentlich ressourcenschonender für den Server wäre es sogar, die WP-Suche bereits auf Server-Ebene zu blocken (bzw. evtl. weiterzuleiten). Dann wird WP gar nicht erst gebootstrapped. Du könntest den GET-Parameter ‘s’ z.B. in der .htaccess auf eine 404, die im statischen Cache liegt, weiterleiten oder eben komplett per Webserver-Message verbieten.
Schöne Grüße!