Автоматическое создание мета тегов description и keywords в WordPress
Раздел(ы): WordPress
Просмотры: 16160
Комментарии: 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 берется начальная часть текста статьи (160 символов) из которых предварительно удаляются все теги и шорткоды.
Так же в записях на основе меток формируется метатег KEYWORDS.
Как проверить наличие мета-тегов Description и Keywords на странице
Все современные браузеры для компьютеров позволяют просмотреть исходный код страницы, это можно сделать через контекстное меню нажав на странице правую клавишу мыши:
Либо нажать одновременно на клавиатуре клавиши [Ctrl] + [u]. И тогда на экране вы увидите примерно следующее:
А можно проще?
Можно упростить решения до минимума, просто добавьте следующий код в шаблон вашего сайта перед закрывающим тегом </head>
, обычно в файле header.php:
<meta name="description" content="<?php echo wp_get_document_title(); ?>" />
Как сообщить Яндексу, что вы настроили DESCRIPTION
После того как вы все правильно настроили и убедились, что это работает, вам захочется оповестить об этом Яндекс. Но может случиться так, что сколько бы вы не нажимали кнопку [Проверить] у вас все равно будет сообщение об отсутствующем метатеге Description:
Причина в том, что страницы с добавленным метатегом должны попасть в базу Яндекса, то есть их должен посетить робот поисковой системы и проиндексировать.
Ускорить переобход можно прямо из панели Яндекс.Вебмастера, просто добавьте туда важные для вас страницы или те на которые ругается ПС из-за отсутствия метатега Description:
Спустя пару дней вы получите сообщение, что обновился метатег Description:
После чего стоит ожидать исчезновение сообщения об ошибке из-за отсутствующего мета-тега Description.
После добавления мета-тега description на страницы сайта сообщение об ошибках на Яндекс.Вебмастере обычно пропадают через 1-2 недели.
Здравствуйте,подскажите,как сделать только для архивов дат,что-бы описание с генерировало,из 18.04.2019
адрес сайта/2019/04/18
Вот так 18.04.2019
Спасибо. Вот был дельный совет и статья.
Аха, а если описания повторяются-скорее всего это записи групп, как прилепить счетчик +1
Добрый день. Это только для WordPress? А как можно генерировать для другого движка?
Добрый день. Да, это только для WordPress. Как в других не подскажу.
Чёт перепробовал разные варианты,не получается выдернуть описание,просто дублирует поле title в поле description(
Благодарю автора кода, наконец-то рабочий код нормального написания.
Сразу заработало все. Еще раз спасибо.
Отличное решение, спасибо!
Добавил для меток:
if (is_tag()){
$b = tag_description();
if ( ! empty( $b ) ) { $meta = $b; }
}