Und wieder mal reagiere ich auf eine Leser-Frage und diese bezieht sich auf die Suchfunktion hier auf perun.net.
WordPress bietet eine Suchfunktion. Sie erledigt ihre Arbeit die Ergebnisse sind OK … das war's dann aber auch. Ich habe irgendwann aufgehört zu zählen, wie oft ich über die interne Suchfunktion hier auf perun.net etwas gesucht und es erst gefunden habe als ich den Umweg über Google genommen habe.
Daher habe ich vor ein paar Monaten, die benutzerdefinierte Suche von Google eingebaut. Immerhin hat WordPress.org selbst diesen Schritt vor ein paar Wochen gemacht. Somit befinde ich mich in guter Gesellschaft.
Ich habe die Suchfunktion bzw. den Code direkt von AdSense übernommen, weil ich dort eh ein Account habe. Nach dem ich Einstellungen getätigt habe – welche URL wird durchsucht, Zeichensatz, Layout, auf welcher URL werden die Ergebnisse ausgegeben etc. – bekam ich am Ende zwei Code-Fragmente zur Ansicht.
Den ersten Code-Fragment:
<form action="http://www.perun.net/suche/" id="cse-search-box">
<div>
<input type="hidden" name="cx" value="dein-partner-code" />
<input type="hidden" name="cof" value="FORID:10" />
<input type="hidden" name="ie" value="UTF-8" />
<input type="text" name="q" size="35" />
<input type="submit" name="sa" value="Suche" />
</div>
</form>
<script type="text/javascript" src="http://www.google.de/cse/brand?form=cse-search-box&lang=de"></script>
… bindet man an der Stelle ein, wo das Suchformular bzw. der Suchschlitz erscheinen soll. Alternativ kannst du diesen Code auch in der Fußzeile (Footer) unterbringen und per absoluter Positionierung im Kopfbereich ausgeben lassen … aber das nur am Rande.
Anschließend erstellst du ein Seiten-Template. Wie man ein Page- bzw. Seiten-Template erstellt habe ich auf WordPress-Buch.de beschrieben. Diesem Template solltest du am besten die Sidebar wegnehmen, damit die Ausgabe der Suchergebnisse auch ordentlich Platz bekommt. In meisten Fällen reicht es wenn du die vorhandene page.php als suche.php abspeicherst und dort <?php get_sidebar(); ?> und den Loop entfernst.
Oder du nimmst eine leere php-Datei und fügst folgenden Code ein:
<?php
/*
Template Name: Suchen
*/
?>
<?php get_header(); ?>
<div id="inhalt">
<h2>Suchergebnisse</h2>
<div id="cse-search-results"></div>
<script type="text/javascript">
var googleSearchIframeName = "cse-search-results";
var googleSearchFormName = "cse-search-box";
var googleSearchFrameWidth = 910;
var googleSearchDomain = "www.google.de";
var googleSearchPath = "/cse";
</script>
<script type="text/javascript" src="http://www.google.com/afsonline/show_afs_search.js"></script>
</div><!-- /Ende des div-Blocks mit dem Inhalt -->
<?php get_footer(); ?>
und speicherst das ganze als suche.php ab. Anschließend erstellst du in WordPress eine leere Page, die lediglich eine Überschrift beinhaltet. Achte bitte darauf, dass die URL dieser Seite mit der URL übereinstimmt, die du Google als Container für die Ergebnisse mitgeteilt hast.
Anschließend spendierst du dieser leeren Seite noch das Template Suchen und veröffentlichst das ganze.
Das ist alles. Dein Blog verfügt nun über eine ausgewachsene Suchfunktion. Klar, ein paar Euro kommen durch die Einblendung der Anzeigen schon zu Stande. Aber alleine deswegen würde ich die Suchfunktion von Google nicht einbauen. Vorrangig sind die Argumente, dass Google halt viel bessere Ergebnisse liefert und das die allermeisten Leute mit der Suchfunktion vertraut sind.
Hinweis:
WordPress 3.3 für Autoren & Redakteure (pdf)
Ausdruckbar, Volumenlizenzen zu sehr fairen Preisen.
1. – Schiffblogger
Kommentar vom 28. August 2011 um 18:24
Ist das so? Ich habe die Google-Suche seit Beginn integriert und verdiene auch nicht unbedingt wenig mit Adsense, aber auf die Suchergebnisse meiner Custom-Search-Integrierung fallen nicht mal 1% der Einnahmen.
Ist das bei Dir anders? Wenn ja, was ist der Trick.
2. – Perun
Kommentar vom 28. August 2011 um 18:27
Ne, gibt kein Trick. AdSense funktioniert höchst unterschiedlich auf einzelnen Websites. Bei manchen laufen Bildanzeigen recht gut, auf anderen Projekten gewinnst du damit nicht einmal einen Blumentopf.
3. – Ricarda
Kommentar vom 28. August 2011 um 18:28
Ich persönlich bin keine große Freundin der Google-Suche in WordPress. Sie ist in meinen Augen ungenauer als die interne Suche. Zumal sie nicht selten Artikel anzeigt, die mit meiner Suchphrase überhaupt nichts zu tun haben.
Ich hab sie schon mehr als einmal verflucht.
4. – Perun
Kommentar vom 28. August 2011 um 18:30
@Ricarda,
bei mir war das genau umgekehrt. Die interne suche lieferte nämlich in vielen Fällen gar keine Ergebnisse. Das ist imho schlechter als wenn Google in paar Ergebnisse zu viel auflistet. Speziell mit den Suchoperatoren (+Suchwort, -Suchwort, "exaktes Suchwort") kann die interne Suche nichts anfangen.
5. – Schiffblogger
Kommentar vom 28. August 2011 um 18:32
Also bei mir funktioniert die Google-Suche sehr sehr gut, um Welten besser als die integrierte Suche. Was für mich von Vorteil ist, ist das ich alle meine maritimen Seiten in einer "Suchmaske" habe – so bleibt der Suchenden immer auf meinen Seiten und bekommt auch das was er sucht.
@Perun
Ich dacht schon da gibt es einen Trick, da allgemein Adsense sehr gut läuft, aber auf die Suche nicht viel abfällt.
6. – Patrick
Kommentar vom 28. August 2011 um 19:26
Und nochmal ein bisschen abhängiger von Google
Ich nutze seit geraumer Zeit das Plugin Relevanssi und bin sehr zufrieden damit. Der Suchalgorithmus lässt sich (wenn gewünscht) anpassen und liefert sehr gute Ergebnisse.
7. – Schiffblogger
Kommentar vom 28. August 2011 um 19:33
Hach, manchmal bin ich ein ganz Schlauer, Perun.
Ich hab jetzt in meinem Adsense-Konto auch mal die Suchmaschine angelegt
Vielleicht funktioniert das dann auch mit den Einnahmen…
8. – Perun
Kommentar vom 28. August 2011 um 19:59
Hallo Patrick,
OK … du nutzt also kein Produkt von Google?
und noch mal ein bisschen abhängiger von einem Plugin, welches auch noch die Seite verlangsamt und die Datenbank aufbläht.
9. – Luigi
Kommentar vom 28. August 2011 um 20:14
Prima! Danke für den Tipp! Nun habe ich aber eine Frage! Geht es das bei keinen Suchergebnissen wieder auf die "normale" search.php verwiesen wird?
10. – Patrick
Kommentar vom 28. August 2011 um 20:19
@Perun: sollst mich doch nicht zu ernst nehmen
Klar nutze ich auch Google Produkte. Relevanssi legt eigene Tabellen in der WordPress-Datenbank an, daraus sollte sich also kein Geschwindigkeitsverlust ergeben. Und da Relevanssi nur bei Suchaufrufen gestartet wird, sollte man hier auch keinen Geschwindigkeitsnachteil verzeichnen.
Ich mag die benutzerdefinierte Google Suche aus dem Grund nicht, weil man dort auf die Inhalte angewiesen ist, die Google für richtig erachtet. Bei Relevanssi kann man auf sämtliche Daten von WordPress zurückgreifen (Datum, Exerpt, Custom Fields, Artikellogo, etc pp).
Wie gesagt: ich bin sehr zufrieden mit Relevanssi
11. – Christoph
Kommentar vom 28. August 2011 um 20:22
Ich persönlich mag die Google-Suche bei Blogs nicht, weil sie die Ergebnisse nicht nach Datum sortiert. Eine nach der Relevanz der Treffer sortierte Ergebnisliste ist zwar auch nicht vollständig unbrauchbar, aber wenn ich in einem Blog suche und erstmal nur Treffer von anno dazumal erscheinen, dann höre ich schnell mit der Suche auf.
12. – Nico
Kommentar vom 28. August 2011 um 23:03
Ich würde das Suchfeld noch mit dem Input-Type "search" ausstatten.
13. – Perun
Kommentar vom 29. August 2011 um 14:04
@Nico,
an sich eine gute Idee, aber bei Chrome – ich nehme daher an, bei allen Webkits – verschwindet dann das Branding von Google und afaik ist das gegen die Richtlinien.
14. – Perun
Kommentar vom 29. August 2011 um 14:05
@Patrick,
keine Sorge, noch bin ich in der Lage die Smileys richtig zu deuten. (-:
15. – Andreas Mertens
Kommentar vom 30. August 2011 um 18:33
Ich hatte Anfangs auch die "Wordpress-Onboard"-Suche auf avameo.de, ehemals sltalk.de (von 2006 bis 2008). Mit zunehmender Artikelanzahl wurde es für mich selbst immer schwerer, ehemalige Artikel wieder zu finden, trotz Kategorisierung und Verschlagwortung. Dann hatte ich damals die Google-Suche in avameo.de integriert und auf erfolgreich-bloggen.de das Advanced-Search-PlugIn von Zirona. Schon bald war auch die Google-Suche auf avameo.de nicht mehr befriedigend, auch das Advanced-Plugin war nicht so der Hammer. Irgendwann stieß ich dann auch SOLR, ein Web-Frontend für die Lucene-Suchmaschine, die im Bauch eines Tomcat läuft. Als ich dann auch noch für die WordPress-Integration ein SOLR-Plugin (von Mattweber) fand, habe ich die Lucene integriert.
Bisher konnte diese Lösung noch nichts toppen, da es sich bei Lucene um eine echte vollwertige Suchmaschine handelt, die Volltextindexierung wie Google umsetzt. Google kann WordPress-Content allerdings nur unstrukturiert indexieren, während man Lucene auch die WordPress-Struktur beibringen kann. Hier kann man z.B. Titel, Contentbody, Tags usw. gewichten. Die Fuzzy-Logic-Unschärfe-Algorithmen (Levensthein) setzen noch ein Sahnehäubchen oben drauf, ebenso ein Worte-Stemming, Synonyme usw. usf. Hinzu kommt ein Highlighting. Außerdem habe ich noch ein paar Anpassungen vorgenommen, die Suchergebnisse sind u.a. nach Kriterien filterbar, in etwa, ob die Suchergebnisse YouTube-Videos enthalten, ein PDF enthalten oder ob, wie in meinem speziellen Falle einen Teleporter-Link in das 3D-Internet existiert. Zudem habe ich noch meine Rewrite-Rules kombiniert, sodass es eigentlich keine "Not-Found"-Seiten bei mir gibt. Wenn jemand "fehlerhaft" verlinked oder einen beliebigen Link eingibt, z.B. http://www.avameo.de/eyphone erhält der User oder auch die Suchmaschine brauchbares "Material" über die Fuzzy-Suche der Lucene bzw. SOLR.
Der Nachteil bei der ganzen Kiste ist allerdings der höhere Interationsaufwand, ohne Java-know-How kommt man da leider nicht hin. Ab einen gewissen Content-Volumen lohnt sich meiner Meinung allerdings dieser "Ferrari" !!! Ich betreibe das Tandem WordPress-Lucene/SOLR via Tomcat seit Juli 2009 und möchte es nicht mehr missen. Bei Gelegenheit werde ich es auch auf erfolgreich-bloggen.de einbauen.
16. – Tim
Kommentar vom 30. August 2011 um 20:17
Ehrlicherweise bin ich mir gar nicht so sicher, ob der Einbau der Google-Suche so wirklich Sinn macht. Keine Frage: Googles Technologie ist für die normale Suche gut.
In Blogs, in denen die Google-Suche genutzt wird, habe ich häufiger das Gefühl (Betonung auf Gefühl, genau weiss ich es natürlich auch nicht), dass bestimmte Seiten nicht angezeigt werden. Letztendlich nimmt Google ja auch nur die Ergebnisse aus dem normalen Index. Und wenn ein Artikel dort nicht aufgenommen ist, dann wird er in der internen Suche auch nicht auftauchen. (Und dies wird insbesondere für ganz neue Artikel gelten, einige Stunden/Tage braucht Google ja auch um den Artikel zu finden).
Hat den schon jemand Erfahrungen mit Plugins wie "Search Everything" gemacht?
17. – Holger
Kommentar vom 01. September 2011 um 16:32
Die standart WordPress Suche ist meiner Meinung nach auch eher bescheiden.. Wenn ich in einem größerem Blog einen bestimmten Artikel wiederfinden möchte, komme ich damit in der Regel nicht weiter. Über eine Google Site: Abfage inkl. relevanten Keywords finde ich hingegen schnell was sich suche, und das wie gewoht nach relevanz sortiert und nicht nach datum. Der Nachteil ist eben, das Google die entsprechende Seite auch indexiert haben muss. Alternativ könnte man mal mit entsprechenden Such Plugins experimentieren, welche die interne WordPress Suche verbessern sollen.
18. – Dürrbi
Kommentar vom 02. September 2011 um 12:55
Bei mir ist auch das Problem, dass der generierte iframe viel zu klein angezeigt wird und unten abgeschnitten wird, obwohl der umgebende Bereich viel größer ist.
Zudem scheinen nicht viele Seiten indiziert zu sein, so dass das Ergebnis nur sehr sparsam ist.
Daher habe ich in der Sidebar erstmal noch die WP-Eigene Suche drin gelassen.
19. – Dürrbi
Kommentar vom 02. September 2011 um 16:43
Ahh… wenn man die "Weitere Funktionen der erweiterten Suche" aufruft, bekommt man bei "Aussehen und Verhalten" angezeigt, dass die iframe-Technologie nicht mehr unterstützt wird, und man besser die "Custom Search Engine"-Box verwendet soll.
Damit ändert sich der Code-Schnipsel für die Suchergebnisse erheblich, funktioniert dann aber richtig.
Die Suchergebnisse sind nun auch ordentlich.
20. – Usability – was sollte ein guter Blog bieten? » Nikonierer
Pingback vom 02. September 2011 um 18:35
[...] Suchfunktion von WordPress nicht und mäkeln an der Qualität der Ergebnisse. Ob man nun auf eine angepasste Google-Suche setzt oder die bestehende Suchfunktion von WordPress nutzt, es muss in jedem Fall ein gut [...]
21. – WordPress-Newsletter Nr. 21 | WordPress & Webwork
Pingback vom 06. September 2011 um 14:20
[...] Alternative für alle die mit der internen WordPress-suche nicht zufrieden sind, aber die benutzerdefinierte Suche von Google nicht einbauen [...]
22. – Dürrbi
Kommentar vom 08. September 2011 um 14:59
Hmm…. mein Trackback ist gar nicht angekommen
Auch gut.
23. – Perun
Kommentar vom 08. September 2011 um 15:06
@Dürrbi,
vor etwa 2-3 Tagen ist einer durchgekommen, aber an einen anderen Artikel adressiert.
24. – Dürrbi
Kommentar vom 08. September 2011 um 16:21
DAS war dann wohl der Pingback… in dem Artikel hatte ich sowohl diesen Artikel hier als auch den "WP-Newsletter Nr. 20" erwähnt. Als Trackback-Adresse hatte ich beim Beitrag explizit die von diesem Beitrag eingetragen…
25. – Walter
Kommentar vom 16. February 2012 um 22:00
Wo findet sich ein gutes Forum auf Deutsch oder Englisch wo man Support beim Einbau der Google CSE finden kann?
So ganz trivial scheint mir der Einbau nicht. Oder meine technischen Kenntnisse sind zu bescheiden: Bisher konnte ich meinen Blog eigenständig ziemlich umbauen, aber bei CSE beisse ich mir die Zähne aus…
Ich kann eine Trefferliste produzieren, sie erscheint aber nicht in der gewünschten Seite (Template mit Suchschlitz auf einer Seite und Resultatliste in anderer Seite).
Irgendwelche Tipps, anyone?
26. – Walter
Kommentar vom 19. February 2012 um 18:21
Okay, in der Zwischenzeit habe ich es auch geschafft. Weil ich so lange leiden musste, habe ich auf meinem Blog eine ausführliche Anleitung verfasst.
Am meisten aktuellen und hilfreichen Support fand ich schlussendlich in einem Google-Forum.