Автоматическое создание мета тегов description и keywords в WordPress

Опубликовано: 10 июня 2018 / Обновлено: 18 июня 2018
Раздел(ы): WordPress
Просмотры: 15594
Комментарии: 8

Этой статьёй я хочу поставить жирную точку в вопросе автоматического создания метатегов description и keywords для WordPress. Тем более, что ранее я уже писал статью на эту тему: https://moonback.ru/page/generator-meta-tega-lt-description-v-wordpress

Для чего нужен мета тег KEYWORDS

Задуман этот мета тег был для подсказки поисковым системам по каким словам выводить в результатах поиска страницу с данным метатегом. Если у вас кулинарная статья про то как сварить борщ, то содержимое мета тега keywords должно состоять из слов «кастрюля, вода, капуста, картошка, свекла, лук, морковь, соль, борщ». Наличие таких слов усиливало соответствие статьи запросу.

Но со временем SEO-шники дискредитировали этот мета тег и сейчас он либо не учитывается поисковыми системами, либо играет незначительную роль в ранжировании сайта и поэтому считается не обязательным.

Зачем нужен мета тег DESCRIPTION

Этот мета тег содержит описание страницы ее суть и краткое содержание. Если вернуться к кулинарной статье про борщ, то мета тег description может иметь следующее содержимое: «Простой пошаговый рецепт с фотографиями вкусного борща на говяжьем бульоне, который вы можете приготовить за 30 минут».

Этот мета тег использовался поисковыми системами в качестве анонса статьи в поисковой выдаче. Но со временем он так же был дискредитирован и сейчас только Яндекс считает наличие мета тега description обязательным для каждой html страницы сайта.

Так нужны ли KeyWords и Description

По большому счету нет. Поисковые системы в основной массе ранжируют сайты по содержимому страниц. Я думаю, что именно по этому WordPress «из коробки» не предлагает никаких инструментов по формированию данных мета тегов.

Но чтобы Яндекс не ругался на отсутствие Description, а вы не расстраивались по этому поводу, воспользуйтесь нижеследующими рекомендациями.

Решение предлагаемое в этой статье всего лишь попытка заставить Яндекс.Вебмастер не ругаться на отсутствие мета-тега Description. И вряд ли поможет вам продвинуться вверх в поисковой выдаче.

Автогенератор метатегов Description и Keywords

На своих сайтах на WordPress я использую следующий код, который вам нужно разместить в файле functions.php вашей темы:

/* Автогенератор метатегов Description и KeyWords */

function create_meta_desc() {
    global $post;
    $meta = wp_get_document_title();
    
if (is_category()){
    $a = category_description();
    if ( ! empty( $a ) ) {    $meta = $a; }
}
if (is_front_page()){
    $meta = get_bloginfo( 'description' );
}
if (is_single()) {
    $meta = strip_tags($post->post_content);
    $tags = get_the_tags();
    if ($tags) { foreach($tags as $tag) { $meta2 .= ' ' . $tag->name; } }
    $meta2 = ltrim( $meta2, ' ' );
    echo "\n<meta name=\"keywords\" content=\"$meta2\" />";
}
    $meta = strip_shortcodes($meta);
    $meta = preg_replace( '~\[[^\]]+\]~', '', $meta );
    $meta = wp_strip_all_tags($meta, true);
    $meta = str_replace('"','\'', $meta);
    if ( mb_strlen ( $meta ) > 160 ){ $meta = mb_substr($meta, 0, 160)."..."; }
    echo "\n<meta name=\"description\" content=\"$meta\" />\n";
    
}
add_action('wp_head', 'create_meta_desc');

Пояснения к скрипту: по-умолчанию для всех страниц в качестве тега DESCRIPTION используется заголовок — TITLE. Если страница является разделом категорий, то скрипт попробует использовать описание текущей рубрики, если оно есть (изменить можно в админке):

Автоматическое создание мета тегов description и keywords в WordPress

На главной странице используется краткое описание блога:

Автоматическое создание мета тегов description и keywords в WordPress

А вот для записей (постов) начинается самое интересное. Для формирования метатега Description берется начальная часть текста статьи (160 символов) из которых предварительно удаляются все теги и шорткоды.

Так же в записях на основе меток формируется метатег KEYWORDS.

Как проверить наличие мета-тегов Description и Keywords на странице

Все современные браузеры для компьютеров позволяют просмотреть исходный код страницы, это можно сделать через контекстное меню нажав на странице правую клавишу мыши:

Автоматическое создание мета тегов description и keywords в WordPress

Либо нажать одновременно на клавиатуре клавиши [Ctrl] + [u]. И тогда на экране вы увидите примерно следующее:

Автоматическое создание мета тегов description и keywords в WordPress

А можно проще?

Можно упростить решения до минимума, просто добавьте следующий код в шаблон вашего сайта перед закрывающим тегом </head>, обычно в файле header.php:

<meta name="description" content="<?php echo wp_get_document_title(); ?>" />

Как сообщить Яндексу, что вы настроили DESCRIPTION

После того как вы все правильно настроили и убедились, что это работает, вам захочется оповестить об этом Яндекс. Но может случиться так, что сколько бы вы не нажимали кнопку [Проверить] у вас все равно будет сообщение об отсутствующем метатеге Description:

Автоматическое создание мета тегов description и keywords в WordPress

Причина в том, что страницы с добавленным метатегом должны попасть в базу Яндекса, то есть их должен посетить робот поисковой системы и проиндексировать.

Ускорить переобход можно прямо из панели Яндекс.Вебмастера, просто добавьте туда важные для вас страницы или те на которые ругается ПС из-за отсутствия метатега Description:

Автоматическое создание мета тегов description и keywords в WordPress

Спустя пару дней вы получите сообщение, что обновился метатег Description:

Автоматическое создание мета тегов description и keywords в WordPress

После чего стоит ожидать исчезновение сообщения об ошибке из-за отсутствующего мета-тега Description.

Автоматическое создание мета тегов description и keywords в WordPress

После добавления мета-тега description на страницы сайта сообщение об ошибках на Яндекс.Вебмастере обычно пропадают через 1-2 недели.

Обсуждение (комментарии к статье)

  1. Здравствуйте,подскажите,как сделать только для архивов дат,что-бы описание с генерировало,из 18.04.2019
    адрес сайта/2019/04/18
    Вот так 18.04.2019

  2. Аха, а если описания повторяются-скорее всего это записи групп, как прилепить счетчик +1

  3. Чёт перепробовал разные варианты,не получается выдернуть описание,просто дублирует поле title в поле description(

  4. Благодарю автора кода, наконец-то рабочий код нормального написания.
    Сразу заработало все. Еще раз спасибо.

  5. Отличное решение, спасибо!
    Добавил для меток:
    if (is_tag()){
    $b = tag_description();
    if ( ! empty( $b ) ) { $meta = $b; }
    }

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных", на условиях и для целей определенных политикой конфиденциальности сайта.
© Юрий Рассадников, 2011 - 2024
uptime узнать
Домен : reg.ru
Хостинг : adman.com
SQL - 7 | 0,225 сек. | 8.44 МБ