Meta description — это важный элемент SEO, который помогает поисковым системам и пользователям понять, о чем ваша страница. По умолчанию WordPress автоматически генерирует описание для каждой записи и страницы, используя первые 160 символов контента, либо выводит пустое поле, если описание не задано. Однако часто этого недостаточно, и требуется более точный и уникальный meta description.
Почему стоит менять meta description вручную
Автоматически сгенерированный текст meta description может быть неинформативным, содержать технические термины или лишние теги. Это снижает привлекательность сниппета в поисковой выдаче и может повлиять на кликабельность (CTR). К тому же, некоторые шаблоны WordPress и темы не поддерживают удобное редактирование этого тега без плагинов.
Использование плагинов для SEO, таких как Yoast SEO или All in One SEO, упрощает настройку meta description, но иногда хочется обойтись без лишних расширений, чтобы не нагружать сайт.
Как изменить meta description через functions.php
Для изменения meta description без плагинов можно использовать хук wp_head и функцию, которая будет подменять или добавлять нужный тег в <head> вашего сайта.
Рассмотрим пример функции wp_shablon_custom_meta_description(), которую нужно добавить в файл functions.php вашей темы (желательно дочерней):
function wp_shablon_custom_meta_description() {
if (is_singular()) { // Проверяем, что это отдельная запись или страница
global $post;
// Получаем кастомное описание из мета-поля, если есть
$custom_desc = get_post_meta($post->ID, '_wp_shablon_meta_description', true);
if ($custom_desc) {
$desc = esc_attr($custom_desc);
} else {
// Если мета-поля нет, используем обрезанный контент
$content = strip_tags(strip_shortcodes($post->post_content));
$desc = mb_substr($content, 0, 160);
$desc = esc_attr(trim(preg_replace('/\s+/', ' ', $desc)));
}
echo "<meta name=\"description\" content=\"$desc\" />\n";
} elseif (is_home() || is_front_page()) {
// Для главной страницы можно задать статическое описание
echo "<meta name=\"description\" content=\"Добро пожаловать на сайт с шаблонами WordPress и полезными советами по их настройке." />\n";
}
}
add_action('wp_head', 'wp_shablon_custom_meta_description', 1);Эта функция выводит meta description в <head>. При этом сначала проверяется, есть ли у записи пользовательское мета-описание, сохранённое в поле _wp_shablon_meta_description. Если нет — берётся первые 160 символов очищенного от HTML и шорткодов контента.
Как добавить поле для редактирования meta description в админке
Чтобы удобно задавать уникальные описания к каждой записи, добавим кастомное поле в редактор постов.
Добавьте следующий код в functions.php для создания мета-бокса:
function wp_shablon_add_meta_box() {
add_meta_box(
'wp_shablon_meta_description',
'Meta Description',
'wp_shablon_meta_description_callback',
'post',
'normal',
'high'
);
add_meta_box(
'wp_shablon_meta_description',
'Meta Description',
'wp_shablon_meta_description_callback',
'page',
'normal',
'high'
);
}
add_action('add_meta_boxes', 'wp_shablon_add_meta_box');
function wp_shablon_meta_description_callback($post) {
wp_nonce_field('wp_shablon_save_meta_description', 'wp_shablon_meta_description_nonce');
$value = get_post_meta($post->ID, '_wp_shablon_meta_description', true);
echo '<textarea style="width:100%;" rows="3" name="_wp_shablon_meta_description">' . esc_textarea($value) . '</textarea>';
echo '<p>Введите уникальное описание для meta description (до 160 символов).</p>';
}
function wp_shablon_save_meta_description($post_id) {
if (!isset($_POST['wp_shablon_meta_description_nonce'])) return;
if (!wp_verify_nonce($_POST['wp_shablon_meta_description_nonce'], 'wp_shablon_save_meta_description')) return;
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
if (!current_user_can('edit_post', $post_id)) return;
if (isset($_POST['_wp_shablon_meta_description'])) {
$desc = sanitize_text_field($_POST['_wp_shablon_meta_description']);
update_post_meta($post_id, '_wp_shablon_meta_description', $desc);
}
}
add_action('save_post', 'wp_shablon_save_meta_description');Теперь в редакторе записей и страниц появится поле для ввода уникального meta description. После сохранения оно будет выводиться в <head> благодаря функции выше.
Советы по оптимизации meta description
1. Длина: старайтесь не превышать 160 символов, чтобы текст целиком отображался в поисковой выдаче.
2. Уникальность: каждое описание должно быть уникальным и точно отражать содержание страницы.
3. Привлекательность: используйте ключевые слова и призывы к действию, чтобы повысить CTR.
4. Избегайте дублирования: не используйте одинаковое описание на разных страницах.
Как проверить корректность meta description на сайте
После добавления кода и заполнения описаний проверьте исходный код страниц через браузер (Ctrl+U) — должен быть тег <meta name="description" content="..." /> с вашим текстом.
Для более глубокой проверки используйте инструменты Google Search Console, где можно увидеть, какие описания индексирует поисковый робот.
Также рекомендуется протестировать сайт через сервисы типа TechnicalSEO Meta Tags Analyzer для уточнения корректности мета-тегов.
Заключение
Изменить meta description в WordPress без плагинов — простая задача, если использовать правильный подход с кастомным полем и выводом тега через wp_head. Такой метод уменьшает зависимость от сторонних расширений и позволяет гибко контролировать SEO-описания на сайте.