12 мин чтения Поисковая оптимизация (SEO)

Пагинация на сайте: как разбить каталог на страницы без потерь в SEO

продвижение сайтов
Содержание13

Пагинация — разбивка длинного списка товаров, статей или отзывов на пронумерованные страницы. Для поиска она безопасна, если у каждой страницы свой адрес вида ?page=2, свой canonical на саму себя и обычные ссылки a href на соседние страницы. Кнопка «Показать ещё» и бесконечная прокрутка без таких адресов прячут часть списка от робота.

Что такое пагинация и зачем её делают

Пагинация, или постраничная навигация, — блок с номерами страниц и ссылками «Назад» и «Далее» внизу списка. Его ставят в каталогах, разделах блога, ленте новостей, отзывах на карточке товара.

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

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

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

Пагинация, «Показать ещё» или бесконечная прокрутка?

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

Способ Плюсы для посетителя Минусы для посетителя Что видит робот
Пагинация видно размер списка и свою позицию в нём надо переходить между страницами все страницы, если номера — ссылки a href
Кнопка «Показать ещё» все результаты на одной странице, видно общее число нельзя показать очень большой список только первую порцию, если нет отдельных адресов
Бесконечная прокрутка просто листать вниз непонятно, сколько осталось до конца только первую порцию, если нет отдельных адресов

Для каталога и блога берите классическую пагинацию: её проще всего настроить правильно. «Показать ещё» и бесконечная прокрутка подходят для ленты, где порядок не важен, — но только если за ними стоят адреса страниц, о которых ниже.

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

Как поисковик находит страницы пагинации?

Робот находит страницы по ссылкам. Google пишет, что обычно сканирует адреса из атрибута href элементов a, а кнопки не нажимает и функции JavaScript, которые обновляют контент по действию пользователя, не запускает.

Отсюда главное правило: номера страниц и ссылка «Далее» должны быть настоящими ссылками.

<nav class="pagination" aria-label="Страницы каталога">
  <a href="https://site.ru/catalog/okna/">1</a>
  <span aria-current="page">2</span>
  <a href="https://site.ru/catalog/okna/?page=3">3</a>
  <a href="https://site.ru/catalog/okna/?page=3">Далее</a>
</nav>

Google советует на каждой странице ставить ссылку на следующую и ссылку на первую страницу списка, чтобы при выборе целевой страницы он отдавал предпочтение первой. Ссылки с решёткой вроде #page2 не подходят: Google игнорирует всё после символа #, и такую ссылку робот может принять за уже просканированную.

Чтобы робот нашёл все товары, даже если пагинация где-то сломана, Google советует создать файл sitemap или фид Merchant Center.

Факт. Роботы Google не нажимают кнопки и не запускают JavaScript, который подгружает контент по действию пользователя: страницы пагинации они находят по ссылкам a href.

Адреса страниц: ?page=N и первая страница

У каждой страницы списка должен быть свой постоянный адрес. Google рассматривает каждую страницу пагинации как отдельную и предлагает добавлять в адрес параметр ?page=n. Подойдёт и путь вида /page/2/ — важно, чтобы адрес не менялся и по нему всегда открывалось одно и то же.

Первую страницу держите на адресе раздела без номера. Если CMS отдаёт её ещё и по адресу ?page=1, получается дубль: поставьте с него 301 редирект на адрес раздела и уберите ?page=1 из ссылок пагинации.

В Яндексе есть своя ловушка — директива Clean-param в robots.txt. В ней перечисляют параметры, которые роботу не нужно учитывать. Если по ошибке добавить туда page, Яндекс перестанет различать адреса ?page=2 и ?page=3 и сведёт их к адресу раздела — товары с дальних страниц потеряют проход для робота. В Clean-param — только метки, идентификаторы сессий и сортировки, но не номер страницы.

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

Нужен ли canonical на страницах пагинации?

Нужен, но каждой странице — на саму себя. Google прямо пишет: не используйте первую страницу списка в качестве канонической, назначайте каждой странице её собственный канонический адрес.

Canonical со всех страниц на первую — частая и вредная настройка. Она говорит поисковику, что страница 2 копирует страницу 1, хотя товары на них разные. Яндекс в таком случае может и сам не послушаться: робот не учтёт канонический адрес, если контент неканонических страниц существенно отличается от канонической. Но рассчитывать на это не стоит — пропишите правильный canonical сразу.

Правильная схема для раздела с тремя страницами:

Адрес canonical Что ещё
/catalog/okna/ /catalog/okna/ ссылки на 2, 3 и «Далее»
/catalog/okna/?page=2 /catalog/okna/?page=2 ссылки на 1, 3 и «Далее»
/catalog/okna/?page=3 /catalog/okna/?page=3 ссылки на 1 и 2
/catalog/okna/?page=1 — 301 на /catalog/okna/

Исключение — сортировки и фильтры. Варианты одного списка вроде ?order=price Google советует закрывать от индексирования метатегом noindex или шаблоном в robots.txt, чтобы в индекс не попали копии одних и тех же страниц. Как записать такой шаблон, разобрали в статье про файл robots.txt.

Title, description и текст на страницах 2, 3 и дальше

Здесь справки Яндекса и Google расходятся. Яндекс, когда разбирает одинаковые заголовки и описания, советует разнообразить автоматические заголовки — например, добавить номер страницы. Google, наоборот, пишет, что для страниц со списком результатов можно использовать одно название и описание: он сам разберётся в последовательности.

Добавить номер в title — дёшево и устраивает обоих:

Окна ПВХ — каталог                 (страница 1)
Окна ПВХ — каталог, страница 2     (страница 2)

Так в Вебмастере не появятся предупреждения о дублях title, а Google это не помешает. Description на страницах пагинации можно оставить тем же или собрать по шаблону с номером.

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

Факт. Яндекс советует добавлять в автоматически созданные заголовки номер страницы, а Google допускает одно название и описание для всех страниц списка.

Rel next и prev, noindex и robots.txt

Раньше страницы пагинации связывали тегами link rel="next" и rel="prev" в head. Google сообщает, что раньше определял по ним следующую и предыдущую страницы, а сейчас игнорирует, хотя их могут использовать другие поисковые системы. Если теги уже стоят в шаблоне, они не мешают. Ставить их ради Google нет смысла.

Закрывать страницы пагинации от индексирования без причины не стоит. Метатег noindex убирает страницу из поиска, а запрет в robots.txt вовсе не пускает на неё робота — товары со страниц 2, 3 и дальше тогда остаются без проходных ссылок из раздела. Закрывают не пагинацию, а её копии: сортировки, фильтры без спроса, служебные параметры.

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

Бесконечная прокрутка без потерь для поиска

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

Рекомендации Google для такой схемы:

  1. Свой адрес для каждой порции

    Например, с параметром ?page=12, и по этому адресу всегда открывается одна и та же порция.

  2. Без относительных параметров

    Адрес вида ?date=yesterday меняет содержимое каждый день, его нельзя проиндексировать стабильно.

  3. Последовательные номера

    Чтобы поисковик понял, что адреса образуют один набор страниц.

  4. Смена адреса при прокрутке

    Когда на экран выходит новая порция, адрес в строке браузера обновляется через History API.

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

Как проверить пагинацию на сайте?

Начните с исходного кода страницы раздела: найдите блок пагинации и убедитесь, что номера — это a href с адресами, а не кнопки. Откройте вторую страницу и посмотрите canonical — он должен указывать на неё саму.

В Google Search Console проверьте вторую и третью страницы инструментом проверки URL. Он покажет, какой canonical выбрал Google и какой код страницы получил робот: если ссылки на товары появляются только после скрипта, это будет видно. Как найти инструмент, описано в статье как подключить сайт к Google Search Console.

В Яндекс Вебмастере откройте «Индексирование -> Страницы в поиске» и найдите исключённые страницы пагинации. Статус покажет причину: дубль, малоценная страница или запрет индексирования. Если статус «Дубль» и основной указана первая страница, ищите canonical на первую или параметр page в Clean-param.

Отдельно сверьте, что товары с последних страниц раздела есть в карте сайта.

Частые ошибки с пагинацией

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

  • 01 Canonical на первую страницу со всех

    Страницы 2, 3 и дальше выпадают как дубли, вместе с ними слабеет путь к товарам.

  • 02 Номера страниц на JavaScript

    Визуально пагинация есть, а ссылок a href нет, робот видит только первую порцию.

  • 03 Ссылки с решёткой

    Адреса вида #page2 Google игнорирует.

  • 04 page в Clean-param

    Яндекс склеивает разные страницы списка в одну.

  • 05 noindex или запрет в robots.txt на всю пагинацию

    Товары с дальних страниц остаются без проходных ссылок.

  • 06 SEO-текст на каждой странице

    Одинаковый блок делает страницы списка похожими друг на друга.

  • 07 ?page=1 без редиректа

    Первая страница живёт по двум адресам.

С чего начать, если в каталоге уже есть пагинация

Возьмите самый большой раздел каталога и пройдите проверку из раздела выше: ссылки a href, canonical на себя, номер страницы в title, нет ?page=1 и page в Clean-param. Исправления в шаблоне раздела сразу разойдутся на весь сайт.

Затем проверьте сортировки и фильтры: закрыты ли их варианты от индексирования и не уходят ли туда ссылки пагинации. Если вы переводите каталог на «Показать ещё» или бесконечную прокрутку, договоритесь с разработчиком, что под ними останутся адреса страниц.

Если каталог большой, а пагинация, фильтры и canonical настроены разными модулями, разобраться быстрее на аудите. В рамках SEO-аудита мы проверяем шаблоны каталога, находим, где теряются товары, и даём программисту список правок по каждому шаблону.

Источники

Частые вопросы

Сколько товаров показывать на одной странице каталога?

Единой нормы нет ни у Яндекса, ни у Google. Ориентируйтесь на скорость и удобство: страница должна быстро открываться на телефоне, а список — не заканчиваться слишком рано. Для поиска важнее, чтобы до любого товара можно было дойти по ссылкам.

Нужна ли страница «Показать все»?

Не обязательно. Она удобна, если товаров в разделе немного и страница со всем списком быстро грузится. Для большого каталога такая страница становится тяжёлой, и выгоды для поиска от неё нет.

Стоит ли добавлять страницы пагинации в карту сайта?

Главное — чтобы в карте сайта были сами товары и страницы разделов. Страницы пагинации робот найдёт по ссылкам, а Google советует sitemap именно для того, чтобы найти все товары на сайте.

Поделиться
ВКонтакте Telegram MAX

Расскажите о задаче — посчитаем смету

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