- Canonical Tags
- When Should Canonical Tags Be Used?
- A Word of Warning
- Potential Impact & Value
- Incorrect URL
- Broken Link
- Wrong Page (Internal)
- Wrong Page (External)
- Home Page
- Many to One
- Bad Code
- Canonical chains
- Circular linking
- Missing Canonical Tag
- Relative Links
- Incorrect Placement
- Multiple Iterations
- Canonical Tag Configuration
- Mobile Sites
- Finding The Rel Canonical Tag
Canonical tags stipulate to search engines what the canonical URL (preferred URL) is for a page. For example; if a page can be accessed from several different URL’s, you will want to stipulate which of those you want to be shown in the Search Engine Result Pages (SERPS).
Canonical tags work in a similar way to redirects in how they pass along authority, essentially aggregating multiple pages into one page, but they do this without physically redirecting the user to another page.
Irrespective of the reasons, it is important to have a canonical tag on every page of your website, consequently we have created this guide to assist you in understanding how they work and how to correctly implement them.
There are many different reasons why you should implement canonical tags, we cover most of these in the Duplicate Content & Canonicalisation section of this knowledge base. We have listed below the most common reasons for implementing canonical tags:
- Self referential canonical tag - Standard best Practice for any page
- Cached URL
- Canonical Duplication
- HTTP / HTTPS Duplication
- Sub-Domain Duplication
- Lowercase / Uppercase Duplication
- Trailing Slash Duplication
- Session ID Duplication
- External Website Duplication
- Internal Website Duplication
- Printer-Friendly Page Duplication
- Index Page Duplication
- Landing pages for campaigns (EDM, SEM, Content Marketing, Partnerships, Paid traffic, etc)
Canonical tags are often used as fixes for issues that should be resolved in a more systematic way, producing lots of duplicate content isn’t great and should only be done in a few limited scenarios. Therefore canonical tags often shouldn’t be the only way of resolving a problem.
Although Google supports ‘rel canonical’ and ‘rel alternate’ tags across multiple domains and subdomains, Bing appears to only see them as a clue rather than a hard and fast rule.
Incorrect implementation can lead to total disaster; such is the power of canonicalisation! So it is vital that best practices and close attention are paid when either making recommendations or implementing them.
A canonical tag has much more impact than most tags present on your average web page. There are so many different problems that can arise from incorrect implementation or lack of implementation that it’s hard to define a ‘general’ level of impact. Typically if something is wrong with or involving canonical tags, it’s not good news for you.
Below are some examples of incorrect implementation and the impact it has on your SEO.
Using the wrong URL within a canonical tag could have several implications; typically all have the characteristic that the page with the incorrect tag will not appear within the SERPs.
If the URL missing a character for example, and the resulting URL does not exist then this page will not rank for the content on it at all. Furthermore, no other page will rank for this content either.
If you have added the URL of another page (page B) on your site, from ‘page A’, then the page B will likely appear in the SERPs in place of Place A. It will do so with less success if Page B is not relevant to the content on Page A. This will impact negatively on your keyword rankings.
If, however you have a link to a webpage on another website within the tag, this will be disastrous for your content, as now all of the authority is being lost to another website. Although there are legitimate reasons why you would canonical to an external source, if this is bad news if unintentional. This can happen if a web designer uses a template or included a placeholder URL in the tag, and consequently rolled this out to the rest of the site.
This is a common mistake, something we often see is canonical tags pointing to the home page of the site for no reason. The impact of this depends on how many pages of your site this occurs on.
It’s not unknown or uncommon to see this sitewide canonical tags all pointing to the home page. If every page has the same canonical tag, none of your web pages are going to rank for their content... This will massively impact your rankings and should be resolved with some urgency.
The impact is the same for every page, which is the page with the tag will not rank for its content. This is multiplied up for every new page that suffers the same problem.
Canonical tags were designed to manage similar or identical content on multiple URLs, not for managing multiple URLs all with unique content.
This is frequently done with the aim of ‘gaming the system’ in the guise of ‘optimisation’. There is an incorrect concept that by canonical a load of pages, often in a sub directory to a category page, to one page; in the hope that it will boost the authority of the one page. However, you lose out in the long run because in this scenario you have many pages with unique content rendered unable to rank for that content.
If you do not use the correct code, the tag will not be recognised and thus the tag will have no effect. Examples of bad coding are; missing closing brackets or using the wrong characters. The impact of this will vary depending on why the tag was implemented and what canonicalisation issues the site experiences.
However, bad code does not include whether to use single or double quotes within the code, Google’s Gary Illyes confirmed this in 2015. In the example below we use the double quotes, but this makes no difference to using single quotes.
A particularly unpleasant implementation of ‘rel canonical’ is if it conflicts with a pre-established canonical format. For example, a site uses a htaccess redirect to force the site to only be accessible without the ‘www.’ or if it forces lowercase URLs; if the canonical tags it stipulates that the canonical URL includes the ‘www’ you could potentially end up with indexing problems.
This could impact rankings and will confuse any search engine.
This where ‘Page A’ canonicals to ‘Page B’ which canonicals to ‘Page C’etc. This sends mixed signals to Search Engines and can result in some creative problems with your rankings. Some authority is lost with each link in the canonical chain and problems can be amplified if a page in the chain goes missing or breaks.
If you canonical ‘Page A’ to ‘Page B’ but ‘Page B’ redirects to ‘Page C’, this creates an unnecessary chain of events that a Search Engine has to follow in order to establish what the preferred URL is, the more difficult this is made the less likely you are to have the desired effect. This also opens the door to the possibility that if a page or redirect in the chain breaks, the rel canonical will be pointing to a missing page or a broken page.
Always be simple and clear with canonical tags, ensure that they link to the original source of the content if linking to another page.
As the name suggests this is where an infinite loop is created, for example; Canonical ‘Page A’ to ‘Page B’, but ‘Page B’ canonicals (or redirects) to ‘Page A’. In this scenario you lose control over what page is picked as the canonical, which could impact your rankings. If Google doesn’t resolve the issue by making an assumption about what URL to use, you could experience a complete loss of rankings for the effected pages.
Failing to implement a canonical tag could lead to content duplication issues, unwanted pages being indexed and the desired URLs not being indexed. As mentioned there are many reasons why you may need to implement rel canonical on a site; if it is to resolve a specific issue, it is likely that the issue will continue if you do not implement that tag.
There two primary methods that can be used when implementing a link of any kind, these are known as relative links & absolute links.
Relative links - These omit some part of the URL and are hence usually ‘relative’ to the current location, for example;
This omits the root domain where as an absolute link includes the full URL:
Using the following URL would also be relative as it omits the http://
This implies that or at least Google will determine the desired location to be the follow:
Clearly this is not what anyone wants and in this case it is likely that Google will simply ignore the tag and thus any benefit from adding the tag will be wasted.
It is typically considered best practice to use absolute links on live sites, staging sites often have to use relative linking.
Where a piece of content is divided up over multiple pages for example:
This is not the place to use ‘rel=canonical’ on pages 2 & 3, because these pages are not duplicates of each other. Doing this would prevent the content on pages 2 & 3 from being indexed. Please follow the link for more information on pagination where we explain how to use the rel=”previous” and rel=”next” tags.
The tag should be implemented within the <head> section of a website’s source code. Placing the tag in the <body> tag will not work, like most tags they need to be located in a specific region of the code.
When incorrectly located, the tag will essentially be ignored by all Search Engines, rendering them redundant and no benefit will be gained from them. If being used to resolve a problem, the problem will remain unresolved.
Ensure that a page has only one canonical tag present on it. The first tag in the code will likely be the one that Google accepts, but this could cause Google to ignore all of them, again rendering the tags useless.
Usually a canonical tag points / links to the same page that it is located on, it may be that the page is accessible from multiple URL’s due to query strings, upper and lowercase characters, etc.
Ensure that rel=canonical link elements resides on every page of the website to minimise the possibility of duplicate content issues occurring.
Additionally, ensure that the page URL matches the URL specified within the canonical tag - if it doesn't, try to determine if this was intentionally done (usually a unique canonical tag may be used to attribute link authority to another page of the website and to prohibit the page from being indexed).
A canonical tag is constructed using the code below, in this example the page that it is located on is www.example.com.au/page-1.html and the content on that page is unique to that page.
<link rel="canonical" href="http://www.example.com.au/page-1.html" />
Mobile sites are less common now compared to responsive or adaptive websites, which are far more efficient. However there are still a lot of mobile sites around and they will often sit on an m.domain or some other similar subdomain. Fundamentally this equates to duplicating the majority of your content onto a sub domain.
In order to handle this properly Google have set out how the relationship between the two sites should be structured using the <Link> tag. This means using ‘rel alternate’ in addition to the ‘rel canonical’ tags to define this relationship in-line with Google’s requirements.
On the desktop site, you need to add a ‘rel=alternate’ tag that links to the corresponding page on the mobile site, for example:
On the page: http://www.example.com.au/page-1.html the following code should be used:
- <link rel="alternate" href="http://www.m.example.com.au/page-1.html" />
This allows Google’s crawler (Googlebot) to more easily identify the mobile URL version of this page’s content. On the mobile page:
http://www.m.example.com.au/page-1.html the following code should be implemented:
- <link rel="canonical" href="http://www.example.com.au/page-1.html" />
It is worth noting that you can still add the rel canonical tag to the desktop version of each page, but avoid the canonical chains described above.
The canonical tag is not a visible component of the page like the page title, you can find this in the source code of a website, typically located in the HTML header section at the top with other Meta data. If you are browsing a site with Google Chrome, simply right click on a page and select ‘view source code’.