Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Блог Вопросы и ответы Создать URL
Инструкция

ЧПУ в OpenCart: включение SEO URL и типовые проблемы

В OpenCart человекопонятные адреса включаются одной настройкой, но без заполненных полей у товаров и категорий система продолжит отдавать технические адреса с параметрами.

Шаг 1. Включить SEO URL

Настройка находится в панели администратора: «Система» → «Настройки» → редактирование магазина → вкладка «Сервер» → параметр «Использовать SEO URL». До его включения адреса выглядят так:

index.php?route=product/category&path=20
index.php?route=product/product&product_id=42

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

Шаг 2. Проверить .htaccess

В корне магазина должен лежать файл .htaccess. В дистрибутиве он поставляется под именем .htaccess.txt, и его нужно переименовать — про это забывают чаще всего.

Признак проблемы: SEO URL включён, поля заполнены, но все страницы, кроме главной, отдают ошибку 404. Значит, правила переписывания адресов не работают.

Шаг 3. Заполнить поля seo keyword

Текстовый идентификатор задаётся отдельно для каждой сущности во вкладке SEO.

СущностьГде заполняетсяПример
КатегорияКаталог → Категории → SEOdivany
ТоварКаталог → Товары → SEOdivan-milano-2
ПроизводительКаталог → Производителиikea
Информационная страницаКаталог → Статьиdostavka-i-oplata

Значения должны быть уникальными по всей базе: система хранит их в общей таблице, и совпадение приведёт к ошибке при сохранении или к открытию не той страницы.

Массовое заполнение. Для каталога на тысячу товаров заполнять поля вручную нереально. Выгрузите названия в таблицу, прогоните список через пакетный режим генератора и загрузите обратно через модуль импорта или запросом к базе.

Откуда берутся дубли

OpenCart известен несколькими источниками дублей, и большинство из них связано именно с адресами.

  • Товар доступен по нескольким путям — напрямую и через категорию. Решается каноническим адресом, о котором подробно в статье про rel=canonical.
  • Параметры сортировки и лимита создают адреса вида ?sort=p.price&limit=100.
  • Пути через разные категории — один товар в трёх разделах даёт три адреса.
  • Технический адрес остаётся доступным после включения SEO URL, если не настроено перенаправление.

Первое, что стоит проверить после включения ЧПУ: открывается ли ещё старый адрес с параметрами. Если да — нужен 301-редирект.

Правила именования

  1. Только латиница, цифры и дефис. Подчёркивания и точки не используйте.
  2. Нижний регистр — заглавные буквы дадут вторую версию адреса.
  3. Три-пять слов: divan-milano-2, а не divan-uglovoj-milano-2-seryj-rogozhka.
  4. Никаких слэшей внутри поля — иерархию строит система.
  5. Артикул добавляйте только если названия товаров повторяются.

Что проверить после настройки

  • Откройте три товара из разных категорий — адреса читаемые и разные.
  • Старый адрес с index.php?route= отдаёт 301, а не 200.
  • Категории второго и третьего уровня открываются с полным путём.
  • Товары без заполненного поля — найдите их выборкой по базе и заполните.
  • Карта сайта содержит только новые адреса.

Общая схема, по которой стоит выстраивать адреса каталога, разобрана в материале про структуру URL интернет-магазина.

Отличия версий

Поведение SEO URL заметно менялось от версии к версии, и советы из старых инструкций могут не подойти.

  • Версии 1.5.x. Поле называлось «SEO keyword» и было единственным на товар, без привязки к магазину.
  • Версии 2.x. Появилась поддержка нескольких магазинов, ключевые слова хранятся в отдельной таблице.
  • Версии 3.x. Ключ хранится вместе с типом сущности, поэтому одно и то же слово можно использовать для товара и категории — но лучше этого не делать.

Перед настройкой посмотрите версию магазина в подвале панели администратора: расположение полей и поведение системы зависят именно от неё.

Многоязычные магазины

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

Для продвижения обеих версий нужен либо модуль многоязычных адресов, либо разделение по папкам на уровне сервера — общие подходы описаны в материале про структуру URL интернет-магазина.

Частые вопросы

Включил SEO URL, но адреса не изменились. Почему?

Скорее всего, не заполнены поля seo keyword у категорий и товаров. Без них система не может построить читаемый адрес и оставляет технический.

Все страницы кроме главной отдают 404 — что делать?

Проверьте, что файл .htaccess лежит в корне магазина. В дистрибутиве он поставляется с расширением .txt, и его нужно переименовать.

Можно ли заполнить поля массово?

Да, через модуль импорта или прямым запросом к базе. Список адресов удобно подготовить пакетным режимом генератора из выгрузки названий.

Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.

Читайте также