We recently had a very interesting case with one of our clients. Client has two Magento websites on one installation, one website is on .com and targets USA while the other is on .ca and targets visitors from Canada.
The issue was that when you googled this website’s name on google.ca, a .ca website would appear, but it would have a wrong meta description – the one belonging to the .com website.
It also displayed the wrong title, but Google tends to modify the title tag displayed in SERP nowadays for a lot of websites so this might be an unrelated issue.
What also made us scratch our heads was that if you view Google’s catch of the .ca result, you’ll see it actually cached the .com version of the website.
Needless to say, we first checked if it had anything to do with some user agent specific redirects or similar and none of those existed.
The first thing you need to do is properly implement rel alternate hreflang x. This is nowadays a must have for any website that targets multiple regions or languages.
In the case of .com for USA and .ca for Canada, the markup for the homepage looks like this:
Notice we added the “x-default” value that points to .com version. This means that every user who is not from USA or from Canada should get the .com version of the website.
The code above should be added to both .com’s and .ca’s head. Each URL needs to reference both itself and its alternate versions. Also note that the code should be implemented on each page that has alternate versions and not just the homepage. So for a product page it would look something like this:
After you properly implemented the rel alternate hreflang x code into the head, the next thing to do is wait.
We were a bit paranoid when we implemented it, gave it a few days, and saw Google didn’t change anything even though we can see it’s reindexed and Google’s cached version of the page changed to the date after the alternate was implemented.
I contacted Google’s John Muller to see if he had any idea on what else we could do and John responded that we should give it some time. Less than a week passed after the alternate code was implemented and the issue was resolved. Google now shows the correct website with the correct meta description to the correct users in correct countries.