How to specify a canonical URL with rel="canonical" and other methods

To specify acanonical URL for duplicate or very similar pages to Google Search, you can indicate your preference using a number of methods. These are, in order of how strongly they can influence canonicalization:

Keep in mind that these methods can stack and thus become more effective when combined. This means that when you use two or more of the methods, that will increase the chance of your preferred canonical URL appearing in search results.

While we encourage you to use these methods, none of them are required; your site will likely do just fine without specifying a canonical preference. That's because if you don't specify a canonical URL,Google will identify which version of the URL is objectively the best version to show to users in Search.

If you use a CMS, such as WordPress, Wix, or Blogger, you might not be able to edit your HTML directly. Instead, your CMS might have a search engine settings page or some other mechanism to tell search engines about the canonical URL. Search for instructions about modifying the<head> of your page on your CMS (for example, search for "wordpress set the canonical element").

Reasons to specify a canonical URL

While it's generally not critical to specify a canonical preference for your URLs, there are a number of reasons why you would want to explicitly tell Google about a canonical page in a set of duplicate or similar pages:

  • To specify which URL that you want people to see in search results. You might prefer people to reach your green dress product page throughhttps://www.example.com/dresses/green/green-dress.html rather thanhttps://example.com/dresses/cocktail?gclid=ABCD.
  • To consolidate signals for similar or duplicate pages. It helps search engines to be able to consolidate the signals they have for the individual URLs (such as links to them) into a single, preferred URL. This means that signals from other sites tohttps://example.com/dresses/cocktail?gclid=ABCD get consolidated with links tohttps://www.example.com/dresses/green/green-dress.html if the latter becomes canonical.
  • To simplify tracking metrics for a piece of content. With a variety of URLs, it can be more challenging for you to get consolidated metrics for a specific piece of content.
  • To avoid spending crawling time on duplicate pages. You may want Googlebot to get the most out of your site, so it's better for it to spend time crawling new (or updated) pages on your site, rather than crawling duplicate versions of the same content.

Best practices

For all canonicalization methods, follow these best practices:

Comparison of canonicalization methods

The following table compares the different canonicalization methods, highlighting their strengths and weaknesses when it comes to maintenance and efficacy in different scenarios.

Method and description
rel="canonical" link element

Add a<link> element in the code for all duplicate pages, pointing to the canonical page.

Pros:
  • Can map an infinite number of duplicate pages.
Cons:
  • Can be complex to maintain the mapping on larger sites, or sites where the URLs change often.
  • Only works for HTML pages, not for files such as PDF. In such cases, you can use therel="canonical" HTTP header.
rel="canonical" HTTP header

Send arel="canonical" header in your page response.

Pros:
  • Doesn't increase page size.
  • Can map an infinite number of duplicate pages.
Cons:
  • Can be complex to maintain the mapping on larger sites, or sites where the URLs change often.
Sitemap

Specify your canonical pages in a sitemap.

Pros:

  • Easy to do and maintain, especially on large sites.

Cons:

  • Google must still determine the associated duplicate for any canonicals that you declare in the sitemap.
  • Less powerful signal to Google than therel="canonical" mapping technique.
Redirects Use redirects to tell Googlebot that a redirected URL is a better version than a given URL. Use this only when deprecating a duplicate page.
AMP variant If one of your variants is an AMP page, follow the AMP guidelines to indicate the canonical page and AMP variant.

Userel="canonical"link annotations

Google supports explicitrelcanonicallink annotations as described inRFC 6596.rel="canonical" annotations that suggest alternate versions of a page are ignored; specifically,rel="canonical" annotations withhreflang,lang,media, andtype attributes are not used for canonicalization. Instead, use the appropriatelink annotations to specify alternate versions of a page; for example,linkrel="alternate"hreflang for language and country annotations.

You can provide therel="canonical"link annotations in two ways:

We recommend that you choose one of these and go with that; while supported, using both methods at the same time is more error prone (for example, you might provide one URL in the HTTP header, and another URL in therel="canonical"link element).

Therel="canonical"link element

Arel="canonical"link element (also known as acanonical element) is an element used in thehead section of HTML to indicate that another page is representative of the content on the page.

Suppose you wanthttps://example.com/dresses/green-dresses to be the canonical URL, even though a variety of URLs can access this content. Indicate this URL as canonical with these steps:

  1. Add a<link> element with the attributerel="canonical" to the<head> section of duplicate pages, pointing to the canonical page. For example:
    <html><head><title>Exploretheworldofdresses</title><linkrel="canonical"href="https://example.com/dresses/green-dresses"/><!--otherelements--></head><!--restoftheHTML-->
  2. If the canonical page has a mobile variant on a separate URL, add arel="alternate"link element to it, pointing to the mobile version of the page:
    <html><head><title>Exploretheworldofdresses</title><linkrel="alternate"media="only screen and (max-width: 640px)"href="https://m.example.com/dresses/green-dresses"><linkrel="canonical"href="https://example.com/dresses/green-dresses"/><!--otherelements--></head><!--restoftheHTML-->
  3. Add anyhreflang or other elements that are appropriate for the page.

Use absolute paths rather than relative paths with therel="canonical"link element. Even though relative paths are supported by Google, they can cause problems in the long run (for example, if you unintentionally allow your testing site to be crawled) and thus we don't recommend them.

Good example:https://www.example.com/dresses/green/green-dress.html

Bad example:/dresses/green/green-dress.html

Therel="canonical"link element is only accepted if it appears in the<head> section of the HTML, so make sure at least the<head> section is valid HTML.

If you use JavaScript to add therel="canonical"link element, make sure toinject the canonical link element properly.

Therel="canonical" HTTP header

If you can change the configuration of your server, you can use alinkHTTP response header with arel="canonical" target attribute as defined byRFC5988 rather than an HTML element to indicate the canonical URL for a document supported by Search, including non-HTML documents such as PDF files.

Google supports this method for web search results only.

If you publish content in many file formats, such as PDF or Microsoft Word, each on their own URL, you can return arel="canonical" HTTP header to tell Googlebot what is the canonical URL for the non-HTML files. For example, to indicate that the PDF version of the.docx version should be canonical, you might add this HTTP header for the.docx version of the content:

HTTP/1.1 200 OKContent-Length: 19...Link: <https://www.example.com/downloads/white-paper.pdf>; rel="canonical"...

As with therel="canonical"link element, use absolute URLs in therel="canonical" HTTP header.

Use a sitemap

Pick a canonical URL for each of your pages and submit them in asitemap. All pages listed in a sitemap are suggested as canonicals; Google will decide which pages (if any) are duplicates, based on similarity of content.

Supplying the preferred canonical URLs in the sitemaps is a simple way of defining canonicals for a large site, and sitemaps are a useful way to tell Google which pages you consider most important on your site.

Use redirects

Use this method when you want to get rid of existing duplicate pages. Allredirection methods301 and302 redirects,meta-refresh, JavaScript redirects—have the same effect on Google Search, however the time it takes for search engines to notice the different redirect methods may differ.

For the quickest effect, use3xx HTTP (also known asserver-side) redirects.

Suppose your page can be reached in multiple ways:

  • https://example.com/home
  • https://home.example.com
  • https://www.example.com

Pick one of those URLs as your canonical URL, and use redirects to send traffic from the other URLs to your preferred URL.

Other signals

Apart from explicitly provided methods, Google also uses a set of canonicalization signals that are generally based on site setup: preferring HTTPS over HTTP, and URLs inhreflang clusters.

Prefer HTTPS over HTTP for canonical URLs

Google prefers HTTPS pages over equivalent HTTP pages as canonical, except when there are issues or conflicting signals such as the following:

  • The HTTPS page has an invalid SSL certificate.
  • The HTTPS page contains insecure dependencies (other than images).
  • The HTTPS page redirects users to or through an HTTP page.
  • The HTTPS page has arel="canonical"link to the HTTP page.

Although our systems prefer HTTPS pages over HTTP pages by default, you can ensure this behavior by taking any of the following actions:

  • Add redirects from the HTTP page to the HTTPS page.
  • Add arel="canonical"link from the HTTP page to the HTTPS page.
  • ImplementHSTS.

To prevent Google from incorrectly making the HTTP page canonical,avoid the following practices:

  • Avoid bad TLS/SSL certificates and HTTPS-to-HTTP redirects because they cause Google to prefer HTTP very strongly. Implementing HSTS cannot override this strong preference.
  • Don't include the HTTP version of your pages in your sitemap orhreflang annotations rather than the HTTPS version.
  • Avoid implementing your SSL/TLS certificate for the wrong host-variant. For example,example.com serving the certificate forsubdomain.example.com. The certificate must match your complete site URL, or be a wildcard certificate that can be used for multiple subdomains on a domain.

Prefer URLs inhreflang clusters

To help with sites' localization efforts, for canonicalization purposes Google prefers URLs that are part ofhreflang clusters. For example, ifhttps://example.com/de-de/cats andhttps://example.com/de-ch/cats reciprocally point to each other withhreflang annotations, but not tohttps://example.com/de-at/cats, the pages forde-de andde-ch will be preferred as canonicals instead of the/de-at/ page that doesn't appear in thehreflang cluster.

Read more abouttroubleshooting and fixing canonicalization issues.

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-17 UTC.