Оптимизация мета-тегов WordPress-сайтов
При оптимизации вордпрессовских сайтов приходилось оттачивать некоторые моменты, например, все знают что поисковики и валидаторы не любят отсутствие мета-тегов или их повторение на разных страницах. В ходе экспериментов я пришёл к наиболее идеальным на мой взгляд вариантам, которыми готов поделиться.
Начнём с описания страниц, а именно с тега description:
В файле заголовка header.php добавляем следующий код (или заменяем стандартную строчку, хотя по-умолчанию она не добавляется в стандартных темах, или заменяем свою старую строчки если у вас нестандартный шаблон), то есть строку приблизительно следующего содержания
PHP код:
<meta name="description" content="Ваш текст описания блога" />
заменяем на
PHP код:
<?php if (is_home() || is_front_page() ) : ?>
<meta name="description" content="<?php bloginfo('description'); ?>" />
<?php elseif (is_single() || is_page() ) : if (have_posts() ) : while (have_posts() ) : the_post(); ?>
<meta name="description" content="<?php echo cutString(get_the_excerpt(), 140); ?>" />
<?php endwhile; endif; elseif (is_category() ): ?>
<meta name="description" content="<?php echo category_description( $category_id ); ?>" />
<?php elseif (is_tag() ): ?>
<meta name="description" content="Ключевое слово: <?php echo single_tag_title(); ?>" />
<?php else : ?>
<meta name="description" content="<?php bloginfo('description'); ?>" />
<?php endif; ?>
Если вы заметили – там используется самописная функция cutString, поэтому её нужно добавить. В файл функций functions.php добавляем код
PHP код:
function cutString($string, $maxlen) {
А теперь русским языком объясню, что у нас получилось.
$len = (mb_strlen($string) > $maxlen)? mb_strripos(mb_substr($string, 0, $maxlen), ' ') : $maxlen;
$cutStr = mb_substr($string, 0, $len);
return (mb_strlen($string) > $maxlen)? $cutStr.' ...' : $cutStr;
}
1 строка – проверяет если у нас главная страница сайта (записей) home или же не забываем что может быть и статическая страница главной (front_page),
2 строчка – то выводится описание сайта, которое мы указывали в общих настройках блога
3 строчка – проверяет если мы на странице записи или любой другой статической странице
4 строчка – то выводится описание, вырезанное из основного контента страницы, длиной 140 символов, округлённое до полного слова, вот для чего нам нужна была функция cutString. Количество символов можно менять. Стандартно принимается в расчёт до 150, в отдельных случаях до 170, вобщем ставьте 140 – не ошибётесь.
5 строчка – проверяет если мы на странице рубрики,
6 строчка – то выводится описание рубрики. Само оно конечно с воздуха не возьмётся, так что нужно добавить вручную описание каждой рубрики постов, если вы не сделали этого ранее.
7 строчка – проверяет если мы на странице метки нескольких записей
8 строчка – то выводится фраза с тегом этих записей – “Ключевое слово: например кондиционеры Самсунг”
9 строчка – во всех остальных случаях (например когда новостей по одной рубрике уже на несколько страниц и мы попадаем на третью страничку page3, все варианты непросто предугадать и предвидеть), тогда выводим
10 строчка – стандартное описание блога как и на главной страничке
11 строчка – конец.
Надеюсь всё понятно и не сложно. Пользуйтесь на здоровье.
Если будет время – напишу об оптимизации и других метов.