Canonical (rel=”canonical”, a canonical link) tells a search engine which address to treat as primary when the same page is available at several URLs. It’s a hint, not a binding rule. Yandex treats canonical as a recommendation, and Google can pick a different primary page even if you’ve specified your own.
Below — how to find the sources of duplicates on a site, how to correctly specify the primary address, and how to check in Search Console and Yandex Webmaster which page the search engine ultimately chose.
What canonical and a canonical page are
rel=”canonical,” canonical link, canonical URL: what each term means
These terms are often blurred together, though they describe different things:
- Duplicates — pages with identical or similar content, available at different addresses. Yandex groups such pages into a duplicate cluster.
- Canonical page — the one a search engine selects to show from a group of similar ones. For Yandex, this is one page from the duplicate cluster — “the most informative and relevant to search queries.” Google calls the canonical URL the page its crawlers consider the main one among several of its versions on the site.
- Canonicalization — Google’s term for the process of choosing the canonical URL that will represent the page in search results.
- rel=”canonical” — an attribute of the
linkelement that lets a site owner propose their own version of the primary address. Informally it’s called a “canonical link” or “canonical tag.”
An example. On the page https://example.com/catalog/?sort=price, the <head> section has:
<link rel="canonical" href="https://example.com/catalog/">
This tells search engines that the primary version is the address with no sorting parameter.
Google names four reasons to specify a canonical address: to determine which URL to show in search, to group signals from similar pages, to simplify getting content statistics, and to optimize the site’s crawling.
What happens if canonical isn’t specified
Specifying canonical isn’t mandatory. Google writes that it recommends ways to specify a canonical URL, but they aren’t required: without them, it will determine on its own which version best fits search results. Yandex, in any case, groups duplicates into a cluster itself and picks one page to show.
The problem starts when the search engine’s choice diverges from yours: the address with parameters, an old version, or a utility copy ends up in search. That’s when canonical becomes a way to state your preference.
Where duplicates on a site come from
Duplicates rarely come from copied text. More often they’re created by how the site forms addresses. Per Google’s and Yandex’s help, the main sources are these.
Technical versions of one address: HTTP and HTTPS, with and without www, with and without a trailing slash
- HTTP and HTTPS. A site can be accessible over both protocols. When choosing a canonical page, Google favors HTTPS, as long as doing so doesn’t cause problems.
- With and without www. These are also different addresses. Yandex explicitly allows canonical for moving to a version with or without www — the help text’s wording is given below, in the section on canonical to another domain.
- A trailing slash, several slashes, index.php. Yandex gives the examples
http://example.com/page/andhttp://example.com/page, and a homepage athttps://example.comandhttps://example.com/index.php. For slash duplicates, the help recommends a 301 redirect and doesn’t recommend canonical, since it can be ignored.
Parameters, sorting, filters and tags in the URL
Sorting and filtering a category page creates new addresses with the same content. The same thing happens with GET parameters that don’t affect the content, such as UTM tags. For such addresses, Yandex suggests canonical or the Clean-param directive in robots.txt — it’s needed so the crawler doesn’t factor the parameters into the URL. How the Clean-param directive for parameters works is covered in the article on robots.txt.
Device versions, regional versions, and demo copies accessible to crawlers
Google names three more sources of duplicates:
- mobile and desktop pages with identical content;
- versions of the site for different regions, hosted at different URLs;
- mistakes, such as a demo version of the site that stayed accessible to crawlers.
Language versions and hreflang markup are a separate topic; we don’t cover them here.
Pagination: why you shouldn’t make the first page canonical for the rest
A catalog or article feed split into pages isn’t a duplicate. Google treats every page in a paginated series as its own page. It advises against making the first page canonical and instead recommends giving each page its own canonical URL.
Yandex’s help on canonical addresses and on duplicate pages doesn’t cover pagination separately. So the rule above is given per Google’s help.
Technical duplicates are one page under different addresses. Don’t confuse them with a situation where several different pages on a site compete for the same query — that calls for work on intent and structure, not addresses.
How search engines use canonical: a hint, not a directive
Google: canonical is one signal among others
Google picks the canonical page from signals gathered during indexing. These include HTTP or HTTPS, the presence of a redirect, whether the URL is in a Sitemap file, and the rel=”canonical” annotation. Google describes the ways to state your choice as follows:
- A redirect — a clear signal that the redirect’s target URL should be treated as canonical.
- rel=”canonical” in a
linkelement or an HTTP header — a clear signal that the given URL should be treated as canonical. - Sitemap — not the most effective method: the URLs listed in the file are proposed as canonical.
The methods can be combined. Per the help, using two or more methods increases the likelihood that Google will choose the addresses you specified. But the decision remains Google’s: even a page you specified might not be chosen, for one reason or another. This is also visible in the URL Inspection tool: it has two separate fields, “User-declared canonical” and “Google-selected canonical.”
Yandex: a recommendation, and cases where it’s not honored
Yandex states it plainly: the crawler treats a canonical address declaration as a recommendation and may ignore it. The help names such cases:
- at the time of the crawl, the non-canonical pages answer the user’s query more fully, and their content differs substantially from the canonical one;
- the canonical address is unavailable to the crawler: it redirects to another page, or is blocked from indexing;
- the canonical address is on a different domain or subdomain;
- the page lists several canonical addresses;
- there’s a chain:
example.com/1declaresexample.com/2as canonical, andexample.com/2declaresexample.com/3.
If the address is specified correctly and the crawler doesn’t ignore the declaration, the non-canonical page drops out of search results.
Canonical to another domain or subdomain: where the two systems diverge
Yandex doesn’t honor such a canonical. The help asks you to specify a canonical address within the same domain, and lists a URL on another domain or subdomain among the cases where the declaration isn’t accepted. Separately, in the same help: “You can specify a canonical address if you want to change your site’s address to a domain with or without the www prefix.”
Google, in its help on canonicalization, doesn’t describe a general rule for canonical to another domain. There’s a specific case: if your content is syndicated by partners, Google doesn’t recommend resolving the duplication with a link element pointing to a canonical URL, since the pages often differ significantly. Instead, it advises asking your partners to block indexing of your content.
Practical takeaway: if copies sit on different domains or subdomains, don’t count on canonical as a universal fix. Yandex won’t honor such a declaration.
Canonical, a 301 redirect, or noindex: how to choose
Start with two questions: does the user need this page, and does it need to be in search as a separate address?
| Situation | Needed by the user | Needed in search separately | What to use |
|---|---|---|---|
| An old address after a structure change; a duplicate with and without a trailing slash | No, the primary version is enough | No | A 301 redirect to the primary address. Google recommends a redirect only once you’ve decided to stop showing the copy; Yandex — for slash duplicates |
| Sorting and filters with no independent search value, addresses with UTM tags | Yes | No | rel=”canonical” pointing to the primary version |
| A PDF or other file available at multiple addresses | Yes | No, only the primary address | canonical in the Link HTTP header |
| A standalone page, including a pagination page | Yes | Yes | canonical pointing to itself |
| A utility page with no primary version that shouldn’t be in search | Possibly | No | noindex: it removes the page from search, but doesn’t declare a primary version |
noindex doesn’t merge duplicates. Google doesn’t recommend using it to keep a page from becoming canonical on the same site: that will fully block the page from Search. For canonicalization, Google also advises against robots.txt and the URL removal tool — the latter hides every version of the address from search results.
Yandex’s position is different: in its help on duplicates, blocking in robots.txt and a noindex meta tag are both listed among the ways to remove a duplicate page from search. But these methods only exclude the duplicate — they don’t declare a primary address.
How to specify canonical
The <link rel="canonical"> tag in <head>
The element is placed in the head section of the HTML page. Both systems ask for an absolute address. Google gives https://www.example.com/dresses/green/green-dress.html as the recommended form and /dresses/green/green-dress.html as not recommended. Yandex writes: “Specify an absolute path as the canonical address.”
What to check in the template:
- One canonical per page. If several canonical addresses are specified, Yandex won’t honor the declaration.
- A canonical pointing to itself on the primary page. Google recommends adding the same
linkelement, pointing to the page itself, on the canonical page. - The same address across every method. Google asks that you not specify different canonical URLs for the same page through different methods.
- The address in the source HTML. It’s better to specify canonical in the source code and make sure JavaScript doesn’t modify the
linkelement.
The Link HTTP header for PDFs and other non-HTML files
PDFs and other non-HTML files have no <head> section. For them, canonical is passed in the server response:
Link: <https://example.com/downloads/white-paper.pdf>; rel="canonical"
Google writes that this method is compatible with every document type Google Search supports, including PDF files. Yandex describes the same method using a PDF file available at multiple addresses as the example.
Sitemap as a weak signal
A Sitemap file lists a site’s addresses for search engines. For Google, every page in it is proposed as canonical. But this isn’t the most effective method of canonicalization: the crawler still needs to find the copies of each canonical page listed in the file.
So include only canonical addresses in the Sitemap — the same ones specified in canonical. On which addresses to include in sitemap.xml and how to submit the file — in a separate article.
Why not robots.txt
Blocking duplicates in robots.txt looks like a simple solution. But Google explicitly advises against using this file for canonicalization: a URL disallowed in robots.txt can still be indexed without its content. Google explains the mechanics using noindex as an example: if robots.txt blocks access to a page, the crawler can’t process its code — meaning it won’t see the rel=”canonical” in that code either.
There’s a flip side too. If the canonical address itself is blocked from indexing, Yandex won’t honor the declaration.
Another signal is internal links. Google writes that internal links should point to canonical, not duplicate, URLs. If the menu, breadcrumbs or related-product blocks lead to addresses with parameters, the site is contradicting its own canonical. How to set up internal links pointing to canonical addresses — in the article on internal linking.
How to check which page the search engine chose
Google Search Console: the URL Inspection tool and the indexing report
In the “URL Inspection” tool, compare two fields:
- “User-declared canonical” — the address explicitly specified on your page. If the page isn’t an alternate version, this may show “None,” and that isn’t considered a problem.
- “Google-selected canonical” — the address Google’s crawlers chose among similar versions. It may not match what you specified.
In the “Page indexing report,” three statuses relate to canonicalization:
| Status | What it means | What to do |
|---|---|---|
| “Alternate page with proper canonical tag” | The page is marked as an alternate of an already indexed one | Per the help — nothing, if the primary address was chosen correctly |
| “Duplicate without user-selected canonical” | The page duplicates another one, but isn’t declared canonical | If Google chose the wrong page, mark the correct one as canonical |
| “Duplicate, Google chose different canonical than user” | You specified this URL as canonical, but Google thinks a different address fits better | Compare both addresses in the URL Inspection tool and go through the error table below |
Yandex Webmaster: excluded pages
In Webmaster, open “Indexing” → “Pages in search,” the “Excluded pages” tab. Two statuses relate to canonicalization:
- “Non-canonical” — the page is indexed under the canonical address specified in the rel=”canonical” attribute;
- “Duplicate” — the page duplicates a page from the site already shown in search.
How to read the result:
- A “Non-canonical” status on a page that should be in search — check where its canonical points.
- The search engine chose a different page as primary than the one you specified — cross-check canonical, the Sitemap, internal links and redirects against the error table.
- A “Non-canonical” status in Webmaster, or “Alternate page with proper canonical tag” in Search Console, on a genuine copy — that’s the expected result, nothing to fix.
Checklist:
- Every standalone page has exactly one canonical, and it points to the page itself.
- The canonical address is absolute, accessible to the crawler, doesn’t redirect, and isn’t blocked from indexing.
- Canonical, the Sitemap and internal links all point to the same address.
- Pages with sorting, filters and tags have their canonical pointing to the primary version.
- Pagination pages don’t have their canonical pointing to the first page.
- Duplicates aren’t blocked in robots.txt instead of using canonical.
- For key pages, the “user-declared” and “Google-selected” fields match, and in Webmaster there are no pages among the non-canonical ones that should be in search.
Common canonical errors
| Error | What it risks | How to fix it |
|---|---|---|
| Canonical points to an inaccessible, redirecting, or noindexed address | Yandex won’t honor the declaration | Point to the final address, accessible to the crawler and open for indexing |
| The page has several canonical elements, for example one output by the template and another by a plugin | Yandex won’t honor the declaration | Keep only one element |
| A chain: A points to B, B points to C | Yandex won’t honor the declaration | Point canonical straight to the final address |
| Canonical for every page in a section or a paginated series points to the homepage or the first page | Google advises against this for pagination. If the search engine accepts the declaration, the standalone page drops out of search as non-canonical | Give standalone pages a canonical pointing to themselves |
| Canonical, the Sitemap and internal links point to different addresses | Conflicting signals; Google asks that you not specify different canonical URLs through different methods | Bring every signal to the same address |
| Canonical points to a staging or old domain after a release | Yandex doesn’t honor a canonical to another domain. Google notes that some CMS platforms and plugins can perform canonicalization incorrectly and point to unwanted URLs | Check templates’ canonical after every release |
| A relative address in canonical | Both systems recommend an absolute address | Specify the full URL with a protocol |
If a page dropped out of search because of an error, also check the other reasons a page can drop out of search.
When errors affect many pages at once, look for the cause in templates, filters and server settings rather than in individual URLs. Such a check of templates, canonical and redirects is part of technical SEO.
Frequently asked questions
Do you need canonical if the site has no duplicates?
Not necessarily: without canonical, Google will determine a suitable version on its own. But Google recommends a canonical pointing to itself for canonical pages. It’ll come in handy if addresses with parameters or tags show up later.
Does canonical remove duplicates from the index?
Not guaranteed. Canonical only proposes a primary version: Yandex can ignore the recommendation, and Google can choose a different page. If Yandex accepts the declaration, the non-canonical page drops out of search results. Google shows one version of duplicate content in results.
Why did Google choose a different canonical page than the one specified?
Canonical is just one signal alongside protocol, redirects and the Sitemap. Among the causes of incorrect canonicalization, Google names errors in rel=”canonical” elements and redirects, server configuration mistakes, and copied content. Start by comparing the two fields in the URL Inspection tool.
Can you specify a canonical to another address and noindex on the same page?
Google’s help on canonical doesn’t specifically address this combination. Pick one method from the table above: canonical if the page has a primary version, noindex if the page shouldn’t be in search at all.
Do pages with UTM tags and other parameters need canonical?
Yandex automatically removes most UTM tags. For parameters that don’t affect the content, Yandex’s help suggests canonical or Clean-param. Check that the template outputs canonical pointing to the address with no parameters: then addresses with tags will point to the primary version too.
Sources
Documentation the article relies on (checked October 6, 2026):
- Google Search Central: How to specify a canonical URL with rel=”canonical” and other methods; What is canonicalization; Fix canonicalization issues; Pagination, incremental page loading, and their impact on Google Search; Block Search Indexing with noindex.
- Search Console help: URL Inspection tool; Page indexing report.
- Yandex Webmaster help: Canonical page address (in Russian); Page duplication (in Russian); Pages in search (in Russian).
Duplicates and non-canonical pages often come from templates, filters and server settings. We’ll check how your site’s addresses are structured and suggest an order of fixes. → Discuss technical SEO
Need the full picture for the site — you can start with an SEO audit.