Table des matières:
Pourquoi une recherche avancée est cruciale pour votre site WordPress ?
La fonction de recherche par défaut de WordPress est basique : elle se contente de parcourir les titres et le contenu des articles. Pour un site riche en contenus (e-commerce, blog professionnel, annuaire, base de connaissances), cette simplicité devient vite un frein. Les visiteurs s’attendent à filtrer par catégorie, date, type de contenu, ou même par mots-clés exacts.
En ajoutant un système de recherche avancée, vous améliorez l’expérience utilisateur, réduisez le taux de rebond et augmentez le temps passé sur le site. De plus, les moteurs de recherche valorisent les sites qui offrent une navigation interne performante.
Dans ce guide, nous allons voir comment ajouter un système de recherche avancée sur WordPress, que ce soit via des plugins, du code personnalisé ou une combinaison des deux.
Les limites de la recherche native WordPress
Avant de plonger dans les solutions, comprenons les défauts de la recherche par défaut :
- Recherche floue limitée : ignore les synonymes et les fautes d’orthographe.
- Pas de filtres : impossible de trier par catégorie, type de contenu ou date sans plugin.
- Indexation incomplète : ne cherche pas dans les champs personnalisés (ACF), les taxonomies ou les PDF.
- Résultats lents : sur les gros sites, la requête SQL peut être lourde.
Ces limitations poussent à chercher des alternatives plus robustes.
Solution 1 : Utiliser un plugin de recherche avancée
La méthode la plus rapide pour ajouter un système de recherche avancée sur WordPress est d’installer un plugin dédié. Voici les meilleurs :
1. SearchWP
SearchWP est le plugin premium le plus populaire. Il permet d’étendre la recherche à tous les contenus : pages, articles, champs personnalisés, PDF, etc. Il offre aussi des algorithmes de pertinence avancés.
- Avantages : compatible avec ACF, WooCommerce, Easy Digital Downloads ; recherche en temps réel ; statistiques de recherche.
- Inconvénients : payant (à partir de 99 $/an).
- Idéal pour : sites e-commerce, annuaires, gros blogs.
2. Relevanssi
Relevanssi est une alternative gratuite (avec version premium) très performante. Il améliore la recherche native en ajoutant la recherche dans les commentaires, les champs personnalisés, et en gérant les synonymes.
- Avantages : gratuit pour les fonctionnalités de base ; recherche floue ; possibilité de personnaliser le poids des mots.
- Inconvénients : l’interface de réglage peut être complexe.
- Idéal pour : blogs, sites institutionnels.
3. Ivory Search
Ivory Search permet de créer des formulaires de recherche personnalisés avec des filtres (catégories, types de publication, etc.). Il existe en version gratuite et premium.
- Avantages : possibilité de créer plusieurs formulaires ; compatible avec les thèmes populaires ; léger.
- Inconvénients : la version gratuite est limitée.
- Idéal pour : sites ayant besoin de formulaires de recherche multiples.
Comparatif rapide des plugins
| Plugin | Prix | Recherche dans ACF | Recherche PDF | Filtres |
|---|---|---|---|---|
| SearchWP | Payant (99 $/an) | Oui | Oui | Oui |
| Relevanssi | Gratuit / Premium (99 €) | Oui (premium) | Non | Oui (premium) |
| Ivory Search | Gratuit / Premium (29 $) | Oui (premium) | Non | Oui |
Solution 2 : Ajouter une recherche avancée avec du code personnalisé
Si vous préférez ne pas utiliser de plugin ou si vous avez besoin d’un contrôle total, vous pouvez créer votre propre système de recherche avancée. Cela nécessite des connaissances en PHP et en requêtes WordPress.
Étape 1 : Créer un formulaire de recherche personnalisé
Dans votre fichier searchform.php (ou via un shortcode), vous pouvez ajouter des champs supplémentaires comme des listes déroulantes pour les catégories ou les types de publication.
<form role="search" method="get" class="search-form" action="<?php echo home_url( '/' ); ?>">
<input type="search" name="s" placeholder="Rechercher..." />
<select name="cat">
<option value="">Toutes les catégories</option>
<?php wp_dropdown_categories( 'show_option_none=' ); ?>
</select>
<select name="post_type">
<option value="any">Tous les types</option>
<option value="post">Articles</option>
<option value="page">Pages</option>
<option value="product">Produits</option>
</select>
<button type="submit">Rechercher</button>
</form>
Étape 2 : Modifier la requête de recherche
Dans le fichier functions.php, utilisez le hook pre_get_posts pour filtrer les résultats selon les paramètres du formulaire.
function custom_search_query( $query ) {
if ( $query->is_search() && ! is_admin() ) {
if ( isset( $_GET['cat'] ) && ! empty( $_GET['cat'] ) ) {
$query->set( 'cat', intval( $_GET['cat'] ) );
}
if ( isset( $_GET['post_type'] ) && $_GET['post_type'] != 'any' ) {
$query->set( 'post_type', sanitize_text_field( $_GET['post_type'] ) );
}
}
return $query;
}
add_filter( 'pre_get_posts', 'custom_search_query' );
Étape 3 : Améliorer la pertinence avec des poids
Vous pouvez donner plus d’importance aux titres qu’au contenu en modifiant la requête SQL avec posts_search ou en utilisant posts_clauses. Exemple simple :
function search_weight( $search, $query ) {
global $wpdb;
if ( $query->is_search() && ! is_admin() ) {
$search = preg_replace(
"/($wpdb->posts.post_title LIKE/",
"(($wpdb->posts.post_title LIKE",
$search
);
$search = str_replace(
"OR ($wpdb->posts.post_content LIKE",
") OR ($wpdb->posts.post_content LIKE",
$search
);
}
return $search;
}
add_filter( 'posts_search', 'search_weight', 10, 2 );
Solution 3 : Utiliser un service de recherche externe (Algolia, Elasticsearch)
Pour les sites à très fort trafic ou nécessitant une recherche ultra-rapide, des solutions comme Algolia ou Elasticsearch sont recommandées. Des plugins comme Search by Algolia ou ElasticPress facilitent l’intégration.
Ces services proposent :
- Recherche en temps réel (autocomplete).
- Filtres dynamiques (facettes).
- Analyse sémantique et synonymes.
- Performances élevées même sur de grands volumes.
L’inconvénient est le coût (abonnement mensuel) et la dépendance à un service tiers.
Comment choisir la meilleure solution pour votre site ?
Voici un guide de décision :
- Petit blog ou site vitrine : Relevanssi gratuit ou Ivory Search gratuit suffisent.
- Site e-commerce (WooCommerce) : SearchWP ou Algolia (pour des performances optimales).
- Annuaire ou site avec beaucoup de champs personnalisés : SearchWP (compatible ACF) ou développement sur mesure.
- Site multi-langue : vérifiez la compatibilité avec WPML ou Polylang (SearchWP et Relevanssi le sont).
- Budget limité : Relevanssi premium (99 €) ou Ivory Search premium (29 $).
Erreurs à éviter lors de l’ajout d’une recherche avancée
- Négliger l’indexation : certains plugins nécessitent de reconstruire l’index après l’installation. Assurez-vous de le faire.
- Ignorer la performance : une recherche trop lourde peut ralentir le site. Utilisez un cache ou un service externe si nécessaire.
- Oublier les mobiles : le formulaire doit être responsive et facile à utiliser sur smartphone.
- Ne pas tester : vérifiez les résultats avec des requêtes variées (fautes, synonymes, termes longs).
- Surcharger l’interface : trop de filtres peut dérouter l’utilisateur. Commencez par l’essentiel.
Checklist pour une recherche avancée réussie
- Choisir la solution adaptée (plugin, code, service externe).
- Installer et configurer le plugin ou le code.
- Indexer le contenu si nécessaire.
- Personnaliser le formulaire (filtres, champs).
- Tester la pertinence et la vitesse.
- Optimiser pour le mobile.
- Surveiller les statistiques de recherche (SearchWP propose cette fonctionnalité).
FAQ : Questions fréquentes sur la recherche avancée WordPress
Quel est le meilleur plugin de recherche avancée pour WordPress ?
SearchWP est souvent considéré comme le meilleur grâce à sa flexibilité et ses performances, mais Relevanssi est un excellent choix gratuit.
Puis-je ajouter une recherche avancée sans plugin ?
Oui, en modifiant les fichiers du thème (searchform.php et functions.php) comme expliqué dans la solution 2.
Comment ajouter des filtres par catégorie dans la recherche ?
Avec un plugin comme Ivory Search ou en ajoutant une liste déroulante dans le formulaire de recherche et en modifiant la requête avec pre_get_posts.
La recherche avancée ralentit-elle mon site ?
Cela dépend de la solution. Les plugins bien optimisés (SearchWP, Relevanssi) n’ont pas d’impact notable. Pour les très gros sites, un service externe comme Algolia est recommandé.
Comment rechercher dans les champs personnalisés (ACF) ?
SearchWP le supporte nativement. Relevanssi premium aussi. En code, vous pouvez utiliser meta_query dans pre_get_posts.
Ma recherche avancée doit-elle être compatible avec WooCommerce ?
Oui, si vous vendez des produits. SearchWP et Relevanssi premium sont compatibles. Algolia aussi via le plugin dédié.
Prochaines étapes pour optimiser l’expérience de recherche
Maintenant que vous savez comment ajouter un système de recherche avancée sur WordPress, passez à l’action :
- Analysez les besoins de vos visiteurs (quels types de contenus recherchent-ils ?).
- Testez un plugin gratuit comme Relevanssi pour évaluer l’impact.
- Si le trafic est élevé, investissez dans SearchWP ou Algolia.
- Suivez les statistiques de recherche pour améliorer les résultats (ajouter des synonymes, corriger les erreurs courantes).
- N’oubliez pas d’ajouter une page de résultats personnalisée avec des suggestions si aucun résultat n’est trouvé.
Une recherche avancée bien conçue transforme l’expérience utilisateur et peut augmenter significativement l’engagement sur votre site WordPress.

Est-ce que la recherche avancée peut ralentir mon site si j’ai beaucoup d’articles ?
Bonjour, cela dépend de la solution choisie. Les plugins comme SearchWP et Relevanssi utilisent des index dédiés, ce qui peut améliorer les performances par rapport à la recherche native. Cependant, un hébergement de qualité est recommandé pour les gros sites. Vous pouvez aussi activer la mise en cache des résultats.
Merci pour ce comparatif ! Une précision : les plugins mentionnés sont-ils compatibles avec les dernières versions de WordPress et PHP 8 ?
Oui, tous les plugins cités (SearchWP, Relevanssi, Ivory Search) sont régulièrement mis à jour et compatibles avec WordPress 6.x et PHP 8. Il est toujours bon de vérifier la fiche du plugin avant installation, mais ils sont fiables.
Existe-t-il une méthode sans plugin pour ajouter des filtres de recherche ? J’aimerais éviter d’alourdir mon site.
Oui, vous pouvez ajouter des filtres personnalisés via des fonctions dans le fichier functions.php de votre thème, en utilisant pre_get_posts. Cela nécessite des connaissances en PHP. L’article mentionne cette approche mais nous détaillerons dans un prochain tutoriel. Pour les débutants, un plugin reste plus simple.
Merci pour ce guide très complet ! J’hésite entre SearchWP et Relevanssi pour mon site e-commerce. Lequel recommandez-vous pour WooCommerce ?
Bonjour, pour WooCommerce, SearchWP est souvent plus adapté car il propose une intégration native avec les produits, les variations et les champs personnalisés. Relevanssi fonctionne aussi, mais nécessite plus de réglages manuels. Si vous cherchez la simplicité, SearchWP est un bon choix.
J’ai essayé Relevanssi mais je trouve l’interface un peu complexe. Y a-t-il un plugin plus simple pour un blog ?
Pour un blog, vous pouvez essayer Ivory Search en version gratuite, qui est plus simple à configurer. Il permet d’ajouter des filtres par catégorie sans trop de paramétrage. Sinon, SearchWP reste très intuitif même s’il est payant.
Super article ! Petite question : est-ce que Ivory Search permet de chercher dans des champs personnalisés créés avec ACF ?
Merci ! Dans sa version gratuite, Ivory Search ne prend pas en charge les champs personnalisés ACF. Il faut la version premium pour cela. Si vous avez besoin de cette fonctionnalité, SearchWP ou Relevanssi sont de meilleures options.