October 3, 2019

SEO Guide for Canonical URLs

What is a Canonical URL?

A canonical URL tag helps search engines determine your preferred URL. This is important because it helps Google and other search engines index specific page content found on multiple pages under a specific URL and prioritizes them. Canonical URLs prevent problems caused by duplicate content appearing on multiple URLs. If canonical URLs are not in place and you have multiple pages with very similar or duplicate content, it will confuse search engines because they wouldn’t know which page deserves the ranking and might choose the wrong page to rank. With Canonical URLs in place, it helps search engines figure out which page to rank for.

Canonical tags are placed in between the <head></head> tags on your website.



Why does it matter?

Besides preventing duplicate content, Canonical URLs help specify which URL you want people to see in search results. Canonical URLs help with page rankings because the tag helps direct traffic to a preferred URL. If you have multiple pages that have very similar content, it’s best to canonicalize those pages to ultimately choose one of those pages to rank and earn visits instead of Google or other search engines choosing for you.


How it works

You have two versions of the same page with the exact content, but the only difference is the URL. Both URLs are indexed and have been linked to other sites at one point or another. Which page should search engines show in results?

This happens a lot more often than you think, especially with e-commerce sites. With e-commerce sites, a product can be found through many categories all having a different URL.

For example:

  • Page A: https://www.domain.com/best-seller/shoe
  • Page B; https://www.domain.com/shoe

Both of these pages have the exact same content, the only difference is the URL. What do you? Canonical URLs were invented for this reason. In this example, you place the canonical URL like this:

  1. Choose the shorter URL as it’s easier to remember. If the URLs are almost the same length, you can choose the one that has gotten the most visits.
  2. Add the same canonical URL to both pages, in this case, it would be <link rel=”canonical” href=”https://www.domain.com/shoe”>

That’s all you have to do. With the canonical URL set to point to the shorter URL, you are telling search engines to prioritize https://www.domain.com/shoe, and that this URL should be used for ranking purposes.

Canonical tag best Practices

Here is a couple of things to keep in mind when implementing or checking your canonical URLs:

  1. Canonicalize your Home Page
    This seems redundant, but adding a canonical URL to your homepage helps search engines determine the preferred URL when it comes to people linking to your site in multiple ways.
  2. Spot check your dynamic canonical tags
    If you have your canonical tags automatically generated on your website, it’s a good idea to make sure your canonical URLs are accurate or preferred to help with ranking signals.
  3. Avoid mixed signals
    If you have multiple pages with very similar content, it’s best practice to not chain canonical URLs together. For example Page A to Page B, Page B to Page C or Page A to Page B, Page B to Page A. If you don’t send clear signals, you force Google and other search engines to randomly choose for you.
  4. Exclude dynamic parameters when possible
    It’s best practice to not have dynamic parameters included in your canonical URLs. It makes the URL less readable for the viewer. Most CMS platforms do a great job at preventing this and in some cases, dynamic parameters are used for tracking clicks which is not part of your canonical URL.
  5. Match URLs to the Title of the page as much as possible
    We do not want to send mixed signals between the title of the page and the URL. That would confuse visitors to your site. The goal for this is to create an expectation and make it clear that’s what the page is all about.


Go to the top of the page

Contact Us

  • Hidden
  • This field is for validation purposes and should be left unchanged.