In the Search Console performance report, the “Custom (regex)” filter groups hundreds of queries or URLs in one go: every question, every price search, every page in a directory. This page gives 40 filters ready to copy, written for French-language queries and sorted by use. Each one was checked on October 10, 2026 against examples it must match and others it must leave out. To measure the September 2026 spam update, also read our note on the Search Console delay.
Most lists of Search Console regexes are in English. They look for how|what|why and so find no French questions at all. French accents, apostrophes and short words need their own expressions. A tester, further down, lets you try each filter on your own queries before you paste it.
Where do you paste a regex in Search Console?
- Open the Performance report, “Search results” section, for your property.
- Click “+ Add filter” in the filter bar.
- Choose “Query” or “Page”, depending on the filter.
- In the list, choose “Custom (regex)”.
- Keep “Matches regex” or switch to “Doesn’t match regex”, paste the expression, then click “Apply”.
These labels are the ones in Google’s help on advanced filtering as of October 10, 2026. The filter and the table grouping are independent: a filter set on queries can be displayed grouped by page, country or date. The cannibalization filters, further down, rely on this.
The rules of the Search Console engine
Search Console reads expressions with the RE2 syntax, Google’s regular expression library. Google’s help sets two default rules, and the way the report works adds three more.
Matching is partial. seo matches “agence seo lille” as well as “seo”, and even “seoul”. To target the start or end of the string, add ^ or $: ^seo$ only matches the query “seo”.
Case is ignored. For a case-sensitive match, start the expression with (?-i). Filter 31 uses this to spot URLs that contain a capital letter. Google Analytics 4 does the opposite by default, with a full, case-sensitive match: our guide to AI traffic in GA4 gives a regex written for that engine.
In the Pages tab, the filter applies to the full URL, protocol and domain included. So ^/blog/ matches nothing: write ^https://[^/]+/blog/ or simply /blog/. According to Google’s page on dimensions, the URL recorded is the final URL after redirects, and most data is attributed to the page’s canonical URL. A duplicate page will therefore not always show up under its own URL; our canonicalization guide explains how this works.
Totals change as soon as a query filter is applied. Anonymized queries, too rare to be shown, count in the chart total as long as no query filter is applied, then disappear. The table stops at 1,000 rows. The “matches” and “doesn’t match” totals therefore do not always add up to the unfiltered total: Google points this out on its page on data discrepancies.
One last trap comes from the help page itself. For a list of values, it shows spaces around the vertical bar, in the form “(<value 1> | <value 2> | <value 3> | …)”. In a regex, a space is a character like any other. (lille | tournai) looks for “lille” followed by a space or “tournai” preceded by a space: it matches neither the query “tournai” on its own nor “agence seo lille”. Paste the values with no spaces: (lille|tournai).
![Diagram (French labels): the expression ^https://[^/]+/(blog|guides)/ broken into pieces. The ^ sign marks the start of the URL, https:// the protocol, [^/]+ the domain with or without www, then either directory between two slashes. It matches https://exemple.fr/blog/regex/ and leaves out https://exemple.fr/blogueurs/.](https://maccus.fr/wp-content/uploads/2026/10/schema-lire-un-filtre-regex.png)
The 40 filters, sorted by use
For each filter: the tab to use, the option to choose, and examples it matches and leaves out. The brand examples use MACCUS and the URL examples use the fictional domain exemple.fr: replace them with your own. The “Copy” button copies the expression, and the “Test this filter” button loads it into the tester with its examples.
On October 10, 2026, the 40 expressions were run against 215 test cases in three engines: the Go language’s regexp package, which follows RE2 syntax, the tester’s JavaScript engine and Python’s. All three give the same result on every case.
Questions, definitions and problems
These filters isolate queries phrased as a question, a request for a definition or a problem to solve. Grouped by page afterward, they show which page gets which question, and which questions have no clear answer.
1. Questions at the start of the query
Queries tab, “Matches regex” option. Matches “comment créer un site vitrine” and “où trouver un photographe”; leaves out “commentaire google avis” and “quiche lorraine”. o[uù] covers “où” (where) and “ou” typed without the accent; ( |$) keeps out “commentaire” or “quiche”.
^(comment|pourquoi|quand|combien|quels?|quelles?|lequel|laquelle|qui|que|quoi|o[uù]|est-ce|qu.est-ce|[àa] quoi|faut-il|peut-on)( |$)
2. Questions anywhere in the query
Queries tab, “Matches regex” option. Matches “site vitrine combien ça coûte” and “wordpress pourquoi mon site est lent”; leaves out “agence seo lille” and “commentaires clients”. The unaccented “ou” is left out on purpose here, because in the middle of a query it almost always means “or”.
(^| )(comment|pourquoi|combien|quand|quels?|quelles?|où)( |$)
3. Definition requests
Queries tab, “Matches regex” option. Matches “seo c’est quoi” and “définition backlink”; leaves out “agence seo” and “serveur dédié”. The dot stands in for the apostrophe, which is straight, curly or missing depending on the keyboard. The expression also matches “écran haute définition” (high-definition screen): skim the list before you draw conclusions.
(c.?est quoi|qu.est-ce|d[ée]finition|signifi|veut dire|sert [àa] quoi)
4. Problems and troubleshooting
Queries tab, “Matches regex” option. Matches “erreur 404 wordpress” and “site ne fonctionne plus”; leaves out “agence web lille” and “bugatti chiron”.
(erreur|(^| )bugs?( |$)|probl[èe]mes?|(ne )?(marche|fonctionne) (pas|plus)|bloqu[ée]|impossible|ne s.affiche (pas|plus))
5. Tutorials and methods
Queries tab, “Matches regex” option. Matches “tuto search console” and “regex pas à pas”; leaves out “agence seo lille” and “demande d’information devis”. “tuto” also covers “tutoriel”.
(tuto|guide|m[ée]thode|[ée]tapes|pas [àa] pas|astuces?|apprendre|(^| )formations?)
Commercial and local intent
These filters separate searches tied to a price, a purchase, a comparison or a place. Our article on search intent details these categories.
6. Price and budget
Queries tab, “Matches regex” option. Matches “prix site vitrine” and “tarif agence seo”; leaves out “seo europe” and “couteau japonais”. The spaces around “coût” (cost) and “euros” keep out “couteau” (knife) and “europe”.
(prix|tarifs?|(^| )co[uû]t(e|s|ent)?( |$)|combien|devis( |$)|pas cher|€|(^| )euros?( |$))
7. Comparisons
Queries tab, “Matches regex” option. Matches “wix ou wordpress” and “shopify vs prestashop”; leaves out “où acheter un wok” and “agence seo lille”. The spaces around “ou” (or) are deliberate: without them, “pour” and “jour” would also get through. “contre” (against) is left out, since it is too often unrelated to a comparison.
( vs\.? | versus | ou |comparatif|comparaison|meilleure?s?|alternatives?)
8. Reviews and trust
Queries tab, “Matches regex” option. Matches “maccus avis” and “agence seo arnaque”; leaves out “agence seo lille” and “miles davis”. It also matches “avis de décès” (death notice) or “avis d’imposition” (tax notice): if your site gets those, remove them with a second filter.
((^| )avis( |$)|t[ée]moignages?|arnaques?|fiables?|s[ée]rieux|retours? d.exp[ée]rience)
9. Purchases, bookings and sign-ups
Queries tab, “Matches regex” option. Matches “acheter nom de domaine” and “abonnement claude pro”; leaves out “réservoir eau” and “promoteur immobilier lille”. r[ée]serv(er|ez|ation) covers réserver, réservez, réservation and reservation, without “réservoir” (tank).
(acheter|achat|command(e|er)|r[ée]serv(er|ez|ation)|abonnement|essai gratuit|(^| )promos?( |$)|livraison|inscription)
10. Local searches
Queries tab, “Matches regex” option. Matches “plombier près de chez moi” and “plombier près de moi” (plumber near me); leaves out “découverte vin” and “agence seo”. “ouvert” (open) is surrounded by spaces to keep out “découverte” or “couverture”.
(pr[eè]s de (chez )?moi|autour de moi|[àa] proximit[ée]|(^| )ouverte?s?( |$)|horaires?|itin[ée]raire)
11. Cities in your area
Queries tab, “Matches regex” option. Matches “agence seo lille” and “photographe tournai mariage”; leaves out “agence seo” and “lillehammer hôtel”. Replace the list with your own cities; the spaces keep out “lillehammer” or “monster”.
(^| )(lille|roubaix|tourcoing|tournai|mons|bruxelles)( |$)
12. Jobs and internships, to exclude
Queries tab, “Doesn’t match regex” option. Keeps “mode d’emploi search console” and “cdiscount avis”; removes “agence seo recrutement” and “stage seo lille”. Use it with “Doesn’t match” to take job seekers out of the report. “emploi” (job) on its own is surrounded by spaces to keep “mode d’emploi” (user guide). It also removes “emploi du temps” (schedule), and “stage” (internship) removes “stage photo” (photo workshop): drop those words if your site depends on them.
(offres? d.emploi|(^| )emplois?( |$)|recrut|stage|alternance|salaire|(^| )cd[id]( |$))
Brand and competitors
Separating the brand from everything else gives a fairer measure of your SEO: a rise in branded queries often comes from elsewhere, from a campaign, a press article or word of mouth. Search Console also offers a “Branded queries” filter. Google says it is not available for sites with few impressions and that it can misclassify some queries. The regex keeps the advantage of a list you control.
13. Brand variants and typos
Queries tab, “Matches regex” option. Matches “maccus” and “macus”; leaves out “marcus” and “adaptateur mac usb”. The example uses MACCUS: replace it with your brand and its common misspellings.
(^| )ma[ck][ ck]*us([. ]|$)
14. Non-branded queries
Queries tab, “Doesn’t match regex” option. Keeps “agence seo lille” and “regex search console”; removes “maccus” and “macus avis”. With “Doesn’t match”, you are left with the queries that mention neither the brand nor the owner. Reuse the variants from filter 13.
((^| )ma[ck][ ck]*us([. ]|$)|marc ?winer)
15. Brand on its own
Queries tab, “Matches regex” option. Matches “maccus” and “maccus.fr”; leaves out “maccus avis” and “agence maccus lille”.
^(maccus|maccus\.fr|www\.maccus\.fr)$
16. Brand and customer service
Queries tab, “Matches regex” option. Matches “maccus contact” and “avis maccus”; leaves out “maccus” and “agence seo”. The two halves cover both word orders.
(maccus.*(contact|t[ée]l[ée]phone|adresse|avis)|(contact|t[ée]l[ée]phone|adresse|avis).*maccus)
17. Competitor names
Queries tab, “Matches regex” option. Matches “wix ou wordpress” and “avis webflow”; leaves out “wordpress” and “création site”. This example is for a site that compares website builders: use your own competitors.
(wix|squarespace|webflow|jimdo)
Query length and shape
A word is written [^ ]+: a run of characters with no space, accents included. Long queries belong to the long tail: more specific, often less contested.
18. One- or two-word queries
Queries tab, “Matches regex” option. Matches “seo” and “agence seo”; leaves out “agence seo lille” and “comment créer un site”.
^[^ ]+( [^ ]+)?$
19. Long tail, five words or more
Queries tab, “Matches regex” option. Matches “comment créer un site vitrine” and “prix d’un site internet pour artisan”; leaves out “agence seo lille” and “regex search console”.
^[^ ]+( [^ ]+){4,}$
20. Queries of ten words or more
Queries tab, “Matches regex” option. Matches “comment savoir si mon site est bien indexé par google en 2026”; leaves out “comment créer un site vitrine” and “agence seo lille”. Useful for spotting long phrasings, close to a sentence spoken out loud or a question put to an assistant.
^[^ ]+( [^ ]+){9,}$
21. Queries with a year
Queries tab, “Matches regex” option. Matches “seo 2026” and “meilleur crm 2025 comparatif”; leaves out “seo” and “code postal 20230”. The expression covers the years 2020 to 2039. Handy in January to find last year’s queries that need updating.
(^| )20[2-3][0-9]( |$)
22. First-person queries
Queries tab, “Matches regex” option. Matches “je veux créer un site” and “j’ai perdu mon trafic”; leaves out “majuscule accent” and “message google”.
^(je|j.ai|mon|ma|mes|besoin)( |$)
Accents, hyphens and plurals
Many searchers type without accents, without hyphens or in the plural. A character class in square brackets groups these variants into a single expression. Avoid \w for a letter: in RE2, it only knows unaccented letters.
23. With or without accents
Queries tab, “Matches regex” option. Matches “référencement naturel” and “referencement google”; leaves out “seo local” and “agence web”. Each accented vowel becomes a class: [ée], [eèé], [aà].
r[ée]f[ée]renc(ement|er)
24. Optional hyphens and spaces
Queries tab, “Matches regex” option. Matches “site e-commerce” and “ecommerce shopify”; leaves out “site de commerce” and “commerce local”. (^| ) keeps “site de commerce” from passing for “e commerce”.
(^| )e[- ]?commer[cç]
25. Singular, plural and feminine
Queries tab, “Matches regex” option. Matches “agence web lille” and “agences seo”; leaves out “agence immobilière” and “seo”.
agences? (web|seo|digital(es?)?)
Pages and directories
In the Pages tab, all these expressions start from the full URL. [^/]+ stands in for the domain, with or without www. If your site still has pages on http://, write https? instead of https.
26. One directory
Pages tab, “Matches regex” option. Matches “https://exemple.fr/blog/regex/” and “https://www.exemple.fr/blog/”; leaves out “https://exemple.fr/blogueurs/” and “https://exemple.fr/en/blog/regex/”.
^https://[^/]+/blog/
27. Several directories
Pages tab, “Matches regex” option. Matches “https://exemple.fr/guides/seo/” and “https://exemple.fr/ressources/modele/”; leaves out “https://exemple.fr/contact/”.
^https://[^/]+/(blog|guides|ressources)/
28. Home page only
Pages tab, “Matches regex” option. Matches “https://exemple.fr/” and “https://www.exemple.fr/”; leaves out “https://exemple.fr/contact/”.
^https://[^/]+/$
29. Top-level pages
Pages tab, “Matches regex” option. Matches “https://exemple.fr/contact/” and “https://exemple.fr/regex-search-console/”; leaves out “https://exemple.fr/” and “https://exemple.fr/blog/article/”.
^https://[^/]+/[^/]+/?$
30. URLs with parameters
Pages tab, “Matches regex” option. Matches “https://exemple.fr/produit?couleur=rouge” and “https://exemple.fr/?s=regex”; leaves out “https://exemple.fr/produit/”. The question mark is preceded by a backslash: without it, it means “optional”, and the expression ? on its own is rejected.
\?
31. URLs with capital letters
Pages tab, “Matches regex” option. Matches “https://exemple.fr/Blog/Article/”; leaves out “https://exemple.fr/blog/article/”. (?-i) makes the filter case sensitive; without it, [A-Z] would also catch lowercase letters. If your URLs contain encoded characters, such as %C3%A9 for “é”, this filter matches them too.
(?-i)[A-Z]
32. PDF files and documents
Pages tab, “Matches regex” option. Matches “https://exemple.fr/guide.pdf” and “https://exemple.fr/modele.docx”; leaves out “https://exemple.fr/pdf-gratuit/”.
\.(pdf|docx?|xlsx?|pptx?)(\?|$)
33. Pagination and archives
Pages tab, “Matches regex” option. Matches “https://exemple.fr/blog/page/2/” and “https://exemple.fr/category/seo/”; leaves out “https://exemple.fr/blog/article/”. The names category, tag and author are WordPress defaults; adapt them to your site.
(/page/[0-9]+/?$|/(category|tag|author)/)
34. Subdomains other than www
Pages tab, “Doesn’t match regex” option. Keeps “https://boutique.exemple.fr/” and “https://blog.exemple.fr/article/”; removes “https://www.exemple.fr/” and “https://exemple.fr/contact/”. With “Doesn’t match”, in a domain property, you are left with every subdomain except the main site.
^https?://(www\.)?exemple\.fr/
Languages
On a site with each translation in its own directory, these filters give you a view by language within a single property. Our guide to SEO for a multilingual site explains how to organize these directories.
35. Language directories
Pages tab, “Matches regex” option. Matches “https://exemple.fr/en/guide/” and “https://exemple.fr/pt-br/contact/”; leaves out “https://exemple.fr/guide/” and “https://exemple.fr/entreprise/”. (-[a-z]+)? also accepts regional variants such as /pt-br/ or /en-gb/. With “Doesn’t match”, the same expression isolates the French pages.
^https://[^/]+/(en|es|pt|nl|de|it)(-[a-z]+)?/
36. Queries in English
Queries tab, “Matches regex” option. Matches “best seo agency lille” and “how to use regex”; leaves out “agence seo lille” and “free mobile forfait”. “free” is left out: it is also the name of a French mobile carrier.
(^| )(the|and|for|with|how|what|best|near me)( |$)
37. Queries in Dutch
Queries tab, “Matches regex” option. Matches “beste seo bureau” and “hoe werkt google”; leaves out “prix site vitrine” and “on met quoi dans un sitemap”. “de” and “met” are not in the list: they also exist in French.
(^| )(het|een|voor|hoe|wat|beste|prijs|goedkoop)( |$)
Cannibalization and grouping by topic
The method has two steps: filter a family of queries, then group the table by page. If two URLs share the impressions of the same family, they compete with each other; grouping by date shows whether they take turns over time. Clear internal linking then helps Google choose.
38. A family of queries
Queries tab, “Matches regex” option. Matches “regex search console” and “expression régulière gsc”; leaves out “search console” and “agence seo”.
(regex|expressions? r[ée]guli[èe]res?)
39. A whole topic
Queries tab, “Matches regex” option. Matches “page explorée non indexée” and “sitemap wordpress”; leaves out “index glycémique” and “internet explorer”.
(index(ation|er|[ée]e?s?)|crawl|explor[ée]e?s?( |$)|robots\.txt|sitemap)
40. Pages on the same topic
Pages tab, “Matches regex” option. Matches “https://exemple.fr/guide-seo-technique/” and “https://exemple.fr/referencement-local/”; leaves out “https://exemple.fr/contact/” and “https://exemple.fr/voyage-seoul/”. The hyphens around the word keep out “seoul” or “museo”.
^https://[^/]+/([^/]*-)?(seo|referencement)(-[^/]*)?/?$
The regex tester
Paste an expression, choose the option and the tab, then enter one query or URL per line. The result updates as you type: each line is marked “kept” or “left out”. Export a few real rows from the report to check a filter before you rely on it.
Regex filter tester for Search Console
An approximation: this tester runs in your browser with JavaScript’s regular expression engine, while Search Console uses RE2. It applies partial matching and ignores case like Search Console, translates a few notations specific to RE2 and flags the ones Search Console rejects. Nothing you type leaves the page. Always check the result in Search Console.
RE2 and JavaScript, the differences that matter
For the 40 filters on this page, RE2 and JavaScript give the same result. The differences come from rarer notations, often copied from a tutorial written for another tool. This table was checked on October 10, 2026 against the RE2 syntax page and in Node.js 22, which uses the same JavaScript engine as Chrome.
| Notation | Search Console (RE2) | Browser (JavaScript) | The tester |
|---|---|---|---|
Lookahead and lookbehind: (?=…), (?!…), (?<=…), (?<!…) | Rejected | Accepted | Flags the error. To exclude, use the “Doesn’t match” option. |
Backreferences: \1, \k<nom> | Rejected | Accepted | Flags the error. |
Leading flags: (?i), (?-i) | Accepted | Rejected in this form | Translates them into a search option. |
Unicode letters: \pL, \p{L} | Accepted, accents included | Only \p{L}, with a dedicated option | Translates the expression. |
POSIX classes: [[:alpha:]] | Accepted, ASCII letters only | Unknown: read differently, with no error message | Translates the common classes. |
Literal text: \Q…\E | Accepted | Unknown | Translates the expression. |
Start and end of text: \A, \z | Accepted | Unknown | Translates them into ^ and $. |
Repetition above 1,000: a{1001} | Rejected | Accepted | Flags the error. |
\w and \b | ASCII letters, digits and _ only | ASCII letters, digits and _ only | Warns that “é” is not a letter for them. |
Checked on October 10, 2026. Method: each row of the table was checked against the RE2 syntax page published by Google, then tried in Node.js and in Go’s regexp package, which follows the same syntax as RE2. The table will be reviewed if Google changes the filter’s documentation or if browsers add these notations.
Two consequences for French. \bcafé\b does not match “café paris”, in RE2 or in a browser: the word boundary \b does not see “é” as a letter. Replace it with (^| ) before the word and ( |$) after it, as in filters 1, 2 and 11. For any word, [^ ]+ replaces \w+.
Mistakes that skew a filter
One vertical bar too many. (lille|tournai|) contains an empty alternative, which matches everything. RE2 accepts this, and the filter then keeps every row. The tester flags it.
An unescaped dot. In exemple.fr, the dot means “any character”: the expression also matches “exemplexfr”. In a URL filter, write exemple\.fr.
A short word with no boundary. seo matches “seoul” and mons matches “monster”. Surround short words with (^| ) and ( |$).
A lookahead copied from a tutorial. ^(?!www) works in many tools, and Search Console rejects it. Write the positive expression and choose “Doesn’t match”, as in filter 34.
A query filter used to measure a total. Anonymized queries drop out of the total as soon as a query filter is applied. To track the total traffic of part of the site, filter by page instead: anonymized queries then stay in the chart total, even if the table limit still applies. Compare trends rather than volumes.
Beyond the interface: the API, the export and Google’s assistant
The Search Console Search Analytics API accepts the same expressions: according to its documentation, updated on August 11, 2026, the includingRegex and excludingRegex operators expect an RE2 expression. The 40 filters on this page work there as they are. The documentation does not say whether case is ignored by default: add (?i) at the start of the expression to get the interface’s behavior. Data Studio, the new name of Looker Studio, also reads RE2 syntax: our Search Console dashboard in Looker Studio uses it for its calculated fields.
To see more queries than the interface shows, Google points to bulk data export, which it says contains the most complete list of queries.
Google is also testing an assistant that configures the report from a written request, and that can produce a regex filter: Google’s example asks for queries containing common animal names. As of October 10, 2026, this assistant is only offered to a small share of users, each limited to 20 requests a day, and Google advises checking the filters it applies. The tester on this page also helps you review the expression it suggests.
Tracking each language on a translated site
On a translated site, filters 35 to 37 give you a view by language: directory by directory for pages, function words for queries. If a language filter matches almost nothing, first check that the pages in that language are indexed: our guide to indexing details these checks. For each excluded page, the Page indexing report gives a reason, explained in our table of Search Console indexing statuses.
If you are preparing to translate your site or its foreign-language versions are not taking off, our multilingual SEO service starts with a first pass on indexing, URLs and hreflang tags, then tracks each language with its own numbers.