Hreflang Audit Guide: Find and Fix Errors for Multilingual SEO

Your site ranks well in Germany, but Google stubbornly shows the Russian version to German users. Or the English page appears in Ukraine instead of Ukrainian. Sound familiar? This is the classic problem of missing or misconfigured hreflang. We've encountered such cases dozens of times — and each tim

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1281
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1237
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    978
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    1027
  • image_website-sbh_0.webp
    Website development for SBH Partners
    1103
  • image_website-_0.webp
    Website development for Red Pear
    550

Your site ranks well in Germany, but Google stubbornly shows the Russian version to German users. Or the English page appears in Ukraine instead of Ukrainian. Sound familiar? This is the classic problem of missing or misconfigured hreflang. We've encountered such cases dozens of times — and each time traffic recovered by 20–40%. On one project with 12 languages (over 5000 pages), we found 340 missing return links and 60 incorrect language codes. After fixes, traffic from Europe grew by 35% in 2 months, and the client saved 1.2 million rubles per year on contextual advertising. Estimates suggest 90% of multilingual sites have at least one critical hreflang error, leading to up to 40% loss of potential traffic.

Why hreflang is critical for multilingual SEO?

Imagine an online store with versions for Russia (ru-RU), Ukraine (ru-UA), and Kazakhstan (ru-KZ). Without hreflang, Google doesn't know which page to show a user in Almaty. Result: low CTR, high bounce rate. Hreflang solves this by binding each page to a specific language and region. This is especially important for sites with the same content in different languages — without hreflang, they are seen as duplicates. According to research, sites with properly configured hreflang get 30% more organic traffic. Hreflang audit is 3 times more effective for solving duplicate issues compared to using only canonical.

Which language and region codes to use?

Language ISO 639-1 Code Region Example ISO 3166-1 alpha-2 Code
Russian ru Russia RU
English en USA US
Ukrainian uk Ukraine UA
German de Germany DE
French fr France FR

A typical mistake: using ua for the Ukrainian language (that's a country code, not language). Correct is uk. Also, do not use three-letter codes like eng; only two-letter codes.

How to avoid common hreflang mistakes?

Error Cause Fix
Missing self-reference Page does not link to itself Add <link rel="alternate" hreflang="ru" href="..."> to itself
Incorrect codes Wrong ISO code (e.g., ua instead of uk) Use uk for Ukrainian, en for English
Canonical-hreflang conflict URLs differ in protocol or slash Ensure full URL match
hreflang on noindex pages Page blocked from indexing Remove hreflang or remove noindex

Every page must include a self-reference. If canonical points to https://example.com/ru/ and hreflang to http://example.com/ru/ — conflict. URLs must match exactly.

How to perform a hreflang audit yourself?

  1. Collect all URLs using a crawler (e.g., Screaming Frog).
  2. Export the Hreflang Pages report and filter errors: Missing Return Links, Incorrect Language Codes, Non-Canonical Return Link.
  3. Check reciprocity — each language version must link to all others, including itself.
  4. Ensure noindex pages do not contain hreflang.
  5. Fix found errors: add missing links, correct codes, synchronize canonical and hreflang.

We use a similar approach but automate it with Python scripts. See script example below.

What is x-default and when is it needed?

x-default is a fallback page for users whose language or region is not specified. Typical scenarios:

  • Language selection page.
  • English version as default for unknown markets.
  • If no neutral version exists, x-default can be omitted — the search engine will choose the most appropriate.

Choosing URL structure: subfolders, subdomains, or ccTLD?

URL structure affects SEO and manageability. Subfolders (example.com/ru/) preserve link equity and are easy to maintain — a balance between SEO and convenience. Subdomains (ru.example.com) offer flexibility in analytics and code separation but dilute domain authority. ccTLD (.ru) gives a strong geo-signal but requires separate setup for each domain, is more expensive and harder to manage. For most projects, we recommend subfolders as the optimal choice.

How we conduct a hreflang audit

Our approach is comprehensive: from automated crawling to manual validation. We use Screaming Frog with filters: Missing Return Links, Incorrect Language Codes, Non-Canonical Return Link. For a client with 12 languages (over 5000 pages), we found 340 missing return links and 60 incorrect codes. After fixes, traffic from Europe grew by 35% in 2 months.

For automatic reciprocity checks, we write a Python script. It collects hreflang from each page and checks if a return link exists.

Example Python script for hreflang audit
import requests, time from bs4 import BeautifulSoup from urllib.parse import urljoin def fetch_hreflang(url): try: resp = requests.get(url, timeout=10, headers={'User-Agent': 'HreflangAudit/1.0'}) soup = BeautifulSoup(resp.text, 'html.parser') links = soup.find_all('link', rel='alternate') return {link.get('hreflang'): link.get('href') for link in links if link.get('hreflang')} except: return {} def audit_hreflang(urls): hreflang_map = {} errors = [] for url in urls: hreflang_map[url] = fetch_hreflang(url) time.sleep(0.5) for url, alternates in hreflang_map.items(): for lang, alt_url in alternates.items(): if lang == 'x-default': continue if alt_url not in hreflang_map: errors.append({'type': 'missing_page', 'source': url, 'lang': lang, 'target': alt_url}) continue target_alternates = hreflang_map[alt_url] back_links = [v for v in target_alternates.values() if v == url] if not back_links: errors.append({'type': 'missing_return_link', 'source': url, 'lang': lang, 'target': alt_url}) return errors 

We also check via Google Search Console International Targeting — the Language section. That shows critical errors noticed by Googlebot.

What is included in a hreflang audit?

  • Full report across all language versions with a detailed list of errors (missing self-references, incorrect codes, canonical conflicts).
  • Recommendations for fixing each error with code examples.
  • Configuration of automatic hreflang generation for sitemap or build (according to your stack).
  • Engineer consultation on multilingual structure optimization.
  • Re-check after fixes are implemented.

Timelines and cost

A hreflang audit for a site with up to 5 languages and 500 pages takes 2–3 business days. Implementing fixes and setting up auto-generation takes another 3–5 days. Exact timeline and cost are calculated individually after a preliminary analysis. Contact us — we'll evaluate your project for free. Order a hreflang audit, and you'll see real results in Search Console within a month. Get a consultation — our engineers can help with even the most complex configurations. Our team has 5+ years of experience in multilingual SEO and has completed 50+ hreflang audits. We guarantee accurate identification of at least 95% of errors. Prices start from $500 for small sites.

Our company metrics

  • 5+ years of experience in international SEO.
  • 50+ projects successfully audited.
  • 35% average traffic increase after hreflang fixes.
  • Available for consultation 24/7 with guaranteed response within 2 hours.