"Alternate page with proper canonical tag" in Search Console
The clearest good news in the Page indexing report. Google found your canonical tag, agreed with it, and indexed the page you nominated. Here is when it is worth a second look anyway.
Normally Google working as intended. Worth a look, rarely worth a fix.
Is it still happening?
Paste the URL Search Console flagged. We read its canonical from both the HTML and the response headers, resolve it, then fetch the target to confirm it is a page that can actually be indexed.
Where this URL canonicalises to, whether that target returns 200 and is indexable, and whether it canonicalises somewhere else again.
We cannot tell you whether the target is the right page. A canonical pointing at your homepage is technically perfect and usually a serious mistake, and only you know which page you meant to rank.
What this error actually means.
Google found a canonical tag on this URL pointing at a different page, agreed that the other page is the one to index, and indexed it instead. The word "proper" is doing real work here: Google is confirming your tag was well formed and it did what you asked.
This is the outcome canonical tags exist to produce. Duplicate and near-duplicate URLs are unavoidable on any real site, and this row means you handled them.
It is worth opening only if the canonical points at a page you did not intend, or if a URL you expected to rank on its own is listed. Both mean the tag is working perfectly and pointing in the wrong direction, which is easy to miss precisely because nothing looks broken.
5 things that produce this error.
Ordered by how often they turn out to be the cause, not by how obvious they look.
Parameter and tracking variants, handled correctly
Every URL carrying a UTM tag, a sort order, a filter, or a session parameter is a separate address serving the same content. Canonicalising them to the clean URL is exactly right, and it generates most of the entries in this row on any site that runs campaigns.
/shoes?utm_source=newsletter -> canonical -> /shoes
/shoes?sort=price -> canonical -> /shoes
/shoes?ref=partner -> canonical -> /shoesPagination and syndicated copies
AMP pages, print views, and pages republished on a partner site with a cross-domain canonical all land here. Working as intended, and the row is how you confirm the syndication partner kept your tag.
A templated canonical pointing at the wrong page
The costly version. A canonical hardcoded in a layout, so every page in a section points at the section index, or at the homepage. Google obeys it perfectly and every page but one disappears from search. Nothing renders differently, so it survives review indefinitely.
<!-- In a shared layout, so every page emits it -->
<link rel="canonical" href="https://example.com/" />A canonical that survived a staging or template environment
A canonical still pointing at a staging hostname, a CMS preview domain, or an example URL left in a starter template. Google follows it off your site entirely.
Language or region variants canonicalised to one another
Localised pages that should each be indexed, pointed at a single canonical instead of being linked with hreflang. The result is that only one market can find you. Canonical says "index that one instead"; hreflang says "index all of these and serve the right one".
How to clear it.
Check what the canonical actually points at
Read the resolved canonical for a sample of the listed URLs. If it is the page you want ranking, you are done. If it is the homepage or a section index, you have found a template bug that is costing you every page in that section.
curl -s https://example.com/page | grep -i 'rel="canonical"'Give every page you want indexed a self-referencing canonical
If a URL should rank on its own, its canonical should point at itself. This is the default for any real page, and it removes the ambiguity that lets a parameter variant get chosen instead.
<!-- On https://example.com/shoes -->
<link rel="canonical" href="https://example.com/shoes" />Use hreflang for language variants, not canonical
Canonical removes a page from the index. hreflang keeps every version indexed and tells Google which to serve where. If your English and German pages should both rank, they need self-referencing canonicals plus reciprocal hreflang annotations, not a canonical pointing at one of them.
Keep the rest of your signals pointing the same way
A canonical is a strong hint, not a command, and Google weighs it against your sitemap, internal links, and redirects. List only canonical URLs in your sitemap and link internally to the canonical version. Contradicting yourself is how a "proper canonical" row turns into Google choosing a different one.
Next to check.
LintPage rules covering this: canonical-url, canonical-self-referencing, hreflang
Questions, answered.
Is "Alternate page with proper canonical tag" a problem?
Why is a page I want to rank listed here?
Should every page have a canonical tag?
Can a canonical point to a different domain?
What is the difference between this and "Duplicate, Google chose different canonical"?
Catch this one before Search Console does.
Search Console tells you weeks after the fact. LintPage runs 60 checks against a URL in about 30 seconds. Free, no signup.
run a full scan →