SEO-ссылки в OpenCart: настройка на живом примере
Показываем на магазине с каталогом одежды, как заменить ссылки OpenCart с параметрами на человекочитаемые URL, не получить 404 и не создать дубли страниц.

В магазине на OpenCart 3.0.3.8 ссылка вида index.php?route=product/product&product_id=42 может быть заменена на /kurtka-zimnyaya/ примерно за 30–60 минут. Но одного переключателя в админке недостаточно: нужны уникальные SEO-ключи для товаров и категорий, корректное правило перенаправления веб-сервера и проверка старых адресов.
Что настраиваем на примере
Возьмём каталог одежды с категорией «Куртки» и товаром «Зимняя куртка Nord». До настройки магазин открывает товар по адресу /index.php?route=product/product&product_id=42. После настройки нужен адрес /kurtki/zimnyaya-kurtka-nord/.
Материал написан для OpenCart 3.0.3.8 с веб-сервером Apache и стандартной темой. В OpenCart 4 названия разделов и механизм SEO URL могут отличаться. Если у вас Nginx, файл .htaccess не обрабатывается — правило нужно проверять в конфигурации Nginx, а не копировать вслепую.
SEO-ссылка — это не просто красивый текст в адресной строке. Она должна стабильно вести на одну страницу, не пересекаться с другими ключами и переживать смену шаблона.
Что понадобится до начала
- доступ администратора к OpenCart;
- доступ к файлам сайта по SFTP, FTP или через панель хостинга;
- понимание, работает ли сайт на Apache или Nginx;
- резервная копия файлов и базы данных перед изменениями;
- список текущих URL, которые уже попали в поиск или используются в рекламе.
Сноска. SEO URL, или ЧПУ, — человекочитаемый адрес страницы. В OpenCart его значение обычно хранится как keyword и связывается с конкретным маршрутом, например товаром или категорией.
Подходы: какой вариант выбрать
В OpenCart можно включить штатную поддержку SEO URL, прописать адреса вручную для каждого объекта или установить расширение. У вариантов разная цена ошибки: встроенный механизм проще контролировать, а расширение может добавить автоматическую генерацию, но внесёт дополнительный код и зависимость от версии движка.
| Подход | Что получаете | Цена и риск | Когда выбирать |
|---|---|---|---|
| Штатные SEO URL | Ручные ключи для товаров, категорий и информационных страниц | Нужно самостоятельно следить за уникальностью и переименованиями | Небольшой или средний каталог, OpenCart 3 без сложной миграции |
| Расширение для SEO | Шаблоны, массовая генерация, дополнительные перенаправления | Платная установка или обновление, риск конфликта с темой и другими модификациями | Большой каталог и регулярное добавление товаров |
| Изменение ядра | Полный контроль над логикой URL | Сложные обновления и высокая вероятность поломки маршрутизации | Только при подтверждённой необходимости и тестах |
Для живого примера выбираем штатный механизм OpenCart 3.0.3.8. Инвалидация старых URL и миграция адресов — отдельная задача: здесь разбираем включение и проверку новых ссылок.
Шаг 1. Включите SEO URL в настройках магазина
Откройте в админке System → Settings, нажмите Edit напротив нужного магазина и перейдите на вкладку Server. В поле SEO URL выберите Yes и сохраните настройки.
В некоторых сборках перевод пунктов отличается, но ориентир тот же: настройка находится в параметрах магазина, а не в карточке товара. Если переключателя нет, проверьте права пользователя и установленные модификаторы.
Проверка. После сохранения значение остаётся Yes, а админка не показывает ошибку доступа или базы данных.
Шаг 2. Подготовьте перенаправление для Apache
В корне OpenCart 3 обычно лежит файл .htaccess.txt. Сделайте резервную копию, переименуйте копию в .htaccess и проверьте, что она находится именно рядом с index.php магазина. На Linux имя файла начинается с точки, поэтому файловый менеджер может скрывать его.
Ключевое правило стандартного файла должно передавать неизвестный физический путь в контроллер OpenCart:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
Не заменяйте весь файл этим фрагментом: в стандартном .htaccess.txt есть дополнительные правила защиты каталога system/storage. Если магазин установлен не в корне домена, проверьте значение RewriteBase: для каталога /shop/ оно обычно должно соответствовать этому пути.
Проверка. Откройте главную страницу и одну существующую страницу товара. Если появился HTTP 500 или сервер скачивает файл вместо открытия сайта, верните резервную копию и проверьте синтаксис Apache в панели хостинга.
Шаг 3. Создайте SEO-ключ для категории
Перейдите в Catalog → Categories, откройте категорию «Куртки» и найдите вкладку Data. В поле SEO Keyword укажите:
kurtki
Не добавляйте начальный или конечный слеш. Ключ должен быть уникальным среди других SEO URL магазина. Сохраните категорию.
Проверка. Страница категории открывается по адресу /kurtki/. Если видите 404, сначала проверьте .htaccess и тип веб-сервера, а уже затем сам ключ.
Шаг 4. Создайте SEO-ключ для товара
Откройте Catalog → Products, найдите «Зимняя куртка Nord» и на вкладке Data заполните поле SEO Keyword значением:
zimnyaya-kurtka-nord
Название товара и SEO-ключ — разные поля. В URL лучше использовать латинские символы, цифры и дефисы. Пробелы, кавычки, слеши и одинаковые ключи между товарами создают неоднозначные адреса.
Проверка. Страница товара открывается по адресу /zimnyaya-kurtka-nord/. Проверьте также добавление товара в корзину, цену и изображения: красивый URL не означает, что карточка работает полностью.
Шаг 5. Решите вопрос с вложенностью категорий
Штатный OpenCart может открыть товар по его SEO-ключу без обязательного пути категории: /zimnyaya-kurtka-nord/. Это короче, но при большом каталоге повышается риск пересечения ключей. Адрес /kurtki/zimnyaya-kurtka-nord/ обычно требует отдельного расширения или доработки маршрутизации.
Не меняйте структуру на вложенную только ради длины URL. Сначала решите, какая схема будет постоянной. Перенос страницы с одного адреса на другой потребует перенаправления и проверки внешних ссылок.
Что ломается чаще всего
Страница отдаёт 404
Чаще всего SEO URL включён, но Apache не применяет .htaccess, файл назван .htaccess.txt или в нём отключено переписывание адресов. Проверьте, что модуль rewrite разрешён хостингом и сайт действительно работает на Apache.
Все товары открываются одной страницей
Проверьте уникальность SEO-ключей. Два товара с одинаковым значением keyword не могут надёжно сопоставляться с разными идентификаторами. Удалите дубликаты или назначьте каждому товару отдельный ключ.
Главная открывается, а URL товара — нет
Это обычно указывает не на проблему OpenCart, а на правило веб-сервера. Сравните корень установки сайта и RewriteBase, затем очистите кеш модификаторов и кеш темы, если их использует сборка.
После включения появились дубли
Проверьте версии одной страницы с параметрами, слешем на конце, без него и с разными вариантами регистра. OpenCart может отдавать несколько технических адресов, а шаблон или расширение — добавлять собственные канонические ссылки. Не устанавливайте сразу несколько SEO-расширений: они могут по-разному обрабатывать один маршрут.
Как проверить настройку перед публикацией
- Откройте новую ссылку категории в обычном окне браузера.
- Откройте новую ссылку товара в режиме без кеша.
- Проверьте страницу в мобильном браузере и убедитесь, что меню и корзина не используют старые нерабочие адреса.
- Перейдите по старой ссылке с
route=product/productи зафиксируйте результат. Если сайт должен сохранять старые адреса, настройте постоянное перенаправление отдельно. - Просмотрите отчёты веб-сервера и панели вебмастера после публикации: ищите всплеск 404, цепочки перенаправлений и дубли.
Проверяйте не только главную категорию, но и товар с опциями, товар без изображения, отключённый товар и страницу с кириллическим названием. Граничные случаи часто обнаруживают конфликт расширений раньше, чем обычный просмотр каталога.
Что делать дальше
Сначала зафиксируйте таблицу старый URL → новый URL для страниц, которые уже рекламируются или получают переходы из поиска. Затем настройте перенаправления, проверьте канонические ссылки и отправьте актуальную карту сайта в инструменты вебмастера. В проде в первые дни смотрите прежде всего долю 404 и количество цепочек перенаправлений, а не только наличие красивых адресов в браузере.
Логотип и фирменный стиль: Три концепции разного характера, палитра с обоснованием, проверка на читаемость в малом размере и в один цвет.
Спросить за 60 ₽Источники: OpenCart: файл стандартных правил Apache .htaccess.txt, OpenCart Documentation
Частые вопросы
Нужно ли включать SEO URL, если я уже заполнил поле SEO Keyword?
Почему после переименования товара старая ссылка перестала открываться?
Можно ли использовать русские слова в SEO Keyword?
Что делать, если после переименования появился HTTP 500?
Работает ли эта схема на Nginx?
Можно ли сделать URL с категорией, например /kurtki/model/?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.