Руководства

Duplicate without user-selected canonical: как найти и починить проблему в Search Console

Duplicate without user-selected canonical: как найти и починить проблему в Search Console
Содержание

Статус Duplicate without user-selected canonical в отчёте «Индексирование страниц» Google Search Console означает: робот нашёл группу страниц с одинаковым или почти одинаковым контентом, а владелец сайта не указал, какая из них главная. Google выбрал канонический адрес сам — и не обязательно тот, который нужен вам. Это не «ошибка» в смысле бага, а сигнал, что управление индексацией страницы вы отдали алгоритму.

Три типичных сценария, из‑за которых появляется статус

Сценарий 1 — параметры в URL. Карточка товара доступна как /tovar/kroski/ и как /tovar/kroski/?utm_source=yandex&color=red. Тега canonical нет или он скопирован без учёта параметров. Google индексирует один из вариантов на своё усмотрение, часто — тот, на который ведёт больше внутренних ссылок, а не «чистый» URL.

Сценарий 2 — категории с вложенностью. Один и тот же товар лежит по короткой ссылке /product/123/ и по длинной /catalog/instrumenty/perforatory/product/123/. Без явной канонизации робот может закрепить именно длинный путь, потому что на него ссылается больше страниц каталога. Подробнее о том, когда такая ситуация нормальна, а когда — ошибка, читайте в статье Alternate page with proper canonical: когда это норма, а когда — ошибка .

Сценарий 3 — HTTP/HTTPS или www/без www дубли живы годами. После переезда на HTTPS старые внутренние ссылки на HTTP не поправили — часть страниц долго существовала в обеих версиях, и Google «запомнил» старую как каноническую, даже если сейчас 301 настроен верно.

Проверить, какой из сценариев ваш, быстрее всего массовой выгрузкой статусов индексации по всему списку страниц сайта — руками через Search Console это долго, если дублей сотни. Для этого удобен Rush Analytics: загружаете список URL, получаете отчёт, какие страницы Google считает дублями и куда указывает canonical у каждой — сразу видно масштаб проблемы, а не по одной странице за раз.

По темеПочему Google не индексирует страницу: диагностика по статусам Search Console

По каким сигналам Google выбирает канонический URL без вас

Когда тег rel="canonical" отсутствует или противоречив, решение принимается по весу нескольких факторов одновременно:

  1. Внутренняя перелинковка — самый сильный сигнал. Если 90 % ссылок с сайта ведут на страницу Б, а вы хотите канонической страницу А, Google в большинстве случаев выберет Б.
  2. Sitemap.xml — если в карте сайта указан один URL, а по факту в структуре чаще встречается другой, возникает конфликт, который снижает доверие к вашим сигналам вообще.
  3. Hreflang — для мультиязычных сайтов канонизация завязана на языковые версии; ошибка здесь ломает выбор адреса сразу в нескольких локалях.
  4. Протокол и домен — HTTPS обычно приоритетнее HTTP, версия без www часто приоритетнее версии с www (зависит от истории домена).
  5. Возраст и история страницы — более старая копия с внешними ссылками и поведенческими метриками обычно побеждает свежесозданный дубль, даже если по логике бизнеса каноническим должен быть новый URL.

Если директивы не выставлены явно, Google тратит краулинговый бюджет на обход лишних копий — это прямо замедляет индексацию нового контента на сайте, особенно с большим количеством страниц.

Пошаговая диагностика через URL Inspection

  1. Search Console → Проверка URL → вставьте адрес, у которого стоит статус Duplicate without user-selected canonical.
  2. Разверните блок «Индексирование страниц».
  3. Смотрите два поля:
    • User-declared canonical — если там «None», тег вообще не найден на странице.
    • Google-selected canonical — какой адрес Google выбрал фактически.

Пример разбора. Страница висит в этом статусе три недели, User-declared = None, Google-selected указывает на версию с ?sort=price_asc. Вывод: тега canonical нет физически, а Google закрепил параметрическую версию, потому что на неё чаще ссылаются фильтры каталога. Действие: добавить самоканонизирующийся тег на все версии карточки, ссылающийся на URL без параметров, и почистить внутренние ссылки на фильтрованные версии.

Ловушка с JS‑рендерингом. Если сайт на React/Vue и canonical добавляется через JavaScript после загрузки — сначала сделайте Ctrl+U (просмотр исходного кода, а не DevTools) и проверьте, есть ли тег в сыром HTML <head>. Если тега там нет, а в DevTools он появляется после рендера — Googlebot при первом проходе может его не увидеть. Проверить, что реально видит поисковый робот, можно инструментом URL Inspection → «Просмотреть просканированную страницу» → вкладка HTML. Если хотите подробнее узнать, почему Google просканировал страницу, но не проиндексировал её, см. материал Google просканировал страницу, но не проиндексировал: пошаговый разбор статуса «Crawled - currently not indexed» .

Для быстрой технической проверки одной конкретной страницы — canonical, статус ответа, заголовки, robots — не обязательно открывать десяток вкладок: экспресс‑анализ через PR‑CY за один прогон покажет технические параметры страницы, включая канонический тег и его корректность.

Как чинить: конкретные шаги

1. Проставить rel=“canonical” правильно

Тег должен быть абсолютным URL с протоколом: <link rel="canonical" href="https://example.com/tovar/kroski/">. Относительные пути (href="/tovar/kroski/") Google иногда интерпретирует некорректно на сайтах со сложной структурой поддоменов — используйте только полный адрес. Каждая страница должна ссылаться сама на себя (самоканонизация) — это гасит проблему с UTM‑метками и сессионными параметрами на старте.

2. Проверить командой curl, что сервер отдаёт правильный код

curl -IL https://example.com/tovar/kroski/?color=red — посмотрите на цепочку редиректов. Если вместо canonical‑тега страница должна отдавать 301 на чистый URL, а вместо этого отдаёт 200 — это и есть источник дубля.

3. Синхронить sitemap.xml

В карте сайта должны быть только канонические адреса, без параметрических версий и без страниц, которые сами ссылаются на другую страницу как на каноническую. Расхождение между sitemap и тегом в HTML — частая причина, по которой Google вообще перестаёт доверять canonical на сайте.

4. Массово поправить внутренние ссылки

Замените ссылки в меню, фильтрах, футере и хлебных крошках так, чтобы они вели сразу на канонический URL, а не на дубль с последующим редиректом. Цепочки редиректов (страница А → Б → В) размывают вес и путают краулер. Если хотите подробнее о том, как подобные проблемы влияют на индексацию, посмотрите материал Похожие страницы плохо индексируются: как это выявить и починить . Для более глубокой диагностики, когда страница не попадает в индекс, обратитесь к статье Почему страница не попала в индекс: диагностика по шагам, а не наугад .

5. Настроить 301 там, где дубль не нужен вообще

Если версия страницы не несёт ценности пользователю (опечатки в URL, старые категории после реструктуризации каталога) — не canonical, а прямой 301‑редирект на целевую страницу. Canonical говорит «есть выбор, вот мой», 301 говорит «выбора больше нет».

После правки canonical, sitemap и внутренних ссылок не обязательно ждать, пока Google переобойдёт страницу естественным путём — особенно если у вас много исправленных URL одновременно. Отправить пачку исправленных адресов на ускоренную переиндексацию можно через индексатор SpeedyIndex — это быстрее подтверждает в Search Console, что новый сигнал принят.

Чек‑лист по симптомам

Что видите в GSCВероятная причинаЧто делать
User‑declared = NoneТега canonical нет физически на страницеДобавить самоканонизирующийся тег
User‑declared ≠ Google‑selectedВнутренние ссылки/sitemap перевешивают ваш тегСинхронизировать sitemap и перелинковку
Canonical есть в DevTools, но не в исходном кодеТег добавлен через JS после рендераРендерить canonical на сервере (SSR)
Canonical указывает на страницу с 404/редиректомОшибка в тегеИсправить на живой абсолютный URL
Статус висит 3+ недели без измененийGoogle не доверяет сигналам сайтаПроверить конфликт sitemap/ссылок, дождаться переобхода

Частые ошибки

Закрывать дубли через robots.txt. Disallow запрещает сканирование, но не убирает URL из индекса и не даёт Google увидеть тег canonical на закрытой странице — в итоге в поиске может висеть пустой сниппет без описания. Для склейки дублей используйте canonical или 301, а не robots.txt.

Ставить noindex вместо canonical. Noindex убирает страницу из выдачи, но не передаёт её вес основной версии. Если задача — консолидировать сигналы на одной странице, а не просто спрятать дубль, нужен именно canonical или 301.

Указывать разные канонические адреса в разных источниках. Один URL в теге <head>, другой — в sitemap. Google в такой ситуации чаще всего игнорирует оба сигнала и выбирает адрес сам — это и приводит к статусу Duplicate without user‑selected canonical.

Путать hreflang и canonical на мультиязычных сайтах. Каждая языковая версия должна иметь canonical на саму себя, а не на главную версию сайта на другом языке — иначе региональные страницы будут выпадать из индекса пачками.

Регулярно проверяйте отчёт «Индексирование страниц» в Search Console — для сайтов с автоматически генерируемыми страницами (фильтры каталога, пагинация, теги) число некорректно определённых дублей может расти незаметно и достигать тысяч страниц за пару месяцев.

Связанные термины