← Back to blog
Technical SEO

"Alternate Page With Proper Canonical Tag" in Search Console: What It Means and When to Fix It

Most URLs in this Search Console bucket are exactly where they should be. The ones worth worrying about are pages you want ranked whose canonical quietly points somewhere else.

By Rajhussain Kanani6 min read

The short answer

"Alternate page with proper canonical tag" means Google crawled this URL, found a canonical tag pointing to a different URL, accepted it, and indexed that other URL instead. It sits under Why pages aren't indexed in Search Console, so it looks like an error, but it's usually confirmation that your canonical tags are working. Google's own help page says there is nothing you need to do. It only becomes a problem when a URL in the list is one you actually want in search results, which means the canonical on that page points somewhere it shouldn't.

What Google's definition covers

Search Console Help describes this status using AMP pages and separate mobile or desktop URLs as examples: the page is marked as an alternate, it correctly points to the canonical, and the canonical is indexed. In practice the bucket is broader. The same report documentation says sites that use parameters to sort or filter a collection will see those URLs labelled "duplicate" or "alternate", and that having a page marked this way is usually a good thing. Alternate language versions aren't detected under this status.

How to read the report

1

Open the reason row

In Search Console, go to Indexing → Pages, scroll to Why pages aren't indexed and click Alternate page with proper canonical tag. The details page shows a trend chart and a table of example URLs, capped at 1,000 rows and not guaranteed to list every affected URL.

2

Group the example URLs by pattern

Don't inspect them one by one. Look for shapes: ?utm_source=, ?sort=, ?sessionid=, /page/2/, http:// versions, trailing-slash twins, /amp/ URLs. Each pattern usually traces back to one template or one setting.

3

Inspect one URL per pattern

Click the inspect icon next to a URL and expand Page indexing. User-declared canonical is what your page says; Google-selected canonical is what Google chose. For this status both should show the same URL, and it should differ from the URL you inspected. Read the indexed result, not the live test: Google determines canonical selection at indexing time, and the live test can't check it.

4

Ask one question

Should this URL rank on its own? If not, that pattern is fine. If it should, the canonical on that template is wrong.

Paste a URL from the report into CheckSEO's Canonical URL Analyzer to see the canonical it declares and whether it points back at itself, with protocol, www, trailing-slash and query-string mismatches spelled out. No signup.

Check a page's canonical

When it's a real problem

The wrong canonical. If a product, article or category page you want ranked appears in this list, its canonical is sending Google elsewhere. Typical causes: a template that prints the same canonical on every page (often the homepage or parent category), a CMS or SEO plugin default, a canonical copied from another site or hard-coded to a staging domain, and migration leftovers such as an http:// canonical on an HTTPS page. Google's troubleshooting guide lists CMSs and plugins pointing canonicals at undesired URLs as a common cause. The fix is a self-referencing canonical: an absolute URL that exactly matches the address the page is served on, repeated on its variants.

<!-- In the <head> of https://example.com/shoes/trail-runner -->
<link rel="canonical" href="https://example.com/shoes/trail-runner" />

<!-- The same tag on every variant of that page, e.g.
     https://example.com/shoes/trail-runner?utm_source=newsletter -->
<link rel="canonical" href="https://example.com/shoes/trail-runner" />

Parameter URLs. UTM-tagged links, sort and filter options and session IDs should land here; that's the canonical doing its job. First check the target: a filtered URL canonicalised to a different product, or to another filtered URL, is a bug. Then check the trend. If the count keeps climbing far past the number of real pages on your site, Google is spending crawl time on duplicates. Its crawl budget guide says duplicate URLs waste crawling time and calls your URL inventory the factor you can control most, though that guide is aimed at very large or fast-changing sites. Link internally to the clean URL everywhere — UTM tags never belong on internal links.

Pagination. If page 2, 3 and onward of a category or archive canonicalise to page 1, they will show up here, and that's a mistake. Google's pagination guide says not to use the first page of a sequence as the canonical: give each page a unique URL such as ?page=2, give it its own canonical, and link pages in sequence with ordinary <a href> links. Page 2 isn't a duplicate of page 1, and Google's post on common canonical mistakes warned this would leave later pages' content unindexed. Don't rely on rel="next" and rel="prev" instead: Google now states they are not an indexing signal.

How it differs from the two "Duplicate" statuses

  • Alternate page with proper canonical tag — you declared another URL as canonical and Google agreed. Usually no action.
  • Duplicate, Google chose different canonical than user — the page is marked as canonical for a set of pages, but Google picked another URL. If the canonical you declared isn't similar to the page, Google won't choose it. Put consistent signals (redirects, internal links, sitemap entries) behind one URL, or make the pages genuinely different.
  • Duplicate without user-selected canonical — no canonical is declared, so Google clustered the page with another URL on its own. If it chose the wrong one, add an explicit canonical; if the page isn't really a duplicate, make its content substantially different. The duplicate content guide covers the usual causes.

How to check the canonical chain

  • View source, not the Elements panel. Find <link rel="canonical"> in the raw HTML <head>. Google ignores it in the <body>, recommends absolute URLs, and asks that JavaScript not change a canonical set in the HTML. Multiple canonical tags are likely to be ignored altogether.
  • HTTP headers. A canonical can also arrive as a Link response header, typically for PDFs and other non-HTML files. Google supports both but calls using both at once error-prone, because the header and the tag can disagree.
  • Canonical to a redirect. The target should return 200 on the first request. If it redirects, or carries its own canonical pointing somewhere else, point the original straight at the final URL.
  • Canonical to a 404 or noindex page. Google's guidance is that the target must exist (not a 404 or soft 404) and must not carry a noindex robots meta tag.
  • Sitemap mismatches. Google says not to name one URL as canonical in your sitemap and a different one in rel="canonical". List only canonical URLs in the sitemap.
  • hreflang to non-canonical URLs. Google prefers URLs in hreflang clusters when choosing a canonical and warns against listing http:// versions in hreflang, so annotations pointing at parameter or HTTP variants pull against your canonical. Each hreflang URL should be the canonical URL of that language version.
# Response for https://example.com/downloads/white-paper.docx
HTTP/1.1 200 OK
Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
Link: <https://example.com/downloads/white-paper.pdf>; rel="canonical"

From a terminal, curl shows the status code, every redirect hop, any Link header and the canonical tag in the HTML. Run the second command against the canonical target as well — it should show a single 200.

# 1. Status code and response headers (look for a Link: rel="canonical")
curl -sI "https://example.com/shoes/trail-runner?utm_source=newsletter"

# 2. Follow redirects and print each hop's status, Location and Link header
curl -sIL "https://example.com/shoes/trail-runner" | grep -iE "^http|^location|^link"

# 3. Pull the canonical tag out of the HTML
curl -sL "https://example.com/shoes/trail-runner" | grep -io '<link[^>]*rel="canonical"[^>]*>'

Should you click "Validate fix"?

Usually not. Validation asks Google to confirm you've fixed every instance of an issue, and it stops as soon as Google finds one still present — so on a row of intended alternates it will fail. Google also updates the count during normal crawling whether or not you validate. Validate only after fixing a real bug, such as a template canonical, and expect it to take up to about two weeks. For a few key pages, you can also use Request indexing in URL Inspection, which has a daily limit.

Check a page's canonical tag

CheckSEO's Canonical URL Analyzer reads the <link rel="canonical"> tag on any page, flags a missing tag, multiple tags or a relative URL, and compares the canonical against the URL the page was served from — protocol, www or non-www host, trailing slash and query string — so you can see whether it's self-referencing. It checks the HTML tag only, so use the curl commands above for Link headers and redirects on the target.

Frequently asked questions

What does alternate page with proper canonical tag mean?

It means Google crawled a URL, found a canonical tag pointing to a different URL, accepted that choice, and indexed the other URL instead. It appears under Why pages aren't indexed in the Page indexing report, but it usually confirms your canonical tags are working as intended.

Do I need to fix alternate page with proper canonical tag?

Usually not. Google's help page says there is nothing you need to do. Only act if a URL in the list is one you want ranking on its own, such as a product, article or paginated page. That means its canonical points to the wrong URL and should be self-referencing instead.

How is it different from Duplicate, Google chose different canonical than user?

With alternate page with proper canonical tag, you declared another URL as canonical and Google agreed. With Duplicate, Google chose different canonical than user, the page is marked as canonical but Google picked another URL, so your signals or content need attention. Duplicate without user-selected canonical means no canonical was declared.

How can I check if a URL has a canonical tag?

View the page source and search the head for link rel="canonical", or run curl -sI to see whether a Link header declares one. In Search Console, URL Inspection shows the user-declared canonical and the Google-selected canonical from the indexed version of the page.

What are the most common canonical tag mistakes?

Canonicalising paginated pages to page 1, using relative instead of absolute URLs, having multiple canonical tags, placing the tag in the body, pointing to a URL that redirects, returns a 404 or carries noindex, and naming a different URL as canonical in the sitemap than in the tag.

Check your own site with the Canonical URL Analyzer.

Open Canonical URL Analyzer

More from the blog