Оптимизация мета-тегов 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 строчка – конец.

Надеюсь всё понятно и не сложно. Пользуйтесь на здоровье.

Если будет время – напишу об оптимизации и других метов.

(Visited 63 times, 1 visits today)
  • 4 апреля, 2023