Правильная настройка индексации для интернет-магазинов на Shop Script

Уже больше 4 лет я работаю с интернет-магазинами на Webasyst Shop Script и до сих пор на каждом втором проекте вижу ошибки в самом ключевом: настройке индексации. В этой статье я пошагово разберу как правильно настроить свой интернет-магазин, чтобы поисковые системы Yandex и Google правильно индексировали интернет-магазин.

Для начала немного теории. Постараюсь изложить предельно кратко. Разберу три фундаментальные вещи - файл "robots.txt", метатег "Meta Robots", тег "Link Canonical", как их правильно использовать и как их внедрить в магазин на Webasyst Shop Script.

Файл robots.txt

Ссылки на официальную документацию от поисковых систем:

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

По сути, нужно только запомнить только 6 директив:

  • User-agent - указывает для каких ботов должны действовать директивы, представленные в файле ниже.
  • Disallow - запрещает индексацию страниц
  • Allow - разрешает индексацию страниц
  • Sitemap - указывает ссылку на карту сайта в формате XML (в Webasyst она всегда находится по адресу site.ru/sitemap.xml)
  • Clean-param - используется для указания UTM-меток, чтобы они не учитывались при индексации
  • Crawl-delay - используется для установки задержки между запросами от бота на страницы сайта. Всё что вам нужно запомнить об этой директиве - то что еще с 2018 года Crawl-delay уже не поддерживается ни Google ни Yandex.

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

Пруфы

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

Что еще нужно знать о файле robots.txt?

Опять же, вкратце, и некоторые моменты немного субъективно:

  • Если у вас страницы сайта на кириллице - используйте Punycode. Пример можно посмотреть в документации Yandex.
  • Забудьте о директиве "Host", она раньше использовалась для определения главного зеркала сайта, но уже давно не поддерживается.
  • Не полагайтесь только лишь на инструменты проверки robots.txt от поисковых систем. Они проверяют, по сути, только синтаксис файлов и не уведомят вас о том, что вы закрыли от индексации, например, страницы пагинаций, хотя этого делать не следует.
  • Если вы неуверенный пользователь - используйте готовый универсальный шаблон robots.txt, чтобы минимизировать вероятность допущения ошибки.
  • Всегда используйте штатный функционал управления файлом robots.txt. Не создавайте и не пихайте файл в корень сайта.

Зачем вообще использовать "Meta Robots" и "Link Canonical", если robots.txt вроде бы всем заправляет?

Многие начинающие SEO-специалисты, и я в том числе я (в первые годы работы с сайтами), задаются тем же вопросом. Сейчас лично для меня ответы очевидны:

  • Через файл robots.txt проблематично закрыть от индексации некоторые страницы сайта из-за отсутствия в URL страницах каких-либо общих частей
  • Через файл robots.txt нельзя запретить индексирование страницы, но разрешить роботу поисковой системы переходить по ссылкам на странице
  • В случае, если сайт долгое время индексировался неправильно, закрытие от индексации страниц через файл robots.txt может понизить позиции сайта
Примеры
  • Страницы скрытых товаров или категорий на сайте имеют свой уникальный URL-адрес страницы, не имеющий ничего общего с другими страницами с таким же статусом. И если над страницами категорий можно повозиться и поочередно их перечислить 20-30-100 раз, то со страницами товаров такой обезьяний труд точно не пройдет. Гораздо проще закрыть такие страницы через метатег "Meta Robots", поскольку вывод тега в коде каждой отдельно взятой страницы можно запрограммировать, сделав простую проверку на статус страницы.
  • Если запретть для индексации страницы пагинаций через robots.txt то робот поисковой системы не сможет найти на вашем сайте товары, ссылки на которые выводятся на странице пагинации, чтобы проиндексировать страницы товаров. Здесь на помощь приходят "вспомогательные" инструменты. С помощью "Meta Robots" можно запретить индексировать страницы, но разрешить переходить по ссылкам; с помощью "link rel="canonical" можно "помочь" поисковым системам определить каноническую страницу.
  • Когда над сайтом не трудится SEO-специалист - проиндексироваться может всё что угодно. Возьмем, к примеру, какую-нибудь страницу фильтрации. Например: site.ru/category/kruzhki/?sort=create_datetime. Допустим, страница индексировалась долго, получала трафик, возможно, - естественные внешние ссылки. Но теперь над сайтом стал работать SEO-специалист, он обнаружил это и решил страницу от индексации закрыть, чтобы оставить в поиске только обычную страницу категории: site.ru/category/kruzhki/. Действие правильное. Однако есть нюанс: если это сделать сразу через файл robots.txt, то тот вес, который страница успела набрать, просто пропадет. Можно было бы сделать 301 редирект, чтобы этого не произошло, но тогда сайт будет работать с ошибками. Придет новый пользователь, захочет купить кружку, решит имзенить способ сортировки на странице, и его вдруг будет редиректить обратно. Поэтому правильнее в такой ситуации (когда проиндексировалось много мусорных страниц) - не закрывать их через robots.txt, а одновременно проставить метатег "Meta Robots" и "Link Canonical" (каноникал - на каноническую страницу). В таком случае поисковые системы смогут продолжать заходить на проиндексированные страницы, видеть установленные правила и следовать им (в том числе, могут передать вес). Дождитесь, пока все страницы сайта пройдут переобход и только после этого ставьте запрет на посещение страниц через robots.txt.

Тег "Link Canonical"

Ссылки на документацию от поисковых систем

Если вкратце, основное предназначение тега "Link Canoncal" - указание для поисковой системы страницы, которая наиболее приоритетна для индексации вместо той страницы, на которой размещен данный тег. В теории, тег должен передавать вес страниц, и у меня нет оснований полагать, что этого не происходит. Гораздо надежнее, если вы хотите передать вес с одной страницы на другую, - это сделать 301 редирект. Однако это не всегда технически целесообразно, пример такой ситуации я описал в прошлом абзаце. А сейчас рассмотрим другую ситуацию.

Что будет с интернет-магазином, если использовать "Link Canonical", но не закрывать страницу от индексации?

Главная проблема тега "Link Canoncal" - он является лишь рекомендацией и, в частности Yandex, с недавних пор начал активно индексировать неканонические страницы. Загляните на официальный блог Яндекса: 4 июля 2019 в нем появилась следующая статья: https://webmaster.yandex.ru/blog/nekanonicheskie-stranitsy-v-poiske.

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

Что это означает для "Яндекса"? То что поисковая система, по своим внутренним метрикам стала чуть лучше отвечать на запросы пользователей, подкрутив свои алгоритмы и разрешив им игнорировать "Link Canoncal". Вот только в данном случае, поисковая система заботится исключительно о своих показателях, а не о сайтах в поисковой выдачи. Что же это означает конкретно для вашего сайта?

Моё мнение на этот счет: если канонические и неканонические страницы вашего магазина одновременно индексируются (и, соответственно, делят между собой трафик), то ваш сайт ранжируется хуже, чем сайт конкурента, у которого настроен "Link Canonical", и неканонические страницы закрыты от индексации. И вот почему:

  • Поведенческие факторы в целом "размываются" по всем страницам, на которые заходит пользователь.
  • Неканонические страницы чаще дают "плохие" поведенческие, чем канонические.
Как это работает? (приготовьтесь: здесь много букв и довольно субъективное мнение, которое непросто подтвердить на практике, не потратив на это много времени и денег)

Приведу несколько примеров. Предварительно, давайте договоримся, что:

  • наш сайт - site.ru
    • У нас есть категория "Кружки", оптимизированная под запрос "купить кружку"
    • site.ru/category/kruzhki/ - наша каноническая страница
    • site.ru/category/kruzhki/?price_min=1000 - наша неканоническая страница (страница фильтрации)
    • site.ru/category/kruzhki/?page=2 - наша неканоническая страница (страница пагинации)
    • site.ru/category/kruzhki/?sort=total_sales - наша неканоническая страница (страница сортировки)
    • на всех неканонических страницах у нас настроен тег "Link Canonical", но неканонические страницы не закрыты от индексации
  • наш сайт - konkurent.ru
    • У конкурента есть категория "Кружки", оптимизированная под запрос "купить кружку"
    • konkurent.ru/catalog/kruzhki/ - каноническая страница конкурента
    • konkurent.ru/catalog/kruzhki/?price_min=1000 - неканоническая страница конкурента (страница фильтрации)
    • konkurent.ru/catalog/kruzhki/?page=2 - неканоническая страница конкурента (страница пагинации)
    • konkurent.ru/catalog/kruzhki/?sort=create_datetime - неканоническая страница конкурента (страница сортировки)
    • на всех неканонических страницах у конкурента настроен тег "Link Canonical", а также неканонические страницы закрыты от индексации

Таким образом, у нас под запрос "купить кружку" у нас имеется 4 страницы и все они могут появляться в поиске, чередуя друг друга. У конкурента в поиске по тому же запросу ранжируется только 1 страница. Предположим, что наш сайт и сайт конкурента оба одинаково качественно проработаны, также одинаковы по ассортименту товаров и ценовой политике (в частности, всё это применимо к рассматриваемым страницам каталога "Кружки"), по всем SEO-показателям страницы сайта магическим образом оказались равны друг другу. Поисковой системе нужно определить какая страница всё-таки достойна быть выше. Самый простой способ для этого: собрать пользовательские данные. И вот как это будет работать:

  1. Допустим, 8 пользователей за некий промежуток времени вбивает в поиск запрос "купить кружку". Поисковая система пока что не знает, какая страница сайта лучше отвечает на этот запрос и ваши с конкурентом страницы сайта периодически меняются местами, а трафик между вашими сайта постоянно распределяется. Предположим, что он распределяется равномерно, как по количеству пользователей, так и по их "качеству" (все пользователи ведут себя одинаково, как среднестатистический неопытный интернет-покупатель).
  2. Предположим, что пользователи 1, 2, 3 и 4 попадают на сайт конкурента, а пользователи 5, 6, 7, 8 - на ваш сайт. Однако, важный момент: из-за того что у вас проиндексированы неканонические страницы, пользователи которые попали на ваш сайт начинают посещение сайта с разных страниц: пользователь 5 - с канонической страницы, пользователи 6, 7, 8 - с неканонической страницы (опять же, сделаем допущение, что все пользователи распределилось равномерно. На практике, каноническая страница будет собирать большую часть трафика, но мы рассматриваем некую условную ситуацию). У конкурента все пользователи начинают посещение сайта с одной страницы: с канонической.
  3. Сделаем самое главное допущение. Мы наверняка не знаем как именно собирает данные поисковая система. Я склоняюсь к тому варианту, что есть некий коэффициент: от 0 до 2, и каждое посещение пользователем страницы сайта оценивается поисковой системой в диапазоне от 0 до 2. Тогда получается что:
    • 0 - это отвратительная страница сайта, она не понравилась пользователю или не ответила на его запрос.
    • 1 - это нормальная страница сайта, которая нормально ответила на запрос пользователя.
    • 2 - это отличная страница сайта, понравившаяся пользователю, исчерпывающе ответившая на его запрос.
    Это вполне логичное предположение и может быть правдой (или хотя бы чем-то, что довольно близко к правде). Полученный коэффициент удачно вписался бы в формулу ранжирование, что-то наподобие такой: X*Y+Z/Y, где X - коэффициент за все остальные факторы ранжирования, Y - "поведенческий коэффициент" (средний "поведенческий балл"), Z - количество посетителей страницы, участвующее в выборке на определение поведенческого коэффициента.
  4. Поскольку мы договорились, что страницы вашего сайта и сайта конкурента одинаково хороши, а пользователи ведут себя одинаково, допустим, что при посещении канонической страницы сайта, все они кладут в "поведенческую копилку" каждой страницы ровно 1.5 балла, если не встречают никаких проблем на сайте. Но встречают ли? На канонических страницах - никаких проблем. А теперь рассмотрим неканонические:
  5. Откроем поочередно все страницы нашего сайта и посмотрим их глазами пользователей:
    • Первое что увидел пользователь 5 после своего запроса "купить кружку" - это страницу нашего сайта site.ru/catalog/kruzhki/. Это каноническая страница сайта - обычная категория. Мы договорились, что она хорошо проработана, с большим ассортиментом и приятными ценами. Точно такая же как и аналогичная страница конкурента. Следовательно:
      • Пользователь поползал на сайте, возможно сделал заказ или присмотрел товар на будущее.
      • Пользователь принес в "поведенческую копилку" 1.5 балла из 2 возможных.
    • Первое что увидел пользователь 6 после своего запроса "купить кружку" - это страницу нашего сайта site.ru/catalog/kruzhki/?price_min=1000. Будет ли она такая же качественная и удобная, как каноническая страница сайта? На самом деле - нет. Пользователь может вообще не понять что он находится на странице фильтрации категории и что в каталоге сейчас показываются только кружки стоимостью более 1000 рублей, и что эту фильтрацию можно убрать, найдя где-то сбоку на странице ползунок фильтрации и сдвинув его. Таких действий наш пользователь 6 не сделает. Пользователь с гораздо большей вероятностью просто поглядит в каталоге на дорогие кружки, расстроенно почешет репу, закроет сайт и пойдет искать себе кружку на другом сайте. Мы как владелец магазина пострадаем дважды:
      • Пользователь не нашел "ту самую кружку за 999 рублей" не сделал заказ ни сейчас ни потом, и не принес магазину прибыль
      • Пользователь принес в "поведенческую копилку" 0.5 балла, а не 1.5, как это было бы на канонической странице.
    • Первое что увидел пользователь 7 после своего запроса "купить кружку" - это страницу нашего сайта site.ru/category/kruzhki/?page=2. И снова зададим себе вопрос. Будет ли она такая же качественная и удобная, как каноническая страница сайта? И опять - нет. Здесь уже технические момент: раз наш сайт на Shop Script, то у нас есть одна неприятная особенность: в отличие от главных страниц категорий, на страницах пагинаций не будет работать функционал ленивой загрузки. Кроме того, в большинстве магазинов все самые лучшие и интересные товары показываются на первой странице, и чем дальше от нее - тем менее привлекательные товары показываются в карточках. А если в вашем магазине на каждой странице пагинации показывается ровно 36 товаров, а всего у вас в продаже 50 кружек, то пользователь, попавший из поисковой системы сразу на страницу пагинации увидит лишь 14 товаров. И опять же, он может не разобраться как попасть на первую страницу категории и изучить все представленные товары. В итоге:
      • Пользователь поползал на сайте, поглядел на 14 кружек, но ему ни одна не понравилась и спустя некоторое время пользователь ушел
      • Пользователь принес в "поведенческую копилку" 1 балл, а не 1.5, как это было бы на канонической странице.
    • Первое что увидел пользователь 8 после своего запроса "купить кружку" - это страницу нашего сайта site.ru/category/kruzhki/?sort=create_datetime. Какие сюрпризы ждут его здесь? По сути - никаких. Товары лишь отсортированы в другом порядке, по дате создания. Возможно, эта страница чуть менее привлекательная из-за не слишком удачной сортировки товаров в сравнении с канонической, но по-крайней мере здесь всё в порядке с юзабилити: для того чтобы просмотреть все товары в каталоге не приходится совершать дополнительных действий, ленивая подгрузка нормально работает. Отличия с обычной канонической страницей минимальные.
      • Пользователь поползал на сайте, возможно сделал заказ или присмотрел товар на будущее
      • Пользователь принес в "поведенческую копилку" 1.5 балла, точно также как это было бы на канонической странице.
  6. А что там у конкурента? Смотрим:
    • Все пользователи после запроса "купить кружку" - зашли на страницу konkurent.ru/catalog/kruzhki/.
      • Все пользователи поползали на сайте, возможно сделали заказ или присмотрели товары на будущее.
      • Каждый пользователь принес в "поведенческую копилку" 1.5 балла из 2 возможных.
  7. А теперь открываем наши "поведенческие копилки" и считаем баллы:
    • Страницы по отдельности:
      • site.ru/category/kruzhki/ - 1.5 балла (1.5 балл/чел)
      • site.ru/category/kruzhki/?price_min=1000 - 0.5 балла (0.5 балл/чел)
      • site.ru/category/kruzhki/?page=2 - 1 балл (1 балл/чел)
      • site.ru/category/kruzhki/?sort=create_datetime - 1.5 балла (1.5 балл/чел)
      • konkurent.ru/catalog/kruzhki/ - 6 баллов (1.5 балл/чел)
    • Весь сайт в целом:
      • site.ru - 4.5 балла (1.125 балл/чел)
      • konkurent.ru - 6 баллов (1.5 балл/чел)
  8. Если наши страницы и страница конкурента по-прежнему магическим образом по всем SEO-параметрам равны, то теперь мы заметно проигрываем по поведенческим факторам. Со временем, страница конкурента постепенно займет более высокую позицию в поиске, а наши страницы так и будут делить "поведенческие баллы" друг с другом, а также недобирать их из-за ошибок (особенностей функционала) неканонических страниц.

Метатег "Robots"

Ссылки на документацию от поисковых систем

Основное предназначение метатега "Robots" - это ограничение доступа роботов к странице. Google поддерживает очень много различных директив. С их помощью можно настроить максимальную длину сниппета, запретить индексировать изображения, запретить показывать страницу в результатах поиска в определенные время и даты, итд. Но лично я особо не вижу ситуаций, когда применение перечисленных "специальных" директив в интернет-магазинах было бы полезно. Поэтому я подробно остановлюсь только на двух директивах:

  • Noindex - запрещает индексацию страниц
  • Nofollow - запрещает следовать по ссылкам на странице

Нужно ли вообще использовать метатег "Robots"?

Да, нужно. И в Webasyst Shop Script - нужно обязательно. В отличие от тега "Link Canonical", применение метатега "robots" является не всего лишь рекомендацией для поисковых систем, а жестким правилом, которому поисковые системы обязаны следовать. Он может использоваться в комбинации с тегом "Link Canonical" и является очень полезным инструментом для SEO-продвижения. С его помощью можно:

  • Закрыть от индексации те страницы сайта, которые проблематично закрыть через robots.txt (в Shop Script, например, - это страницы скрытых категорий и скрытых товаров)
  • Закрыть от индексации страницы сайта, но оставить разрешение роботам переходить по ссылкам (в Shop Script, например, - это особенно актуально для страниц пагинаций)
  • Закрыть от индексации страницы сайта, которые ранее уже были проиндексированы, и при этом постараться перенести вес с неканонических страниц на канонические страницы сайта (а окончательно закрыть страницы в robots.txt уже потом, когда все страницы переиндексируются)
  • Закрыть от индексации те страницы сайта, которые могут начать индексироваться в будущем из-за технических ошибок при доработках, выполненных разработчиком, который "не понимает SEO".

HTTP-заголовок

Ссылки на документацию от поисковых систем

В принципе, HTTP-заголовки делают то же самое, что и метатег "Robots" и "Link Canonical". Отличается только реализация. Я не рекомендую использовать данный способ ограничения индексации страниц сайта ввиду сложности его внедрения, проверки и дальнейшего контроля. Просто запомните, что такой способ ограничения индексации страниц есть и при обнаружении проблем с индексированием - не забудьте проверить HTTP-заголовки страниц.

Как настроить правильную индексацию на Webasyst Shop Script?

Инструкция по настройке robots.txt

Инструкция по настройке robots.txt через стандартный функционал описана на странице блога — https://chikurov-seo.ru/blog/universalnyy-fayl-robotstxt-dlya-internet-magazina-na-webasyst-shop-script/.

Инструкция по настройке метатега "robots"

Инструкция по настройке метатега "robots" через плагин "SEO Meta Robots" описана в документации по плагину на странице https://chikurov-seo.ru/plugins-docs/metarobots/.

Инструкция по настройке "Link Canonical"

Инструкция по настройке "Link Canoncal" через плагин "SEO Link Canonical" описана в документации по плагину на странице https://chikurov-seo.ru/plugins-docs/seolinkcanonical/.