Работа с  постраничной навигацией входит в список обязательных действий, осуществляемых SEO-специалистом. Однако стоит помнить фундаментальное правило поисковой оптимизации: страница должна быть релевантна ключевому запросу. Не нужно создавать бесчисленное множество дублей с идентичными заголовками (тег title и meta description). Для решения подобных проблем на помощь оптимизаторам приходит постраничная пагинация. О том, какой она должна быть в идеале, ходит много споров; этот вопрос поднимается практически на любом SEO-форуме или конференции. Попробуем разобраться в ситуации и внести ясность в эту проблему.

Заказать продвижение сайта

Что такое пагинация и ее разновидности

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

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

  • Прямая (универсальная) пагинация с порядковой нумерацией (1-2-3). Это перечень номеров страниц.Чаще всего также добавляют кнопки “далее/назад” с обеих сторон ссылок на страницы.
  • Диапазон выбора с указанием позиции в листинге (1-10, 20-59).
  • Обратного типа (“новое”, 100-21, 20-1).

Конечно, никто не запрещает применять более креативные идеи, например:

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

 

Типы пагинации

  1. Разбивка статей. Это, пожалуй, наиболее распространенный вид. Используется для разделения текстового материала на страницы. По обеим сторонам от каждой размещают ссылки «Предыдущая», «Следующая».
  2. Обратите внимание: отдельно взятая страница в подобных случаях имеет собственный URL:

    • http://www.нашсайт.com/some_article-1.html;
    • http://www.нашсайт.com/some_article-2.html;
    • http://www.нашсайт.com/some_article-3.html.
  3. Пагинация галерей. У каждого изображения есть отдельная уникальная страница, что позволяет задавать имена картинок (входит в понятие оптимизации визуального контента). Подобная реализация удобна для библиотек, фотобанков.
  4. Пагинация категорий. Когда на сайте множество категорий, подкатегорий, во время просмотра приходится неоднократно пролистывать страницу вниз. Решением проблемы стала их пагинация, представленная на примере ниже.
  5. Листинг комментариев на блогах, тем, размещенных на форумах. При пагинации такого типа возникает одна сложность: контент, который сегодня находится на первой странице, завтра переместится на вторую, так как его место займут новые материалы. Чтобы не путаться, рекомендуется реализовать листинг по датам. Такие ссылки всегда будут вести на один и тот же контент, поскольку они будут содержать в своем адресе время публикации записи. В подобной ситуации можно использовать годы, месяцы, дни. При этом пагинация будет начинаться с главной, а далее – с максимальной цифры в URL-адресе:
  6. Бесконечная прокрутка (infinite scroll). Данный тип пагинации является  самым «продвинутым» среди современных способов разбиения на страницы. Реализовывается при помощи специального скрипта, который к текущей странице добавляет содержание следующей при прокрутке мышкой вниз.

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

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

Пагинация для SEO: миф или реальность?

Действительно ли навигация страниц сайта полезна для SEO-продвижения? Смоделируем стандартную ситуацию, встречающуюся на большинстве проектов. На веб-ресурсе есть 60 страниц. Чтобы поисковому роботу добраться хотя бы до середины (в этом случае – страницы под номером 30), ему необходимо углубиться на несколько уровней, отыскать товар либо пост, перейти на следующий уровень. Конечно, бот обойдет и эту, и другие страницы, однако сроки индексации будут падать с последующим уровнем.

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

Советы и правила корректной оптимизации пагинации

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

Метод 1. Использование noindex для удаления пейджинга из индекса поисковых систем.

Реализуется этот вариант максимально быстро. Необходимо лишь убрать из поискового индекса абсолютно все страницы за исключением первой  при помощи  <meta name=»robots» content=»noindex, follow» />.

После проверьте на отсутствие дублей URL 1-й страницы. Помните: на главную, к примеру “мой сайт.com/catalog”, нужно настроить “redirect 301” cо страниц “мой сайт.com/catalog/page=1”.

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

Метод 2. «Показывать  всё» и rel=“canonical” (основан на рекомендациях Google).

Суть способа – создание страницы «Все», которая выводит полное содержание (товары/страницы) из представленного каталога. На последующих страницах необходимо проставить <link rel= «canonical» href= «» /> на основное содержание. Обязательным условием страницы «Все» является ее быстрая загрузка: при наличии сотни страниц это может быть затруднительно. Положительным моментом станет индексация полного содержимого, минусом – на некоторых CMS-системах реализация весьма сложная.

Метод 3. Применение  Rel=“prev”/“next”.

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

Сложность! Атрибут – <link rel= «next» href= «http://мой сайт.com/page2.html»> (возможно использование относительных, абсолютных URL) размещается единственным на 1-й странице.

На вторую нужно будет поместить предыдущую, следующую:

<link rel=»prev» href=»http://мой сайт.com/page1.html»>

<link rel=»next» href=»http://мой сайт.com/page3.html»>

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

<link rel= «prev» href= «http://мой сайт.com/page3.html»>

Следует помнить, что Yandex не учитывает подобные атрибуты, а Google считает их вспомогательными, но не директивами.

Метод 4. AJAX, Javascript.

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

Ajax-подгрузка контента во время прокрутки страниц: этапы реализации

  1. HTML-документ с двумя обязательными блоками:
    • статическая страница с фиксированной шириной, высотой и свойством overflow:auto (чтобы прокручивать контент);
    • блок-контейнер внутри основной страницы. Его ширина меньше, чем родительского объекта, а высота будет зависеть от самого содержания. Именно в этом блоке происходит загрузка данных из сервера.
  2. Реализация scroll-события и отправление Ajax-запроса на сервер.
  3. Фрагменты кода для JavaScript-события:

    //запуск функции при прокрутке

    $(«.text»).on(«scroll», scrolling);
    function scrolling(){

    //считывание текущей высоты контейнера
    var currentHeight = $(this).children(«.wrapper»).height();

    //проверка достижения конца прокрутки
    if($(this).scrollTop() >= (currentHeight — $(this).height()-100)){

    /*отключение вызова функции прокрутки во избежание неоднократного вызова функции */
    $(this).unbind(«scroll»);

    //функция, реализующая следующие два этапа
    loader();}}

    //количество подгружаемых записей из БД
    var count = 20;
    //начиная с
    var begin = 0;
    function loader(){

    // «теневой» запрос к серверу
    $.ajax({
    type:»POST»,
    url:»./get.php»,
    data:{

    //передача параметров
    count: count,
    begin: begin*count
    },
    success:onAjaxSuccess
    });
    function onAjaxSuccess(data){

    //добавление полученных данных
    //в конец контейнера
    $(«.wrapper»).append(data);

    //возвращение вызова функции при прокрутке
    $(«.text»).on(«scroll», scrolling);
    }
    //увеличение точки отсчета записей
    begin++;
    }

  4. Использование PHP, MySQL.
  5. Посредством SQL и оператора LIMIT контент получают из БД, то есть выводят определенное число записей, хранящихся в разных блоках. Следующие действия – обращение в файле php к БД, демонстрация результата. В таком случае понадобится скрипт:

     // указание параметров для подключения к MySQL
    $host=’localhost’; // имя хоста
    $database=’lazyloader’; // имя базы данных
    $user=’root’; // имя пользователя
    $pass=»; // пароль пользователя

    // подключение к MySQL
    $db = mysql_connect($host, $user, $pass)
    or die(«Не могу соединиться с MySQL!»);
    mysql_select_db($database)
    or die(«Не могу подключиться к базе данных!»);

    //получение количества и позиции
    $begin = ($_POST[«begin»])?$_POST[«begin»]:0;
    $count = ($_POST[«count»])?$_POST[«count»]:12;

    //формирование запроса к БД
    $query = «SELECT * FROM база данных WHERE type=’тип’ LIMIT «.$begin.»,».$count.»»;

    //выполнение запроса и получение результата
    $result = mysql_query($query);

    //формирование вывода данных, полученных из базы
    while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
    echo «Английское название: «.$row[«name_en»].»»;
    echo «Русское название: «.$row[«name_ru»].»»;

После этого следует проверить работоспособность.

Заключение

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

  1. Невозможность индексации либо снижение глубины сканирования по причине некорректно настроенных ссылок пагинации.
  2. Возникновение дублированного контента. Подобная ситуация получается при использовании страницы «Смотреть все» и одновременном разделении на отдельные. При этом rel= »noffollow» для разбиения страниц не используется.

Чаще всего лучшим решением станет применение двух методов: атрибута rel=”next/prev” (понятен для Google) и мета-тега robots=”noindex,follow” (подходит для Google, Яндекс). Это – “золотая середина” в работе с оптимизацией пагинации.