murattunalı.
Reading

H

What is hreflang?

hreflang is the markup that declares a page’s different language and region versions to search engines.

On a multilingual site the same content exists in more than one version, and the search engine needs to know two things: are these translations of one another, and which one should be shown to which user? hreflang answers both.

Three rules apply, and if one is missing the set is treated as invalid.

  • Reciprocity — if A declares B, B must declare A.
  • Self-inclusion — every page must declare its own language too.
  • Absolute address — a relative path is not accepted.

The value can be a language code or a language-region pair. A language code alone targets everyone speaking that language; a language-region pair targets only those in a particular country. The second is meaningful only if the content genuinely differs — different currency, stock or legal text.

The declaration can be made in the page’s head section, in the sitemap or in an HTTP header; all three are equivalent. This site uses the first two together: every page carries its own link set — a page existing in three languages carries four links, one existing only in Turkish carries two — and the sitemap repeats the same sets.

It does not raise rankings — it is a matching signal, not a ranking signal. Set up correctly, it makes existing visibility reach the right user.

It is a layer that breaks silently: it gives no error message, the page looks normal, and only the wrong language version starts appearing in search results. Noticing the symptom takes weeks.

The most frequent mistakes are missing reciprocity, failing to declare oneself, and contradicting the canonical address. The third is the most insidious: if hreflang says “I am the German version” while the canonical points to the Turkish page, the German version never enters the index at all.

The lasting solution is not to write the links by hand: generated from a single source, reciprocity is structurally guaranteed, and tied to a test, a breakage shows at deployment time.

  1. Reciprocity — if A declares B, B must declare A; a one-way declaration is invalid.
  2. Self-inclusion — every page must declare its own language too; the most frequently skipped rule.
  3. Absolute address — a relative path is not accepted.
  4. Agreement with canonical — every language version must point canonically to itself.
  5. A real page — every declared address must exist; a link returning 404 breaks the set.

A note on implementation: the declaration can be made in the page head, in the sitemap or in an HTTP header, and all three are equivalent. Large sites prefer the sitemap, because the links gather in one file and can be audited from one place.

We audit a multilingual site’s hreflang cluster and canonicals as part of SEO consulting; if the site has to be built in the target market’s language from the start, our B2B websites service is designed for exactly that.

Multilingual

I

IndexNow is an open protocol that tells search engines immediately that a page has changed. Answer engines

INP (Interaction to Next Paint) is the time from a user interaction until the page responds visually, and Google counts anything under 200 milliseconds as good. Performance

J

JSON-LD (JavaScript Object Notation for Linked Data) is a structured data format that declares a page’s meaning in a machine-readable form without changing the page’s appearance at all. Answer engines

L

Language tag (BCP 47) A language tag is the standard coding form that tells machines which language a text is in. Multilingual

LCP (Largest Contentful Paint) is the paint time of the largest content element in a page’s visible area, and Google counts anything under 2.5 seconds as good. Performance

Live region A live region is an area of a page whose changes a screen reader has to announce to the user. Accessibility

llms.txt is an optional file placed in a website’s root directory that summarises, in Markdown, what the site is about and where its most important pages are for language models. Answer engines

Locale A locale is the setting that defines a user’s language and region together and determines the formatting rules. Multilingual

Localisation (Localization) is adapting content to the culture, habits and search language of a target market; it is a wider undertaking than translation. Multilingual

R

Reflow A reflow is the browser recomputing the positions and sizes of elements on a page after a change. Performance

Relative luminance is the value expressing a colour’s perceived lightness between 0 and 1, and it is the basis of the contrast ratio calculation. Accessibility

S

Screen reader A screen reader is assistive technology that turns on-screen content into speech or braille output and lets the user navigate by keyboard. Accessibility

Semantic HTML means choosing each element for its meaning rather than its appearance — a heading element for a heading, a button element for a button, a list element for a list. Accessibility

Structured data is an additional layer that labels a page’s content with a standard vocabulary machines can understand. Answer engines

T

Text expansion is the same content being of different lengths in different languages, and the layout having to flex accordingly. Multilingual

Translation memory A translation memory is a database that stores previously translated sentences and suggests them when the same or a similar sentence comes up again. Multilingual

TTFB (Time to First Byte) is the time between the browser sending a request and receiving the first byte from the server. Performance

W

WCAG (Web Content Accessibility Guidelines) is the international standard published by the W3C that defines the accessibility of web content through testable success criteria. Accessibility

X

x-default is a special hreflang value declaring the default page to show when no language version matches the user’s language. Multilingual

SOURCES