
/fr/produit instead of https://example.com/fr/produit) are invalid. Google ignores them, so your language and region targeting silently stops working. Every href value in an hreflang cluster must be a fully qualified absolute URL with protocol and host.What this check is flagging
hreflang is how you tell Google that a page has equivalent versions in other languages or regions, so the right version gets served to the right searcher. The mechanism is a set of <link rel="alternate" hreflang="xx"> tags (or the sitemap / HTTP header equivalents), and each one carries an href pointing at the alternate URL. This check fires when that href is relative instead of absolute.
An absolute URL is the whole address: scheme, host, path. A relative URL is a fragment that only makes sense in the context of the current page. Browsers resolve relative links against the current document all day long, which is exactly why people assume hreflang will too. It will not. The hreflang spec and Google's own documentation both require the fully qualified form.
Why it matters for SEO
When hreflang works, a French searcher lands on the French page and a Canadian searcher lands on the CA page, without you fighting canonical wars or accidentally cannibalizing your own rankings across locales. When the annotations are invalid, none of that happens. Google treats a relative href as unparseable and drops the pairing. Because hreflang is bidirectional and requires every page in the cluster to point at every other page (including itself), one broken href can unravel the whole return-tag relationship for that set.
The failure is quiet, which is what makes it nasty. Nothing errors out, nothing 404s, the page renders fine. You just gradually notice the wrong-language version outranking the right one in a market, or duplicate-content style suppression where two near-identical localized pages compete instead of cooperating. By the time it shows up in revenue it has usually been broken for months.
How to detect it
- Screaming Frog SEO Spider: crawl with hreflang extraction on, then open the Hreflang tab. It flags non-absolute URLs and missing return tags directly. This is the fastest way to audit a whole site.
- Google Search Console: the International Targeting report is deprecated, but the URL Inspection tool still shows how Google parsed a page's alternates. If a relative href was dropped, it will not appear in the detected alternates.
- Sitebulb: runs a dedicated hreflang audit with a "not absolute URL" hint and a visual cluster map, which is handy for explaining the problem to a stakeholder.
- View source / server logs: for a spot check, view the raw HTML or the XML sitemap and eyeball the href values. If any start with
/,./,../, or//, they are relative or protocol-relative and need fixing.
Common ways this creeps in
| You wrote | Type | Result |
|---|---|---|
/fr/produit | Root-relative | Invalid, dropped |
produit | Path-relative | Invalid, dropped |
//example.com/fr/produit | Protocol-relative | Not recommended, risky |
https://example.com/fr/produit | Absolute | Valid |
How to fix it, step by step
- Find the source of the tags. hreflang is almost always generated by a template, a plugin, or a sitemap builder, not hand-authored per page. Fix it at the source and you fix every page at once.
- Emit the full URL. Prepend the canonical scheme and host to whatever path your code produces. In practice that means concatenating
https://yourdomain.comwith the localized path, using the same casing and trailing-slash convention as your canonical tags. - Match your canonical exactly. The hreflang href for a page should be byte-identical to that page's self-canonical: same protocol, same host (www or not), same trailing slash. Mismatches here create a second, separate class of hreflang bug.
- Do not use protocol-relative
//. It technically has a host but Google's guidance is to specify the protocol. Pickhttps://and commit. - Re-crawl and confirm. Run Screaming Frog again and check the Hreflang tab shows zero non-absolute URLs and complete return tags before you call it done.
What "good" looks like
Every href in every hreflang annotation is a complete https://host/path string. Each URL in the cluster lists all the others plus itself, and each of those references is absolute and matches the target page's canonical. A crawl comes back clean with no "not absolute" and no "missing return tag" warnings. Served to the right searcher, the right localized page wins.
Do
- Use full
https://host/pathURLs in every hreflang href - Fix at the template or plugin so all pages inherit the fix
- Keep hreflang hrefs identical to each page's self-canonical
- Re-crawl in Screaming Frog to confirm zero non-absolute warnings
- Include a self-referencing hreflang for each page
Don't
- Ship root-relative
/fr/pageor path-relative hrefs - Use protocol-relative
//host/pathand hope it resolves - Assume browsers resolving relative links means Google will too
- Mix www and non-www between hreflang and canonical
- Leave one page's cluster half-fixed: it breaks the return tags
FAQ
Does this apply to hreflang in XML sitemaps too?
Will Google show an error if my hreflang is relative?
Is protocol-relative //example.com/ acceptable?
https:// explicitly and avoid the ambiguity entirely.One page had a relative href but the rest are fine. Is that a real problem?
International setup gone quiet?
If the wrong-language version keeps outranking the right one, the hreflang cluster is usually the culprit. Our team audits the whole return-tag graph and hands you a fix list.
Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.
About SEO ProCheck
Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.
Work With Me
Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.







