Moz Q&A is closed.
After more than 13 years, and tens of thousands of questions, Moz Q&A closed on 12th December 2024. Whilst we’re not completely removing the content - many posts will still be possible to view - we have locked both new posts and new replies. More details here.
Hreflang Alternate & Pagination
-
Hi everybody,
So I'm setting up hreflang tags on an ecommerce site. The sites are in the USA and Canada. The Canadian site will have fewer products than the American site, meaning that there won't be as many pages in each category as there are on the American site. What is the correct way to handle hreflang tags on these extra category pages?
To put this another way, the American site may have a category with 3 pages of products, while the Canadian equivalent only has 2 pages of products. What happens to this extra American category page (example.com/widget-category/page-3) ?
Does it get an hreflang tag linking to the first page of the equivalent Canadian category (example.ca/widget-category/)?
Does it not get any hreflang tags because it has no true Canadian counterpart?
Does it matter at all if it has a canonical tag pointing to the first page in the series anyway (example**.com**/widget-category/)?
Thanks,
Andrew B.
-
Canonicals and hreflangs must be treated separately.
My rule, and this what I said at LearnInbound, from where SEMRush tweeted the tweet you embedded in your post, is this:
-
First set up and/or solve all canonicalization issues your site may have;
-
Once you have solved the canonicalization issues, you can work on implementing the hreflang only on canonical URLs (not canonicalized)
In that case of pagination the pages 1, 2, 3, 4, et al have self-referential rel="canonical", so - ideally - the hreflang must reference to the corresponding pages 1, 2, 3, 4, et al of the same pagination in the other country and/or language version.
Finally, you are correct regarding the "view all" being the canonical URL of a paginated series.
-
-
You are right. I didn't know about the right way to paginate with canonical. But the point about Hreflang stands. Don't use Hreflang and canonical together on the same page. If you are using canonical to point to the "View All" version, then use Hreflang on the "View all" versions, and not on the individual pages.
-
"Page-2 and Page-3 on the US site should use rel canonical to point to US Page-1. And Page-2 on CA site should use rel canonical to point to Page-1 on CA."
Sorry to say, but this is wrong. Having this configuration will lead the Googlebot to not index or follow anything on page-2 or page-3 because only page-1 is the canonical page. Use either canonical to "page-all" (if existent) or rel="prev"/"next" (sometimes useful with Robots-Tag with noindex,follow for page-2, page-3 ...)
See > Mistake 1: rel=canonical to the first page of a paginated series
https://webmasters.googleblog.com/2013/04/5-common-mistakes-with-relcanonical.html# -
Don't use canonical and hreflang together. I blogged about this very issue: https://hreflang.org/use-hreflang-canonical-together/
What this means for you is that even for Page-2 (for both US and CA), if you are using rel canonical to say that Page-2 is a duplicate of Page-1, then do not use hreflang on Page-2. Using both canonical and hreflang on page-2 will only confuse Googlebot.
In your case, only use hreflang on the canonical versions of the page. i.e., Page-1 on both US and CA sites should point to each other using hreflang. Page-2 and Page-3 on the US site should use rel canonical to point to US Page-1. And Page-2 on CA site should use rel canonical to point to Page-1 on CA.
-
That makes perfect sense! Thanks Gianluca (hope to see you at Mozcon again this year btw!).
-
The example.com/widget-category/page-3 URL cannot have as href in its hreflang="en-CA" the example.ca/widget-category/page-1 because also this other URL - example.com/widget-category/page-1 - has that Canadian URL as href (moreover, that is the correct href for its hreflang="en-CA").
Hence, if you follow your first idea, you will be having a URL (the canadian first page of the paginated list) that will have two different hreflang annotations ( <rel="alternate" href="example.com/widget-category/page-1" hreflang="en-US">and <rel="alternate" href="example.com/widget-category/page-3" hreflang="en-US">, which is totally uncorrect, because you are telling Google to use two URLs for English speaking users in the USA, instead of one.</rel="alternate"></rel="alternate">
Sincerely I wouldn't worry that much. If you are using the rel="prev"/"next", Google will consider the third page of the US listing as a all with the first two pages, hence it should not start showing it in the index.
Got a burning SEO question?
Subscribe to Moz Pro to gain full access to Q&A, answer questions, and ask your own.
Browse Questions
Explore more categories
-
Moz Tools
Chat with the community about the Moz tools.
-
SEO Tactics
Discuss the SEO process with fellow marketers
-
Community
Discuss industry events, jobs, and news!
-
Digital Marketing
Chat about tactics outside of SEO
-
Research & Trends
Dive into research and trends in the search industry.
-
Support
Connect on product support and feature requests.
Related Questions
-
Traffic drop after hreflang tags added
We operate one company with two websites each serving a different location, one targeting EU customers and the other targeting US customers. thespacecollective.com (EU customers) thespacecollective.com/us/ (US customers) We have always had canonical tags in place, but we added the following hreflang tags two weeks ago (apparently this is best practice); EU site (thespacecollective.com) US site (thespacecollective.com/us/) Literally the same day we added the above hreflang tags our traffic dropped off a cliff (we have lost around 70-80% on the EU site, and after a minor recovery, 50% on the US site). Now, my first instinct is to remove the tags entirely and go back to just using canonical, but if this is truly best practice, that could do more damage than good. This is the only change that has been made in recent weeks regarding SEO. Is there something obvious that I am missing because it looks correct to me?
International SEO | | moon-boots0 -
How do hreflang attributes affect ranking?
We have a site in English. We are considering translating the site into Dutch. If we use a hreflang attribute does that mean we have to create a duplicate page in Dutch for each English page, or does Google auto-translate? How would duplicate pages, even if they are in a different language, affect ranking?
International SEO | | Substance-create0 -
GeoIP Redirects & hreflang
Hello, We believe we've had some issues with hreflang tags not remaining validated due to the implementation of geoIP redirects. Previously, if a user clicked a landing page on Google search that was not targeted for their territory, they would instantly be redirected to a sub path that targets their territory using geoIP redirects. We're planning to remove the initial geoIP redirects and have messaging that prompts the user to either stay on the page they've landed on, or be redirected to page that is right for their territory. However, if a user has selected to be redirected to a sub path that is targeted for their territory, they will have a cookie preference set for the IP location they've selected, and will continue to be redirected to their chosen sub path. My question is, will a crawler follow and trigger the geo preference cookie, which could potentially cause complexities in validating hreflang tags and ranking of content for the right market. Thanks.
International SEO | | SEONOW1230 -
Is this setup of Hreflang xml sitemap correct?
Hi, I'm trying to setup hreflang for 2 domains. One is purely a US site and the other domain has the language-country as subdomains. For example: http://www.websiteUSA.com (Targets English - USA) https://www.websiteINT.com/en-CA (Targets English - Canada) https://www.websiteINT.com/fr-CA (Targets French - Canada) https://www.websiteINT/es (Targets Spanish) ..and so on and so forth for about 12 of these international URLs. I created an XML sitemap that looks something like this: <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>http://www.websiteUSA.com</loc></url></urlset> <url><loc>https://www.websiteINT.com/en-CA</loc></url> <url><loc>https://www.websiteINT.com/fr-CA</loc></url> Question 1: Is this correct? In my actual file, I have all the countries listed and self-referencing. Question 2: I'm hosting this file at https://www.websiteINT.com/hreflang.xml AND at http://www.websiteUSA.com/hreflang.xml. Is this correct? Question 3: Will this help the SERPs direct english speakers from the US to http://www.websiteUSA.com while show SERPs for say English Speakers in Canada to https://www.websiteINT.com/en-CA? Question 4: For some reason, when I put up the xml site, it only listed each URL once instead of the full XML file. Should I have uploaded a text file instead? It doesn't seem to render correctly. Thank you!
International SEO | | SylviaH0 -
International SEO Question: Using hreflang tags across two different TLDs.
Hi! My UK based company just recently made the decision to let the US market operate their ecommerce business independently. Initially, both markets were operating off the same domain using sub-directories (i.e: www.brandname.com/en-us/ , www.brandname.com/en-gb/ ) Now that the US team have broken away from the domain - they are now using www.brandnameUSA.com while the UK continues to use www.brandname.com/en-gb/. The content is similar across both domains - however, the new US website has been able to consolidate several product variations onto single product pages where the UK website is using individual product pages for each variation. We have placed a geo-filter on the main domain which is 301 redirecting North American traffic looking for www.brandname.com to www.brandnameUSA.com However, since the domain change has taken place, product pages from the original domain are now indexing alongside the new US websites product pages in US search results. The UK website wants to be the default destination for all international traffic. My question is - how do we correctly setup hrlang tags across two separate TLDs and how do we handle a situation where multiple product pages on the "default" domain have been consolidated into one product page on the new USA domain? This is how we are currently handling it: "en-us" href="https://www.BRANDNAMEUSA.com/All-Variations" /> href="https://www.BRANDNAMEUSA.com/All-Variations" />
International SEO | | alexcbrands0 -
Can multiple hreflang tags point to one URL? International SEO question
Moz, Hi Moz, Can multiple hreflang tags point to a single URL? For example, if I have a Canadian site (www.example.com/ca) that targets French and English speakers can I have the following: or would I use: Any insight would be very helpful and greatly appreciated! Thank you in advance!
International SEO | | DA20131 -
Upper case or/and lower case in rel="alternate" hreflang
Hi Mozzers, I have a question about the rel="alternate" hreflang tag, with an example. When I use two subfolders for two different countries/languages, for instance www.domain.com/nl-nl/ and www.domain.com/nl-en/ (for the English version) and I want to use the rel="alternate" hreflang tag, do I need to follow the ISO standards concerning Uppercase country code and Lowercase language code (en-NL)? Or is it okay to use the Lowercase country and language code (en-nl), since we also use this in the URL of the Subfolder. What does Google prefer? Thanks in advance.
International SEO | | MartijnHoving820 -
Which hreflang tag to use for .eu domain
Hi there, We're trying to solve a problem with one of our domains, we have a .eu CCTLD and we're trying to implement hreflang tags. On our US and UK sites, we use "en-us" and "en-gb", but it's not clear how to approach this european problem, as there is not a "en-eu" tag. The site is in English, but serves several European countries speaking different languages. What's the best hreflang code to use in this situation? Any help much appreciated, Thanks!
International SEO | | dennis.globalsign0