Canonical в OpenCart: как настроить правильно
Краткое описание задачи
Из практики. Недавно к нам пришёл клиент, у которого товар в трёх категориях дублировался в индексе — часть трафика уходила на страницы без canonical. Проверили — canonical не был настроен вообще. После добавления rel=canonical на основную категорию для каждого товара через месяц заметили: дублирующихся страниц в индексе стало меньше, а основной URL товара поднялся на 4–5 позиций. Мелочь, а влияет.
Как не надо. Ставить canonical на главную страницу для всех товаров сразу — некоторые CMS так умеют, и это ломает всю товарную выдачу. Каноникал всегда на конкретный товар, а не на категорию или главную.
Canonical (rel=canonical) — тег в head страницы, который говорит поисковику: «вот главная версия этого URL». В OpenCart проблема дублей особенно острая: один товар может быть доступен в пяти категориях, с разными параметрами сортировки и UTM-метками. Без canonical поисковик выбирает главную страницу случайным образом — часто не ту., но только если модули не кривые. А кривые — почти всегда.
Где в OpenCart нужен canonical
| Ситуация | Решение |
|---|---|
| Товар добавлен в несколько категорий | canonical на основную категорию |
| Сортировка (?sort=price&order=ASC) | canonical на URL без сортировки |
| Пагинация (/category?page=2) | canonical на себя (Page 2 → себя, Page 1 → себя) |
| UTM-метки (?utm_source=google) | canonical на чистый URL |
| Фильтры (/category?filter=red) | canonical на родительскую категорию |
Как canonical работает в OpenCart 3
В OpenCart 3+ canonical генерируется автоматически. Посмотрите в браузере: откройте HTML-код страницы товара, найдите <link rel="canonical" href="..." /> — там должен быть URL текущей страницы. Проблема: для товара в нескольких категориях OpenCart по умолчанию ставит canonical на текущий URL, то есть товар в категории «Обувь» и товар в категории «Кроссовки» — два разных canonical, а это два дубля.
Как исправить для товаров в нескольких категориях
Правильное решение — OCMOD-модификация, которая проверяет, если товар принадлежит нескольким категориям, ставить canonical на главную. Либо вручную через редактирование catalog/controller/product/product.php: определить основную категорию и подставить её URL в canonical.
Рекомендации из практики
Как лучше: Добавьте rel=canonical на страницы с дублирующимся контентом: товары с опциями, страницы сортировки, страницы фильтров. Канонический URL должен вести на основную версию страницы.
Как не делать: Не ставьте canonical на главную страницу магазина для всех страниц — это склеит весь сайт в один URL и убьёт индексацию.
Кейс из практики: Магазин электроники — 7 000 товаров, у каждого 3-4 опции (цвет, размер). Без canonical в индексе оказалось 30 000 страниц вместо 7 000. Настроили canonical на основные товары — Google проиндексировал только уникальные страницы. Трафик вырос на 25% за счёт правильного распределения веса.
По практике, canonical — ключевой инструмент борьбы с дублями в OpenCart. Закажите технический аудит: проверим SEO-структуру
Проверка canonical
- Откройте страницу товара, поищите rel=canonical в исходном коде.
- Проверьте в Яндекс.Вебмастере → Инструменты → Проверка URL.
- Используйте Screaming Frog или аналоги — он покажет все canonical на сайте.
Частые вопросы
Canonical и 301-редирект — в чём разница?
301-редирект принудительно перенаправляет пользователя и поисковик. canonical — подсказка, которую поисковик может проигнорировать. Для переезда страницы — 301. Для дублей — canonical.
Может ли canonical навредить?
Да, если указан неверно. Например, canonical на главную для всех товаров — и все страницы товаров пропадут из поиска. Ставьте canonical на реальную главную версию каждой страницы.
Сколько времени нужно, чтобы canonical сработал?
От нескольких дней до нескольких недель. Поисковик должен переобойти страницы и увидеть новый тег. Не ждите мгновенного эффекта.
Я занимаюсь разработкой на OpenCart с 2009 года, запустил больше 150 проектов. Через мои руки прошли магазины от маленьких витрин до каталогов на 50 000 товаров. Знаю CMS вдоль и поперёк: slow-логи MySQL, конфликты OCMOD-модификаторов, грабли с SEO URL. Если у вас есть вопрос — пишите, подскажу.
Итог
Canonical — обязательный элемент SEO для OpenCart. Без него дубли неизбежны. Проверьте, что canonical стоит на каждой странице и указывает на правильный URL.
Комментарии (0)
Пока нет комментариев. Будьте первым!
Оставить комментарий