Algolia, un moteur de recherche très efficace pour WordPress

Vous ne le savez peut-être pas, mais la recherche de base est très mauvaise sur WordPress. Le moteur de recherche intégré se contente de piocher dans les titres et le corps des articles, il ignore totalement les métadonnées (catégories, tags, taxonomies personnalisées, etc.). Pire, les résultats de recherche sont affichés par ordre de publication et non par pertinence. Les articles les plus récents sont ainsi systématiquement mis en avant, ce qui n’a aucun sens sur mon blog personnel, composé essentiellement de critiques de films et séries et d’avis sur des restaurants.

De ce fait, cela fait des années que j’utilise une extension qui améliore le moteur de recherche par défaut. J’ai longtemps utilisé Relevanssi, qui a surtout l’avantage d’être gratuit et qui est très complet, mais aussi très lent. Depuis plus de trois ans, j’utilisais SearchWP, un concurrent payant, tout aussi complet et beaucoup plus rapide. J’ai eu l’occasion d’en parler ici-même lorsque je l’ai déployé et je n’ai que des bonnes choses à dire à son sujet.

searchwp

Malheureusement, ce blog ne rapporte pas d’argent et la recherche n’est pas assez utilisée pour justifier la dépense. La recherche instantanée que j’ai mise en place début 2014 suffit certainement à la majorité des lecteurs… elle me suffit d’ailleurs le plus souvent. Ajoutons que le tarif d’une licence pour SearchWP a nettement augmenté au fil des années et il faut désormais compter 79 $ par an. C’est totalement inimaginable pour moi et je me suis mis en tête de chercher une solution gratuite.

Puisque j’héberge désormais mon blog sur un VPS géré par mes soins (mon guide pour transférer un blog WordPress est toujours disponible à cette adresse), je pouvais essayer la solution ElasticSearch. Ce moteur de recherche est très utilisée, c’est même celui qu’exploite WordPress.com, le réseau de sites hébergés d’Automatic qui est utilisé pour ce blog technique. L’installation était simple, la configuration beaucoup moins et je n’ai jamais réussi à obtenir de bons résultats.

C’est alors que j’ai testé Algolia et j’ai été bluffé par la qualité des résultats sans aucun réglage de ma part.

algolia-logo-light.png

Lire la suite « Algolia, un moteur de recherche très efficace pour WordPress »

Publicités

Allègement de la recherche instantanée

Petite mise à jour pour la recherche instantanée mise en place sur mon blog personnel depuis un petit peu plus d’un an. Jusque-là, l’index — un fichier JSON généré à chaque ajout d’article — contenait le nom de l’article et son lien complet. Une idée simple, mais qui posait un problème d’échelle : avec 1064 articles publiés, mon index pesait plus de 125 Ko. Cela n’a l’air de rien, mais il faut charger ce fichier à chaque page et sur les plus gros blogs, cela peut vite bloquer.

Avant (gauche) et après (droite)
Avant (gauche) et après (droite)

En changeant deux petits éléments, j’ai allégé le fichier par plus de plus de 1,5 fois : le nouvel index pèse désormais moins de 75 Ko, pour la même quantité d’articles. La différence, c’est que ce sont plus les liens complets qui sont stockés, mais uniquement les identifiants des articles. On peut alors très facilement compléter l’identifiant pour constituer une URL valide (http://adressedemonblog.fr/?=identifiant). Dès lors, quelle que soit la configuration choisie, WordPress affichera l’URL finale automatiquement.

Le changement, très simple, est visible sur GitHub comme d’habitude. Si vous utilisiez le système, je vous encourage à reprendre l’idée pour un chargement plus rapide. Le visiteur n’y verra que du feu : cela ne change rien du tout pour lui.

Changements effectués sur la recherche instantanée.
Changements effectués sur la recherche instantanée.

SearchWP : une recherche complète et rapide

La recherche de base de WordPress est médiocre dès lors que l’on utilise des fonctions un tout petit peu avancées. Si vous ne comptez que sur les titres et le contenu des articles, elle peut suffire, mais il faut se contenter des résultats affichés par date de publication, ce qui n’a aucun intérêt si on ne traite pas d’actualité. Sur un blog comme le mien qui est plein de critiques de films, de livres ou encore de restaurants, je ne veux pas que l’article le plus récent ressorte en tête, mais le plus pertinent. Malheureusement, ce n’est pas possible.

Depuis plusieurs années, j’utilise Relevanssi un plugin extrêmement complet, puisqu’il sait indexer tous les champs associés à un article, qu’il s’agisse d’une information stockée dans un custom field (par exemple le titre original des films est stocké ainsi sur mon blog et le visiteur peut chercher un film sans connaître la version française), ou bien d’une taxonomie personnalisée (toujours dans mon exemple, les noms des acteurs sont stockés ainsi dans une taxonomie, alors qu’ils n’apparaissent pas nécessairement dans l’article lui-même). Le problème de ce plugin est sa lourdeur et sa lenteur : quand on l’utilise avec un hébergeur mutualisé, pas toujours performant, il faut parfois plusieurs secondes pour avoir les résultats d’une recherche, c’est trop long.

searchwp

J’ai découvert par hasard SearchWP, un concurrent direct qui propose les mêmes fonctions. Il indexe tout, y compris les champs personnalisés et les taxonomies. Il en fait même plus en indexant les fichiers PDF par exemple, ce qui peut être utile selon les cas. Il propose des fonctions avancées très séduisantes dans mon cas, comme la possibilité de mettre en avant les pages d’archives des taxonomies (quand on cherche le nom d’un réalisateur, la page qui liste tous ses films apparaîtra en premier). Dans les deux cas, on peut aussi définir très précisément la priorité de chaque élément. Par défaut, le titre est le plus important, les taxonomies un peu en dessous et le contenu encore moins important. L’intérêt toutefois est de pouvoir modifier ces priorités très finement.

Les réglages de SearchWP
Les réglages de SearchWP

Si les fonctions de ces deux plugins sont proches, il y a une différence de taille : la vitesse. Dans mon cas, Relevanssi était extrêmement lent, autant à indexer qu’à afficher les résultats et la situation ne s’est jamais améliorée au fil des mises à jour. En comparaison, SearchWP est quasiment incroyable : sur le même serveur, avec les mêmes données, il est au contraire très rapide. Pas encore autant que la recherche de base, certes, mais on est suffisamment proche pour que ce soit acceptable. Et puis, puisque j’ai mis en place une recherche instantanée, ce n’est pas trop grave…

Inutile d’épiloguer : j’utilise SearchWP depuis quelques jours à peine et je n’ai rien à redire. Le plugin est payant, c’est vrai, mais je crois qu’il s’agit de la vingtaine d’euros que j’ai le mieux dépensés depuis que j’ai créé ce blog (je compte aussi WP-Rocket dans le lot). J’ajoute que la documentation est très complète et particulièrement bien faite pour les néophytes comme moi, mais aussi que son développeur est non seulement très disponible, mais aussi très réactif. Le plugin n’a que six mois et on en est déjà à la version 1.9.5. D’après ce que j’ai pu en juger, il est aussi stable et sans erreur.

En bref, si vous avez besoin d’une recherche plus puissante que celle par défaut de WordPress, c’est sans conteste le plugin à considérer. Relevanssi est très performant, mais les fonctions les plus intéressantes sont également payantes et il est très lent. En comparaison, SearchWP n’est pas proposé dans une version gratuite, mais il intègre toutes les fonctions, même les plus pointues et il est très rapide. Le choix a été vite fait dans mon cas…

Une recherche instantanée sur WordPress

Dans ma quête d’optimisation de mon blog personnel qui tourne sur WordPress, quête qui alimente régulièrement ce blog technique, la recherche interne est un problème particulièrement complexe. Le blog compte actuellement environ 820 articles pour un total d’un million de mots. Ajoutons à cela les mots-clés et la taxonomie, les commentaires éventuellement et j’atteins vite les limites de mon hébergement mutualisé. D’autant que, pour diverses raisons qui feront peut-être l’objet d’un article séparé, j’ai choisi de remplacer la recherche par défaut par celle fournie par Relevanssi qui indexe plus, mais est plus lente.

recherche-wordpress Lire la suite « Une recherche instantanée sur WordPress »

Améliorer la recherche WordPress

Astuce très intéressante pour remplacer les URL de recherche dans WordPress sur GeekPress.

Par défaut, les recherches se présentent sous la forme de nomdedomaine.fr/?s=mot pour chercher « mot ». Avec ce code à insérer dans le fichier functions.php, vous aurez cette forme : nomdedomaine.fr/recherche/mot.

C’est plus joli (je trouve), mais c’est surtout plus pratique pour optimiser son blog… on y reviendra.