Оптимизация магазина на Opencart

Решил написать инструкцию для людей, которую я делаю для каждого онлайн магазина.

1. После установки обязательно включите SEO (система- Настройка- Сервер – Тип ЧПУ – Включаем)
 

2. .Htaccess

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/
RewriteRule ^index\.html$ / [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]
RewriteCond %{QUERY_STRING} ^route=common/home$
RewriteCond %{REQUEST_METHOD} !^POST$
RewriteRule ^index\.php$ http://%{HTTP_HOST}? [R=301,L]

3. Ставим дополнительный модуль для SEO. Это может быть SEOPRO или любой другой. Я советую Complete SEO 55$

Настройки Complete SEO

3.2 Если сайт мультиязычный делаем так, если обычный не отрогаем

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

3.4 Заполняем данные для главной страницы (title, Meta Description, Meta Keywords). Если несколько языков, заполняем и их.

3.5 Настройки хлебных крошек
03-5.png

3.6 Для Вашего удобства есть (SEO редактор) – таблица где вы можете прописать URL, Title, Meta Description, Meta Keywords и другие значения). Заполните все по максимуму и исключите дубли. Аналогично делаем для Категорий, товаров, Статей, Производителей. Проверить результат можна на (http://audit.megaindex.ru или http://saitreport.ru за $)

3.7 Создаем короткие URL в разделе SEO редактор – Стандартные страницы.

  'route=account/account' => 'my-account',
        'route=account/address' => 'address-book',
        'route=account/edit' => 'edit-account',
        'route=account/forgotten' => 'forgot-password',
        'route=account/login' => 'login',
        'route=account/logout' => 'logout',
        'route=account/newsletter' => 'newsletter',
        'route=account/order' => 'order-history',
        'route=account/password' => 'change-password',
        'route=account/register' => 'create-account',
        'route=account/return' => 'returns',
        'route=account/return/insert' => 'request-return',
        'route=account/reward' => 'reward-points',
        'route=account/transaction' => 'transactions',
        'route=account/wishlist' => 'wishlist',
        'route=checkout/cart' => 'shopping-cart',
        'route=checkout/checkout' => 'checkout',
        'route=checkout/simplecheckout' => 'cart',
        'route=checkout/voucher' => 'gift-vouchers',
        'route=common/home' => '/',
        'route=information/sitemap' => 'sitemap',
        'route=product/compare' => 'compare-products',
        'route=product/manufacturer' => 'brands',
        'route=product/search' => 'search',

4.Задаем шаблон для title. У меня title повторяется, меняется только название и артикул товара. Открывает файл

vqmod\xml\seo_package.xml

, находим

$this->document->setTitle(!empty($product_info['meta_title'])

и делаем все что угодно. у меня строчка выглядит так:

$this->document->setTitle(!empty($product_info['meta_title']) ? $this->language->get('title01') .' '. $product_info['meta_title'].', '.$this->language->get('title02').' '. $product_info['model'] .' - '. $this->language->get('title03') .' '. mb_substr($product_info['price'], 0, -5) : $product_info['name']);

4.1.

$this->language->get('title01')

– Прописанная фраза в

/catalog/controller/product/product.php
$data['title01'] = $this->language->get('title01');

и

catalog/language/russian/product/product.php
$_['title01']                                    = 'Купить';

Если у Вас сайт на 1 языке можете смело писать в коде

4.2.

.' '.

– Пробел

4.3

$product_info['model']

– Модель товара (артикул)

4.4

mb_substr($product_info['price'], 0, -5)

– Обрезаная цена товара
В итоге у меня получается

Вы так же можете добавить рубль или другую валюту ручками.
У меня вопрос к экспертам, как добавить сюда Валюту (переменную title т.е. Рубль или US dollar) Буду благодарен.

5. Добавляем сайт в webmaster google, webmaster yandex, webmaster bing, webmaster mail.ru, nigma.ru

6. Карта сайта. Можно пользоваться стандартной, если мультиязычный сайт советую “SEO Package Sitemap”. Добавляем карту сайта во все поисковые системы. Для крупных проектов советую Sitemap Paladin

7. Ищем или покупаем модуль (Яндекс.YML) для yandex маркета, добавляем сайт в Маркет, это улучшить сниппет.

8. Добавляем счетчики yandex метрики и google analitics.

9. Добавляем микроразметку сайта (//www.google.com/webmasters/markup-helper/?hl=ru). Делаем. Проверяем в (//developers.google.com/structured-data/testing-tool/) или (https://webmaster.yandex.ru/microtest.xml?utm_source=wm)

10. Избавляемся от внешних ссылок
Добавляем JS код

<script>
  +function ($){
$(document).ready (function (){
$('.netsilok').replaceWith (function (){return'<a onclick="return !window.open (this.href)" href="'+$(this).data ('link')+'" title="'+$(this).text ()+'">'+$(this).html ()+'</a>';});
});
}(jQuery);
</script>

Теперь все внешние ссылки нужно привести к виду

<span class="netsilok" data-link="http://nonprice.ru/" rel="tag">Скидка и акции в Красноярске</span>

В итоге вместо ссылок делаем Span и добавляем class=”netsilok”

Реализовываем и радуемся. Проверить внешние ссылки можно на (http://audit.megaindex.ru или http://saitreport.ru за $)

11. Проверяем орфографию. Проверить можно на http://saitreport.ru за $

12. Скорость сайта. 
12.1 Проверяем //developers.google.com/speed/pagespeed/insights/ (устраняем, ужимаем) Проблема с кешем решается добавлением в .htaccess (если не работает решайте с Хостингом)

php_value session.cookie_domain .ВАШ-ДОМЕН.ru
            php_value max_input_vars 4000

   
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>

12.2 Проверяем сайт http://gtmetrix.com. Показатель сайта должен быть минимум 80. Ужимаем, можно с сайта брать готовые CSS, JS (не забывайте делать резервную копию оригинальных файлов) и картинки

12.3 Проверяем сайт http://tools.pingdom.com

13. Подаем заявки в yandex каталог

14. Добавляем сайт в yandex Адреса и организации(//webmaster.yandex.ru/site/addresses.xml) и google мой бизнес.(//www.google.com/business/). От google ждем бумажное письмо.

15. Оптимизируем страницы под запросыhttp://audit.megaindex.ru/audit/relevant_page/ Пишем запрос и страницу. Оптимизируем и закупаем ссылки.

16. Ищем и устраняем ошибки верстки http://validator.w3.org

17. Хлебные крошки.
Удаляем ссылку на самого себя. для этого:

я создал бесплатный модуль который решает 17 пункт + добавляет микроразметку.
http://forum.opencart-russia.ru/threads/xlebnye-kroshki.2424/

18. Решение ошибки пагинации.
Как известно есть косяк в opencart, что страница http://ваш сайт.рф/category/
и http://ваш сайт.рф/category/?page=1 это одна страница.
Решение данной проблемы установка бесплатного модуля
Скачать

19. Дубли категории
Когда у Вас много страниц с товарами у Вас появляются дубли страница 1, страница 2 и так далее. Данный модуль решает проблему с дублями title, плюс он удаляет описание для второй и последующих.
Скачать
Ставим модуль и радуемся. Внимание если вы используете другой способ модификации title проверьте, что бы не конфликтовал.

Если у Вас есть, что дополнить пишите пополню список.

В среднем на проект уходит от 5-60 дней (Все зависит от кол-во материала)