In this episode of the International Web Effectiveness Podcast, Bill Scully and Bill Hunt tackle the challenges of implementing hreflang and why it’s essential for managing global websites. They break down common issues when Hreflang doesn’t work as expected and how query intent impacts search rankings. The discussion also covers practical tips for using Hreflang effectively during site launches and content updates to enhance visibility and search performance.
Key Takeaways
- Hreflang is not a ranking factor but a tool for URL swapping.
- Google needs to see hreflang tags to understand their purpose.
- Query intent plays a crucial role in how pages rank.
- Site quality score can impact the effectiveness of hreflang.
- Implementing hreflang before launching a new site is critical.
- JavaScript errors can prevent Google from reading hreflang tags.
- IP detection can block Google from accessing certain pages.
- Content localization is essential for hreflang to work effectively.
- Brand recognition can influence search rankings significantly.
- Regular updates to hreflang tags are necessary during site refreshes.
Show Note Links
Full article with examples: Why Your Perfect Hreflang Is Not Working
https://www.back-azimuth.com/why-your-perfectly-implemented-hreflang-is-not-working/
News Article: Exploit reveals how and why Google ranks content
https://searchengineland.com/google-exploit-scoring-classifications-449333
Ryan Jones’ https://serprecon.com/
Catch the Full Episode
YouTube: https://youtu.be/4CNcc8Kd6p4?si=8NxjwnpVAxqPylsP
Spotify: https://open.spotify.com/episode/2FcdGmHIN0Ms4UHBAG3kSY?si=WlNoA1RcSBWac8Aw_wCBKA
Transcript
Bill Scully (00:05.877)
Welcome to episode 19 of the International Web Effectiveness Podcast. Bill Hunt and I, Bill Scully, focus on strategies and techniques to improve your web presence and manage global websites. In our last episode, we explored the question, “What if hreflang were to go away?” We covered three levels of activity, from must-haves to more dramatic actions, such as moving to language-only sites with dynamic personalization. It was a fascinating discussion, so check it out. That’s episode 18.
In this episode, we’ll assume hreflang isn’t going anywhere and explore what you can do if your hreflang implementation is flawless, but it’s still not working as expected. But before we dive in, I want to discuss a video by Mark Williams Cook, where he revealed an exploit he found regarding how Google classifies queries and websites. I’m not sure how I stumbled upon it, but it was on YouTube, and he dropped some bombshells. How’s it going, Bill?
Bill Hunt (01:21.122)
I’m good, how about you?
Bill Scully (01:22.271)
Good, good. I shared the video with you, and you mentioned you’d seen it too. Looks like it’s getting around. What do you think?
Bill Hunt (01:33.314)
Yeah, I saw a Search Engine Land article about it, and I think he presented it at the Search Norwich conference.
Bill Scully (01:41.225)
Right, that’s where I saw it too. So, did anything stand out to you that you hadn’t thought of before?
Bill Hunt (02:00.332)
Yeah, it validates some of the things we’ve talked about. One thing he uncovered was these query classifications. For those who aren’t familiar, he found an endpoint where Google communicates with other systems. They use shorthand code bits to abbreviate large tasks. One of these is query classification, which breaks down queries into eight semantic classes, like short facts, Boolean (yes/no questions), instructions, definitions, reasons, comparisons, consequences, and things related to your money or your life.
This explains a lot of what we’ve discussed about query intent. For example, if someone searches for something like “what time is it in Mumbai?” or “what’s the average shoe size in Finland?”, Google can directly answer these questions, disintermediating those who profit from providing such answers.
One interesting thing Mark mentioned was “consensus scoring.” Google attempts to stay neutral by assessing the majority of sources related to a query. For example, if someone asks, “Is the Earth flat?” Google looks at the majority of results and uses them to determine the answer. This may mean that contrarian views, like those of flat-earthers, may not rank as highly—not because Google is pushing a “round Earth” agenda, but because the consensus is overwhelmingly in favor of the opposite view.
Bill Hunt (04:24.568)
Exactly. Google’s algorithm looks at consensus. So, when someone asks a question like, “Is the Earth flat?”, it checks the majority of results and bases its response on the consensus. Even if you present a well-researched, contrarian viewpoint, Google might not prioritize it simply because it’s a minority opinion. This was really interesting.
He also compared this idea to the concept of “your money or your life,” tying it to consequences. Another big takeaway for me was about site quality scores. Mark dove deeper into Google’s prediction models, explaining that Google has a probable ranking score for sites based on various factors. He also discussed how click data influences rankings—particularly when a site has been indexed and click data becomes available.
Bill Hunt (06:49.668)
It’s fascinating. He’s tying these concepts together—how Google uses click data and site scores to predict rankings. When a new site comes online, it doesn’t have click data, so it can’t be evaluated in the same way. But once Google gathers data, they start factoring it in. For international sites, this can affect how they rank, especially if there are duplicate content issues. The established sites often get a boost in visibility because they’ve accumulated trust and authority.
Bill Scully (08:21.971)
I’ve been talking about consensus for a while now. Google doesn’t always know the answers, so it has to figure out the most common consensus to rank pages. This just proves it.
Bill Hunt (08:35.17)
Right.
Bill Scully (08:50.933)
And regarding click data—Google’s not just using it for individual pages. They aggregate click data across topics, then use that data to make predictions. This prediction model affects rankings.
Bill Hunt (09:18.85)
That’s right. And something you’ll appreciate, especially since we discussed this during your SEO talk in San Diego, is the importance of brand searches. If your brand is well-known and gets searched often, Google will trust your site more than a lesser-known one. It’s all about brand recognition.
I recently had a conversation with Vivek Bhagarva, who has an interesting lookalike audience mapping tool. We discussed how businesses might leverage lookalike audiences to reach people familiar with other brands—essentially figuring out where people search online, which is like the search equivalent of “sliding into DMs.”
Brand searches keep coming up, and I’m not entirely convinced, but I agree that if people recognize a brand, Google’s more likely to rank it higher. It’s nearly impossible to launch a new site today without some social media visibility—without it, you’re at a disadvantage.
Bill Scully (11:44.108)
Absolutely. It’s essential to think multi-dimensionally. It’s not just about SEO; it’s about how your site integrates with social media, branding, and overall visibility.
Bill Hunt (11:44.108)
Exactly. Mark also laid out three criteria for evaluating ranking factors. Before acting on any SEO advice, consider these three things. First, does it make sense? If Google uses consensus, that’s probably reasonable. Second, does it scale? Google applies this logic across all sites, not just one. And third, is there other evidence—such as patents or big data studies—that support this?
Bill Scully (13:33.481)
It was a great presentation. It was well done—fact-based with some of his own theories. I didn’t disagree with anything he said, and I’m definitely going to spend more time thinking about it.
Bill Hunt (14:01.006)
Same here.
Bill Scully (14:02.387)
What was the other thing? He mentioned there was a threshold to be eligible for search features, and there was actually some scale for that.
Bill Hunt (14:19.446)
Yeah, that was interesting. He actually extracted it from their waiting data, I believe. And then, yeah, that’s the number, right? It was a lot of sites they scored. In the presentation, he showed that chart, which I thought was very interesting.
Bill Scully (14:40.745)
Yeah, if you haven’t seen it, you definitely need to watch it. Great. So, let’s transition to today’s topic: Why isn’t your perfect hreflang working? If you’ve been listening for a while, you don’t need this. But if you’re new, let’s define hreflang.
Hreflang explicitly states a website’s language or language region. It’s not a ranking factor, but rather a tool to swap URLs in search results based on a user’s locale and/or language. So, you’ve done the work. All the hreflang signals are in place and done correctly.
But it’s still not working. Bill, can you walk us through why this happens?
Bill Hunt (15:50.392)
Sure. I actually wrote an article on this, based on my experience with about a dozen companies. I gave a presentation at PubCon, and a lot of companies approached me, saying they perfectly implemented hreflang.
Of those dozen, 10 were implemented correctly, but two weren’t. We can exclude those from the sample size. Some of these companies hired us to audit their hreflang implementations because they thought everything was fine. What I found was that, after reviewing these sites:
One issue was that Google hadn’t seen the hreflang tags. This was interesting. In one case, it was a new English-language market site that launched 30 days before they added hreflang tags. For those familiar with hreflang, Google needs to visit each page to verify it, unless you’re using hreflang. In this case, they added the tags 30 days after launch, so most of these pages had likely been indexed as duplicates with no indication of their purpose.
What we found was that 60% of the URLs on this site were flagged as duplicates, with Google selecting the existing US site as the preferred version. When I ran Screaming Frog and connected to their Search Console, I found that over two-thirds of the pages had not been visited by Google yet.
Bill Hunt (18:09.928)
To clarify, more than half of the pages hadn’t been visited. The pages were either indexed before hreflang went live or hadn’t been indexed after it went live. About 90 pages hadn’t been visited in the last 90 days. If Google hasn’t visited a page, it doesn’t know about the canonical relationship, which is a big challenge with tags.
Bill Scully (18:53.428)
Right.
Bill Hunt (18:57.86)
Google might have visited the US English site, found the tag, and queued it to fetch the pages. But until they do, nothing happens. The client pointed out that about 200 pages had been visited. They used my own data against me, so I checked and found they were right. But when I dug deeper, I found that Google couldn’t see the hreflang tags due to JavaScript issues.
In one example, they had 33 scripts, either in the head or inserted through a tag manager. Eight of these scripts had malformations—they didn’t close properly, or there were defects. Google has told us that if there are errors in JavaScript, it will skip everything in the head and go straight to the body. As a result, none of the hreflang tags were indexed.
Bill Scully (21:13.845)
Whose textbook is that?
Bill Hunt (21:18.966)
Exactly.
Bill Hunt (21:29.796)
Preach, brother! Anyone who’s taken my error course knows the first thing I talk about is: stop giving exceptions to stuff. If you say something must be done a certain way, enforce it. For example, if you don’t use reciprocal links, Google should not “figure it out.” It must be reciprocal.
There are other issues too, like relative URLs. By definition, relative URLs break syntax because HTTP and HTTPS versions of the same page are not equivalent.
We could rant about this all day, but at the end of the day, when we presented the paired pages in a readable format, it worked. I suggested moving all the SEO elements—title tags, canonical tags, meta descriptions, hreflang tags—directly after the open head tag. This won’t negatively impact your scripts and ensures that SEO elements are fetched on the first page load, especially on JavaScript-heavy sites.
The second issue I found, which many people overlook, is IP detection blocking Google. In one case, we discovered that the site’s XML sitemaps were giving errors, indicating that Google couldn’t read them. This was because the site was blocking Google from accessing the XML sitemaps due to IP detection. Googlebot was seen as a bot, and the server was denying access.
Bill Hunt (23:54.37)
In another case, when Google was verifying UK or Ireland pages as alternatives to US pages, IP detection was sending Google back to the US site because it detected the US IP. The solution was to work with their CDN provider to create an exemption, allowing Google to fetch the correct page. This issue arose because they had implemented bot-blocking measures and accidentally blocked Google as well.
Bill Hunt (25:24.11)
The third issue we encountered, remember, this is from a sample of 12. Ten of these people had no errors at all, out of the 27 common errors associated with Hreflang. Another thing we noticed was the near absence of identical or non-local content. Looking at my paraphrased notes, I can barely understand what I wrote.
But essentially, these pages were 100% duplicates. There was nothing distinguishing the French page for France from the French page for Canada. There were no indicators to show whether the content was for France or Canada. In one case, the currency was unreadable. They weren’t using schema tags to differentiate, and there was nothing suggesting they were targeting a different market.
One of the cases was what we call aspirational hreflang. Let me finish this point first. In our next podcast, we’ll discuss Google’s most recent off-the-record search update on duplicate content. This will make more sense then, as Google takes every page that looks similar to another and puts it into a cluster.
Once it’s in the cluster, Google’s next step is to decide which page to present to users. At this stage, when they’re doing this, they haven’t seen the hreflang. We’ll go into more detail about this in the next podcast, so I’ll save the specifics for then.
Bill Scully (27:04.245)
Thanks.
Bill Hunt (27:21.186)
Basically, Google treated these pages as duplicates and rejected them. It took a couple of steps to fix this. The issue was that the new site or refreshed content launched before the updated hreflang was deployed.
For new markets, hreflang was an afterthought. They said, “We should have hreflang because all our pages are being seen as duplicates.” In the other case, they updated the content, implemented redirects, but never updated the hreflang to reflect the new URLs or alternate pairing.
So, when you’re doing a migration or launch, it’s critical to have hreflang fully set up. As Gary mentioned in the international search off-the-record episode, hreflang triggers a crawl dependency for Google’s crawler, giving it priority to fetch the pages.
Bill Scully (28:35.369)
Yeah. It was interesting to hear that once you’re clustered, it’s hard to get out. How do you trigger a new crawl if you’ve already been clustered as a duplicate?
Bill Hunt (28:52.035)
Exactly.
Bill Hunt (28:59.392)
Google uses several signals to determine the canonical page, some more important than others. We’ll use this as a teaser to get you to tune in for the next episode.
Bill Scully (29:15.381)
40, right? Didn’t you say it depends on the day, but it can go up to 40? We’ll discuss the 41 signals next time.
Bill Hunt (29:18.616)
Come on, we want them to tune in.
Yeah, it’s 40.
Bill Hunt (29:27.532)
Now, let’s talk about aspirational hreflang. This one’s simple. What happened here is they had incorrectly set the hreflang. I call it “aspirational” versus “lying,” because there are variations. Sometimes management sets a launch date, and the site isn’t fully ready, so you launch anyway.
Or you do a soft launch, where 60% is localized and 40% isn’t, but when using a system-wide hreflang, especially with tags, you can’t pick and choose. Everything is tagged, and we’ll link to an article in the show notes where this happened. In this case, they launched in Greece, Croatia, and eight other markets.
The pages were all in Greek, but the hreflang said they were Greek. In reality, they were in English, and we noticed this because we were trying to figure out why the Greek pages weren’t showing in search. We initially thought Google had picked a US English page as the canonical, but upon closer inspection, they were all in English. Google penalized them because they were in English, not Greek.
So, the takeaway here is that if you don’t declare the language properly, it won’t serve its intended purpose, and Google will put them into a cluster with no signal to move forward.
Bill Scully (31:28.223)
It’d be interesting to go back and tag those properly.
Bill Hunt (31:38.67)
We did.
In the aspirational article, I mention that we went back and updated the language on all the Greek pages because they had been in English. Once we did that, Google slowly started indexing them, though it took about four months for the majority to be indexed. By declaring the pages as Greek for Greece and Croatia, they were correctly indexed.
If you’re launching before full localization, it’s important to crawl and find pages that haven’t been localized. This is especially difficult if you’re using tags, as they apply to everything. You’d need logic to identify these pages, but in the case I mentioned, they were tagging pages as French France, but the content was in English.
Bill Hunt (33:35.606)
For those pages that hadn’t been localized, we loaded them separately into hreflang builder and tagged them as English for France. Hreflang builder’s new owners are working on building functionality to automatically flag such cases. When they detect a language change, it can be flagged as English with potential for localization. This is a cool feature, though I’m not sure when it will be available.
This issue is common for sites launching before they’re fully localized.
Bill Hunt (34:50.424)
The next issue I came across was the first time I’ve seen it. I’ll share pictures in the article using Ryan Jones’ tool, Serprecon. He’ll kill me for not remembering the name, but I have a link to the right notes.
This episode is brought to you by Ryan Jones and serprecon.com. The invoice is in the mail, Ryan. So, hreflang was perfect, there were no duplicates, both pages were indexed. But I couldn’t understand why Google was showing the Canadian page in the US search results.
Bill Scully (34:56.309)
Thank you.
Bill Hunt (35:17.728)
I ran a demo test with Ryan’s tool, inputting both pages. What was interesting was that the Canadian page, showing up in the US, had a commercial query intent, while the US page, due to all the legalese and marketing copy, was deemed navigational.
That was fascinating. We didn’t see the same results with non-branded queries. When we added a buying intent (even though they don’t sell directly), we could see the commercial intent reflected on the other pages, and those appeared fine. It was just the homepage that caused issues.
Bill Scully (37:18.794)
Hmm.
Bill Hunt (37:19.124)
We came up with various ideas on how to adjust content, demote some, and amplify others to give it more commercial intent. This was an interesting case, and I’ve seen two instances of this now, especially when using his tool to examine intent. We found that, even with the same language, the wrong market was ranking because the searcher intent wasn’t aligned.
Bill Scully (37:49.237)
I never would’ve thought of that. That’s pretty cool.
Bill Hunt (37:53.026)
I wouldn’t have, either, until I saw the data. I have to give Ryan all the credit. If you look at the article, I’ve included his results side by side. I was like, “Wow, this is interesting.” With all the talk about intent, it makes sense. This leads to the next point, which is a bit ironic. The same company I was just talking about—maybe not the exact same company, but I do mention their product name.
In the article, I explain that they were using US queries to detect cannibalization. One of the queries involved the product name plus active ingredients, because that’s how people search for it in the US. However, in Australia, the product page doesn’t list active or inactive ingredients. It just says “ingredients.” So, if Google has two pages—one for Australia without “active” and one for the US with “active”—Google might show the US page because it better matches the query. To work around this, they simply removed the term “active ingredient” for the Australian version and used “product name plus ingredients” instead.
Bill Scully (39:37.546)
Yeah.
Bill Hunt (39:48.098)
That’s a more relevant query for Australia. This highlights a problem we’ve discussed before with cannibalization—using rank reports that are based on phrases that may only be relevant to one market. We also see skewing with product names, especially when they include a trademark symbol. This creates a new phrase, which might confuse Google. It’s a quirky issue we’ve never been able to get a clear answer on: Does the trademark symbol impact the ranking?
This is closely related to the issue with brand names. Companies like IBM use IBM.com, but you can never reach that page because of a 302 redirect based on IP detection. This redirects users to the appropriate market version of their site. IBM.com has so many links pointing to it that, for a query like “IBM,” it could be the most relevant page. We’ve solved this for several clients by adding IBM.com, newbalance.com, or asex.com to the hreflang tags, making the homepage the default for the market. This allows the local homepage to show instead of the global one.
Bill Hunt (42:14.328)
Google will present the default page for the market, and IP detection will handle the rest. This solves the issue of showing the global homepage in other markets. It works because, in some markets without a local website, like Tonga, the local page will be the default. However, once the user clicks on it, IP detection will send them to the appropriate version of the site. It doesn’t really hurt the ranking, and it solves the issue of showing the global homepage in different markets.
We’ve written about this in nine different cases, showing why using hreflang tools might still lead to issues, and how we’ve solved them. For example, if intent is off, we align it more accurately. So, if you detect one of these issues, you can use the recommendations we’ve discussed today to solve it.
Bill Scully (44:06.717)
I have a couple of questions. Just to clarify: if you’re using the root domain as the default, you’re saying that you’d use .com as the default and have all regional homepages as the alternates, right?
Bill Hunt (44:37.528)
Yes, that’s correct. Whether they are ccTLDs or folder-based country-language versions, they would all be alternates to the default. Now, this will only work if you’re using an XML sitemap because the page must be indexed.
Bill Scully (44:58.975)
So, you couldn’t even put the tag if the page isn’t indexed?
Bill Hunt (45:05.144)
Right. A 302 redirect ensures Google keeps the equity, as it expects the page to come back. We have clients who use tags to manage this, and they often place all their homepages in an hreflang XML file to make it work. In the 20 or so cases we’ve handled, the root homepage is removed as the ranking page for the company name in markets with legitimate local websites.
Bill Hunt (46:08.054)
I’ll link to the article where I cover this process in detail. I’ve tried to address all the nuances and “what if” scenarios.
Bill Scully (46:22.773)
Great. To wrap up: Google has to find the tag. If your pages are considered duplicates, you need to figure out how to break them out of that grouping. I haven’t seen this discussed much, but it’s essential. Also, make sure to implement hreflang before launching a new region. If you add a region and don’t include it in the hreflang, it could be flagged as a duplicate.
Another point: if you set a hreflang tag for a page in French but it’s actually in English, you’re misrepresenting it. Google is primarily looking at language when determining relevance.
Bill Hunt (47:55.042)
Right. They’re trying to determine which version of the same-language page to show based on location. It’s a good thing. As a teaser for our next episode, Alan from the Dupes team will discuss this further.
And don’t forget, when launching or refreshing content, ensure your hreflang tags are updated. As Gary mentioned, it triggers a crawl event, which helps Google index the pages much faster. We’ve seen this work exponentially better when hreflang is launched with a new market.
Bill Scully (49:00.917)
Great. If you’re finding value in our discussions, please rate and review the podcast on your favorite platform. We’d love to hear your feedback—it helps us plan future episodes. Follow International Webmastery on LinkedIn, Facebook, and X, and let’s talk.
Bill Hunt (49:38.852)
Thanks, everyone.