Software & SaaS
Setting up multilingual SEO with hreflang
A site serving several languages needs clear signals about which page belongs to which audience. This guide walks through a practical hreflang setup, with one worked example, for any international search or directory project.
01
Step one: map languages and regions
Start with a table of the audiences you intend to serve. Decide whether each version targets a language only, such as Spanish, or a language and region, such as Spanish for Mexico. Assign each version one stable address pattern, like a subfolder per locale. In the worked example, a directory offers English for the United States, English for the United Kingdom, Spanish for Spain and German for Germany. That gives four versions, plus a default for unmatched visitors. Resist adding a locale you cannot maintain, because a thin or machine-only copy tends to cause more confusion than it solves for readers and search engines.
02
Step two: add reciprocal annotations
Every version must reference every other version, including itself. For the example page about freight suppliers, the English US page lists alternates for en-us, en-gb, es-es and de-de, plus an x-default pointing to the language selector or main English page. Each of the other three pages carries the identical set. The common failure is one-way linking, where page A names page B but B does not return the reference, so the relationship is ignored. You can place annotations in the head of the page, in HTTP headers, or in the sitemap, but choose one method and keep it consistent.
03
Step three: verify and maintain
After publishing, crawl the site and check that language codes are valid, addresses resolve without redirects, and each page returns its full set of alternates. In the example, confirm the German page does not claim to be English and that canonical tags point to the page itself rather than to the English original. Then review the search console reports for annotation errors after a few weeks. Set a recurring task so every new page ships with its alternates, and removed pages are dropped from every sibling. Translate content properly, because correct tags cannot rescue copy that readers find unusable.