Google может проигнорировать ваш canonical и выбрать другую страницу как каноническую. Это не баг — Google рассматривает rel="canonical" как рекомендацию, а не директиву.
Почему Google игнорирует canonical
- Контент сильно отличается: canonical между страницами с разным содержимым — некорректное использование
- Внутренние ссылки противоречат: вы указали canonical на страницу A, но 90% внутренних ссылок ведут на страницу B
- Sitemap.xml: в карте сайта указана другая версия URL
- HTTPS/HTTP или www/non-www: конфликт между редиректами и canonical
- Hreflang конфликт: canonical указывает на одну страницу, hreflang — на другую
Как исправить
1. Проверьте в GSC: Инструмент проверки URL → «Канонический URL, выбранный Google». Сравните с вашим.
2. Устраните конфликты:
- Все внутренние ссылки должны вести на каноническую версию
- Sitemap.xml должен содержать только канонические URL
- 301-редиректы должны вести на каноническую версию
- Hreflang-теги должны ссылаться на канонические URL
3. Пересканируйте: после исправлений запросите переиндексацию через GSC.
Если всё настроено правильно, а Google упорно выбирает другой canonical — возможно, он прав. Проверьте, не является ли выбранная Google версия действительно более релевантной.
Чтобы исправить ситуацию, сначала проверьте конфликты через Google Search Console (отчет «URL-адреса, не относящиеся к каноническим»). Если Google выбрал не ту страницу, убедитесь, что:
- Указанный canonical URL доступен без редиректов и возвращает код 200
- Контент на обеих страницах идентичен или очень близок (используйте diff-инструменты типа Screaming Frog)
- Все внутренние ссылки ведут на предпочитаемый canonical URL
Дополнительно: принудительно переиндексируйте нужный URL через GSC, добавьте явный 301-редирект, если контроль критичен. Для hreflang-конфликтов используйте инструменты типа Sitebulb. Помните — Google может снова переопределить canonical, если сочтет вашу разметку противоречивой или неоптимальной для пользователей.