Le 18 août 2026, la première page de résultats française de « keyword stuffing » contient neuf résultats organiques, un panneau de graphe de connaissances alimenté par Wikipédia, deux questions People Also Ask et un AI Overview en position zéro. Cet AI Overview est intégralement rédigé en anglais, sur une requête interrogée en France et en français, et il se termine par une proposition adressée au lecteur : « If you'd like, share a paragraph or a topic you are working on, and I can help you rewrite it to sound natural and SEO-friendly. »
Sur les neuf résultats organiques, cinq sont en anglais et quatre en français. Six affichent une date, dont deux seulement sont postérieures à 2024. Trois n'affichent aucune date.
Deux de ces pages donnent un chiffre. MMCréation écrit « A good keyword ratio is around 1 or 2% of the text ». SE Ranking écrit « maintain a natural keyword density (generally 2-5%) ». Les deux fourchettes ne se recouvrent que sur un point, et les deux pages figurent sur la même page de résultats, pour la même question. C'est le seul endroit de tout ce corpus où un nombre est proposé, et il n'y en a pas deux qui soient d'accord.
Aucune de ces pages n'explique ce que la répétition d'un mot produit dans le mécanisme qui va chercher les passages servis aux moteurs génératifs. C'est ce que cet article calcule.
Ce que j'ai mesuré le 18 août 2026. J'ai relevé la page de résultats de « keyword stuffing » en France et en français, comparé les domaines cités par l'AI Overview à ceux du top 10, récupéré le texte des pages classées pour y chercher toute phrase reliant le sujet aux moteurs génératifs, relu ce que Google publie sur la répétition et sur la balise meta keywords, lu le code source de la fonction de score de la bibliothèque de recherche la plus déployée au monde, et calculé sur ses paramètres par défaut ce que rapporte réellement une occurrence supplémentaire. Les trois calculs sont reproductibles, les formules sont publiques.
Google ne publie aucun seuil de densité de mots-clés
Le guide de démarrage SEO de Google contient une section intitulée « Things we believe you shouldn't focus on », littéralement les sujets sur lesquels il ne faut pas se concentrer. Elle liste neuf entrées. La première est la balise meta keywords, la deuxième le keyword stuffing, avec ce commentaire : « Excessively repeating the same words over and over (even in variations) is tiring for users, and keyword stuffing is against Google's spam policies. »
Les règles anti-spam donnent la définition de référence : « Keyword stuffing refers to the practice of filling a web page with keywords or numbers in an attempt to manipulate rankings in Google Search results. Often these keywords appear in a list or group, unnaturally, or out of context. » Suivent trois exemples : des listes de numéros de téléphone sans valeur ajoutée, des blocs de texte énumérant des villes et des régions, et une répétition qui sonne faux, illustrée par un paragraphe fabriqué sur des crédits d'app store.
Vérification qui vaut la peine d'être faite, parce qu'elle est bon marché et qu'elle contredit toute une littérature : la chaîne « density » apparaît zéro fois dans le guide de démarrage et zéro fois dans les règles anti-spam. Aucun pourcentage cible n'est associé à un mot-clé dans l'un ou l'autre document. Le concept de densité de mots clés n'est pas une notion produite par Google. C'est une métrique produite par les outils d'analyse de contenu, qui mesurent le seul objet auquel ils ont accès, votre texte.
Même geste sur la documentation « AI features and your website », celle qui décrit les surfaces génératives de Google. Corps hors menu de navigation, environ 6 900 caractères : keyword 0, density 0, stuff 0, repeat 0, synonym 0, word 0. Sur la page entière, balises comprises, la chaîne « keyword » n'apparaît pas une seule fois.
Ce zéro se lit dans les deux sens, et il faut le dire. Il ne prouve pas que la répétition d'un terme est sans effet sur les réponses génératives. Il établit que Google ne présente à aucun endroit la fréquence d'un mot comme une clé d'entrée dans ses surfaces IA, alors que la même documentation prend la peine de nommer d'autres leviers, comme le maillage interne ou la disponibilité du contenu en texte.
La balise meta keywords, ou la case où l'on déclare ses mots-clés à la machine
Le terme « meta keywords » pèse 90 recherches par mois en France, avec un coût par clic de 9,10 euros. C'est une balise que Google a cessé d'utiliser il y a près de dix-sept ans.
L'annonce est datée du lundi 21 septembre 2009, signée Matt Cutts, alors dans l'équipe Search Quality. Le titre du billet est sans ambiguïté : « Google does not use the keywords meta tag in web ranking ». Le texte l'est aussi : « Our web search [...] disregards keywords meta tag completely. They simply don't have any effect in our search ranking at present. »
Le passage le plus utile est celui qui explique pourquoi. « About a decade ago, search engines judged pages only on the content of web pages, not any so-called "off-page" factors such as the links pointing to a web page. In those days, keyword meta tags quickly became an area where someone could stuff often-irrelevant keywords without typical visitors ever seeing those keywords. » Une case réservée aux mots-clés, invisible du lecteur, remplie par l'éditeur : elle est morte de son propre succès.
Détail qui en dit long sur la longévité de la croyance. Le billet porte aujourd'hui un bandeau ajouté par Google : « It's been a while since we published this blog post. Some of the information may be outdated [...] However Google still doesn't support the keywords meta tag. » Google entretient un avertissement sur un billet de 2009 pour redire qu'une balise n'est toujours pas lue.
Le réflexe, lui, n'est pas mort. Il s'est déplacé. Chaque génération de moteurs voit réapparaître la même demande : où déclare-t-on ses mots-clés à la machine ? La réponse est aujourd'hui cherchée du côté des fichiers destinés aux modèles, et le dossier llms.txt mérite d'être ouvert avec la même prudence. Une case que l'éditeur remplit seul, que le lecteur ne voit pas, et dont le contenu ne coûte rien à écrire, n'a jamais tenu longtemps comme signal.
La récupération lexicale sature la répétition par construction
Passons du discours au mécanisme. Un moteur qui va chercher des passages pour alimenter un modèle combine presque toujours deux méthodes : une recherche lexicale, qui compare des mots, et une recherche dense, qui compare des vecteurs. Commençons par la première, parce que sa formule est publique et que ses paramètres par défaut sont dans un fichier que tout le monde peut lire.
La fonction de score s'appelle BM25. Elle est implémentée dans Apache Lucene, le moteur d'indexation sur lequel reposent Elasticsearch et OpenSearch. Le fichier BM25Similarity.java du dépôt Apache donne ses valeurs par défaut dans le constructeur sans argument : this(1.2f, 0.75f, true, -1f), soit k1 = 1,2 et b = 0,75, ce second paramètre réglant le poids de la longueur du document dans le score. La documentation du paramètre k1 est explicite sur son rôle : « Controls non-linear term frequency normalization (saturation). »
Saturation est le bon mot. La contribution d'un terme au score suit la forme tf / (tf + k1 × (1 - b + b × dl / avgdl)), où tf est le nombre d'occurrences, dl la longueur du document et avgdl la longueur moyenne des documents du corpus. Sur une page de 1 000 mots dans un corpus dont la longueur moyenne est de 1 000 mots, voici ce que rapporte chaque occurrence supplémentaire.
| Occurrences du terme | Part du score | Rapport à une occurrence |
|---|---|---|
| 1 | 0,4545 | 1,00 |
| 2 | 0,6250 | 1,38 |
| 3 | 0,7143 | 1,57 |
| 5 | 0,8065 | 1,77 |
| 10 | 0,8929 | 1,96 |
| 20 | 0,9434 | 2,08 |
| 100 | 0,9881 | 2,17 |
| infini | 1,0000 | 2,20 |
La deuxième occurrence rapporte 37,5 % de plus que la première. La centième rapporte 1,2 % de plus que la cinquantième. Et surtout, la dernière ligne fixe un plafond : répéter un mot une infinité de fois multiplie sa contribution par 2,2 par rapport à une seule mention, jamais davantage.
La conséquence pratique est franche. Une page qui mentionne déjà son terme cinq fois a épuisé les trois quarts du chemin. Tout le bourrage imaginable, jusqu'à l'infini, lui rapporterait encore 24 %. À partir de dix occurrences, la marge restante tombe à 12 %. Ce sont des gains sur la contribution d'un seul terme, avant même de tenir compte du fait que les mots ajoutés allongent la page et pénalisent au passage tous les autres termes qu'elle contient.
Deux pages de même densité n'obtiennent pas le même score
La formule permet de trancher directement la question du pourcentage cible, celle sur laquelle les deux pages de la SERP se contredisaient. Si la densité de mots-clés était la variable pertinente, deux pages de densité identique obtiendraient la même contribution. Elles ne l'obtiennent pas.
| Longueur | Occurrences | Densité | Part du score |
|---|---|---|---|
| 400 mots | 2 | 0,5 % | 0,7519 |
| 1 000 mots | 5 | 0,5 % | 0,8065 |
| 2 000 mots | 10 | 0,5 % | 0,8264 |
| 4 000 mots | 20 | 0,5 % | 0,8368 |
Même ratio, quatre résultats différents, et la page la plus longue obtient 11 % de plus que la plus courte. La raison tient à la structure de la formule : les occurrences entrent au numérateur, la longueur n'intervient qu'à travers un terme pondéré par b et rapporté à la moyenne du corpus. Le dénominateur ne suit pas le numérateur.
Il y a plus gênant encore pour la métrique. La densité est un rapport interne à votre texte : elle se calcule sans rien savoir du reste du web. Or la contribution réelle d'un terme dépend de deux quantités que votre page ne contient pas, la longueur moyenne des documents du corpus et la rareté du terme dans ce corpus. Un mot rare vaut beaucoup à sa première mention, un mot banal ne vaut presque rien même répété. Une métrique calculée sur votre seule page ne peut pas, par construction, mesurer une grandeur qui dépend de tous les autres documents.
C'est pour cette raison que la densité de mots clés survit si bien dans les outils : elle est la seule chose qu'un logiciel branché sur votre éditeur de texte sache calculer.
Dans un vecteur normalisé, la couverture bat la répétition
Passons à l'autre moitié du pipeline. Une recherche dense transforme votre passage en vecteur, transforme la requête en vecteur, et compare les deux par similarité cosinus. Le point décisif est que ces vecteurs sont normalisés. La documentation d'OpenAI le dit sans détour à propos de ses modèles d'embeddings : « OpenAI embeddings are normalized to length 1, which means that: Cosine similarity can be computed slightly faster using just a dot product ».
Normaliser signifie que seule la direction du vecteur compte, jamais sa taille. Un passage qui répète un terme ne devient pas « plus grand », il pivote. Et pivoter a un coût, parce que les autres dimensions du passage rétrécissent d'autant.
L'expérience suivante est un modèle jouet, et il faut le dire tout de suite : ce n'est pas un modèle d'embedding neuronal, c'est un simple sac de mots normalisé, où chaque dimension compte les occurrences d'un mot. La propriété que je veux montrer est celle que les deux familles partagent, la normalisation de la longueur. Soit une requête de quatre termes, et un passage contenant ces quatre termes plus quarante autres mots distincts. On répète le terme cible et on regarde le cosinus.
| Occurrences du terme cible | Cosinus avec la requête |
|---|---|
| 1 | 0,3015 |
| 3 | 0,4160 |
| 10 | 0,5436 |
| 14 | 0,5498 |
| 25 | 0,5417 |
| 100 | 0,5139 |
| 1 000 | 0,5015 |
La courbe monte, atteint son maximum à quatorze occurrences, puis redescend. Répéter au-delà dégrade la proximité au lieu de l'améliorer, parce que le vecteur du passage s'aligne sur un seul mot alors que la requête en contient quatre.
Le chiffre qui rend la démonstration utile est ailleurs. Un passage court qui couvre les quatre termes de la requête une fois chacun, et rien d'autre, obtient un cosinus de 1,0000. Le maximum absolu. Aucun degré de répétition ne s'en approche : le meilleur bourrage plafonne à 0,55, la couverture équilibrée atteint 1. Ce n'est pas un effet de seuil ni une pénalité, c'est de la géométrie.
Traduit en consigne rédactionnelle : ce qui rapproche un passage d'une question, c'est la présence de tous ses termes, pas l'insistance sur l'un d'eux. Un paragraphe qui répond à une question en nommant chacun de ses éléments bat un paragraphe qui martèle le mot principal. On retrouve exactement le critère développé dans l'article sur le query fan-out et l'autonomie des passages, par un autre chemin.
Le score final d'un moteur hybride lit des rangs, pas des scores
Reste l'étape que presque personne n'intègre. Quand un moteur combine une liste lexicale et une liste dense, il ne fait pas la moyenne des scores, qui ne sont pas comparables entre eux. La méthode standard s'appelle la fusion de rangs réciproques, et Elasticsearch en publie la formule : score += 1.0 / (k + rank(result(q), d)), avec un rank_constant qui vaut 60 par défaut, et cette précision dans la documentation : « Each child retriever carries an equal weight as part of the RRF formula. »
Ce que cette formule fait aux efforts d'optimisation d'un terme mérite d'être calculé.
Passer du rang 2 au rang 1 dans une liste rapporte 1/61 moins 1/62, soit 0,000264 point, une progression de 1,64 %. Apparaître au rang 50 d'une deuxième liste rapporte 1/110, soit 0,009091 point. Le second gain vaut trente-quatre fois le premier. Entrer modestement dans un deuxième jeu de résultats pèse infiniment plus que grimper au sommet d'un seul.
Or vous ne pouvez pas savoir combien de rangs vous gagnez avec une occurrence supplémentaire, puisque cela dépend des documents concurrents. Vous savez en revanche ce qui vous fait entrer dans une deuxième liste : traiter un sujet voisin que vous ne traitiez pas. Comme les surfaces génératives de Google émettent, selon leur propre documentation, « multiple related searches across subtopics and data sources », le nombre de listes dans lesquelles votre page peut apparaître est directement le nombre de sous-questions qu'elle couvre.
C'est le renversement complet de la logique de densité. Celle-ci optimise l'intensité sur une requête. La fusion de rangs récompense la présence sur plusieurs.
Ce qui remplace la densité de mots-clés dans un pipeline de récupération
Les trois calculs convergent vers la même consigne, et elle est plus exigeante que le comptage d'occurrences.
Couvrir les sous-questions plutôt qu'insister sur le terme principal. Une page qui traite six angles distincts d'un sujet peut être récupérée par six requêtes dérivées. Une page qui répète six fois plus son terme sur un seul angle reste candidate à une seule. En pratique, cela veut dire une section par question réellement posée, avec un titre de section qui porte la question en clair, puisque c'est lui qui découpe et étiquette le passage.
Nommer les entités et les attributs, pas seulement le mot-clé. Dans le calcul de cosinus, ce sont les termes de la requête absents du passage qui coûtent le plus cher. Prix, délai, format, périmètre, ville, version, année : chaque attribut nommé est une dimension gagnée sur les requêtes qui le contiennent.
Écrire des passages qui tiennent seuls. Un passage extrait de sa page perd tout ce qui n'y figure pas explicitement, ce qui vaut aussi pour les signaux d'expérience et d'autorité, dont une seule des trois sources survit à l'extraction.
Ne pas confondre couvrir et découper en questions-réponses. La forme rédactionnelle de la question reste vivante, même après la disparition du résultat enrichi FAQ, mais transformer une page entière en enfilade de questions ne crée pas de couverture, il crée de la redondance. Or la redondance est précisément ce que les mécanismes de sélection de passages écartent, pour des raisons antérieures aux moteurs génératifs.
Soigner le texte des liens autant que celui des sections. Une ancre est un passage minuscule et Google recommande depuis des années de la lire hors de son contexte pour vérifier qu'elle se suffit, ce qui est le même critère à une autre échelle.
Enfin, si vous voulez vérifier l'effet d'un de ces changements sur vos propres pages, la seule méthode qui vaut quelque chose est le test avec groupe témoin, et le avant-après n'en est pas un. C'est d'autant plus vrai ici que les gains calculés plus haut sont des gains sur une contribution intermédiaire, pas sur un taux de citation.
Ce que ces trois calculs ne démontrent pas
Trois précautions, parce que la matière s'y prête particulièrement.
Je n'affirme pas que ChatGPT, Perplexity ou AI Mode utilisent BM25 avec les paramètres par défaut de Lucene, ni la fusion de rangs réciproques avec un rank_constant de 60. Aucun de ces systèmes ne publie son pipeline. Ce que j'affirme est plus faible et plus solide : ces formules sont celles de l'outillage de récupération le plus répandu, leurs propriétés qualitatives sont robustes au choix des paramètres, et une saturation reste une saturation quelle que soit la valeur de k1.
Je n'affirme pas que les nombres du tableau de cosinus décrivent le comportement d'un modèle d'embeddings réel. Le calcul porte sur un sac de mots normalisé. Ce qui se transporte au modèle neuronal, c'est la normalisation de la longueur, et elle est documentée.
Je n'affirme pas non plus qu'il faille retirer des occurrences existantes. Aucune des mesures ci-dessus n'établit qu'un retrait produit l'effet inverse d'un ajout, et une étude qui teste l'ajout d'un élément ne démontre rien sur son retrait. La bonne lecture est celle du budget d'attention : le temps passé à ajuster une fréquence de mot est du temps qui ne va pas à la couverture d'un sujet voisin, et le second poste rapporte trente-quatre fois plus.
Ce que les pages classées sur « keyword stuffing » disent des moteurs IA
Reste à vérifier l'affirmation posée en introduction, plutôt que de la répéter. J'ai récupéré le texte des pages classées sur « keyword stuffing », découpé chaque corps en phrases de plus de quarante caractères, et compté celles contenant à la fois un mot du sujet et un mot désignant les moteurs génératifs.
Huit des neuf pages ont renvoyé un corps lisible. La neuvième est un fil Reddit, dont le contenu n'est pas servi à une simple requête, ce qui est cohérent avec la politique d'accès de la plateforme. Sur les huit autres, 13 + 52 + 87 + 35 + 116 + 19 + 25 + 163, soit 510 phrases, une seule co-occurrence.
Contrôle de sanité indispensable, parce que c'est là que les mesures de ce genre se trompent : cette unique phrase est le widget « Summarize this blog post with: ChatGPT Perplexity Claude Grok » de SE Ranking. Un bouton de partage, pas une phrase d'auteur. Le compte éditorial réel est de zéro sur 510.
Dernière observation, en écho à une mesure faite le 15 août sur une requête commerciale. L'AI Overview de « keyword stuffing » cite dix références réparties sur neuf domaines racine, et le top 10 organique en compte neuf. Cinq domaines figurent dans les deux ensembles. Sur une requête d'information, la surface générative et le classement organique se recouvrent donc largement, alors que sur la requête commerciale mesurée la semaine dernière, l'intersection entre marques recommandées et domaines cités était vide. Le type de requête décide, pas la qualité de la page.
Ce qu'il faut retenir du keyword stuffing en 2026
Le keyword stuffing reste une infraction aux règles anti-spam de Google, et cela n'a pas changé. Ce qui a changé, c'est la raison pour laquelle il ne sert à rien.
La justification classique est disciplinaire : Google l'interdit, donc on s'abstient. La justification mécanique est plus utile en clientèle, parce qu'elle survit à la question « et si personne ne le voyait ? ». Sur la partie lexicale d'un moteur, la répétition sature et son plafond absolu vaut 2,2 fois une mention unique. Sur la partie dense, elle atteint un maximum vers quatorze occurrences puis dégrade la proximité, alors qu'un passage couvrant tous les termes de la question atteint le maximum théorique. Et à l'étage de fusion, un rang gagné dans une liste pèse trente-quatre fois moins que l'entrée dans une deuxième liste.
Trois calculs, trois fois la même conclusion : ce qui rapporte, c'est d'être récupérable sur plus de questions, pas d'être plus insistant sur une seule. La densité de mots-clés mesurait une propriété de votre texte. La visibilité générative dépend d'une propriété de votre couverture.
Si vous voulez savoir sur combien de sous-questions vos pages sont réellement récupérables aujourd'hui, c'est exactement ce que mesure un audit GEO, et le diagnostic sur vingt requêtes est offert. Pour situer ce chantier par rapport au SEO classique, la comparaison GEO contre SEO pose le partage des rôles.