n-wp.ru — блог о WordPress

SEO своими руками: индексация

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

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

В основном seo-оптимизация блога сводится к четырем вещам:

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

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

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

Можно создать специальную функцию, которая будет автоматически внедрять этот мета-тег в исходный код страниц, причем внедрим в нее произвольное поле, с помощью которого будем управлять индексацией одиночных записей. Для этого нужно вставить в файл functions.php:

Что делает эта функция? Она определяет, отвечает ли текущая страница указанным параметрам, и если отвечает, то формирует мета-тег, запрещающий поисковому роботу индексацию текущей страницы. Указанный код человеческим языком можно прочитать так:

  • Если текущая страница фид RSS, или страница результатов поиска, или архив постов за определенный день, или страница входа, или страница регистрации, то индексация запрещена.
  • Если текущая страница является одиночной записью, то значение мета-тега берется из произвольного поля robotsmeta — как в нем указано, так и будет индексироваться эта одиночная запись.

То есть если вы не хотите, чтобы какой-нибудь пост индексировался, то заведите в нем произвольное поле robots, и впишите в него noindex,nofollow. Индексация остальных, динамически создаваемых страниц, будет зависеть от того, какие вы укажете дополнительные условия в строке 5:

  • is_category() — если это архив постов определенной категории
  • is_tag() — если это архив постов, помеченных определенным тегом
  • is_month() — если это архив постов за определенный месяц
  • is_year() — если это архив постов за определенный год
  • is_author() — если это архив постов определенного автора

Для того, чтобы мета-тег появился в исходном коде страницы, нужно вставить вывод функции в файл header.php между head и /head:

Комментировать