# Canonical tags in practice: the six situations you will meet

A canonical tag tells search engines which address is the real one for a page. In theory it is one line. In practice six situations come up on a product site, and two of them are where people get it wrong. Here is the tag for each, and the check that tells you whether Google agreed.

Updated 2026-09-15 · Source: https://porteur.ai/guides/canonical-tags-in-practice

## The default: every page points at itself

Start by giving every page a canonical to its own address, in full, with the protocol and the host. It costs nothing, it settles the variants you did not think about, and it is the behaviour every CMS and framework offers.

```html
<link rel="canonical" href="https://yourproduct.com/guides/getting-started">
```

- Absolute, not relative. A relative canonical resolves differently on a variant URL and can point somewhere you did not mean.
- One per page. Two canonical tags is the same as none: Google ignores both.
- In the head, rendered by the server. A canonical injected by a script is read by Google and missed by the crawlers behind the AI assistants.
- Matching the form you link to internally: the same host, the same protocol, the same trailing slash.

> A canonical is a hint, not an order. Google weighs it against your internal links, your sitemap and the redirects it finds, and can still choose another URL.

## The six situations, at a glance

| Situation | Canonical points at | Common mistake |
| --- | --- | --- |
| An ordinary page | Itself | No canonical at all, so variants compete |
| A URL with tracking or sorting parameters | The clean URL | Linking internally with the parameters attached |
| Page two of a list | Itself | Pointing every page at page one, which hides the rest |
| A filtered view with real demand | Itself | Canonical to the unfiltered page, so the page you wanted cannot rank |
| Your article republished elsewhere | Your URL, from their page | No arrangement, so their copy outranks yours |
| The same page on two hosts you own | The one you chose | A staging site with canonicals still pointing at staging |

## Parameters, filters and tracking

Every distinct URL is a distinct page to a crawler, so ?utm_source=newsletter and ?sort=new create copies of a page you wrote once. The canonical folds them back together.

- Tracking parameters: canonical to the clean URL. Use them on links you place elsewhere, never on links inside your own site.
- Sorting and view parameters: canonical to the unfiltered page. Nobody searches for your list sorted by date.
- Filters with genuine search demand: give the filtered view its own page, its own title and a self-referencing canonical. Then it can rank for what people actually type.
- Session identifiers in URLs: remove them. No canonical saves a site that gives every visitor different addresses.

```html
<!-- On https://yourproduct.com/guides?utm_source=newsletter -->
<link rel="canonical" href="https://yourproduct.com/guides">
```

## Pagination, where most canonical mistakes happen

Google stopped using rel next and prev in 2019. Each page of a series is its own URL, and it should say so.

- Page two carries a canonical to page two. Not to page one.
- Give each page a title that differs, so the series does not read as one page repeated.
- Link the pages to each other with real anchors, and make sure the items on page two are also reachable from somewhere else, so their depth does not depend on pagination alone.
- A view-all page is an alternative for short lists: the parts canonical to it, and it carries everything.

> Pointing every paginated page at page one is the fastest way to make the items on page two unindexable. Google reads it as: these pages are copies of page one, ignore them.

## Syndication and cross-domain canonicals

A canonical can point at another domain. That is how republishing is meant to work, and it only helps if the other site sets it.

1. **Agree it before you send the piece** Ask the publisher for a canonical to your URL, or a noindex on their copy. Put it in the message where you agree the republication, not afterwards.
2. **Accept what you cannot control** Many platforms will not set one. If theirs is the version Google keeps, you have traded a ranking for an audience. That can still be the right trade.
3. **Never canonical your own page to theirs** It happens by copy and paste when a template is reused. It removes your page from the index and hands the ranking away.
4. **Publish first** Let your version be crawled before the copy goes out. Being first does not guarantee the choice, and it helps.

## The same page on two hosts you own

- www and non-www, http and https: pick one host, redirect the other on every path with a 301, and let the canonicals point at the one you chose. Redirects settle this better than canonicals.
- A staging or preview environment: it should be noindexed and password-protected, and its canonicals must not point at staging when the code ships to production. This is the accident that removes a whole site from the index.
- A marketing site and an app on separate hosts: decide where each page lives. Two copies of the same landing page compete with each other, and the canonical is how you say which one wins.
- A subdomain for the blog: fine, as long as each page is canonical to itself on its own host, and the sitemap on each host lists only that host's URLs.

## When Google picks a different URL

Search Console tells you plainly. In the Page indexing report, Duplicate, Google chose different canonical than user means your declaration was read and overruled.

1. **Inspect the URL** URL Inspection shows the user-declared canonical next to the Google-selected canonical. Those two lines are the whole diagnosis.
2. **Check your internal links** If your menu, your sitemap and your breadcrumbs link the other version, Google is believing your links rather than your tag. Make them agree.
3. **Check the redirects** A canonical pointing at a URL that redirects is a contradiction. The target must answer 200.
4. **Check the pages are really duplicates** If they are not as similar as you assumed, Google keeps both and ignores the tag. That is usually correct and means you have two pages, not one.
5. **If the duplicate has no reason to exist, redirect it** A 301 removes the choice. A canonical only suggests one.

The opposite line, Alternate page with proper canonical tag, is the system working: Google found your canonical, agreed with it, and left the copy out on purpose.

## The checks before you ship

- Every template renders exactly one canonical, absolute, from the server.
- The canonical, the sitemap entry and the internal links all use the same form of the URL.
- No canonical points at a URL that redirects, 404s or carries a noindex.
- No canonical points at staging, at localhost, or at the page you copied the template from.
- Paginated pages point at themselves; filtered views that should rank point at themselves too.
- Spot-check three URLs a month in URL Inspection and compare the declared and the selected canonical.

## Questions

### Does every page need a canonical tag?

It is not required, and a self-referencing canonical on every page is a cheap default that settles variants you have not thought about, such as tracking parameters and trailing slashes. Google chooses a canonical with or without your tag.

### Should page two of a list canonical to page one?

No. Each paginated page should point at itself. Pointing them all at page one tells Google the later pages are copies, and the items on them lose their route into the index.

### Can a canonical point to a different domain?

Yes, and that is how syndication should be handled: the republished copy points at your original. Never point your own page at someone else's, which removes yours from the index.

### Why is Google ignoring my canonical tag?

It is a hint, weighed against your internal links, your sitemap and any redirects. The usual causes are links pointing at the other version, a canonical target that redirects, or two pages that are less similar than you assumed.

### Is a canonical tag better than a 301 redirect?

They do different jobs. A redirect removes the duplicate for everyone and is stronger. A canonical keeps the URL reachable for people who need it, such as a filtered view or a link carrying parameters, and tells search engines which to index.

### Can I use a canonical instead of noindex?

No. A canonical says two pages are the same thing; noindex says a page should stay out of the index. Using a canonical on a page that is genuinely different, to hide it, usually results in Google ignoring the tag and indexing it anyway.

## Read next

- [Canonical tags: what they do and the mistakes that cost rankings](https://porteur.ai/guides/canonical-tag): What a canonical tag does, when to use one, the mistakes that cost rankings, and how to check and fix canonicals on a small site.
- [Canonical URL](https://porteur.ai/glossary/canonical-url): A canonical URL names the original version of a page. Use it to handle parameters and duplicates, avoid split signals and keep the right page indexed.
- [Duplicate without user-selected canonical: the fix in three steps](https://porteur.ai/guides/duplicate-without-user-selected-canonical): What the Search Console status means, where duplicates come from, how to pick the canonical, and the three steps to clear it for small product sites.
- [Alternate page with proper canonical tag: what Search Console means](https://porteur.ai/guides/alternate-page-with-proper-canonical-tag): What this Search Console status means, when to ignore it, when it hides the wrong page, and the exact checks and fixes to set the right canonical.
- [How to fix duplicate content, case by case](https://porteur.ai/guides/how-to-fix-duplicate-content): Google picks one URL and folds the rest. Here are the eight sources of duplicates on a small site and the right fix for each, with the checks.
- [Pagination](https://porteur.ai/glossary/pagination): How to set up pagination for SEO after 2019: self-canonicals, real links, view-all for short lists, and infinite scroll with crawlable pages.
- [How to use the URL Inspection tool in Search Console](https://porteur.ai/guides/url-inspection-tool): Read each panel, run Test live URL, and know when to request indexing. Fix new pages, dropped pages, and canonicals Google ignores.
- [On-page SEO checker](https://porteur.ai/tools/on-page-seo-checker): Paste a URL and get the page read as a crawler reads it: title, description, canonical, indexability, headings, alt text, links, share tags, what to fix first.

Paste your URL and the free check reads the canonical on every page it crawls, and tells you where your tags, your links and your sitemap disagree. Free check: https://porteur.ai/
