Интернет. Программы. Игры. Операционные системы. Антивирусы

Как сделать пагинацию по вшм. Поисковая оптимизация постраничной навигации

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

Примеры и аргументы у всех свои, но суть, как правило, одна: больше страниц — лучше СЕО. Нет, не лучше. Почему я уже писал, но давайте рассмотрим подробнее постраничную навигацию на сайте . Какой должна быть порядковая нумерация страниц сайта, чтобы, как минимум, не навредить SEO. Почему не навредить? Потому что в задачи поисковой оптимизации сайта входит определение точного соответствия страницы ключевому запросу , а не создание бесконечного числа дублей одной и той же страницы с заголовком «Страница №911».

Польза пагинации для SEO

Давайте рассмотрим, какую невероятную пользу несет постраничная навигация для сайта в плане . Она обеспечивает доступ ко всем страницам сайта из списка страниц категории. Да, действительно. Особенно, когда у вас 50 страниц и чтобы добраться до, скажем, 21 страницы, поисковому роботу нужно углубиться на … сколько уровней? Найти на 21 странице товар или пост и углубиться еще на один уровень. Да, польза колоссальная, особенно если учесть, что поисковые боты не ходят глубже 3-4 уровней вложенности. Нет, ну конечно ходят, но ценность и сроки индексации с каждым уровнем падают в геометрической прогрессии.

Что еще полезного нам несет порядковая нумерация страниц сайта? Она ограничивает количество ссылок на странице, ибо негоже более 100 ссылкам на одном холсте собираться. Вот это действительно польза. Есть еще косвенная польза, в виде , так как постраничная навигация — один из самых популярных и привычных методов отображения больших списков информации на сайте. За то и держим. Вот вроде бы и все.

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

SEO постраничной навигации на сайте

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

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

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

Исключение пагинации из индексации

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

Исключение пагинации через Канонические ссылки

Если коротко, то каноническая ссылка — это ссылка на главную страницу раздела или ту страницу, которую решено считать главной. На каждой нумерованной странице указываем ссылку на главную и «о, чудо!» — все номерные страницы улетают, как исключенные из индексации. Если более развернуто, то читаем .

А вот так выглядит код, который надо поставить на каждую номерную страницу:

Исключение пагинации через Robots Disallow

Представим, что адрес номерной страницы выглядит так:

Http://site.ru/category/page/3

Всего-то надо попросить поисковых роботов не ходить куда не надо, а именно:

Disallow: /category/page

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

Исключение пагинации динамических страниц

Ежели пагинация на сайте организована средствами URL динамических:

Http://site.ru/category?page=3

Извольте воротиться в robots.txt прописать уже знакомые:

Disallow: ?page=

Clean-param: page /

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

Ставь лайк, делай репост, подписывайся на новые статьи, которые выходят каждый день.

Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

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

.

Больше видео на нашем канале - изучайте интернет-маркетинг с SEMANTICA

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

Чтобы понять, что из себя представляет пагинация, разберем простую аналогию. Когда мы используем справочную литературу или печатный каталог, мы видим, что информация в нем представлена в упорядоченном виде. Товарные позиции или профессиональная информация не представлены сплошным перечнем. Это позволяет облегчить использование издания и быстро найти то, что нужно. Пагинация решает аналогичные задачи: упростить просмотр товаров, сделать его удобнее.

Сегодня пагинации бывают нескольких типов:

  • Прямая нумерация («1», «2», «3»...).
  • Прямая с указанием позиций в списке («1-10», «10-20» ...).
  • Обратная с позициями («40-30», «30-20», «20-10» ...).

Зачем нужна пагинация

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

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

Как сделать пагинацию

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

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

Для начала определяем, сколько у нас будет страниц, сколько из них будет отображаться в пагинации и какова текущая. Возьмем 45 страниц, текущую возьмем с $_GET"а (если ее нет, она равна 1). Число страниц, отображаемых в пагинации, оставляем гибким, чтобы корректировать число ссылок справа и слева от текущей.

Мы прописали сами данные, приступим к разработке пагинации. Она реализуется с помощью специальной функции - makePage, которая задается 4 параметрами: $iCurr (текущая страница), $iLastPage (последняя страница), $iLeftLimit (лимит слева), $iRightLimit (лимит справа).

Прописываем код:

Вывод при этом может иметь следующий вид:

Рассмотрим написанный код. Наиболее простым вариантом из возможных является ситуация, когда мы в центре (к примеру, на странице 8), справа и слева свободно отображаются страницы.

Если мы находимся в начале, используем другой код:

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

На этом все.

Проблемы с пагинацией при SEO

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

  • Поисковики могут применить штрафные санкции за повторение контента.
  • Товарные позиции долго индексируются, их трудно или вовсе нельзя найти через поиск.

Робот поисковиков находится на сайте ограниченное время. Представим, что бот зашел в интернет-магазин мужской одежды, где на каждой странице представлено 30-40 позиций, отличие позиций заключается лишь в наименовании брендов. Робот может просто не дойти до нужной позиции, потому что она находится на нижнем уровне. Однако владельцу интернет-ресурса нужно обратное, чтобы страницы были проиндексированы.

Если говорить о повторяющемся контенте, позиция поисковиков к нему резко отрицательная. Объясняется это просто: каждой странице должен соответствовать релевантный контент. Если контент схож, например, список товаров + описание групп одинаковые либо похожи, поисковику трудно определить релевантную страницу из представленных.Значимость страниц распыляется и теряется, главная страница уже не выделяется на фоне остальных. Следовательно, в выдаче поисковика сайт теряет позиции.

SEO и пагинация

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

Закрыть пагинацию для индексации

Многие задаются вопросом, как закрыть страницы пагинации от индексации. Для этого есть несколько решений.

  • Использовать мета-тег NOINDEX.

Здесь в «головную» секцию каждой страницы, кроме первой, мы вставляем строчку: . Таким образом мы не разрешаем роботу индексировать данную страничку, но позволяем проходить по ее ссылкам.

Здесь важно проработать XML карту ресурса. Если страницы ресурса динамичные, то есть можно использовать фильтры, ссылка первой веб-страницы должна выглядеть так: название домена/catalog. Со страниц «название домена/catalog?page=1» делаем редирект 301 на веб-страницу «название домена/catalog».

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

  • Использовать файл robots.txt.

Страницы пагинации имеют определенный вид «вид http://название домена/category/page/n», в которых n- номер страниц. Необходимо прописать robots.txt, присвоить ему определенную команду: «Disallow: /category/page». Данный способ универсален и подходит для любых поисковиков. Однако нюанс сохраняется: весь контент со страниц пагинации, кроме контента первой, будет исключен.

Применять страницу «Смотреть все» и тег CANONICAL

Смысл в следующем: создается веб-страница, где будут отображаться все имеющиеся товары. Для поисковиков данная страница указывается как каноническая через тег CANONICAL.

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

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

В данной статье я хочу показать вам, как добавить числовую пагинацию в WordPress к вашему блогу без каких-либо плагинов. Числовая пагинация, которую я собираюсь реализовать, используется на данном сайте (если вы перейдете в раздел блога и прокрутите в самый низ, то вы поймете, о чем я веду речь; примечание переводчика – примерно такая же реализация используется и на данном блоге, только через плагин). Я написал этот пост, поскольку я считаю, что людям обычно трудно добавить постраничное разбиение (пагинацию) к существующему сайту. Я регулярно сталкиваюсь с темами на форумах WordPress.org, где пользователи задают похожие вопросы: «Как мне добавить пагинацию к моей странице блога?», «Как мне добавить эти циферки в самом низу страницы, чтобы пользователи могли перемещаться по записям?» или «Как мне разбить мой блог на многочисленные страницы?» Складывается впечатление, что большинство пользователей выбирает для себя именно числовое разбиение на страницы в WordPress вместо навигации с помощью стандартных ссылок «Предыдущая страница» и «Следующая страница», которая в реальности никак не говорит о том, где именно пользователь находится в данный момент.

Базовая пагинация с помощью двух ссылок «Следующая страница» и «Предыдущая страница» достаточно просто реализуется, о чем прекрасно написано в кодексе, однако эта навигация не является самой удобной. Представьте себе, что пользователь пришел на ваш сайт, добрался до 8 страницы с нужной записью и ушел. Затем он вернулся обратно и решил получить тот же пост на 8 странице – для этого ему понадобится пролистать кучу страниц. Представьте себе, насколько это раздражающее действие. Это говорит о плохом юзабилити, и такого подхода желательно избегать, если вы не хотите, чтобы пользователи больше к вам не возвращались.

Базовая настройка: произвольный запрос WP_Query

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

6, "paged" => $paged); $custom_query = new WP_Query($args); while($custom_query->have_posts()) : $custom_query->the_post(); ?>

  • " rel="bookmark">

    Written by: /author/"> on #comments ">
      ">

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

В самом начале нашего запроса мы задаем переменную $paged, которая будет использоваться внутри нашего произвольного запроса. Она нужна для того, чтобы указать WordPress, на какой странице пагинации мы в данный момент находимся. Без этих двух переменных числовая пагинация в WordPress будет неправильно работать.

Стили пагинации

Следующие стили помещаются непосредственно в основной файл.CSS вашей темы. Эти стили определяют способ вывода на экран пагинации вашего сайта.

/* Pagination */ .pagination { clear:both; position:relative; font-size:11px; /* Pagination text size */ line-height:13px; float:right; /* Pagination float direction */ } .pagination span, .pagination a { display:block; float:left; margin: 2px 2px 2px 0; padding:6px 9px 5px 9px; text-decoration:none; width:auto; color:#fff; /* Pagination text color */ background: #555; /* Pagination non-active background color */ -webkit-transition: background .15s ease-in-out; -moz-transition: background .15s ease-in-out; -ms-transition: background .15s ease-in-out; -o-transition: background .15s ease-in-out; transition: background .15s ease-in-out; } .pagination a:hover{ color:#fff; background: #6AAC70; /* Pagination background on hover */ } .pagination .current{ padding:6px 9px 5px 9px; background: #6AAC70; /* Current page background */ color:#fff; }

Функция Pagination

Код ниже – это весь код, который требуется нам для того, чтобы пагинация корректно работала. Именно здесь обрабатываются возвращенные данные запроса и формируется наша красивая пагинация. Скопируйте и вставьте этот код в ваш файл functions.php. Никаких изменений совершать не нужно:

max_num_pages; if(!$pages) { $pages = 1; } } if(1 != $pages) { echo "

Page ".$paged." of ".$pages.""; if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "« First"; if($paged > 1 && $showitems < $pages) echo "‹ Previous"; for ($i=1; $i <= $pages; $i++) { if (1 != $pages &&(!($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems)) { echo ($paged == $i)? "".$i."":"".$i.""; } } if ($paged < $pages && $showitems < $pages) echo "Next ›"; if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) echo "Last »"; echo "
\n"; } } ?>

Вывод числовой пагинации в WordPress

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

max_num_pages); } ?>

Всем привет! Есть в SEO, как кажутся, элементарные и очевидные вещи, но если немного разобраться в них, возникает много вопросов и нюансов, которые беспокоят владельцев проектов. Сегодня я хочу поговорить про страницы пагинации (или еще их называют страницами листинга). Хочется написать развернутый урок: что, зачем и почему, чтобы все разъяснить, как удалось это сделать с уроком .

Я уже рассказывал на своем блоге, (там же и рассказывал, что такое постраничная навигация). Теперь пришло время показать, что нужно с ними делать с точки зрения SEO. Многих беспокоят следующие вопросы:

  • стоит ли их закрывать индексацию пагинации в robots.txt;
  • может стоит закрыть их с помощью meta name="robots";
  • или лучше использовать rel=canonical;
  • а может вообще их оставить открытыми для индексации;
  • ну и другие вопросы.

Итак, поехали!

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

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

  • карточек товаров;
  • информационных постов;
  • обсуждения на форумах.

Индексация пагинации

Лучше страницы пагинации не запрещать от индексирования, чтобы роботы доходили до как можно большего количества товаров/постов (особенно важно, когда у вас очень много товаров). Но опять же, несмотря на то, что страницы открыты для индексирования, я бы рекомендовал сделать так, чтобы они не участвовали в основном поиске. Я противник низкокачественных страниц в индексе и считаю, что в поиске должны быть только нужные страницы, и важность подобных страниц будет выше, нежели будет полно низкосортного контента. Как же тогда быть?

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

Требования Яндекса

Причем в данном случае проблем с индексацией товаров или постов не будет, так как rel=canonical не запрещает ходить роботам по страницам, но в индексе будет только основная страница в обоих поисковиках.

Требования Google

То есть Гугл не рекомендует, как это делает Яндекс, ставить каноникал на первую страницу, также он говорит, что это неправильно. Но по опыту замечено, что, если ставить rel=canonical на первую страницу, ничего критичного не происходит, сайты хорошо чувствуют себя в обоих поисковых системах.

И да, есть такой момент: Яндексу все равно на теги rel=prev и rel=next, он не понимает их и просто игнорирует.

А что же говорят SEOшники?

Мнений на эту тему очень много, приведу парочку.

Кто-то говорит, что каждую страницу пагинации нужно подтачивать под разные запросы. К примеру, первую страницу под "Купить ноутбук", вторую под "Купить ноутбук недорого", третью под "Купить ноутбук в интернет-магазине" и так далее. Не делайте так. Поисковики не настолько тупые, может быть это еще и работало лет 5-8 назад, но сейчас однозначно так не стоит делать.

А кто-то говорит запретить в robots.txt или использовать тег meta name="robots" content="noindex,follow". Я раньше тоже так делал, но это не совсем правильно, так как поведенческие факторы со страниц пагинации не будут передаваться. Да и Яндекс также говорит:

Я не продвигаю страницы категорий на блоге (а зря, я рассказывал про пользу правильной ), все руки не доходят, как-нибудь доберусь обязательно, уберу "noindex, follow". Тем, кто продвигает категории, рекомендую использовать инструкцию выше.

Дублирование в пагинации

Кстати, если Яндекс считает, что страницы пагинации - это дубли, то Google так не считает, ему главное указать rel=prev и rel=next. Если вы используете тег rel=canonical на основную страницу, то в индексе будет только она. Если же использовать только rel=prev и rel=next, страницы пагинации будут попадать в индекс поисковых систем.

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

Как оформить страницы пагинации

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

Если у вас интернет-магазин, можно добавить ссылку на страницу "Все товары" данной категории. Это позволит просмотреть страницу сразу, без переходов на другие страницы. В этом случае rel=canonical поисковики рекомендуют ставить rel=canonical на эту страницу со всеми товарами без пагинации. Но здесь нужно быть аккуратным, потому что если выводить много товаров/постов, то страница подгружается дольше, а поисковики любят как можно более быстрые сайты.

И еще, если мы находимся на второй или любой другой странице, ссылка на первую страницу должна идти сразу на основную, а не на /page/1, вот пример:

Повторюсь, закрывать от индексации страницы пагинации не нужно. Опять же скриншот комментария "Платона" и ссылку на него уже приводил выше.

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

Бесконечный скроллинг и прочие javascript/ajax использовать можно, но чтобы не было проблем, я бы рекомендовал сделать так, чтобы все элементы индексировались и отдавались роботу. И все же, я бы продублировал бесконечный скроллинг цифрами 1,2,3,4, так как некоторым пользователям так удобнее. Вот пример:

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

1, 2, 3 ... 10, 20, 30, 40, 50, 60, 70...79.

Вывод - как же в итоге поступить правильно?

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

  1. Если вам важен Яндекс или интересны оба поисковика (практически для всех проектов под Россию), то делаем каноникал на первую страницу.
  2. Если интересует только Гугл (например, ваш сайт находится в странах СНГ, где в некоторых из них трафика в Яндексе практически нет, или зарубежные проекты), то делаем rel canonical саму на себя и прописываем prev/next.
  3. Если у вас есть страница, где выводятся все товары, можно указать рел каноникал на нее, использовать rel=prev и rel=next. Тогда будет правильно для обоих поисковых систем. Но в таком случае, напомню, минусы тоже есть: если у вас имеются категории, где выводятся больше количество товаров, то это замедлит скорость загрузки сайта, а это влияет на ранжирование.

Во всех случаях запрета на индексирование не требуется (ни в robots.txt, ни в meta name="robots"). Не забываем, что текст размещаем только на 1-ой странице, чтобы не было дублей с большим количеством совпадений. Вы можете проследить за изменения страниц в индексе в панели вебмастеров Яндекса и Google.

Если делать подобные шаги для оптимизации сайта, результат не заставит себя ждать. Вот свежий пример из последних наших работ (это суммарный трафик с поисковых систем, начали работать в октябре 2017-го года, кликните, чтобы увеличить):

Ребята, кто успел попасть на предзапись моего SEO-марафона, я почти всем ответил на вопросы, осталось еще чуть-чуть, вопросов пришло очень много, разгребаю. 🙂 Если вдруг вы не успели записаться на предзапись марафона, ждите новостей на блоге (подпишитесь на рассылку по почте, чтобы не пропустить старт продаж), в феврале стартуем!

Ну и вопрос: а что вы делаете со страницами пагинации на своих проектах?