Здравствуй, уважаемый друг!

Кажется, ты используешь AdBlock. Этот проект развивается и существует за счет доходов от рекламы.
Добавь, пожалуйста, нас в исключения.

Спасибо за понимание.

Создание сайтов Харьков

SEO оптимизация Opencart

12 февраля 2015 в 16:00 Автор: Nikita_Sp в категории Раскрутка сайтов #SEO 8 комментариев

Очень часто люди сталкиваются с проблемой SEO оптимизации сайта, особенно это касается интернет магазинов, т.к. они обладают бОльшим количеством информации, соответственно бОльшим количеством страниц и т.д. Сегодня я бы хотел дать пару советов относительно SEO оптимизации OpenCart.

SEO для Opencart

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

SEO url или ЧПУ для Opencart

Сегодня, сео адреса (они же ЧПУ — человеко понятные урл) одна из важных деталей оптимизации интернет магазина, впрочем как и любого другого сайта. ЧПУ задается для каждой единицы сущности (елемента, записи, товара) уникальный и может быть сгенерирован автоматически, используя некий параметр (название, артикул и т.п.), зачастую название записи или товара.

Человекопонятные URL (ЧПУ)

Одними из популярных модулей для генерации автоматических SEO URL для Opencart являются: SEO PACK PRO и DeadCowSeo. Я лично предпочитаю SEO PACK PRO, ввиду его большого количества настроек, возможностей, отчетов и много другого.

Прежде чем строить SEO url давайте разберемся, как же он работает. В Opencart, например присутствует:

  • контроллер, отвечающий за т.н. маршрут, т.е. конечный адрес, который «зашифрован» для сервера в виде ЧПУ;
  • таблица в базе данных, хранящая в себе все пары «реальный адрес» — ЧПУ.

Контроллер парсит (разбивает) наш ЧПУ адрес на блоки с помощью деления строки через символ «/», и смотрит, к какому реальному адресу имеет принадлежность тот или иной блок.

Таким образом основную функцию выполняет данный контроллер, и для модернизации вашего SEO URL вам необходимо работать с ним. Он расположен в папке catalog/controller/common/seo_url.php или seo_pro.php.

Стандартный контроллер Opencart для SEO URL работает плохо, хотя бы потому что к одному и тому же продукту можно обратиться используя в URL адрес категории или не использовать его — отсюда могут возникнуть дубликаты страниц.

Например: http://example.com/category/product.html или http://example.com/product.html

Как устранить дубли страниц в Opencart

Для того чтобы устранить данную проблему, разработчики SEO PRO для Opencart поступили умно: для каждого продукта добавили параметр «Главная категория» (main_category), который определяет к какой ОДНОЙ категории принадлежит товар, и благодаря этому параметру у продукта ВСЕГДА адрес содержит только адрес к этой категории.

Дубликаты страниц в Opencart

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

Таким образом продукт может отображаться в нескольких категориях разных уровней, и тем не менее везде иметь одинаковый URL, ведущий через основную категорию, а в случае обращения к продукту по другому урл, он просто переадресовывает на основной урл, с кодом 301, который обозначает «переезд» страницы, и поисковый робот выкидывает старый URL из базы и работает только с основным.

Meta описание и Title, описание в категориях Opencart

Одна из проблем пагинации в категориях Opencart заключается в том, что когда вы устанавливаете мета описание (meta-description), ключевые слова (meta-keywords), тайтл (title), описание категории, то эти данные используются потом на ВСЕХ страницах ваших категорий. То есть если вы установили мета данные для категории, то на каждой странице категории будут одни и те же данные.

SEO meta пагинация на Opencart

Для устранения данной проблемы я прибегаю к небольшой хитрости: для того чтобы эти данные были приемлемыми, достаточно лишь изменить пару символов в строке и описание уже другое. И я решил просто добавлять текст, например » страница номер №» к каждому полю, при условии, что наша переменная $page != 1.

Для описания категории — более глобальное решение — я просто его очищаю, и на второй и последующих страницах не выводится описание категории вообще.

SEO пагинация (постраничная навигация) Opencart

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

SEO пагинация Opencart

Суть дубликата в том, что при генерации пагинации, первая страница доступна по адресу http://example.com/catagory и http://example.com/category?page=1. А атрибут rel должен указывать на предыдущую и следующую страницы, благодаря значениям «prev» и «next».

Для того чтобы решить данные проблемы необходимо всего лишь подправить файл system/library/pagination.php и найдя условие (~36 строка):

if ($page > 1) {

заменить его целиком на:


 if ($page > 1) {
 // Nikita_Sp mod for seo pagination
 $output .= ' <a href="' . str_replace('?page={page}', '', $this->url) . '">' . $this->text_first . '</a>';
 if(($page - 1) != 1){
 $output .= '<a href="' . str_replace('{page}', $page - 1, $this->url) . '">' . $this->text_prev . '</a> ';
 }else{
 $output .= '<a href="' . str_replace('?page={page}', '', $this->url) . '">' . $this->text_prev . '</a> ';
 }
 // END
 }

Таким образом мы избавимся от дубля первой страницы, избавившись от значения переменной page=1, и ниже найти (~70 строка):

for ($i = $start; $i <= $end; $i++) {

и заменить данный цикл полностью на этот:


 for ($i = $start; $i <= $end; $i++) {
 if ($page == $i) {
 $output .= ' <b>' . $i . '</b> ';
 } else {
 // Nikita_Sp mod for SEO
 if($i == 1){
 $output .= ' <a href="' . str_replace('?page={page}', '', $this->url) . '">' . $i . '</a> ';
 }elseif(($page-1) == $i){
 $output .= ' <a rel="prev" href="' . str_replace('{page}', $i, $this->url) . '">' . $i . '</a> ';
 }elseif(($page+1) == $i){
 $output .= ' <a rel="next" href="' . str_replace('{page}', $i, $this->url) . '">' . $i . '</a> ';
 }else{
 $output .= ' <a href="' . str_replace('{page}', $i, $this->url) . '">' . $i . '</a> ';
 }
 // END Nikita_Sp MOD if u want to replace mod delete all lines above and uncomment line bellow
 //$output .= ' <a href="' . str_replace('{page}', $i, $this->url) . '">' . $i . '</a> ';
 }
 }

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

Описание и H1 для категорий и производителей Opencart

Для продвижения вашего интернет магазина по СЧ (средне частотным) запросам SEO мастера рекомендуют иметь возможность изменять значение тега H1, на пользовательское. В брендах и категориях тег h1 по умолчанию заполняется названием категории или названием производителя.

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

Для всех этих манипуляций необходимо просто создать новые поля в таблице category_description и manufacturer_description и добавить обработку этих полей в администраторскую и пользовательскую части.

Итог

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

Есть идея выпустить небольшой модуль для решения всех вышеперечисленных проблем. Если вы считаете это актуальным и востребованным — пишите в комментариях.

8 комментариев

  • Добрый день! что означает «Для описания категории – более глобальное решение – я просто его очищаю, и на второй и последующих страницах не выводится описание категории вообще».
    Мне нужно добавить сео текст,чтоб он был только на первой странице категории. Подскажите как это сделать)

    • Вам нужно добавить в таблицу с категориями еще одно поле и везде (админка, каталог) прописать работу с этим полем.
      Достаточно просто.

      • Здраствуйте, спасибо за полезную статью. Какая именно это таблица с категориями, какой файл? И как прописать,куда что вставлять? Спасибо

        • Насколько я понял вы хотите добавить ПОМИМО описания еще одно поле для SEO текста на страницах категории, верно?

          Тогда вам нужно добавить это поле и в базу данных и во все файлы движка.
          Могу реализовать, напишите на эл. почту в разделе контакты.

    • Спасибо за комментарий, постараюсь найти ответ на интересующий вас вопрос в течении дня.

  • Салют.
    Есть ли возможность убрать из чпу все переходные пункты?
    Например:
    Вместо адрес-сайта/обувь/детская-обувь
    Было адрес-сайта/детская-обувь
    Вместо адрес-сайта/обувь/детская-обувь/ботинок-1
    Было адрес-сайта/ботинок-1

    • Да, конечно, в настройках SEO PRO (Система — Настройки — Изменить — Сервер) изменяем параметр «ЧПУ товаров с категориями» и устанавливаем в значение «НЕТ».

Добавить комментарий для Fusses Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вверх!

Меню блога

Категории блога

Облако тегов