Table of contents
Hreflang has three failure modes: missing, wrong, and one-way. On multilingual WordPress sites, most implementations have all three at once. The fix is a small policy — applied consistently.
TL;DR
- Every URL must reference every alternate — including itself (x-default).
- Use ISO 639-1 language + ISO 3166-1 region codes only.
- Ship hreflang in HTML head, not sitemap, unless you have >10K URLs.
- Validate weekly — hreflang breaks silently every deployment.
Where it usually breaks
- Language switcher on the theme uses different URL structure than sitemap.
- One page updated, alternates not regenerated.
- en-US points to /en/ but en-GB points to /uk/ — mismatched paths.
- Missing x-default fallback for unlisted regions.
| Symptom | Root cause | Fix |
|---|---|---|
| Wrong-region indexing | One-way references | Add reciprocal alternates |
| Duplicate content in GSC | Missing hreflang | Ship tags on both pages |
| Fallback country ranks nothing | Missing x-default | Add x-default → primary lang |
Sitemap or HTML head?
HTML head for <10K URLs. XML sitemap only when the head approach exceeds page-size budgets.
Ship this workflow inside WordPress
WBP Omni SEO Pro turns every playbook on this blog into an approvable, reversible diff.
Get WBP Omni SEO ProAffiliate — this link goes to the official WBP Omni SEO Pro product page.
T
The WBP Editorial Team
WP Bulk Publishing

