Я давно уже отказался от использования плагинов для seo-оптимизации, считая, что для выполнения этой простой задачи достаточно нескольких функций.
В основном seo-оптимизация блога сводится к четырем вещам:
- настройка индексации страниц
- формирование текстового описания страницы
- указание ключевых слов для страницы
- формирование заголовка страницы
И если вам не нужно колдовать с заголовками, внедряя в них посторонние слова, подменять описания страниц, внедрять в них дополнительные ключевые слова, и проделывать прочие сомнительные телодвижения, то возможно, что и вам дополнительные плагины не нужны. Давайте самостоятельно создадим функцию, которая будет запрещать или разрешать поисковым роботам индексацию страниц категорий, тегов, результатов поиска.
Запретить поисковому роботу индексировать страницу можно, указав в исходном коде страницы специальный мета-тег:
</pre> <p>Можно создать специальную функцию, которая будет автоматически внедрять этот мета-тег в исходный код страниц, причем внедрим в нее произвольное поле, с помощью которого будем управлять индексацией одиночных записей. Для этого нужно вставить в файл functions.php:</p> <pre> function tp_meta_robots ($out = ''){ global $post; $eURL = $_SERVER['REQUEST_URI']; //если это страницы, отвечающие указанным параметрам, то не индексируем if ( is_feed() || is_search() || is_day() || strpos($eURL, '/wp-login.php') !== false || strpos($eURL, '/wp-register.php') !== false ) $out = "noindex,nofollow"; //если в одиночной записи есть заполненное произвольное поле robotsmeta, то берется его значение if( is_singular() ){ if( $robotsmeta = get_post_meta($post->ID, 'robots', true) ) $out = $robotsmeta; } if( $out ) return print "n"; return; }
Что делает эта функция? Она определяет, отвечает ли текущая страница указанным параметрам, и если отвечает, то формирует мета-тег, запрещающий поисковому роботу индексацию текущей страницы. Указанный код человеческим языком можно прочитать так:
- Если текущая страница фид RSS, или страница результатов поиска, или архив постов за определенный день, или страница входа, или страница регистрации, то индексация запрещена.
- Если текущая страница является одиночной записью, то значение мета-тега берется из произвольного поля robotsmeta – как в нем указано, так и будет индексироваться эта одиночная запись.
То есть если вы не хотите, чтобы какой-нибудь пост индексировался, то заведите в нем произвольное поле robots, и впишите в него noindex,nofollow. Индексация остальных, динамически создаваемых страниц, будет зависеть от того, какие вы укажете дополнительные условия в строке 5:
- is_category() – если это архив постов определенной категории
- is_tag() – если это архив постов, помеченных определенным тегом
- is_month() – если это архив постов за определенный месяц
- is_year() – если это архив постов за определенный год
- is_author() – если это архив постов определенного автора
Для того, чтобы мета-тег появился в исходном коде страницы, нужно вставить вывод функции в файл header.php между head и /head: