Three ways a URL becomes non-canonical
A non-canonical URL is an address that serves duplicate or near-duplicate content but is not the version chosen to represent that content in search. Having them is normal and usually intended; review them only to keep them out of your XML sitemaps, internal links, hreflang annotations and other pages' canonical tags.
Google describes canonicalization as "the process of selecting the representative –canonical– URL of a piece of content" (Google Search Central). A URL ends up on the other side of that selection in one of three ways:
- It redirects. A 301 or 308 sends it elsewhere, so it has no indexable content of its own.
- It points away. Its
rel="canonical"names a different URL. RFC 6596 calls the page carrying the annotation the "context IRI" and the named page the "target (canonical) IRI." - Google chose another URL. The site declared nothing, or declared something Google did not accept, and Google's clustering picked a different member of the duplicate set.
The third case is why two terms need keeping apart. The user-declared canonical is whatever your markup or redirect says. The Google-selected canonical is what Google actually chose. They usually match, but a declaration is "a hint, not a rule," so a URL can be the preferred version by your markup and a duplicate by Google's selection, or the reverse.
Audit tools add a third vocabulary. Screaming Frog uses the UK spelling and labels these URLs "Canonicalised"; Ahrefs and Sitebulb say canonicalized or non-canonical. They describe the same thing.
Why a site full of them can be healthy
Plenty of URLs exist to be non-canonical. A sorted category listing, a filtered view, a printer version, an article reached through an email link carrying tracking parameters: each serves visitors and each should point its canonical at the clean address. A site with thousands of such URLs and correct tags is working as designed.
Google's own reporting reflects that. "Alternate page with proper canonical tag" in the Page indexing report is a working-as-intended status, not an error, and it covers exactly these pages. Sitebulb makes the same judgment in its classification, labeling "Canonical points to a different internal URL" an Insight rather than an Issue and noting it is usually deliberate. Google also says it generally shows the representative URLs in its results, so a duplicate address is usually not the one searchers see.
The mistake is reading a large "Canonicalised" count in a crawl export as a list of bugs. The count says how many duplicates the site generates, which may be worth reducing at the template level, but it says nothing on its own about whether canonicalization is failing.
Where non-canonical URLs cause real problems
Trouble starts when a site treats a non-canonical URL as if it were primary, which sends crawlers conflicting instructions about the same content. Four places account for the usual cases.
XML sitemaps
A sitemap is meant to list the URLs you want to appear in Google's results. Listing URL A while A's tag names B is the precise example Google gives of mixing methods: "don't specify one URL in a sitemap, but a different URL for that same page using rel='canonical'." Sitemap inclusion is only a weak signal, so the conflict rarely overturns a good canonical, but it muddies the cluster and fills your submitted set with URLs that Search Console will then report as not indexed.
Internal links
Navigation that links to a tracking-parameter version, the wrong trailing-slash form, a different letter case, or http:// sends crawlers to the duplicate first. Google's instruction is to "link to the canonical URL rather than a duplicate URL." Bing adds a cost argument: its crawlers keep visiting canonicalized source URLs because the declared destination may change, so every internal link to one keeps spending crawl.
Hreflang
Each href in an hreflang set should be the preferred URL of that language version; Google asks sites to specify a canonical page in the same language. An hreflang entry naming an alternate that is itself a duplicate is a contradiction the cluster cannot resolve cleanly. The hreflang page covers the rest.
Canonical targets
The tag should point at a URL that is itself the preferred version. When A points to B and B points to C, B is a duplicate standing in as a target, a canonical chain. RFC 6596 says a target should not carry a canonical to anything other than itself, should not be the source of a permanent redirect, and must not return an error such as a 4xx response.
When these signals disagree, there is no rulebook to fall back on. John Mueller wrote in July 2026 that "There's no publicly defined order of precedence for metadata reconciliation here" and that the answer to conflicting metadata is to fix it, not to analyze whether it will work anyway.
How audit tools label non-canonical URLs
Each crawler names the same conditions differently, which causes confusion whenever reports from two tools are compared. The labels below are verified against each vendor's documentation; "none verified" means no matching label was confirmed, not that the tool ignores the condition.
| Condition | Screaming Frog | Ahrefs | Semrush | Sitebulb |
|---|---|---|---|---|
| Canonical points elsewhere | "Canonicalised" (Canonicals tab) | none verified | none verified | "Canonical points to a different internal URL" (Insight) |
| Non-canonical URL in sitemap | "Non-Indexable URLs In Sitemap" | "Non-canonical page in sitemap" (Error) | "Incorrect pages found in sitemap.xml" | "Canonicalized URL in XML Sitemaps" |
| Canonical target redirects or errors | "Non-Indexable Canonical" | "Canonical points to redirect," "Canonical points to 4XX," "Canonical points to 5XX" | "Pages with a broken canonical link" | none verified |
| Chain of canonicals | counted under "Non-Indexable Canonical" | "Non-canonical page specified as canonical one" | none verified | "Canonical points to another canonicalized URL" |
| Hreflang to a duplicate | none verified | "Hreflang to non-canonical" | "Hreflang conflicts within page source code" | none verified |
Two cautions. Semrush's sitemap issue is broader than the others; it fires for URLs with identical content, redirects or non-200 responses, not canonicals specifically. And the string "links to non-canonical page" often attributed to Ahrefs or Semrush does not appear as an issue name in either vendor's help documentation; the nearest verified labels concern redirects, such as Ahrefs' "Page has links to redirect."
Keeping sitemaps and links on canonical URLs
The fix is the same in every template: output the preferred form wherever the site names a URL. For each page that should rank, the markup looks like this, and every reference to it elsewhere uses the identical string, down to protocol, host, slash and case:
<!-- on https://www.example.com/shoes/?sort=price -->
<link rel="canonical" href="https://www.example.com/shoes/">
<!-- in the sitemap: only the canonical, as a full absolute URL -->
<url><loc>https://www.example.com/shoes/</loc></url>
Beyond the tag itself, check each place a URL is generated:
- Sitemaps: fully-qualified, absolute URLs, all on the sitemap file's own host and protocol, as the sitemaps protocol requires. Where separate mobile and desktop URLs exist, Google recommends listing only one version.
- Navigation and breadcrumbs: the clean URL, never a parameterized or redirected one.
- Pagination links: each page's own canonical address.
- Hreflang and structured data: canonical URLs only.
- Canonical targets: a URL that returns 200, is indexable, and names itself as canonical.
Finding them in Search Console and a crawler
URL Inspection is the quickest single check: it shows the user-declared canonical and the Google-selected canonical for any URL, and a mismatch means Google has read the signals differently from you. The Page indexing report sorts these duplicate URLs by why they are excluded, and each of these statuses has its own page here:
- "Alternate page with proper canonical tag," usually fine;
- "Duplicate without user-selected canonical," where the site declared nothing;
- "Duplicate, Google chose different canonical than user," where Google overrode a declaration;
- "Page with redirect."
Filter the report to a single submitted sitemap to see which of those duplicates you asked Google to index.
In Screaming Frog, sitemap checks need setup: the tool "will not crawl XML Sitemaps by default." Enable "Crawl Linked XML Sitemaps" under Configuration > Spider, let it discover sitemaps through robots.txt or list them under "Crawl These Sitemaps," and run Crawl Analysis after the crawl so the Sitemap filters populate. Then review Canonicals > Canonicalised and Sitemaps > Non-Indexable URLs In Sitemap, and use the Inlinks view on any canonicalized URL to find the links pointing at it.
The most reliable cleanup list is a simple comparison: take every URL in your sitemaps, subtract the crawl's set of indexable, self-canonical URLs, and what remains should come out of the sitemap.
What not to do about them
- Do not noindex them. Google says to use
rel="canonical", not noindex, for duplicates. Adding noindex to a page that already canonicalizes elsewhere sends two competing instructions; the noindex page explains why. - Do not block them in robots.txt. Google advises against robots.txt for canonicalization, and a blocked URL cannot be fetched, so its tag is never read.
- Do not fight a reasonable choice. If Google selected a different URL and the pages really are duplicates, aligning your tags, links and sitemap to Google's choice is often faster than trying to overturn it.
- Do not fix rows one at a time. A few hundred links to canonicalized URLs on a large site usually trace back to one template or sitemap setting, and one change clears them.
Frequently asked questions
Is a non-canonical URL bad for SEO?
No. A non-canonical URL is simply a duplicate that points to, or was grouped under, another URL, and most sites have many by design. It becomes a problem only when the site lists it in a sitemap, links to it internally, names it in hreflang, or uses it as another page's canonical target.
What does "Canonicalised" mean in Screaming Frog?
It means the page declares a preferred URL that differs from its own address, so it is canonicalized to another location. Screaming Frog then treats the URL as non-indexable for reporting purposes. That is expected for parameter and duplicate URLs and only needs action if the page should rank in its own right.
Should non-canonical URLs be in my XML sitemap?
No. Google wants sitemaps to list the URLs you want shown in search, and listing a URL whose tag points elsewhere is the conflicting-methods example Google warns against. Ahrefs, Sitebulb, Screaming Frog and Semrush all flag it in some form.
Should I noindex non-canonical pages?
No. For duplicates Google recommends rel="canonical" rather than noindex. Combining the two on one page asks Google to consolidate the page and drop it at the same time, which undercuts the canonical.
What is the difference between the user-declared and Google-selected canonical?
The user-declared canonical is what your canonical tag or redirect states; the Google-selected canonical is the URL Google actually chose for the duplicate cluster. URL Inspection in Search Console shows both. When they differ, Google has weighed other signals, such as internal links, sitemaps or HTTPS, above your declaration.
Why does Ahrefs flag a non-canonical page in the sitemap as an error?
Because the sitemap names a URL as one to index while that URL's own tag names another. Ahrefs rates "Non-canonical page in sitemap" as an Error and its recommended fix is to remove those URLs from the sitemap.