SEO для двуязычного сайта: русский и узбекский без дублей контента
Двуязычный сайт на русском и узбекском не считается дублем контента для Google при правильной технической настройке — hreflang и канонические теги должны работать вместе, а не подменять друг друга. Ошибка в связке этих двух элементов — самая частая причина, по которой один язык выпадает из индекса.
Структура URL: префиксы, а не параметры
Для рынка Узбекистана рабочий вариант — подпапки с языковым префиксом: site.uz/ru/uslugi и site.uz/uz/xizmatlar. Такая структура понятна и Google, и пользователю, легко масштабируется на третий язык (английский) и не требует поддомена или отдельного домена, что упрощает управление ссылочным весом — вся авторитетность остаётся на одном домене.
Избегайте передачи языка через GET-параметр (site.uz/uslugi?lang=uz) — Google хуже работает с такой схемой, параметр легко теряется при шаринге ссылки, а разметка hreflang с параметрами исторически даёт больше ошибок в Search Console.
URL-слаг тоже стоит переводить, а не транслитерировать один в один: /uz/xizmatlar читается и ранжируется по узбекским запросам лучше, чем /uz/uslugi, скопированный из русской версии. Это отдельная работа при запуске второго языка, но она напрямую влияет на релевантность.
hreflang: как связать версии без ошибок
Тег hreflang в <head> каждой страницы должен перечислять все языковые версии, включая саму себя (self-referencing hreflang) — это частый источник ошибок: разработчики иногда забывают добавить ссылку страницы на саму себя в списке hreflang, и Google получает неполный набор.
Пример корректного блока для страницы услуги: <link rel="alternate" hreflang="ru" href="https://site.uz/ru/uslugi/remont" />, <link rel="alternate" hreflang="uz" href="https://site.uz/uz/xizmatlar/tamir" />, <link rel="alternate" hreflang="x-default" href="https://site.uz/ru/uslugi/remont" />. Значение x-default указывает версию по умолчанию для пользователей, чей язык не совпал ни с одним вариантом — обычно это доминирующий по трафику язык, для большинства сайтов в Ташкенте это русский.
hreflang должен быть взаимным: если русская страница ссылается на узбекскую через hreflang, узбекская обязана ссылаться обратно на русскую. Одностороннюю связь Google в лучшем случае игнорирует, а в отчёте покрытия или в разделе международного таргетинга это фиксируется как ошибка неподтверждённой связи.
Канонические теги: не конфликтовать с hreflang
Каждая языковая версия должна иметь self-referencing canonical — canonical русской страницы указывает на саму себя, canonical узбекской версии указывает на саму себя. Частая ошибка — ставить canonical всех языковых версий на русскую страницу, как будто узбекская является дублем: это прямо противоречит логике hreflang и заставляет Google выбрасывать узбекскую версию из индекса, считая её вторичной копией.
hreflang и canonical решают разные задачи и не заменяют друг друга: canonical говорит «вот единственно правильная версия этой конкретной страницы», hreflang говорит «вот альтернативные версии для других языков и регионов». Когда canonical и hreflang противоречат друг другу на одной странице, Google в документации явно предупреждает, что может проигнорировать hreflang целиком.
Дубли контента: когда они реальны, а когда нет
Полностью переведённый контент на двух языках не считается дублем в понимании Google — dublicate content определяется на уровне языка и локали, а не только текстовой структуры. Проблема возникает не из перевода, а из технических огрехов: одинаковый title на обеих версиях, забытый hreflang, одна и та же картинка с одинаковым alt-текстом на двух языках без перевода.
Реальный риск дублей — это версии с частичным переводом: часть блоков переведена, часть оставлена на русском внутри узбекской страницы. Google в такой ситуации иногда не может уверенно определить язык страницы, и это размывает релевантность по обоим языкам сразу, а не только по узбекскому.
Ещё один источник дублей — автоматически сгенерированные версии без реального перевода, когда узбекский текст — это машинный перевод без редактуры. Формально дублем это не считается технически, но по качеству контента такая страница проигрывает конкурентам с живым переводом, и Google это отражает в ранжировании через сигналы качества контента.
Sitemap и Search Console для двух языков
Разумная практика — либо один общий sitemap.xml с URL обеих языковых версий и корректной hreflang-разметкой внутри самого sitemap через тег xhtml:link, либо два отдельных файла sitemap-ru.xml и sitemap-uz.xml, объединённых в sitemap-index.xml. Второй вариант проще отлаживать по отдельности, если с одним языком возникают проблемы индексации.
В Google Search Console оба языковых раздела попадают в один и тот же ресурс уровня домена, если используется структура подпапок — отдельно подтверждать права на каждый языковой раздел не нужно. Но для отчёта «Эффективность» полезно фильтровать по префиксу URL /ru/ и /uz/ отдельно, чтобы видеть реальную динамику каждого языка, а не смешанную сумму.
После запуска второго языка первые 4-6 недель стоит следить за отчётом покрытия отдельно по узбекским URL — если Google массово помечает их статусом «Дубликат, канонический URL не выбран пользователем», это почти всегда означает ошибку в связке canonical и hreflang, разобранную выше, а не проблему с самим контентом.