Unless your language pages are localized only for specific countries, I think you should simply use the language codes (en, es and tr) in your Hreflang markup instead of language+country (en-US, es-ES).
x-default is not required.
Welcome to the Q&A Forum
Browse the forum for helpful insights and fresh discussions about all things SEO.
Unless your language pages are localized only for specific countries, I think you should simply use the language codes (en, es and tr) in your Hreflang markup instead of language+country (en-US, es-ES).
x-default is not required.
No, it doesn't matter how many countries you have a business presence in. How many of these does the client have localized pages/websites for?
There isn't an error in the markup for the two pages that you shared. Hreflang markup on duplicate pages is useless so you will not lose anything by getting rid of hreflang on these pages. You can try deleting hreflang and see what happens. You only need hreflang on canonical versions of the page. (in your case it would be pages like http://www.key.co.uk/en/key/mobile-lift-tables and http://www.keyonline.ie/en/kie/mobile-lift-tables and not http://www.key.co.uk/en/key/300kg-capacity-manutan-mobile-lift-table-lift-height-860mm-125h204)
Or you can leave it as is and ignore the errors because duplicate pages should have no effect either way.
"If you use the hreflang, Google won't consider the alternate URLs as duplicate ever ;-)."
I wish that was true. That would solve a lot of the .co.uk vs. .com problems that sites have where they want a different URL to show up in the SERPs without actually having to change their English content. But the reality is Google will consider it duplicate content even if you use hreflang. I have blogged about this in detail with examples: https://hreflang.org/hreflang-and-duplicate-content/
Yes, you should use Hreflang tags. If you do not, it's a duplicate site.
However, even if you use hreflang Google might still consider them duplicate sites if the content is exactly the same. See this thread: https://moz.com/community/q/hreflang-problem
So you should try to localize the content so that it's really unique for each market/site.
The correct way to get .co.uk to rank the in UK and .com to rank elsewhere is to use Hreflang tags, but only if content on the two sites is different. If it's the same content i.e., it has not been localized to UK, then you are better off using only 1 website. Google often ignores Hreflang markup when it encounters duplicate content.
So you have 2 options:
No, the hreflang tag is to indicate that the content is localized for a certain market (language + geo). If you simply use hreflang tags without genuinely localizing your content, Google might treat it as duplicate. See John Mueller's answer here where he clearly says this exact thing:
https://productforums.google.com/forum/#!msg/webmasters/ezMvrlRWuDk/6XWuM1fIDgA
What I meant is that the 2 pages https://www.howmuchcostanapp.co.uk andhttps://www.howmuchcostanapp.com are duplicates of each other. They have not localized the en-GB site for English-speakers in the UK. So when Googlebot sees these 2 pages it might treat them as duplicates.
The en and en-GB sites are duplicates of each other. Without going through the entire questionnaire, you wouldn't know that one site gives you a quote in GBP and the other in USD. So as far as Googlebot is concerned, there is no difference between the en and en-GB sites. You haven't really localized the en-GB site for users in GB.
In such cases of duplicate content, Google sometimes (not always) ignores the Hreflang directive and just shows the stronger domain in SERPs.
By the way, you also have an error in your hreflang implementation. The tags for pt and pt-PT are mismatched on some of the pages. https://app.hreflang.org/results.php?runid=09c39ec6653fbefafe14b0cfe880d3ab20161031214914
Without Hreflang markup the en-US and en-GB pages will be treated as duplicate content. You do not want that. In fact, even with hreflang the two may be considered duplicates if there isn't enough differentiated content.
Also, be careful with canonicals. You shouldn't specify the en-US page as the canonical URL for the fr page. The fr page is its own page and you should use hreflang to specify other language versions.
Hreflang tags should point to the canonical version of the page. So yes, please remove the ?d=Womens from all your Hreflang URLs.
Here are the results of a test run on this URL to check for Hreflang errors:
https://app.hreflang.org/results.php?runid=f622e3d03dbf4a03958c6a6d2d180bd020160719202039
You will see that all errors are because of the ?d=Womens in the URLs.
Hreflang markup specifies which pages belong in a cluster. In the section of your HTML, you use tags to specify which URLs belong in the same cluster. The same set of tags should be on each page in the cluster. If your pages are passing the Hreflang validation then you already have this markup on your page.
It's a little hard to understand your question without a URL or at least the relevant markup.
In general, avoid using Hreflang on pages that are duplicates i.e., pages that use a rel=canonical pointing to another page. If you absolutely must use hreflang on such pages, make sure the tags point to the canonical versions of the pages in the cluster. I blogged about this issue here: Can I use Hreflang and Canonical Together?
Yes, hreflang will work in the new structure that you included.
The point of Hreflang is to indicate that two (or more) URLs are part of the same cluster i.e., they have the same content but in different language. There is no requirement around what the URLs should be. They don't need to match or be similar in any way. They can be one the same subdomain or different, same root domain or different, same folder or different...doesn't really matter.
Will this prevent duplicate content issues?
The short answer is may be. Sometimes when the content is duplicate, Google chooses to ignore Hreflang and "fold" multiple URLs into a single URL. See John Mueller's answer on this thread: https://productforums.google.com/forum/#!msg/webmasters/ezMvrlRWuDk/6XWuM1fIDgA
So make sure that the content is indeed localized to that country. In your case, use "en" for your co.uk site so that it applies worldwide and covers IE and AU as you intended. And for the .com site, use "en-US" and make sure your content there is Americanized.
Examples of localizing your content are spelling (localising), currency for prices (pounds vs. US dollars), addresses/contact info in the footer.
Your hreflang markup looks correct.
As far as the _ga query string parameter is concerned, what you want is for Google to ignore it. For that you can use canonical tags. So make sure https://example.de/?_ga=1.16730294.1000579032.1461248919 has the following markup in the HTML :
If you can't post the URLs here, try an Hreflang testing tool. I built one at https://app.hreflang.org
The issue looks like it's caused by the HTTP/HTTPS discrepancy. You have the site available on both HTTP and HTTPS, with both versions claiming they are the canonical version of the themselves. So I guess Google is ignoring the HTTP pages and using HTTPS. But the hreflang tags on your https pages are using HTTP URLs. e.g. https://cbisonline.com/eu/ has the markup:
Change all hreflang URLs here to https and you should be OK
Markup looks OK but is that the full picture? Are there redirects involved here? Is the canonical tag pointing elsewhere? What's the actual URL?