Как настроить ЧПУ в OpenCart без дублей страниц
Краткое описание задачи
ЧПУ (человеко-понятные URL) — обязательное условие для SEO интернет-магазина. Вместо /index.php?route=product/product&product_id=123 должно быть /krasnye-krossovki. Но при включении ЧПУ в OpenCart важно избежать дублей: старые URL с параметрами и новые ЧПУ-адреса не должны конкурировать в поиске.
Включение ЧПУ в OpenCart
- Переименуйте htaccess.txt в .htaccess в корне сайта. Без этого ЧПУ не будут работать.
- Админка → Система → Настройки → вкладка Сервер — включите «SEO URL».
- Заполните SEO URL для категорий и товаров — OpenCart позволяет задать произвольный alias для каждой страницы. Если не заполнять, slug будет сгенерирован из названия.
Проблема: старые URL продолжают работать
После включения ЧПУ старый URL /index.php?route=product/product&product_id=123 никуда не исчезает. Он продолжает открываться. Получается два URL на один товар: /krasnye-krossovki и /index.php?route=product/product&product_id=123 — классический дубль.
Решение
OpenCart 3 по умолчанию ставит canonical на ЧПУ-версию. Проверьте это: откройте старый URL, посмотрите rel=canonical в head — он должен указывать на /krasnye-krossovki. Если canonical не стоит — добавьте через OCMOD.
Что входит в технический аудит OpenCart?
Подробный разбор — в этом разделе.
Настройка единого зеркала
Дополнительная проблема: сайт может быть доступен по четырём адресам одновременно (http/https, с www/без www). Всё это — дубли.
# В .htaccess: редирект на https и без www
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Рекомендации из практики
Как лучше: Включайте ЧПУ строго в порядке: сначала настройка .htaccess, потом включение в админке, потом генерация всех URL. Нарушение порядка ведёт к дублям.
Как не делать: Не меняйте структуру URL после индексации страниц поисковиками. Если нужно изменить — настройте 301 редирект со старого URL на новый.
Кейс из практики: Магазин включил ЧПУ через модуль, не отключив старые URL вида ?route=product/category. В индексе оказалось 3 000 дублей. Решение: отключили старые URL через .htaccess, настроили canonical. Через месяц Google снял дубли.
По практике, ЧПУ работают корректно только при правильной последовательности настройки. Закажите технический аудит: проверим SEO-структуру
Что входит в технический аудит OpenCart?
Подробный разбор — в этом разделе.
Проверка после настройки
- Откройте товар по ЧПУ — должен открываться без переадресации.
- Откройте товар по старому URL с параметрами — должен редиректить или иметь canonical на ЧПУ.
- Проверьте http:// и https:// — должен быть редирект на HTTPS.
- Проверьте www и без www — должен быть редирект на выбранное зеркало.
Частые вопросы
Можно ли изменить slug товара после того, как он проиндексирован?
Можно, но обязательно настройте 301-редирект со старого slug на новый. Иначе поисковик увидит 404, и товар выпадет из индекса.
ЧПУ на русском — это нормально?
Да, поисковики нормально обрабатывают русские символы в URL. Но на практике их часто транслитерируют — /krasnye-krossovki вместо /красные-кроссовки. Это проще для копирования и вставки.
Я занимаюсь разработкой на OpenCart с 2009 года, запустил больше 150 проектов. Через мои руки прошли магазины от маленьких витрин до каталогов на 50 000 товаров. Знаю CMS вдоль и поперёк: slow-логи MySQL, конфликты OCMOD-модификаторов, грабли с SEO URL. Если у вас есть вопрос — пишите, подскажу.
Итог
ЧПУ + единое зеркало + canonical = чистые URL без дублей. После включения проверьте, что старые URL не конкурируют с новыми.
Из практики. При настройке ЧПУ в OpenCart типичная ошибка — забывают включить mod_rewrite в настройках OpenCart и прописать правила в .htaccess. На одном проекте клиент настроил SEO URL, но страницы товаров открывались с 404 — оказалось, опция «Use SEO URLs» в админке не была включена. После включения и создания .htaccess с RewriteRule всё заработало.
Как не надо. Не копируйте готовые решения из интернета без проверки совместимости с вашей версией OpenCart и установленными модулями. То, что сработало у другого владельца магазина, может сломать ваш сайт — особенно если у вас нестандартная сборка. Всегда делайте бэкап перед любыми изменениями.
Антон Баринов — разработчик интернет-магазинов на OpenCart с 2009 года, основатель opencart-cms.ru.
Комментарии (0)
Пока нет комментариев. Будьте первым!
Оставить комментарий