png
к ленте
#60

Правильная индексация страниц пагинации

Февраль'18

Пагинация (pagination, пейджинг, листинг) происходит от слов «page» и «navigation» и в буквальном смысле означает «постраничную навигацию». Вывод массива данных (например товаров в категории интернет-магазина) с разбиением на несколько страниц.

Пагинация

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

Нужно ли закрывать ее от индексации

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

Отношение к пагинации у Яндекса и Google

В своем блоге Яндекс советует использовать атрибут rel="canonical" тега <link>, в котором в качестве канонического адреса необходимо указывать первую страницу. В поиске будет участвовать только она одна, но остальные страницы будут посещаться поисковым роботом, с которых он перейдет на страницы товаров.

Google же предлагает три варианта реализации:

  • Ничего не делать и положиться на алгоритмы Google — он сам выберет страницу с наиболее релевантным содержимым.
  • В атрибуте rel="canonical" в качестве канонической указать страницу «Показать все», на которой выводились бы все товары категории.
  • Указать логическую связь между страницами пагинации с помощью атрибутов rel="next" и rel="prev" для тега <link>.

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

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

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

Как правильно реализовать индексацию пагинации

Чтобы найти компромисс между рекомендациями Яндекса и Google, мы в своей работе придерживаемся следующих правил:

  • Страницы пагинации открыты для индексации (исключение составляют страницы вида пагинация+сортировка и пагинация+фильтрация, если для фильтрации не предусмотрен корректно реализованный функционал
    смарт-фильтра).
  • Текст с описанием категории выводится только на первой странице. На второй, третьей и так далее страницах он не выводится (не скрывается в display:none, а именно не выводится). Это актуально для интернет-магазинов и неактуально, например, для раздела статей или новостей — в этом случае у разделов не бывает описаний, а в качестве контента выступают превью статей/новостей.
  • Первая страница должна быть доступна только по адресу без префикса пагинации. Например, в Bitrix пагинация по умолчанию строится с помощью GET-параметров, которые имеют вид PAGEN_1=N, где N — номер страницы пагинации.
    Допустим, первая страница категории имеет вид /catalog/category/, вторая — /catalog/category/?PAGEN_1=2, третья — /catalog/category/?PAGEN_1=3 и так далее. В этом случае важно, чтобы первая страница НЕ была доступна по адресу /catalog/category/?PAGEN_1=1 (это можно настроить с помощью 301-редиректов и правильного построения ссылок в навигационной цепочке).
  • Мета-теги и заголовок Title не должны дублироваться. Например, если для первой страницы задан оптимизированный title, то для страниц пагинации его можно строить по шаблону «%name% — страница N», где %name% — название категории, а N — номер страницы пагинации.
  • Используем атрибуты rel="next" и rel="prev" тега <link> — для Google это будет плюсом, для Яндекса вреда не принесет.
  • Несуществующие страницы пагинации должны отдавать 404 ошибку, либо перенаправлять на главную страницу раздела. Под несуществующими страницами имеются в виду страницы вида /catalog/category/?PAGEN_1=N, где N — больше реально существующего количества страниц в пагинации.

Можно заметить, что мы не во всем следуем официальным рекомендациям поисковиков, и вот почему:

  • Указание в качестве канонической страницы вида «Показать все» для больших каталогов неприемлемо, как описывалось выше.
  • Указание в качестве канонической первой страницы категории создаст трудности для Google — это не вписывается ни в одну рекомендацию и может создать проблемы при индексации и верном восприятии сайта.
  • Задание уникальных мета-тегов и заголовков в совокупности с различными выводимыми товарами делает страницы пагинации уже не дубликатами — на каждой из них свой контент. По этой же причине связывать их через rel="canonical" становится нелогично.
  • Благодаря оптимизированным мета-тегам, заголовкам и описанию, в поиске приоритет всегда будет отдаваться первой странице категории. Однако если возникнет ситуация, что в выдаче Яндекса ее место займет какая-либо страница пагинации, это можно расценивать как сигнал о переоптимизации страницы, что упрощает обнаружение данного фильтра.

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