site.parameter-duplicates
Crawled URLs that differ only in their query string show the same text, and none names one of them as canonical.
What to change
Give the parameter versions a canonical to the URL without the parameter (or the one you want indexed), and link to that URL. Parameters that change nothing visible (session, sort order of one item, view=) should not reach links at all.
The documentation on developers.google.comA finding of this rule on a page carries the exact edits for that page: the markup it quotes, and what to write instead.
When it runs
Runs on a crawl or a build directory. A warning is a problem that costs a page ranking, clicks or citations. Each finding takes 5 points off the page's score.
The severity here is the rule's usual one: a finding can be raised or lowered when the page gives a reason.
Run it, or skip it
Check a page for this rule alone, after a fix for instance:
npx @rivi-software/agentic-seo-check crawl https://example.com --rule site.parameter-duplicates
Or from an assistant, with the MCP tool seo_crawl_site:
{
"url": "https://example.com",
"rules": [
"site.parameter-duplicates"
]
}
To leave it out of an audit, pass --disable site.parameter-duplicates on the command, or disableRules: ["site.parameter-duplicates"] to a tool.
More in Site-wide checks
All 49 rules- Warning
site.canonical-target-noindexPages name as canonical a page that is set to noindex, so the page meant to be indexed is kept out of the index. - Warning
site.canonical-chainA page's canonical points to a page whose own canonical points somewhere else (A to B to C). - Info
site.links-to-noindexPages set to noindex are linked from other pages of the site. A noindex page that much of the site links to is often noindex by mistake. Cart, search, login and account pages are left out. - Warning
site.hreflang-target-invalidhreflang alternates point to URLs that are broken, redirect, are noindex or name another URL as canonical, so the annotation is ignored. - Warning
site.url-variant-duplicateA page also answers 200 at its URL with the trailing slash added or removed, or with the path in another case, without redirecting or naming the page as canonical. Google treats each spelling as a separate URL. - Warning
site.broken-imagesImages on the pages point to URLs that answer 4xx/5xx or do not load. - Info
site.crawl-limit-reachedThe crawl stopped at the page limit, so site-wide checks (orphans, duplicates, sitemap coverage) are partial. - Info
site.crawl-stoppedThe hosted server stopped requesting the site before the crawl was done: the site refused its requests (a challenge, HTTP 429), robots.txt asked for a Crawl-delay longer than a hosted crawl waits, or the server reached its request limit for the site. Site-wide checks (broken links, duplicates, sitemap coverage) are partial.