Skip to content
← All articles
9 min read

Duplicate pages and hreflang setup for RU/UZ site versions

Bilingual .uz sites generate duplicates from three sources at once: technical, linguistic and editorial. Here is each of them, plus the correct hreflang scheme.

Three sources of duplication

Technical duplicates: the same content reachable over http and https, with and without www, with and without a trailing slash, with and without index.php. Each pair is two identical URLs the engine must choose between on its own.

Parametric duplicates: sorts, filters, pagination, UTM tags. /catalog/ and /catalog/?utm_source=telegram are distinct URLs with identical content. These usually inflate discovered page counts several times over.

Linguistic pseudo-duplicates: Russian and Uzbek versions where the Uzbek one is machine-translated or only partly translated. Formally different languages, in practice near-identical documents, and the engine may keep only one.

How to find duplicates

First tool: a crawler. In Screaming Frog check the duplicate title, duplicate h1 and content-hash reports. Matching titles almost always indicate duplicates or pages that are too similar.

Second: Search Console's Page Indexing report with statuses 'Duplicate, Google chose different canonical than user' and 'Page with redirect'. The first directly shows where your canonical was overridden.

Third: Yandex.Webmaster's excluded pages section with the 'Duplicate' reason. Yandex consolidates more aggressively than Google and reports earlier, so it often surfaces the problem first.

Consolidation: canonicals, redirects and parameters

For technical duplicates the only correct fix is a server-level 301 to the chosen canonical form. Decide once — https, no www, trailing slash — and normalise every variant to it.

For parametric ones use rel=canonical to the clean URL plus Clean-param in robots.txt for Yandex. Remember that canonical is a hint, not a command, and Google may override it when page content genuinely differs.

For pagination the modern approach: every paginated page is self-canonical and indexable; Google no longer uses rel=next and rel=prev. Canonicalising page two to page one is a mistake that drops deep products from the index.

hreflang: a scheme for three languages

Every page of every language version must carry the full set of alternates, including a self-reference. For a Russian, Uzbek and English site that is four lines: three languages plus x-default.

Example on the Russian page: link rel="alternate" hreflang="ru" href="https://site.uz/ru/uslugi/", then the same with hreflang="uz" pointing at /uz/xizmatlar/, hreflang="en" pointing at /en/services/, and finally hreflang="x-default" on the version you treat as primary.

The key requirement is reciprocity. If the Russian page references the Uzbek one, the Uzbek page must reference the Russian one. Google discards one-way references and reports a missing return link in the international targeting report.

Uzbek-specific hreflang details

The language code uz covers Uzbek without specifying script. If you genuinely maintain Latin and Cyrillic versions, use uz-Latn and uz-Cyrl. These are valid BCP 47 values and Google supports them.

Do not invent codes such as uz-UZ-latin or uzlat: an invalid value causes the whole cluster to be ignored, not just one line. Validate the set through Search Console reports and third-party hreflang validators.

If you have a single Uzbek version, do not duplicate it under two script codes. One correct hreflang="uz" line works better than two competing entries pointing at the same URL.

What hreflang does not do

hreflang does not remove duplicates and does not replace canonical. It hints which language version to serve a given user, not which page takes priority. Both markups are needed simultaneously and do not conflict.

hreflang does not rescue machine translation. An unedited auto-translated Uzbek version remains a low-quality page regardless of markup and eventually drops out of the index.

hreflang does not affect ranking directly. It affects which of your URLs is shown, which indirectly improves engagement because the user lands on a version they can read on the first click.

Need a website or ads? Let’s discuss your project.