В даний час існує безліч движків для створення Інтернет-магазинів. Але я думаю, що я не помилюся, якщо скажу, що одним з найпопулярніших з них в даний час є – opencart.
Але як будь-яка інша CMS – opencart не позбавлена недоліків у внутрішній оптимізації. У цій статті, я постараюся описати те, що потрібно виправити після установки її на хостинг, щоб якомога краще дотримуватися рекомендацій пошукових систем по оптимізації сайтів.
Читайте також: Налаштовуємо віддачу WebP в nginx
Прибираємо з url: index.php?Route=common/home
При натисканні на логотип нас замість того, щоб направити на головну сторінку направляє на: site.com/index.php?route=common/home – що не є добре. Тому, що за цією адресою знаходиться дубль головної сторінки.
Рішення …
У файлі “url.php” (system/library/url.php), після рядка:
if ($args) { $url .= str_replace('&', '&', '&' . ltrim($args, '&')); }
(Приблизно 29 рядок), вставляємо це:
else { if($route == 'common/home') { if($connection == 'NONSSL')
{ return HTTP_SERVER; } else { return HTTPS_SERVER; } } }
Зберігаємо файл і знову натискаємо на логотип – цей напис повинен зникнути.
Включаємо ЧПУ (людино зрозумілі посилання)
Спочатку url: категорій, підкатегорій і товарів мають вигляд
site.com/index.php?route=product/category&path=20
site.com/index.php?route=product/category&path=20_26
site.com/index.php?route=product/product&path=20_27&product_id=41
Погодьтеся, що не дуже приємно виглядають такі url?
Для того, щоб виправити такі посилання, на більш зрозумілі для людини, робимо наступне:
- Заходимо в адмін панель: система-налаштування-змінити-сервер. У меню: Використовувати ЛЗП – ставимо “Так”.
- У меню: “ЛЗП товарів з категоріями” – ставимо – “Так”.
- У меню: “тип ЛПЗ” – вибираємо “SeoPro”
- У меню: “Закінчення ЛПУ” – можете поставити .html, а можете залишити порожнім. Я поставив .html – мені так більше подобається.

Тепер вам потрібно перейменувати файл в кореневому каталозі вашого магазину .htaccess.txt на .htaccess.
Читайте також: Як прибрати “category” із url блога на wordpress
Після цих дій, при додаванні нової категорії, товару в поле: SEO URL – прописуємо, зрозуміле людині посилання.
Читайте також: Видаляємо вірус на opencart

Після цих нескладних дій, у вас повинні з’явиться красиві і зрозумілі url типу:
magazin.com/noutbuki/lenovo/lenovo-g580.html
“Склеювання дзеркал” з .www і без.
Просунуті вебмайстри знають, що пошукові системи сайт з адресами: www.texnoera.com і texnoera.com – рахують абсолютно різними сайтами, хоча це один сайт і контент по обох адресах – абсолютно однаковий. Тому їх авторитет ділитися навпіл.
Для того щоб авторитет нашого магазину не розтікався по 2-м різними адресами, потрібно зробити так, щоб сайт був доступний тільки по 1 адресі.
Читайте також: Блокуємо Tor-браузер на своїх сайтах
Для цього ми у файлі .htaccess прописуємо наступне:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.texnoera.com$ [NC]
RewriteRule ^(.*)$ /$1 [R=301,L]
Замість домену в прикладі – ставите свій домен. Цей варіант, якщо ви хочете, щоб ваш сайт був доступний, за адресою, без www.
Варіант, якщо віддаєте перевагу, щоб сайт був доступний з .www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^http:/.texnoera.com$ [NC]
RewriteRule ^(.*)$ www.texnoera.com/$1 [R=301,L]
Додаємо карту сайту у форматі .xml (для пошуковиків).
У меню: Додатки-канали-просування-Google Sitemap. Установлюєте це доповнення. Після редагуєте його і включаєте. Адресу карти, додаєте в кінці файлу robots.txt, наступним чином:
Sitemap: vashsait.com/index.php?route=feed/google_sitemap
Також цей файл, можете додати у панель вебмайстрів, основних пошукових систем.
Поки це все, що зміг пригадати. Але це не означає, що проблем більше ніяких немає у вашому магазині.
Спасибо за хорошую статью! Но хотела бы добавить, до вышесказанного, что в плане оптимизации ocStore лучше, чем оригинальный opencart. Так как в оригинальном дистрибутиве нет значимых метатегов и присутствуют другие важные недоработки во внутренней оптимизации. А вот в ocStore, эти проблемы постарались решить.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^http:/.texnoera.com$ [NC]
RewriteRule ^(.*)$ http://www.texnoera.com/$1 [R=301,L]
Пример не работает ((
@ Роман:
Вы заменили на свой домен?
Роман wrote:
Все должно работать, если вы сделаете точно так:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^http://вашдомен.ком$ [NC]
RewriteRule ^(.*)$ http://www.вашдомен.ком/$1 [R=301,L]
и разместите эту запись первой у файле .htaccess
У меня все заработало прекрасно, но изначально в файле присутствуют еще строчки с аналогичными переменными, их как удалить или оставить?
У меня сейчас вот так файл выглядит.
Options +FollowSymlinks # Prevent Directoy listing Options -Indexes # Prevent Direct Access to files Order deny,allow Deny from all # SEO URL Settings RewriteEngine On RewriteCond %{HTTP_HOST} ^www.topolok24.ru$ [NC] RewriteRule ^(.*)$ http://topolok24.ru/$1 [R=301,L] # If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/ RewriteBase / RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L] RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L] RewriteRule ^download/(.*) /index.php?route=error/not_found [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]topolok wrote:
Если содержимое файла такое, как вы написали в комментарии, то все нормально.
PS. Ссылку удалил, так как комментарий длиной меньше 250 символов и вместо имени вы использовали анкор. Все это запрещено правилами комментирования, с которыми вы согласились, когда оставляли комментарий. Правила здесь: https://texnoera.com/pravila/
А также ссылку на них видно здесь: