# How to set up hreflang for multilingual sites

> hreflang tags tell Google which language and country each version of a page serves. They must be reciprocal and include the page itself.

Technical SEO · HTML version: https://getreport.app/learn/hreflang

## hreflang return links

Passing looks like: Every hreflang alternate links back to this page.

**Why it matters.** hreflang only works when every version lists every other version, including itself. An alternate that does not point back makes Google ignore the pair, so visitors get the wrong language.

**How to fix it.**

1. On each alternate page, add a <link rel="alternate" hreflang="…"> for this page and for itself.
2. Generate the tags from one list (CMS, plugin or the XML sitemap with xhtml:link) so every page carries the same set.

## hreflang tags

Passing looks like: hreflang tags are complete and valid.

**Why it matters.** hreflang tells Google which language or country version to show each searcher. A missing self-reference or an invalid code makes the whole set ignored, so visitors land on the wrong version.

**How to fix it.**

1. Use valid codes (language, optionally a region; for example "en", "en-GB", "de-AT") and at most one "x-default".
2. Include this page's own URL in its hreflang set, and list the same set on every version.

## hreflang alternates status

Passing looks like: Every hreflang alternate returns HTTP 200.

**Why it matters.** An alternate that answers 404 or redirects is dropped from the hreflang set, and the whole set can be ignored. Old language versions are often removed without updating the tags.

**How to fix it.**

1. Point each hreflang entry at a live URL that answers 200 directly (no redirect).
2. Remove entries for language versions you no longer publish.

Check your own page: https://getreport.app/
