Why it matters
Google ignores hreflang annotations with invalid language/region codes (en_US, region-only) or non-absolute URLs.
How to fix it
Use ISO 639-1 language with optional ISO 3166-1 region (en, en-GB) or x-default, with absolute URLs.
Example
export const metadata: Metadata = {
alternates: {
canonical: '/en/pricing',
languages: { en: '/en/pricing', 'de-DE': '/de/pricing', 'x-default': '/en/pricing' },
},
}References
More seo rules
void seo reports 60 rules in this category. What search engines need from the raw response: status codes, titles and descriptions in <head>, self-referencing canonicals, one h1, crawlable links, Open Graph, icons, robots.txt and a sitemap with real dates.
links-not-crawlableNavigation uses elements crawlers can't followlink-textLinks with generic or empty textbroken-linksInternal links return 4xx/5xx (or go through redirects)trailing-slashBoth trailing-slash and non-slash URLs serve 200hreflang-not-reciprocalhreflang set isn't self-referencing and reciprocalog-missingRequired Open Graph tags missing (og:title, og:type, og:image, og:url)og-incompleteog:description / og:site_name missing, or og:url ≠ canonicalog-image-invalidog:image isn't a reachable, absolute, raster image within size limits