Блог по продвижению сайтов Блог по SEO

Правильная карта сайта Яндекс и Google для магазина Opencart

Просмотров: 9110

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

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

Допустим вы вчера разместили новый товар и хотите, чтобы о нем узнал поисковик и поставил его к себе в поиск Яндекса или Google. Так вот вопрос: как поисковик узнает о том, что у вас появилась новая страничка с товаром? Ну конечно, его робот когда нибудь придет в очередной раз на ваш сайт, например, через неделю или месяц, начнет обход страниц, наткнется на новую страницу - ура, ура! - добавит ее в поиск.

Но разве нужно ждать так долго? Почему бы не внести страницу в индекс на следующий день или всего через несколько часов? Ведь время - деньги, быстрее появится ваш товар, быстрее о нем узнают через поиск клиенты и пойдут продажи.

Для этого придумали карту сайта.

Карта сайта - это специальный файл в формате XML (обычно называется sitemap.xml, но может иметь и любое другое название), который содержит все внутренние страницы сайта в виде списка, который и периодически отправляется в поисковые системы Яндекс, Google и другие поисковые системы, какие вы пожелаете.

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

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

В Opencart карта включается довольно просто, да и вообще эта CMS относительно простая, понятная и мегапопулярная, поэтому я и считаю ее оптимальной для создания бюджетного магазина (читать подробнее лучший движок для магазина).

Включаем карту сайта для Google в Opencart

Изначально в Opencart встроен модуль, который генерирует карту сайта для Гугла, поэтому вам нужно только включить его, устанавливать ничего не требуется.

Нужно отправиться в Дополнения, чтобы найти там Каналы продвижения.

карта сайта google opencart

Ну и включить зеленый квадрат напротив модуля Google Sitemap

sitemap opencart включить

- чтобы он стал красным.

Так активируется модуль.

Теперь я нажал на синий квадратик Редактирование.

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

Все готово, карта сайта для Гугла будет автоматически генерироваться по адресу этой ссылки.

Включаем карту сайта для Яндекс в Opencart

А вы знали что для Яндекса в Opencart нужен свой sitemap?

Я - не знал до сегодняшнего дня, пока не увидел, что сайтмап для Google обрабатывается с ошибками, точнее с предупреждениями.

ошибки яндекс sitemap в opencart

Дело в том, что Яндекс не поддерживает последние форматы sitemap для Google, в частности теги image:image, он считает, что это какой-то мусор и игнорирует его, ну и мало ли чем это еще может вам грозить.

В любом случае кто мешает поставить отдельную карту сайта для Яндекса, тем более что есть официальный модуль для карты сайта Opencart. Этот модуль почти полностью напоминает встроенный для Google, только в нем нет тех тегов, которые Яндекс не понимает - и следовательно у вас не будет ошибок при его применении. И вам не позвонит встревоженный клиент (как мне сегодня) - ой, у меня тут ошибок много, наверное, вы что-то сломали :smile:

Я решил на будущее избежать подобных ситуаций и поставить отдельный модуль.

Понятно, что этого модуля нет изначально в дистрибутиве Opencart, поэтому сейчас нужно будет его отдельно установить. Для этого вам нужно его сначала скачать, например, тут: https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=23912&filter_category_id=19

Читайте также:  Вывод всех товаров Opencart 1.5 в родительской категории

Итак, я скачал модуль и поставил его в магазин, это делается через обычный FTP (как работать по FTP), кстати, в модуле есть простая инструкция на русском языке, проблем не возникнет.

И теперь как и в случае с модулем карты сайта для Google я отправился прямо в Каналы продвижения и о чудо, теперь там появился еще и модуль от Яндекса.

Дальше все активировал аналогично схеме выше, ну и получил другую ссылку уже на карту для Яндекса. Очень хорошо, копирую...

Настройка индексации для карты сайта Opencart

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

Эти параметры, к сожалению, в отличии от моего любимого WordPress CMS (почему я предпочитаю для сайтов-визиток и блогов именно Вордпресс), не задаются прямо в модуле, нужно ковырять код, благо он не очень сложный.

Итак, опять я открываю FTP-клиент и захожу по пути /catalog/controller/feed

Вижу цель: google_sitemap.php и yandex_sitemap.php

Теперь нужно прямо в коде поменять значения.

Настройка частоты индексации

Редактирую, ага, что это? По умолчанию Google и Яндекс хотят меня обновлять еженедельно, это задается в параметре <changefreq>weekly</changefreq>.

Нет, нет, мне надо товары, статьи и бренды ежедневно, а категории - ежечасно! Нагрузки большой не будет, товаров у меня не много, у кого сотни тысяч товаров, ставят специальные модули для снижения нагрузки от индексации, а у кого 1000 или 2000 товаров или 50-100 категорий, то это минимальная нагрузка, особенно, если страницы отдают last-modified.

Значит, меняю <changefreq>weekly</changefreq> на <changefreq>daily</changefreq> (если ежедневно) или <changefreq>hourly</changefreq> (если ежечасно).

Ах да, еще приоритет заодно поменяю.

Настройка приоритета индексации

Приоритет указывается с помощью параметров <priority>1.0</priority>. По идее, чем выше приоритет, тем более значима страница для поисковых роботов.

Наивысший приоритет 1.0 в Opencart по умолчанию отдается товарам, это неправильно на мой взгляд, наивысшим приоритетом для SEO должны быть категории, ведь именно они продвигаются в магазине по средне- и высокочастотным запросам. А то получится, что по запросу "купить кондиционер" будет показываться какой-то один из тысячи товаров, а не категория "Кондиционеры".

Читайте также:  Меняем в Opencart местами вкладки характеристики и описание

Значит делаю для категорий - 1.0, для товаров - 0.7 (в них ведь низкочастотники только), для статей - 0.8 (ими удобно продвигать информационные некоммерческие запросы, типа "как выбрать кондиционер"), ну а бренды - там и 0.5 достаточно, обычно через бренды редко кто продвигает запросы.

Но вы можете установить любые свои параметры, тут на личное усмотрение. Но я с такими параметрами, как вам сообщил выше, уже несколько магазинов вполне нормально в ТОП вывел.

Если не понятно, какой параметр в файле конкретно отвечает за товар / категорию / статью и т.п., то просто меняйте значение прямо в файле, сохраняйте и смотрите по ссылке результат сгенерированной карты - вы сразу увидите, какие ссылки у вас какой имеют приоритет и частоту сканирования и поймете, что вы только что изменили. Я по крайне мере ввиду не самых выдающихся знаний программирования, поступаю именно так :nerd:

Добавляем карты сайта в панель вебмастера

Ну хорошо, карты сайта для магазина готовы, а куда их добавлять? Конечно, в панели вебмастера.

Захожу в панель Яндекса и панель Google, нахожу пункт Карта сайта (или типа такого) и туда вставляем наши ссылки:

ваш сайт /index.php?route=feed/google_sitemap
ваш сайт /index.php?route=feed/yandex_sitemap

В Google вставляется карта сайта без домена, ну вы увидите, там будет подсказка. Ну а в Яндексе полная ссылка вставляется, вот так:

sitemap яндекс и google opencart

Дело сделано, теперь мой (и ваш) магазин будет индексироваться и в Google, и в Яндексе быстро, правильно и без ошибок.

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

Полезный совет: Нажатие клавиш "WIN + D" позволяет быстро скрыть текущие окна и перейти к рабочему столу Windows.

Блог — Сергея Арсентьева 📈
image
Сергей Арсентьев
Всего материалов на сайте: 241
Активных комментариев: 3 526
Работает онлайн: 11.3 лет
Читателей за это время: 2 580 860
Я в соцсетях —
Фото
Бесплатный видеокурс для начинающих. Что такое фриланс, можно ли на нем зарабатывать и сколько?
Бесплатно Подробнее
Фото
Бесплатная мини книга для тех, кто хочет заказать сайт, но растерялся во множестве CMS и вариантов выбора.
Бесплатно Подробнее
Фото
Пошаговый видеокурс "Как работать в Опенкарт" с уроками по добавлению товаров и статей.
Комментариев 39
  • сергей
    сергей

    огромное спасибо благодаря вашим инструкциям справился !!! а так два дня искал как сделать

    Комментировать
  • Андрей
    Андрей

    Модуля карт Google и yandex уcтановлены, отображаются по адресу
    https:/xxxxx.com/index.php?route=extension/feed/yandex_sitemap

    но, не нахожу
    по пути /catalog/controller/feed
    google_sitemap.php и yandex_sitemap.php

    opencart 2.3

    Комментировать
    • Сергей Арсентьев

      в 2.3 версии (и в 3 тоже) изменили путь немного насколько я помню /catalog/controller/extension/feed

      Комментировать
  • Анатолий
    Анатолий

    Сергей здравствуйте! а ваши карты работают в https?

    Комментировать
    • Сергей Арсентьев

      Здравствуйте, да, им всё равно какой протокол.

      https://dreamwool.ru/index.php?route=feed/google_sitemap

      Комментировать
  • Grety
    Grety

    Приветствую!
    Ссылки в карте отображаются в таком виде:
    /index.php?route=product/product&product_id=3294
    /index.php?route=product/product&product_id=3296
    /index.php?route=product/product&product_id=3298

    Можно что-то сделать, чтобы они имели нормальны вид (я имею в виду ЧПУ)?
    Спасибо!

    Комментировать
    • Сергей Арсентьев

      Добрый день.
      Если на сайте ссылки в ЧПУ, а в карте нет, то обновите seo кеш + системный кеш и попробуйте еще раз сгенерировать картку.
      Если не получилось, пробуйте какой-то другой модуль, например https://opencartforum.com/files/file/3042-fx-sitemap-sverhskorostnaya-karta-sayta-xml/ + с установкой закажите, чтобы автора можно было привлечь к этому делу.

      Впрочем, на Ocstore у меня на всех картах без проблем генерация шла.

      Комментировать
      • Grety
        Grety

        А как еще раз сгенерировать карту? Просто запуcтить site.ru/sitemap.xml ?

        Комментировать
        • Сергей Арсентьев

          ну да, обычно открыть ссылку на эту карту.

          Комментировать
  • Артем
    Артем

    Добрый вечер! Скажите, а ведь ссылку потом из данного модуля надо добавить в Яндекс.Вебмастер, но ведь туда надо добавлять путь к файлу, а файла то нет. Вообще это правильно? Нужен ли файл еще? Или это как замена файла? Если замена, то как Вебмастеру правильно все указать?

    Комментировать
    • Артем
      Артем

      И еще вопрос, как и что указать в robots.txt ?
      Что писать прям так в файле robots?
      Sitemap: /index.php?route=extension/feed/yandex_sitemap
      Такого нигде не видел, как быть и правильно сделать?
      Спасибо!

      Комментировать
      • Сергей Арсентьев

        Ну примерно вот так у вас получится https://prnt.sc/jxiv5a
        Только домен ваш.

        Комментировать
    • Сергей Арсентьев

      Добрый, да, конечно.
      Вы же для того карту сайта Opencart и делаете, чтобы скормить ее поисковикам в панелях вебмастеров.
      Ссылка - это и есть сам файл.
      Просто указываете ссылку и всё.

      Комментировать
  • Петр

    спасибо, все работает

    Комментировать
  • Владимир

    Добрый вечер. У меня такая проблема, Вебмастер выдает ошибку:

    "Обнаружены ошибки в файлах Sitemap
    В одном или нескольких файлах Sitemap обнаружены ошибки, которые могут повлиять на обработку файлов индексирующим роботом.
    Проверьте файлы Sitemap и внесите необходимые исправления."

    ps карта сайта появляется по ссылке.

    Комментировать
    • Сергей Арсентьев

      Здравствуйте.
      Вам нужно смотреть что за ошибка там появляется.
      И потом уже гуглить ее решение.

      У меня ошибка в sitemap для Opencart появлялась при использовании карты для Google в панели Яндекса. Поэтому я и стал использовать для Яндекса свой сайтмап. У меня он в данный момент работает без ошибок.

      Комментировать
  • denkarter
    denkarter

    Благодаря Вам и Вашей статье я, наконец-то, почистил от лишнего свою карту сайта и в ней появились новости! Благодарю Вас за полезный материал и помощь! :yes: :smile:

    Комментировать
    • Сергей Арсентьев

      Мне не за что, это читатели блога тут такие молодцы, им и спасибо :yes:

      Комментировать
  • denkarter
    denkarter

    Как я понял данный модуль не генерирует в карте раздел Новости. В моих картах из раздела Новости ничего нет. Ocstore 2.1, шаблон shop-store 2.

    Комментировать
    • Серж
      Серж

      Скорей всего такой возможности там и не было никогда, нужно дописать фрагмент кода для генерации доп. ссылок, основываясь на примере кода для генерации ссылок на категории и товаров.

      Комментировать
      • denkarter
        denkarter

        Хотел так сделать. Залез в код, ахнул и закрыл :) К сожалению, моих знаний на это не хватило.

        Комментировать
        • Серж
          Серж

          К сожалению у меня нет возможности у себя протестировать, пришлите ссылку на любую новость своего сайта, попробую помочь.

          Комментировать
          • denkarter
            denkarter

            Вот раздел новости:
            https://emasla.ru/news/

            Вот пример одной новости:
            https://emasla.ru/news/young-living-farms

            Вот sitemap для Yandex:
            https://emasla.ru/index.php?route=feed/yandex_sitemap

            Комментировать
            • Серж
              Серж

              Написал вам...
              1. Сделайте копию файлов: yandex_sitemap.php и google_sitemap.php (путь к ним: /ваш домен/catalog/controller/feed/)

              2. Откройте файлы и найдите такую строку: $products = $this->model_catalog_product->getProducts();
              вставьте перед ней этот код:

              $this->load->model('catalog/oct_blog');
              $news = $this->model_catalog_oct_blog->getBlogs();
              foreach ($news as $new) {
              $output .= '';
              $output .= '' . $this->url->link('catalog/oct_blog', 'blog_id=' . $new['blog_id']) . '';
              $output .= 'weekly';
              $output .= '1.0';
              $output .= '';
              }

              3. Сохраните и запустите генерацию карт, проверьте ссылки на новости:
              https://emasla.ru/index.php?route=feed/yandex_sitemap
              https://emasla.ru/index.php?route=feed/google_sitemap

              ps. старый урл от шаблона (не помешало бы поискать и другие) :
              https://emasla.ru/htc

              Комментировать
              • Денис

                Здравствуйте! А вот мой сайт https://lombard-expert.com вот ссылка на новости - https://lombard-expert.com/news-blog/ пробовал вставлять код, бьёт ошибку, как мне новости всунуть в карту сайта? ))) Можете и мне подсказать?

                Комментировать
              • Денис

                opencart 2.3.0.2.3

                Комментировать
  • Сергей

    Здравствуйте! Поставил Ваш модуль Яндекса, но при включении пишет - у вас не достаточно прав, обратитесь к администратору. Хотя я и есть админ) В чём может быть дело? Другие модули устанавливаются.

    Комментировать
    • Сергей Арсентьев

      приветствую, у меня таких проблем не было.
      попробуйте зайти в "Настройки", затем в правах "Групп пользователей" выбрать админа и там указать все возможные права на чтение и запись для всех модулей и расширений.

      Комментировать
      • Сергей

        Там всё нормально, смотрел. Скачал модуль с https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=23912&filter_category_id=19_wp_link_placeholder и поставил рядом. Теперь всё работает.
        Правда модуля два.Включаешь один, второй тоже включается. Удаляешь, второй так же удаляется. Это надо исправлять или ничего страшного?

        Комментировать
        • Алексей
          Алексей

          не поверишь, я прошел таким же путем,у меня тоже с правами какая то ерунда была, тоже потом скачал модуль по твоей ссылке и тоже 2 одинаковых модуля стало,также одинаково включаются и выключаются.Зато работают.Забил на это.

          Комментировать
  • Олег
    Олег

    Прямо сейчас вы можете скачать нужный файл с моего сервера — это просто и бесплатно. Достаточно кликнуть на любой значок соцсети...

    Я никогда не был в соцсетях и даже не собираюсь! Значит у таких, как я - шансов нет, бяда. Можно канеш подождать 1500 сек.

    Комментировать
    • Сергей Арсентьев

      Значит, не очень нужно было )
      Когда мне, помнится, нужен был один интересный бесплатный скрипт, я нашел пару часов времени зарегистрироваться и разобраться как качать на одном популярном сервисе скриптов (там был все очень непросто).
      А тут делов на полминуты, либо просто страницу не закрывать, оставить повисеть в браузере и другими делами заняться. А через полчаса зайти и обновить, все должно показаться.

      Комментировать
  • Екатерина

    загоните sitemap в яндекс вебмастер - проанализируйте ваш файл и там будет видно, у меня в интернет магазине 15 000 товаров - а в карту данный модуль формирует 30 000 ссылок. Чтобы избавиться от дублей нужно в файле /catalog/controller/feed/файл яндекса или гугла.php добавить "//" для следующего кода:
    $products = $this->model_catalog_product->getProducts(array('filter_manufacturer_id' => $manufacturer['manufacturer_id']));

    //foreach ($products as $product) {
    // $output .= '';
    // $output .= '' . $this->url->link('product/product', 'manufacturer_id=' . $manufacturer['manufacturer_id'] . '&product_id=' . $product['product_id']) . '';
    // $output .= 'weekly';
    // $output .= '1.0';
    // $output .= '';
    //}

    $products = $this->model_catalog_product->getProducts(array('filter_category_id' => $result['category_id']));

    // foreach ($products as $product) {
    // $output .= '';
    // $output .= '' . $this->url->link('product/product', 'path=' . $new_path . '&product_id=' . $product['product_id']) . '';
    // $output .= 'weekly';
    // $output .= '1.0';
    // $output .= '';
    //}

    После этого в sitemap.xml буду попадать ссылки всех товаров без дублей.

    Комментировать
    • Сергей Арсентьев

      Ну понятно, что отдельно формируются запросы для товаров по категориям и по производителям.
      Точно также делается в стандартном файле карты сайта Google.

      Это не проблема, так как каждый товар имеет rel canonical, который однозначно устраняет дубли.
      Но если хочется дополнительной "чистоты" и у вас ЧПУ используются, то конечно, можно убрать этот код.

      В любом случае спасибо за сигнал, я сейчас закомментировал этот код и для яндекс, и для google, в большинстве случаев он действительно будет лишним.

      Комментировать
    • Серж
      Серж

      У меня ЧПУ включено, но формируется не дубли (дубли это когда ссылки разные, но ведут на один и тот же товар) , а копии. Вреда никакого если в магазине мало товаров, к примеру 100-500, если более 1000, то создается большая нагрузка на сервер при генерации карты (может быть отказ сервера) , ну и не менее важное, файл сайта-карты будет просто огромный по размеру.
      Я отключил блоки кода, думаю это пригодится...

      Для Google сайт-карта:
      Файл: /catalog/controller/feed/google_sitemap.php

      Для Yandex сайт-карта:
      Файл: /catalog/controller/feed/yandex_sitemap.php

      Код отключенный (ставятся просто знаки вначале /* и в конце */):
      /*
      $products = $this->model_catalog_product->getProducts(array('filter_manufacturer_id' => $manufacturer['manufacturer_id']));

      foreach ($products as $product) {
      $output .= '';
      $output .= '' . $this->url->link('product/product', 'manufacturer_id=' . $manufacturer['manufacturer_id'] . '&product_id=' . $product['product_id']) . '';
      $output .= 'weekly';
      $output .= '1.0';
      $output .= '';
      }
      */

      Далее:
      /*
      $products = $this->model_catalog_product->getProducts(array('filter_category_id' => $result['category_id']));

      foreach ($products as $product) {
      $output .= '';
      $output .= '' . $this->url->link('product/product', 'path=' . $new_path . '&product_id=' . $product['product_id']) . '';
      $output .= 'weekly';
      $output .= '1.0';
      $output .= '';
      }
      */

      Комментировать
  • Екатерина
    Екатерина

    https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=23912&filter_category_id=19_wp_link_placeholder данный модуль - делает в карте дубли страниц!

    Комментировать
    • Сергей Арсентьев

      А где именно делает дубли?
      У меня вроде все ок http://pro-karcher.by/index.php?route=feed/yandex_sitemap
      Может что-то не заметил, пришлите скриншот как эти дубли выглядят.

      Комментировать
      • Даниил
        Даниил

        Добрый день! У Вас указан путь в FTP /catalog/controller/feed, но вот последнего - feed, у меня нет. Как найти sitemap?

        Комментировать
        • Сергей Арсентьев

          Добрый, видимо у вас 2.3+ версия, там насколько я помню они в расширения перенесли фид, типа такого /catalog/controller/extension/feed

          Комментировать
Смотреть еще комментарии
Добавить свой комментарий