I always love it when big brands go into the Google help forums and ask for help, I love it even more when they get help from Googlers. The latest case is the major travel search engine, Kayak, who came into the Google Webmaster Help forums asking why Google was listing the wrong domain in the search results and John Mueller explained it was a coding issue on their end.
The issue was that Google was kind of thinking the .co.uk version on some pages were the com.my version instead.
Here are some screen shots:
Google Cache for .co.uk showing .com.my:
Kayak's SEO, laid out the issue incredibly clearly in the post. I rarely see such a well written out SEO question in these forums, so really nice to see. In which John Mueller responded:
When rendered, your pages have an iframe in the head, this implicitly closes the "head" and invalidates the meta tags you have afterwards in the head, including the hreflang markup. You can see this by opening the page in a browser like Chrome and using Inspect Element to look at the "head". You can resolve this by moving the iframe to the end of the head, or by moving the "search engine" meta tags above the iframe (or in this case, by moving the hreflang markup into a sitemap file).
International SEO is pretty complex, especially on huge web sites with many engineers working on things.
Forum discussion at Google Webmaster Help.