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

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

Я давно уже отказался от использования плагинов для 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:

 
Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

Оцените автора
Добавить комментарий

×
WordPress:
прокачай свой сайт!

Скидка на премиум темы и плагины

Успей забрать скидку ⋙