How to specify a canonical with rel="canonical" and other methods
To specify a canonical 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:
- Redirects: A strong signal that the target of the redirect should become canonical.
linkannotations: A strong signal that the specified URL should become canonical.
- Sitemap inclusion: A weak signal that helps the URLs that are included in a sitemap become canonical.
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.
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 dresses product page through
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 to
https://example.com/dresses/cocktail?gclid=ABCDget consolidated with links to
https://www.example.com/dresses/green/greendress.htmlif 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.
For all canonicalization methods, follow these best practices:
- Don't use the robots.txt file for canonicalization purposes.
- Don't use the URL removal tool for canonicalization. It hides all versions of a URL from Search.
Don't specify different URLs as canonical for the same page using
different canonicalization techniques (for example, don't specify one URL in a
sitemap, but a different URL for that same page using
We don't recommend using
noindexto prevent selection of a canonical page within a single site, because it will completely block the page from Search.
linkannotations are the preferred solution.
If you're using
hreflangelements, make sure to specify a canonical page in the same language, or the best possible substitute language if a canonical page doesn't exist for the same language.
- When linking within your site, link to the canonical URL rather than a duplicate URL. Linking consistently to the URL that you consider to be canonical helps Google understand your preference.
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
rel="canonical" HTTP header
Specify your canonical pages in a sitemap.
|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.
|If one of your variants is an AMP page, follow the AMP guidelines to indicate the canonical page and AMP variant.
Google supports explicit
annotations as described in
rel="canonical" annotations that suggest alternate versions of a page are ignored;
rel="canonical" annotations with
type attributes are not used for
canonicalization. Instead, use the appropriate
link annotations to specify alternate
versions of a page; for example,
language and country annotations.
You can provide the
link annotations in
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 the
link element (also known as a
canonical element) is an element used in the
head section of HTML
to indicate that another page is representative of the content on the page.
Suppose you want
https://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:
<link>element with the attribute
<head>section of duplicate pages, pointing to the canonical page. For example:
<html> <head> <title>Explore the world of dresses</title> <link rel="canonical" href="https://example.com/dresses/green-dresses" /> <!-- other elements --> </head> <!-- rest of the HTML -->
If the canonical page has a mobile variant on a separate URL, add a
linkelement to it, pointing to the mobile version of the page:
<html> <head> <title>Explore the world of dresses</title> <link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.example.com/dresses/green-dresses"> <link rel="canonical" href="https://example.com/dresses/green-dresses" /> <!-- other elements --> </head> <!-- rest of the HTML -->
hreflangor other elements that are appropriate for the page.
Use absolute paths rather than relative paths with the
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.
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.
make sure to
inject the canonical link element properly.
rel="canonical" HTTP header
If you can change the configuration of your server, you can use a
HTTP response header
rel="canonical" target attribute as defined by
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 a
rel="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 OK Content-Length: 19 ... Link: <https://www.example.com/downloads/white-paper.pdf>; rel="canonical" ...
As with the
link element, use absolute URLs
rel="canonical" HTTP header, and as per
use only double quotes around the URL.
Use a sitemap
Pick a canonical URL for each of your pages and submit them in a sitemap. 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 this method when you want to get rid of existing duplicate pages. All
it takes for search engines to notice the different redirect methods may differ.
For the quickest effect, use
3xx HTTP (also known as server-side)
Suppose your page can be reached in multiple ways:
Pick one of those URLs as your canonical URL, and use redirects to send traffic from the other URLs to your preferred URL.
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 in
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 a
linkto 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.
linkfrom the HTTP page to the HTTPS page.
- Implement HSTS.
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 or
hreflangannotations rather than the HTTPS version.
Avoid implementing your SSL/TLS certificate for the wrong host-variant. For example,
example.comserving the certificate for
subdomain.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 in
To help with sites' localization efforts, for canonicalization purposes Google prefers
URLs that are part of
hreflang clusters. For example, if
https://example.com/de-ch/cats reciprocally point to each other with
hreflang annotations, but not to
https://example.com/de-at/cats, the pages for
de-ch will be preferred as canonicals instead
/de-at/ page that doesn't appear in the
Read more about troubleshooting and fixing canonicalization issues.