Une expression régulière est un mini-langage qui décrit un motif dans du texte. Pour le SEO, c'est l'outil qui transforme une montagne d'URL, de requêtes et de lignes de logs en familles lisibles : isoler le trafic organique Google dans un rapport, regrouper toutes les pages d'une catégorie, traquer une faute de frappe de marque. Quelques principes de base suffisent pour automatiser des analyses qu'on ne ferait jamais à la main.
La regex, ou voir la structure d'un site à grande échelle
Une expression régulière détecte des motifs dans des chaînes (ouvre un nouvel onglet) de caractères : au lieu de chercher une valeur précise, on décrit une forme et l'outil retourne tout ce qui lui ressemble. C'est cela, le pattern matching (ouvre un nouvel onglet) : exposer les familles d'URL, les gabarits de pages et les groupes de requêtes que l'on ne verrait jamais en lisant page par page. Sur des données désordonnées, c'est un gain de temps considérable.
Mauvaise nouvelle pour la réputation des regex, bonne pour vous : une connaissance de base suffit (ouvre un nouvel onglet) pour accomplir énormément de tâches SEO. Quatre briques reviennent partout — les classes de caractères, les quantificateurs, les ancres et les groupes de capture — et le reste de cet article s'y tient.
Un langage transversal à tout l'écosystème
Les expressions régulières ont des saveurs un peu différentes d'un outil à l'autre, mais la base reste transférable (ouvre un nouvel onglet) partout. Sans elles, difficile d'imaginer la personnalisation des filtres et segments dans Analytics, les règles dans GTM ou les RewriteRule dans le .htaccess (ouvre un nouvel onglet). C'est le ciment commun du SEO technique, de la mesure et de l'automatisation. On retrouve la même logique en Python pour le SEO.
Les quatre briques de base
Avant les cas d'usage, voici la grammaire minimale. Chaque motif ci-dessous est écrit tel qu'on le saisirait dans un champ de filtre.
| Motif | Ce qu'il matche | Cas d'usage SEO |
|---|---|---|
.* | N'importe quel caractère, zéro ou plus de fois | Joker large (à manier avec prudence — voir plus bas) |
[0-9]{3} | Exactement trois chiffres | Repérer un code de statut HTTP dans des logs |
^/blog/.* | Toute URL commençant par /blog/ | Isoler une rubrique entière dans un rapport |
/produit/$ | Une URL se terminant exactement par /produit/ | Cibler la catégorie sans ses pages enfants |
(chaussure|botte|sandale) | L'un des trois mots | Filtrer un groupe de requêtes d'un coup |
prix\.html | La chaîne littérale prix.html | Matcher un point réel, pas le joker |
Quantificateurs : compter sans recopier
Les quantificateurs contrôlent le nombre de répétitions : + signifie au moins une occurrence, ? zéro ou une, et les accolades une plage. Pour matcher un code HTTP à trois chiffres, on écrit [0-9]{3} plutôt que [0-9][0-9][0-9] : un quantificateur évite la répétition (ouvre un nouvel onglet). Pour une plage, on note {2,5} — minimum et maximum séparés par une virgule. Erreur fréquente en Analytics : les séparer par un tiret (ouvre un nouvel onglet) comme dans les crochets. La convention exige la virgule. Un quantificateur glouton capture le plus de texte possible ; en ajoutant ? on le rend paresseux (lazy) (ouvre un nouvel onglet), et il isole alors la plus petite correspondance.
Ancres : le caret et le dollar
Le caret ^ indique le début de ligne et le dollar $ la fin : la chaîne doit commencer et finir (ouvre un nouvel onglet) là où on les place. C'est la clé du matching d'URL. Pour analyser une catégorie sans aspirer ses pages filles, on ancre les deux bouts. La borne de mot \b joue le même rôle de garde-fou : elle empêche un motif à trois chiffres de matcher au milieu d'un nombre à quatre chiffres (ouvre un nouvel onglet). Ancres et bornes évitent les correspondances parasites.
Groupes : capturer, alterner, borner
Entourer une portion de motif de parenthèses crée un groupe de capture qui isole le fragment à récupérer (ouvre un nouvel onglet) (une ancre de lien, un ID produit, une catégorie). Le pipe | est le OU des regex (ouvre un nouvel onglet) : il matche l'une ou l'autre des alternatives. Piège classique relevé par Annie Cushing : ajouter un pipe à la fin d'une liste sélectionne tout, comme si on disait « ou n'importe quoi ». Les parenthèses limitent la portée de l'alternation (ouvre un nouvel onglet) : 5(0|1|2) matche 50, 51, 52 ; sans parenthèses, le OU s'appliquerait à toute l'expression.
Les pièges qui coûtent cher
Quelques caractères ont une signification spéciale en regex. Le point, par exemple, signifie « tout caractère sauf un saut de ligne » : chercher un point sans l'échapper (ouvre un nouvel onglet) reviendrait à tout matcher. Pour le traiter littéralement, on le précède d'un antislash — \.. De même, le combo .* est gourmand : Annie Cushing le traite comme une option de dernier recours (ouvre un nouvel onglet), à utiliser dans des paramètres serrés plutôt que largement.
La casse change tout
Les métacaractères sont sensibles à la casse, et capitaliser un métacaractère le nie (ouvre un nouvel onglet) : \d matche un chiffre, \D tout ce qui n'est pas un chiffre ; même chose pour \w contre \W.
Une erreur à des millions
Annie Cushing raconte un client dont deux groupes de mots-clés ont été faussés de plusieurs millions (ouvre un nouvel onglet) parce qu'un * avait été saisi à la place d'un +. La morale : un caractère de travers suffit. À noter aussi, un caret placé en tête de crochets exclut au lieu d'inclure (ouvre un nouvel onglet) : b[^a]t matche bit, bet, bot, but — mais pas bat.
Le cas d'usage roi : filtrer GSC et Analytics
L'usage le plus courant de la regex en SEO est de filtrer les rapports GSC et Analytics (ouvre un nouvel onglet) pour n'afficher que les données pertinentes : isoler le trafic organique Google, creuser un groupe de requêtes, regrouper une rubrique. Dans Google Search Console, le filtre regex sur les requêtes ouvre des analyses qu'aucun filtre simple ne permet. C'est un compagnon direct de la découverte de mots-clés via GSC et de la mesure SEO.
Attention : GSC et GA parlent Re2
Un point de friction à connaître : Google Search Console et Analytics utilisent la syntaxe Re2 (ouvre un nouvel onglet), qui ne supporte pas toutes les fonctions regex. Une expression valide dans Python ou sur Regex101 peut donc échouer dans ces interfaces. Cas typique : la logique AND. On la simule ailleurs avec des lookaheads — .*(?=.*motif1)(?=.*motif2).* — mais cette syntaxe AND n'est pas supportée dans GA (ouvre un nouvel onglet). Mieux vaut tester un motif sur un petit échantillon avant de s'y fier.
Exclure son propre trafic
Pour garder des statistiques d'audience propres, on filtre les adresses IP du bureau avec une regex couvrant une plage, par exemple 14\.123\.12\.14[1-6] : classes et crochets couvrent plusieurs adresses (ouvre un nouvel onglet) contiguës en un seul motif. Noter les points échappés — sans antislash, ils matcheraient n'importe quel caractère.
Au-delà des rapports : crawlers, audits, scraping
La regex s'invite aussi dans le crawl. Screaming Frog (ouvre un nouvel onglet), Ryte et DeepCrawl acceptent des expressions pour filtrer les URL et faire de l'extraction personnalisée pendant le crawl ; Google Sheets propose des fonctions comme regexextract (ouvre un nouvel onglet). On peut ainsi scraper n'importe quel fragment du HTML pendant l'exploration.
Audits de liens et de marque
Sur du HTML scrapé, une regex repère les liens en nofollow vers votre domaine lors d'un audit de liens (ouvre un nouvel onglet) — un quantificateur borné comme {0,100} tolère un nombre variable de caractères entre la balise et le href. Pour vérifier l'orthographe d'une marque, on liste ses variantes fautives dans une alternation insensible à la casse (ouvre un nouvel onglet) — (?i)(netspeak|netpic|neatpeak) — afin de débusquer toutes les mentions incorrectes. Pratique aussi pour traquer la cannibalisation entre URL d'un même thème.
Extraire des contacts en masse
Même principe pour récolter des adresses e-mail depuis un lot de pages : une regex exige un @ au milieu (ouvre un nouvel onglet) et au moins un point dans la seconde moitié de la chaîne, ce qui permet d'extraire des contacts en masse plutôt qu'un par un. La même mécanique d'extraction par motif sert dans l'analyse de logs, où l'on isole les hits de Googlebot ou les codes 404 ligne par ligne.
Toujours tester avant d'appliquer
On apprend la regex par la pratique. Avant d'injecter un motif dans un filtre GSC ou un crawl de plusieurs milliers d'URL, passez-le dans Regex101 (ouvre un nouvel onglet) ou Notepad++ : on colle un jeu de données, l'outil surligne les correspondances et explique l'expression pièce par pièce. C'est le réflexe qui évite l'erreur à plusieurs millions.
Questions fréquentes
Faut-il être développeur pour utiliser la regex en SEO ?
Non. Une connaissance de base suffit (ouvre un nouvel onglet) : classes de caractères, quantificateurs, ancres et groupes couvrent l'essentiel des cas SEO. On peut tout tester sans rien installer dans Regex101 (ouvre un nouvel onglet).
Pourquoi mon expression marche dans Regex101 mais pas dans Search Console ?
Parce que GSC et Analytics reposent sur la syntaxe Re2 (ouvre un nouvel onglet), plus limitée. Les lookaheads (donc la logique AND) n'y sont pas supportés. Simplifiez le motif ou découpez-le en plusieurs filtres.
Mon motif matche trop de résultats, que faire ?
Vérifiez d'abord vos points : un . non échappé matche n'importe quel caractère (ouvre un nouvel onglet). Écrivez \. pour un point littéral, ancrez avec ^ et $, et réservez .* aux cas où rien d'autre ne marche.
Sources
- JC Chouinard — Regex for SEO (ouvre un nouvel onglet)
- Onely — Principles of regular expressions for SEO (ouvre un nouvel onglet)
- Netpeak Software — Regular expressions for SEOs (ouvre un nouvel onglet)
- Annielytics — Regex for marketers (ouvre un nouvel onglet)
- Regex101 — testeur d'expressions régulières (ouvre un nouvel onglet)