How to use rel canonical element (tag)?

How to use rel canonical element (tag)?

Matt Cuts from Google made a great new video explaining how to properly use rel canonical. One of the most often questions was what is rel canonical, is it a meta tag? Matt Cuts explains that it’s easy to confuse it with meat tag as it’s included inside the website where meta tags are usually placed, however since it’s actually a link element it should be called an element, not a tag.

The video shows us a few examples of where a canonical element should be used. Canonical element is used to eliminate duplicated content inside a website. A best example would be having a print version of article indexed by search engines. Print version is actually a duplicated version of your real article and you might not wish search engines to spider it and people to land on such pages as they are not made for visitors. Here comes the canonical link element which can be placed in header of a website and point to a original copy of the URL. In this case, you would place rel canonical on your print page with link pointing to the original article. This way search engines will understand which copy of your content is made for users and should be indexed and which copies serve for other purposes.

Matt also answered some “advanced questions” about canonical element:

Q: Can canonical element be used cross-domain (as 301 redirects can)
A: No, you can not use canonical element to point to original article on another domain. This element is to be used to eliminate duplicated content inside a website.
UPDATE: Rel=canonical can now be used cross-domain.

Q: Can we then use it with subdomains?
A: Yes, you can use canonical element to point an copy of an article on a subdomain to an original article on another subdomain or some other URL inside the same domain.

Q: Can you use link rel canonical for redirecting the same content from HTTPS to HTTP?
A: Yes, if it’s the same content it’s a great use of canonical element.

Q: What is the difference between canonical element and 301 redirects?
A: There is really not much difference between these two, except canonical element is restricted to a single domain while 301 redirects work cross-domain. Also sometimes people are not technically able to create a 301 redirect and there’s a point where canonical element kicks in.

Q: DO the pages have to be identical?
A: No, they do not, but they should be pretty similar.

Q: Can search engines follow a chain of canonical redirects? (one page pointing to another and that page to another and so on until original article)
A: Yes, but don’t count on it. Best use is to point all the copies of the content to the original article instead of creating a chain.

Related Inchoo Services

You made it all the way down here so you must have enjoyed this post! You may also like:

Build your 2017 Magento SEO strategy with these tips Ivona Namjesnik
Ivona Namjesnik, | 10

Build your 2017 Magento SEO strategy with these tips

Inchoo – one of top50 .net websites in the world! Ivona Namjesnik
Ivona Namjesnik, | 4

Inchoo – one of top50 .net websites in the world!

Optimize your online store for holiday season in 6 steps Vanja Bunjevac
Vanja Bunjevac, | 1

Optimize your online store for holiday season in 6 steps


  1. I think what you need will require some custom coding and a lot of thought around arhitecture of this solution (how to decide whether to implement canonical or not – what is similar enough) and so on…

  2. Sounds easy but if you’re on WordPress – this has to be automated somehow right?

    Plus there is no way to predict what 2-3 tag pages will, in time be identical…


  3. Alex, if these tags have the same or very similar content, choose one of them to be the original and point other tags to that one.

  4. Nice plugin! At the time this post was written there were no WordPress plugins that did such thing.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <blockquote cite=""> <code> <del datetime=""> <em> <s> <strike> <strong>. You may use following syntax for source code: <pre><code>$current = "Inchoo";</code></pre>.

Tell us about your project

Drop us a line. We'd love to know more about your project.