La recherche intégrée de WordPress fait un travail simple et le fait bien : retrouver un mot dans le titre, l’extrait et le contenu de vos pages et articles. Pour la plupart des sites, cela suffit. Mais on ne la règle pas facilement : ce qu’elle explore et la façon dont elle classe sont fixes, sauf à passer par du code ou une extension. Cet article décrit comment afficher un champ de recherche, ce que le moteur compare, comment il classe, ce qui lui échappe, et par quels moyens élargir son périmètre le jour où cela ne suffit plus.
Ce qui se passe quand un internaute lance une recherche
Le parcours est simple. L’internaute saisit un mot, le navigateur appelle une adresse de la forme votresite.fr/?s=randonnee, et WordPress interprète le s comme une demande de recherche. Il compose alors une requête, l’envoie à la base de données, récupère la liste des contenus correspondants et les affiche dans un gabarit dédié, distinct de celui d’une page ordinaire. Cette page de résultats n’est pas une page de votre site : elle est générée à la volée à chaque recherche, et vous ne la trouverez pas dans l’onglet « Pages » de votre interface d’administration. Nous y revenons plus bas.
Tout se joue donc dans la base de données WordPress, cet ensemble de tables où WordPress range vos contenus.
Le même gabarit gère aussi le cas où rien ne correspond : la liste de contenus est vide, mais la page s’affiche normalement, avec en général un message invitant à reformuler la recherche. Ce n’est pas une erreur ni une page à part, seulement la même mécanique sans résultat à afficher.
Soigner l’apparence de la page des résultats de la recherche
Cette page ressemble parfois assez peu au reste du site : son apparence dépend d’un gabarit dédié de votre thème, distinct de vos pages ordinaires. Pensez à le travailler comme le reste du site.
Dans un thème à blocs (FSE), il s’édite dans Apparence > Éditeur > Modèles > Résultats de recherche ; dans un thème classique, il correspond au fichier search.php ; sous Elementor Pro, c’est un modèle de résultats de recherche à créer dans le Constructeur de thème ; dans la version gratuite d’Elementor, faute de Constructeur de thème, cette page reste gérée par le thème actif, ce qui vous ramène à l’un des deux cas précédents. Le nom exact et la marche à suivre peuvent varier selon le thème ou l’outil utilisé.
Comment afficher un champ de recherche sur son site
WordPress fournit le moteur de recherche, mais votre thème décide si un champ permettant de l’utiliser apparaît sur le site. Certains thèmes l’intègrent directement dans leur en-tête, tandis que d’autres ne l’affichent pas par défaut.
Avec un thème basé sur les blocs, ouvrez Apparence > Éditeur, puis modifiez l’en-tête ou la partie de modèle dans laquelle vous souhaitez placer la recherche. Ajoutez ensuite le bloc Recherche. Celui-ci peut afficher un champ accompagné d’un bouton, un champ seul ou uniquement une icône qui se déploie au clic.

Avec un thème classique, rendez-vous généralement dans Apparence > Widgets et ajoutez le bloc Recherche dans une zone prévue par le thème, par exemple la barre latérale ou le pied de page. Certains thèmes proposent également une option dédiée dans leurs réglages pour placer une icône ou un widget de recherche dans l’en-tête.
Le bloc peut aussi être inséré directement dans une page ou un article, comme n’importe quel autre bloc. Ce choix convient à une page de ressources ou à un catalogue, mais il ne rend pas la recherche accessible depuis l’ensemble du site. Dans la plupart des cas, l’en-tête reste l’emplacement le plus facile à trouver, particulièrement sur smartphone.
Si votre site utilise Elementor Pro, ouvrez le modèle d’en-tête dans le Constructeur de thème et ajoutez le widget Recherche à l’emplacement souhaité. Elementor peut également afficher des résultats pendant la saisie et limiter la recherche à certains types de contenus. Ces options dépassent alors le fonctionnement strictement natif décrit dans cet article. Avec la version gratuite d’Elementor, l’affichage d’un champ dans l’en-tête dépend généralement des possibilités offertes par le thème.
Où WordPress va chercher
Le périmètre est net, et c’est le point le plus utile de tout cet article. WordPress regarde trois choses, et uniquement trois : le titre du contenu, son extrait, et le contenu lui-même. Rien d’autre n’entre dans la comparaison. Une correspondance dans un seul de ces trois champs suffit : le mot cherché n’a pas besoin de figurer dans les trois à la fois.
S’ajoutent deux filtres de bon sens. Pour un internaute non connecté, seuls les contenus publiquement accessibles sont examinés : un brouillon, un contenu programmé ou un contenu privé reste invisible. Et les contenus protégés par mot de passe sont écartés des résultats, ce qui évite de révéler par la recherche ce que le mot de passe protège.
Reste la question des types de contenu concernés. Par défaut, la recherche couvre les articles et les pages, ainsi que les types de contenu personnalisés qui n’en ont pas été explicitement exclus. Sur une boutique, les fiches produits entrent ainsi généralement dans les résultats.
La médiathèque constitue un cas particulier. Les fichiers téléversés sont bien enregistrés comme des contenus par WordPress, avec un titre, une légende et une description, mais ils ne remontent normalement pas dans les résultats de recherche publics. Un thème ou une extension peut néanmoins modifier ce comportement. Notre article sur la médiathèque WordPress détaille le rôle des différents champs associés aux fichiers.
Enfin, toute extension qui crée son propre type de contenu peut le rendre cherchable, et certaines le font sans le signaler clairement. Mais on trouve aussi des types purement techniques, créés par une extension pour son usage interne, qui se retrouvent dans la recherche sans que personne l’ait demandé. Si vos résultats contiennent des entrées incongrues, l’explication est souvent là. La notion de type de contenu personnalisé est développée dans notre article sur les types de contenu dans WordPress.
Comment les résultats sont classés
Contrairement à une idée répandue, les résultats ne sortent pas dans l’ordre chronologique. WordPress applique d’abord un classement par pertinence, et la date ne sert qu’à départager les contenus à égalité.
Ce classement est simple et repose entièrement sur la place du terme cherché. Quand la recherche porte sur un seul mot, les contenus qui le portent dans leur titre passent devant, les autres suivent, et chaque groupe est trié du plus récent au plus ancien. Quand elle porte sur plusieurs mots, WordPress distingue cinq niveaux : l’expression complète dans le titre, puis tous les mots dans le titre, puis un seul de ces mots dans le titre, puis l’expression complète dans l’extrait, puis l’expression complète dans le contenu.
La logique est cohérente : le titre pèse plus que le corps du texte. En contrepartie, un contenu qui traite parfaitement le sujet sans en reprendre les mots dans son titre se retrouve mécaniquement derrière un contenu qui les affiche sans les traiter. Le classement mesure la position des mots, pas la qualité de la réponse.
Les règles de correspondance à connaître
WordPress ne cherche pas un mot, mais une suite de caractères exacte, présente n’importe où dans le texte. Il ignore qu’un mot a un singulier et un pluriel, ou qu’il peut s’écrire autrement : il compare des lettres, rien de plus. Cette seule idée explique la plupart des surprises.
Première conséquence, la comparaison fonctionne dans un sens mais pas dans l’autre. Chercher « chaussure » remonte un contenu qui écrit « chaussures », car la suite « chaussure » figure à l’intérieur de « chaussures ». L’inverse échoue : chercher « chaussures » ne remonte pas un contenu qui n’écrit que « chaussure », cette suite plus longue ne s’y trouvant nulle part. Un contenu qui emploie les deux formes est trouvé dans les deux cas, mais par chance, parce qu’il contient déjà chaque orthographe, non parce que WordPress rapproche le singulier du pluriel.
Deuxième conséquence, WordPress ne corrige pas les fautes de frappe et ne connaît ni les synonymes ni les abréviations. La comparaison est toutefois généralement insensible aux majuscules et, selon la configuration de la base de données, elle peut également ignorer les différences d’accents. Ce comportement vient de la base de données, pas d’une compréhension du mot recherché.
Troisième point, et il surprend souvent : WordPress écarte les mots très courants. Sur un site en français, il retire de la recherche une longue liste de mots outils, dont « le », « la », « les », « de », « des », « un », « une », « et », « dans », « pour », « sur » ou « que », ainsi que les lettres isolées. Chercher « les tarifs de la saison » revient donc à chercher « tarifs » et « saison ». Le garde-fou existe : si votre recherche ne contient que des mots de cette liste, WordPress la cherche telle quelle, comme une expression entière. « de la » renvoie donc bien des résultats.
Quatrième point, la façon dont plusieurs mots sont combinés. Chaque mot doit être présent, mais rien n’impose qu’ils soient proches, ni même dans le même champ. Un contenu dont le titre porte « tarifs » et dont le dernier paragraphe mentionne « saison » est un résultat valide pour « tarifs saison ». C’est la principale source de résultats qui semblent hors sujet : ils sont conformes à la règle, la règle ignore simplement la notion de contexte.
Deux raccourcis intégrés, que vos internautes ignorent presque toujours
➔ Les guillemets cherchent l’expression exacte :
"coupe du monde"ne remonte que les contenus où ces trois mots se suivent dans cet ordre.
➔ Un tiret placé devant un mot l’exclut :maillot -enfantremonte les contenus qui parlent de maillot sans parler d’enfant.Les deux fonctionnent nativement, sans aucune extension. Les mentionner sous votre champ de recherche coûte une ligne et rend le moteur nettement plus maniable.
Ce qui reste hors du périmètre
Puisque la comparaison porte sur trois champs, tout ce qui vit ailleurs est invisible pour la recherche. Concrètement :
- les champs personnalisés, c’est-à-dire les informations rangées à part du contenu principal : référence, prix, date d’un événement, coordonnées, et de manière générale tout ce qu’un formulaire d’administration ajoute sous l’éditeur ;
- les catégories et les étiquettes : un contenu classé dans « randonnée » ne remonte pas pour « randonnée » si le mot n’apparaît pas dans son texte ;
- les commentaires, y compris quand ils contiennent la réponse que l’internaute cherchait ;
- le contenu des fichiers : le texte d’un PDF déposé dans la médiathèque n’est pas lu.
Sur une boutique WooCommerce, cette liste produit un effet très concret : la référence d’un produit n’est pas trouvée. Le titre du produit remonte, sa référence non, parce qu’elle est rangée dans un champ séparé. Le test prend dix secondes sur votre propre site, avec une référence que vous connaissez.
Cette limite n’est pas un oubli. Aller chercher dans tous ces emplacements supposerait de construire et de tenir à jour un index dédié, c’est-à-dire un répertoire de tous les mots du site avec leur emplacement. WordPress ne construit pas cet index : il interroge directement le texte au moment de la recherche. C’est un choix de conception, avec ses avantages, à commencer par le fait que rien ne peut se désynchroniser.
Le cas du constructeur de page Elementor
Le contenu d’une page Elementor est-il trouvé par la recherche native ? La réponse dépend du widget et de la version. Sur une version récente, mes tests montrent qu’à l’enregistrement l’extension recopie le texte de ses widgets dans le contenu de l’article, là où la recherche va lire. Je l’ai vérifié sur trois widgets courants, l’éditeur de texte, le titre et le bouton, chacun présent dans le contenu de la page et remonté par la recherche. Le comportement peut toutefois varier selon le widget, la version d’Elementor et le recours à du contenu dynamique ou à des modèles, cas où le texte reste parfois rangé à part, hors du contenu examiné. À vérifier sur votre propre site plutôt qu’à généraliser.
Pourquoi la recherche WordPress pèse sur le serveur
Ce mode de fonctionnement a un coût.
Une base de données va vite parce qu’elle s’appuie sur des index, l’équivalent de l’index d’un livre : au lieu de tout lire, elle saute directement aux emplacements utiles. Mais, pour une recherche textuelle, un index classique est surtout efficace lorsque la valeur commence par la suite de caractères recherchée. Or WordPress cherche un fragment pouvant se situer n’importe où à l’intérieur du texte. L’index ne peut alors plus être exploité efficacement, et la base doit examiner l’ensemble des contenus à chaque recherche.
Deux effets en découlent. Le coût augmente avec le volume de contenus, là où un index dédié le maintiendrait à peu près stable. Et le cache de pages aide généralement peu : les pages de recherche contenant un paramètre dans leur adresse sont souvent exclues du cache, et la grande variété des termes saisis limite les possibilités de réutilisation. Sur un site de quelques dizaines de pages, cela ne se voit pas. Sur un catalogue important, ou sur un site visité par de nombreux robots qui déclenchent des recherches, cela devient visible. Si vous voulez mesurer plutôt qu’estimer, notre article sur l’analyse des lenteurs PHP avec PHP X‑Ray explique comment observer le coût réel d’une page, recherche comprise.
À noter que MySQL (ou MariaDB), le gestionnaire de base de données utilisé par WordPress, sait faire autrement, avec un mode de recherche en texte intégral conçu pour cet usage. WordPress ne l’emploie pas par défaut.
Les pages de résultats et l’indexation par Google
Les pages de résultats de recherche (?s=...) sont accessibles par une adresse comme n’importe quelle autre page du site, donc visibles par les robots d’exploration de Google. Le risque théorique est réel : du contenu jugé pauvre ou dupliqué, une page qui change à chaque requête, potentiellement de nombreuses variantes indexées si des internautes, ou des robots, génèrent des recherches variées.
Depuis WordPress 5.7 (2021), le cœur de WordPress traite ce cas nativement : une balise noindex est ajoutée automatiquement à l’en-tête de toute page de résultats de recherche, via son API de gestion des balises robots. Sur un site à jour, cette protection est donc déjà active, sans réglage à faire.
Comment vérifier que c’est bien le cas sur votre site
➔ Ouvrez une page de résultats de recherche (
votresite.fr/?s=test)
➔ Affichez le code source et cherchez la balise<meta name="robots" ...>dans l’en-tête
➔ Elle doit contenirnoindex
Deux cas font exception à cette protection par défaut : un site resté sur une version ancienne de WordPress, et un thème personnalisé dont l’en-tête ne charge pas correctement les fonctions natives de WordPress. Une extension de référencement peut aussi modifier ou remplacer cette balise avec son propre réglage : là encore, mieux vaut vérifier son contenu que le supposer correct.
Un point de vigilance souvent confondu avec le premier : bloquer ces URL via le fichier robots.txt n’a pas le même effet qu’une balise noindex, et peut même être contre-productif. Le fichier robots.txt empêche l’exploration d’une page, pas son indexation : une page déjà connue de Google peut rester indexée alors même qu’elle est bloquée à l’exploration, puisque Google ne peut plus revenir vérifier son contenu ni sa balise noindex.
Élargir le périmètre
Trois voies existent, d’effort croissant, et le bon choix dépend surtout de la place que la recherche occupe réellement dans les parcours de vos internautes.
La première ne touche pas au moteur : elle réduit le besoin de s’en servir. Un menu clair, des catégories cohérentes, des titres qui reprennent les mots que vos internautes emploient réellement, et une page listant les contenus principaux règlent une bonne part des recherches infructueuses. Dans la même logique, il est souvent utile de restreindre plutôt que d’élargir : retirer des résultats les types de contenu techniques ajoutés par vos extensions rend la recherche immédiatement plus lisible. Cette voie est gratuite et sans effet de bord, mais elle ne rend pas le moteur plus intelligent : il continuera d’ignorer les fautes de frappe et les champs personnalisés.
La deuxième consiste à installer une extension qui construit son propre index. Le principe change : au lieu d’interroger le texte à chaque recherche, l’extension tient à jour un répertoire des mots du site, ce qui lui permet d’aller chercher dans les champs personnalisés, les catégories, les commentaires, parfois le contenu des documents, et de tolérer les approximations. En contrepartie, cet index occupe de la place, doit être reconstruit après un import massif, et ajoute une extension de plus à maintenir. C’est la réponse habituelle dès qu’un site a beaucoup de contenus et que la recherche est réellement utilisée.
La troisième déporte l’index chez un prestataire spécialisé. Le site lui envoie ses contenus, et l’interroge au moment d’une recherche. Les résultats sont rapides et fins, y compris sur de très gros volumes, et la charge quitte votre hébergement. Les contreparties sont réelles : un abonnement, une dépendance à un service tiers, et vos contenus qui transitent vers l’extérieur, ce qui demande d’être regardé de près si votre site traite des données sensibles. Cette voie se justifie surtout pour les catalogues importants ou les sites sur lesquels la recherche joue un rôle central.
Avant de choisir, une étape simple évite de se tromper : regardez ce que vos internautes cherchent réellement. Un site sur lequel la recherche est utilisée dix fois par mois et un site sur lequel elle ouvre la moitié des parcours n’appellent pas la même réponse.
À retenir
- WordPress compare le terme cherché à trois champs seulement : le titre, l’extrait et le contenu. Tout le reste lui est invisible.
- Les résultats sont classés par pertinence, pas par date, et cette pertinence se résume à la position des mots, le titre pesant plus que le corps du texte.
- Le moteur cherche une suite de caractères : ni fautes de frappe, ni synonymes, ni pluriels rattrapés. La comparaison ignore généralement les majuscules et peut aussi ignorer les accents selon la base de données.
- Deux fonctions natives méritent d’être connues de vos internautes : les guillemets pour une expression exacte, le tiret pour exclure un mot.
- Les champs personnalisés, les catégories, les commentaires et le contenu des fichiers restent hors périmètre. Sur une boutique WooCommerce, cela se traduit par une référence produit introuvable.
- Pour aller plus loin, trois voies : structurer le site, indexer avec une extension, ou déporter l’index.
Le moteur natif fait exactement ce pour quoi il a été conçu : retrouver un texte dans un texte, sans dépendance et sans maintenance. Savoir où s’arrête ce périmètre est ce qui permet de décider s’il vous suffit.
















