возможно заказать разработку или сопровождение, услуги вашего сайта/блога


обновлено: 2022-06-26 в теме: Техническое SEO; Seo-Plus продвижение  Читаемая статья!
Запросто с WordPress создание и продвижение сайтов ATs media

Закроем страницы пагинации в noindex,follow – страницы архивов

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

Дело в том, что ко мне время от времени обращаются владельцы сайтов с просьбами закрыть страницы архивов от индексации тегами noindex,follow (исправить ошибки). В общем-то, эта задача достаточно проста, однако, коли есть вопрос, его нужно решать!

Закроем страницу архива в noindex,follow (либо noindex,nofollow, в зависимости от требований). Без плагинов. Хотя, многие воскликнут – зачем? с этим же замечательно справляются большинство плагинов! а я отвечу: не всегда целесообразно прибегать к использованию плагинов.

Обратимся к условным тегам Вордпресс (к тому же, теги возможно создавать свои).

Но обо всём по порядку…

 


 

 

 

 

 

 

…лирическое вступление:

 

 

Предположим, мы создали некую страницу и хотим вывести на этой странице выборку каких-то требуемых постов сайта – ленту…

 

т.е. собрать в один архив интересные посты какой-то категории, либо метки, автора, или произвольного типа, либо же отовсюду по чуть-чуть… Всё замечательно! однако, чтобы исключить дублирование контента, эту ленту (архив) нужно каким-то образом закрыть, либо открыть индексацию… т.е добавить в код метатеги noindex,follow таким образом сообщить роботу возможные разрешения…

 

 

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

 

 

Как выясняется из вопросов администраторов сайтов, у большинства из них возникают некоторые затруднения, когда те пытаются добавить самостоятельно нужные метатеги robots для страниц, скажем так, пагинации, имеющих ссылки по типу /page/2, /page/3 и т.д.

 

Отыскивают в сети некий код… дописывают его в файл функций и – не тут-то было! При тестировании возникает ошибка… (хотя, это не ошибка, а так – недоработка… Да и ПС на это сильно ругаться не станет) однако…

 

 

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

 

 

 

страницы пагинации архивов в noindex,follow

 

 

 

…чтобы получилось так, как на фото ниже:

 

 

 

страницы пагинации архивов в noindex,follow

 

 

 

 

К слову: в ситуации, когда RDS бар покажет два метатега noindex,follow и noindex,nofollow – ПС-робот как правило выбирает наименее строгий мета! то есть в данном случае noindex,follow.

 

noindex,follow – страница разрешена к проходу робота, НО не индексации контента

noindex,nofollow – роботам запрещён проход и индексация…

 

 

 

 

 

 

Как закрыть страницы пагинации архивов в noindex,follow

 

 

 

All in One SEO как закрыть страницу пагинации в noindex

 

 

 

Исходя из ситуации описанной выше, правильный теоретический подход по скрытию страниц пагинации в noindex,follow будет следующий.

 

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

 

 

Предположим, страница ленты с архивом имеет ID 4.

 

Если нам требуется вывести информацию (в данном случае атрибутику noindex,follow) только на этой странице, воспользуемся следующим тегом:

 

 

if ( is_page( '4' ) ) – наряду с ID страницы может быть указан слаг: слагаемый фрагмент ссылки, например popular

 

 

Полный код будет выглядеть так:

 

 

/*комментарий*/
add_action('wp_head', 'mihalica_metapage_robots');
function mihalica_metapage_robots() {
    if (is_page( '4 ') )     // 4 ID страницы, либо возможно использовать ссылку страницы типа: popular
{
    echo "".'<meta name="robots" content="noindex,follow" />'."\n"; } }
/*закрываем стр. к ИНДЕКСУ*/

 

 

После прописки этого кода в файле функций (или там, где вы прописываете код), на главной странице архива (НЕ включая стр. пагинации) тег для роботов будет выведен.

 

 

Функция кода активируется в шапке сайта wp_head при помощи строки экшн add_action:

 

add_action('wp_head', 'mihalica_metapage_robots');

 

 

functions.php — как разбить на отдельные функциональные части.

 

 

 

важная справка: если вы используете для закрытия страниц метатеги robots noindex,follow – в этом случае эти страницы ДОЛЖНЫ быть открытыми в файле robots.txt. Помните об этом!

 

 

 

 

добавим тег noindex,follow абсолютно ко всем страницам пагинации

 

 

 

 

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

 

 

 

подборка основных условных тегов WP расписана здесь.

как найти и убрать циклические ссылки… работа с условными тегами.

 

 

 

Для того, чтобы добавить информацию на страницы пагинации (важно ! на все страницы сайта, на которых отрабатывает пагинация) существует такой условный тег:

 

 

is_paged(' ')

 

 

Очень возможно, что этот тег у вас на сайте на ряду с иными уже используется! (или в плагином или сами ручками прописывали) по типу:

 

 

if (is_category( ' ' ) or is_tag( ' ' ) or is_paged( ' ' ) or is_search( ' ' ) or is_author( ' ' ))

 

 

В этом случае, на всех страницах пагинации соответственно с условиями выше метатег роботс уже будет выведен.

 

 

Замечательно! …однако, в нашем случае, все эти благостные решения с использованием условных тегов, хороши для архивов по умолчанию (рубрик, меток и т.д.).

Мы же, создали свой собственный архив, используя страницу с ID 4, а значит потребуются и настройки более утончённые.

 

 

Что ж, давайте попробуем наш архив пролистать по страницам!

 

 

…как и говорилось выше, на страницах пагинации появится ошибка, как на скриншоте выше! Лишний тег! …потому что информация robots в соответствии с условным тегом if (is_page( '4 ') ) и у кого уже используется if ( ! is_paged(' ') ) будет выведена на всех сопутствующих страницах!

 

 

 

как убрать лишний тег noindex,follow на кастомной странице пагинации

 

 

 

 

Поможет всё тот же условный тег if ( is_paged(' ') ) немного подредактированный: припишем значок ! что обусловит инвертирование – обратное действие:

 

 

if ( ! is_paged(' ') ) //информация будет выведена НЕ на страницах пагинации

 

 

Немного модернизируем – переработаем самый первый по статье код – добавим к нему всего одну строку:

 

 

if (is_page('4'))
if ( ! is_paged())  // добавим этот условный тег, который в нашем случае запретит вывод тега robots на странице с ID 4

 

 

Теперь, если попробовать архив пролистать по страницам – никакого лишнего тега не обнаружится..! Что нам и требовалось…

 

 

Это действие назовём – локальные правки по конкретной странице архивов.

То есть наши правки отменят на конкретной странице архива (с id 4) результат условного глобального действия  is_paged()) – для всех архивов сайта.

 

 

Полный код должен выглядеть так:

 

 

/*закрываем стр. пагинации к ИНДЕКСУ noindex,follow"*/
add_action('wp_head', 'mihalica_metapage_robots');
function mihalica_metapage_robots() {
    if (is_page('4'))     // 4 ID страницы, либо возможно использовать ссылку страницы типа: popular
    if (!is_paged())      // исключаем на страницах пагинации лишний мета
{
    echo "".'<meta name="robots" content="noindex,follow" />'."\n"; } }
/*закрываем стр. к ИНДЕКСУ*/

 

 

 

Важно!

 

Это я показал решение для конкретной страницы с id 4.

Однако, если у вас уже используется условие is_paged() в каком-то общем варианте кода, как упомянуто выше по тексту, тогда нужно сделать так, как показано ниже:

 

 

if (is_category( ' ' ) or is_tag( ' ' ) or is_paged( ' ' ) or is_search( ' ' ))

if ( ! is_page('4')) // добавляете к основному коду это условие - со знаком инвертирования !

 

 

То есть значок “!” обусловит запрет вывода метатега на кастомной странице.

 

 

Существует несколько способов, указать кастомные страницы, один из вариантов описан ниже.

 

 

Если запутались, то непременно посмотрите видео!! в нём всё подробно рассказано и показано…

 

 

 

Небольшое отступление…

…для тех читателей, которые смотрели видео – вот итоговый пример кода, который работали в кино…

 

 

/*открываем к проходу рубрики и т.п. архивы - но НЕ ИНДЕКСАЦИИ роботами*/
add_action('wp_head', 'al_meta_lenty_robots');
function al_meta_lenty_robots() {
if (is_category() or is_paged() or is_search() or is_tag() or is_tax() )
if ( ! is_page( '23934' ) ) // запрет вывода мета на такой-то id странице
{
echo "\n".'<meta name="robots" content="noindex,follow" />'."\n";
}
if ( is_page( '23934' ) ) // вывод на такой-то id страние

echo "\n".'<meta name="robots" content="noindex,nofollow" />'."\n";
}
/*открываем к проходу рубрики и т.п. архивы - но НЕ ИНДЕКСАЦИИ роботами*/

 

 

…это примерная заготовка условностей в коде, – всё это нужно править под себя.

 

Если что не ясно, пишите…

 

 

 

 

сопутствующие условные теги по теме страниц пагинации

 

 

 

 

К слову повествования пример проверки страницы произвольных типов:

 

 

/*для произвольного ТИПА*/
add_action('wp_head', 'mihalica_meta_type_robots');
function mihalica_meta_type_robots() {
if  (is_post_type_archive( 'name' ) ) // имя произвольного типа
{
echo "".'<meta name="robots" content="noindex,follow" />'."\n";
} }
/*для произвольного ТИПА*/

 

 

 

 

 

проверка на какой конкретно странице пагинации мы находимся

 

 

 

Бывают случаи, когда нужно проверить конкретную страницу пагинации – в этом случае используем get_query_var('paged')

 

 

 

if ( get_query_var( 'paged' ) == 4 ) { 
    // отработает на 4-й странице пагинации и т.д. 
}

 

 

 

 

пример использования is_page_template()

 

 

 

 

is_page_template() – определит, используется ли указанный файл шаблона при генерации текущей страницы:

 

 

is_page_template( $template = '' )

 

 

Что примечательно, функция возвратит true в том случае, если указанный в параметре файл шаблона используется в генерации текущей  страницы, в иных случаях отдаст false.

 

 

$template - значение: путь к файлу

 

 

В подобной конструкции возможно указать полное имя файла шаблона, например page-wordpress.php

 

при этом, стартуя от версии WordPress 3.4, появилась возможность (без всяких костылей) указать путь (папку), в которой находится файл для кастомной страницы.

 

 

пример:

 

 

name/page-wordpress.php

 

 

…более примерно условие составляется так:

 

 

if (is_page_template('name/page-wordpress.php')) 
{ 
    // если файл используется выводится этот код 
    } else { 
    // если файл НЕ используется - этот код
}

 

 

 

…подборка основных условных тегов WP расписана здесь

Условные теги по работе с плагином Woocommerce

 

 

 

 

Все подобные конструкции условных тегов возможно компоновать как угодно-с!

…не убоюсь такого громкого сравнения как – возможности ограничены только рамками наших фантазий!

 

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

 

Легко, просто и удобно! – без всяких громоздких плагинов…

 

Я вовсе не отношусь к плагинам как-то отрицательно (к хорошим плагинам!), однако предпочитаю подход к решению вопросов в рациональном ключе. Априори))

 

 

 

На этом повествование заканчиваю…

 

 

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

 

 

 

 

 

Условные теги: страницы пагинации – закрываем в noindex,follow

 

 

 

 

 


...вопросы в комментариях - помогу, в чём дюжу...
mihalica.ru !


Михаил ATs - владелец блога запросто с Вордпресс - в сети нтернет давным-давно...

...веб разработчик студии ATs media: помогу в создании, раскрутке, развитии и целенаправленном сопровождении твоего ресурса в сети... - заказы, вопросы... разработка...





Нажатия на кнопочки определяют Ваше высокое гражданское сознание

Поделитесь соображениями: Ваши мысли очень важны!

Внимание! Обязательные поля помечены *

  отныне доступен плагин: ats privacy policy ©


  1. Здравствуйте, Михаил!
    Спасибо! по полочкам разложили. На первый взгляд, вроде довольно не сложная тема (условные теги) однако, в некоторых ситуациях – путаешься, теряешь время…
    Много раз убеждаюсь, что подучится нужно только у того, который знает больше “тебя” по факту, а не болтовне..
    Поэтому спасибо за труд!
    PS
    у вас в один из примеров вкрался ошибочный ID: 23934

    Ответить - Сергей

    • Спасибо, Сергей. Поправил.

      Ответить - Михаил

  2. Добрый день. Хочу закрыть страницы пагинации. в фукцию темы вставил вот такой код

    function wpschool_noindex_paged() {
        if ( is_paged() ){
            ?>
    
            <?php
        }
    }
    add_action( 'wp_head', 'wpschool_noindex_paged', 2 )

    ;

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

    но изначально по умолчанию на той же страницы пагинации присутствует

    поддержка яндекс говорит что робот видет его как приоритетный и ваш код не учитывает. подскажите что сделать и как решить этот вопрос

    Ответить - Сергей

    • День добрый!
      Что-то не понятно! Вы как-то сумбурно изложили.
      Код вроде не полный у вас (или не весь сюда записали) – есть же над формой комментирования кнопки для обработки кода!

      Ответить - Михаил

      • Спасибо за работу…
        Статья и видюха пригодились очень)

        Ответить - Влад

  3. Добрый день. Хочу закрыть страницы пагинации. в фукцию темы вставил вот такой код

    function wpschool_noindex_paged() {
        if ( is_paged() ){
            ?>
    
            <?php
        }
    }
    add_action( 'wp_head', 'wpschool_noindex_paged', 2 );

    При просмотре кода страницы пагинации действительно видно тег

    
    <code><meta name="robots" content="noindex,follow" />

    Но на той же странице пагинации по умолчанию есть вот такой тег

    <meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" />

    Поддержка Яндек говорит что робот видет второй тег и считает его главным. А мой (первый тег) не берет во внимание. что сделать?

    Ответить - Сергей

    • Решение вашей задачи достаточно простое:
      Нужно убрать второй тег.
      Разберитесь что генерирует этот роботс index, follow тег.
      index, follow – конечно будет в приоритете – его нужно убрать (или изменить)!

      Ответить - Михаил

      • Это ясно но как это реализовать в вердпресс? Стоит плагин yost он генерирует второй тег.

        Ответить - Сергей

        • Отключите генерирование “роботс” для страниц пагинации.
          (либо – код, деактивирующий этот тег в формировании исходного кода страницы)

          Ответить - Михаил

  4. Здравствуйте Михаил, вопрос по поводу добавления meta теша noindex, nofollow.
    Как мне добавить данный мета тег на сраницу постов отсортированный по году/месяцу (т.е пример – url заканчивается на /09/2020).
    Нужно обратиться к кастомному посту is_post_type_archive( $post_types ), а потом как указать что это страница выведеных постов по году/месяцу?
    Заранее благодарен за ответ.

    Ответить - Валерий

    • Привет, Валерий!
      Я понял ваш вопрос. К тому же ко мне обращались с подобно задачей не так дано.
      Если коротко, то нужно работать с временными условиями.
      А если хотите более подробно, то придется подождать… так как сейчас очень ограничен по времени: много переписки с Яндексом и тех поддержкой хостингов…
      Через день-два смогу уделить время.

      Ответить - Михаил

      • Буду благодарен.!

        Ответить - Валерий

        • Хорошо!..
          Вы мне на почту пришлите поподробнее (с примером) что и как хотите реализовать. А я по мере свободного времени посмотрю…

          Ответить - Михаил