Полная инструкция по SEO оптимизации интернет-магазина (перепечатано)

http://forum.opencart-russia.ru/threads/polnaja-seo-optimizacija-onlajn-magazina-na-opencart-2-0.551/

 

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

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 Если сайт мультиязычный делаем так, если обычный не отрогаем

03-2.png

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

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

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

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

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)
— Обрезаная цена товара
В итоге у меня получается
«Купить Товар, модель 113920 — Цена 3800»
Нажмите, чтобы раскрыть…
Вы так же можете добавить рубль или другую валюту ручками.
У меня вопрос к экспертам, как добавить сюда Валюту (переменную title т.е. Рубль или US dollar) Буду благодарен.

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

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

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

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

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

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 Проверяем https://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 (не забывайте делать резервную копию оригинальных файлов) и картинки

2015-06-07 23-58-38 Скриншот экрана.png

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

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

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

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

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

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

<ul class=»breadcrumb»>
<?php foreach ($breadcrumbs as $breadcrumb) { ?>
<li><a href=»<?php echo $breadcrumb[‘href’]; ?>»><?php echo $breadcrumb[‘text’]; ?></a></li>
<?php } ?>
</ul>
на

<ul class=»breadcrumb»>
<?php
$breadcount =count($breadcrumbs)-1;
foreach ($breadcrumbs as $iterator => $breadcrumb) {
if ($iterator != $breadcount) {
echo ‘<li><a href=»‘.$breadcrumb[‘href’].'»>’.$breadcrumb[‘text’].'</a></li>’;

} else {
echo ‘<li class=»end»>’.$breadcrumb[‘text’].'</li>’;
}
} ?>
</ul>
В во всех файлах темы
catalog\view\theme\default\template
или вашей темы

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

У меня еще есть несколько нерешенных проблем.
1. Для страниц ?page=2 и далее есть текст и дублируется title и другие теги, пока решил тегом rel=»canonical», но хотелось иметь в title к примеру фразу «страница 2″ и текст (Описание) исчезал

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

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

Вложения:
12.png
12.png
Размер файла:50,8 КБ
Просмотров:159
Последнее редактирование: 5 авг 2015
Slait, 28 май 2015
#1
grey0207, olegianni, RoS и 4 другим нравится это.
DeCeRt
DeCeRt Новичок
Сообщения:16
Симпатии:6
Slait сказал(а): ↑
У меня еще есть несколько нерешенных проблем.
1. Для страниц ?page=2 и далее есть текст и дублируется title и другие теги, пока решил тегом rel=»canonical», но хотелось иметь в title к примеру фразу «страница 2″ и текст (Описание) исчезал
Нажмите, чтобы раскрыть…
На самом деле этот момент решается очень просто. Менять тайтл и убирать текст совсем не обязательно. Я делаю следующим образом:

а) На первой странице пагинации (по адресу корня разделе /):
<meta name=»robots» content=»index, follow»/> (страница будет полностью индексируема)
<link rel=»canonical» href=»http://адрес раздела или подраздела»/> (думаю, понятно)
<rel=»next» href=»http://страница №2″/> (указатель на то, что есть постраничка и куда идти дальше)
б) На второй странице пагинации:
<meta name=»robots» content=»noindex, follow»/> (не индексируем контент, так как текст не убран, но полностью индексируем ссылки, чтобы грамотно распределить веса страниц)
<link rel=»canonical» href=»http://адрес страницы №2″/>
<rel=»next» href=»http://страница №3″/>
<rel=»prev» href=»http://адрес корня раздела или подраздела»/>
в) На третьей и последующих страницах пагинации (N):
<meta name=»robots» content=»noindex, follow»/>
<link rel=»canonical» href=»http://адрес страницы N»/>
<rel=»next» href=»http://страница N+1″/>
<rel=»prev» href=»http://страница N-1″/>
г) Последняя страница пагинации:
<meta name=»robots» content=»noindex, follow»/>
<link rel=»canonical» href=»http://адрес последней страницы»/>
<rel=»prev» href=»http://предыдущая страница пагинации»/>

Это полностью позволяет решить проблему. Проверено на десятках магазинов клиентов.

Доработка представления товара OpenCart

Реализация опций в виде отдельных дополнительных товаров. Позволяет без труда обновлять каталог с помощью импорта прайсов, устанавливать свою цену каждой опции.

Домен lb4.ru

lb4

Шпоргалка по OpenCart

Полезный код для разработчиков OpenCart.

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

Определение текущего layout_id в модуле и на странице

Вывод модуля на странице определенной категории или товара

Этот код добавляется в код модуля. В настройках модуля должны быть два массива – $show_on_categories, $show_on_products, в которых содержатся category_id и product_id, соответственно.

А теперь применение функции. Вставляется в начало функции index() модуля.

Полная очистка кэша

Описание функций основных классов

 

Собери свой пакетик лапши

Очередное мое достижение в области дизайна и программирования под OpenCart. Мне очень нравится эта CMS, все легко, доступно, понятно, быстро поддается изменениям. Настраиваится почти под любые запросы заказчика, а если нужно что-то изощренное, например как этот конструктор, все так же легко изменяется и дополняется.

constructor

Собери свой пакетик лапши.

FineSites.ru – все о CMS OpenCart — Как сделать так, чтобы отзывы о товаре публиковались автоматически без модерации.

FineSites.ru – все о CMS OpenCart — Как сделать так, чтобы отзывы о товаре публиковались автоматически без модерации..