SEO МЕТА ТЕГИ БЕЗ ПЛАГИНОВ: TITLE, DESCRIPTION, ROBOTS, OPEN GRAPH
Существует множество плагинов для SEO, но почти все из них служат для одной главной цели — создания SEO мета тегов (метаданных) для страницы: заголовка, описания, роботов и Open Graph. Иногда вместо подключения таких плагинов имеет смысл использовать небольшой кусочек кода — это проще управлять и решает нестандартные задачи. В этой статье я поделюсь своим «велосипедом» в этой области.
Код, который вы видите ниже, был написан давно, когда плагины «platinum SEO Pack» и «All in One SEO Pack» только начали появляться, а Yoast ещё не существовал. Несмотря на наличие плагинов, иногда возникает необходимость использовать этот код. Он используется как альтернатива, и, судя по комментариям, это нужно не только мне. Поэтому было принято решение вынести этот код в отдельную статью и поддерживать его здесь.
Одним из преимуществ этого кода является его простота и понятность. Здесь всё выполняется через хуки, а в плагинах обычно требуется больше времени, чтобы найти нужный хук. Кроме того, вы можете переписать часть кода под ваши специфические задачи.
Если вы не знакомы с PHP, я настоятельно рекомендую использовать SEO плагины — это на��ного удобнее! Более того, иногда плагины более удобны даже для тех, кто знает PHP, например, я не всегда использую этот код, и не прочь воспользоваться плагинами, такими как SEO Yoast.
КОД KAMA_SEO_TAGS: ВЫВОД ZАГОЛОВКА, ОПИСАНИЯ, РОБОТОВ, OPEN GRAPH, TWITTER
Основная задача SEO плагинов — предоставить возможность создать четыре метаполя для страницы: заголовок, описание, инструкции для роботов и ключевые слова. Также это включает создание дополнительной информации Open Graph.
Код, который реализует все это, можно увидеть ниже (с комментариями в коде):
is_echo_keywords) {
add_action('wp_head', [$core, 'echo_meta_keywords'], 1);
}
// WP 5.7+
add_filter('wp_robots', [$core, 'wp_robots_callback'], 11);
$og_meta = new Kama_SEO_Tags_og_meta($core);
add_action('wp_head', [$og_meta, 'echo_og_meta'], 1); // !ВАЖНО в конце
return $core;
}
public static function instance(array $params = []): Kama_SEO_Tags_Core {
static $core;
$core || $core = new Kama_SEO_Tags_Core($params);
return $core;
}
}
Метатеги SEO
Метатеги — это небольшие фрагменты текста, которые описывают содержание вашей страницы. Вот что они значат:
- Title (Заголовок) — это название вашей страницы, которое отображается в браузере и в результатах поиска.
- Description (Описание) — краткая информация о содержании страницы, она отображается под заголовком в результатах поиска.
- Robots (Инструкции для роботов) — команды, которые указывают поисковым системам, как индексировать вашу страницу.
- Open Graph — данные, которые помогают делиться вашей страницей в социальных сетях, определяя, как она будет выглядеть при публикации.
Инструкции для подключения и запуска кода
Для этого создайте файл Kama_SEO_Tags.php
в корне темы (или в другом месте) и скопируйте в него PHP-код (выше). Подключите этот файл в файле functions.php
вашей темы:
require_once __DIR__ . '/Kama_SEO_Tags.php';
Kama_SEO_Tags::init();
На этом всё.
Если код не работает, убедитесь, что функция wp_head()
используется в вашем файле header.php
и что там нет жестко закодированного тега <title>
и других SEO тегов.
Введение через Composer
Также можно установить с помощью Composer:
composer require doiftrue/wp-kama-seo-tags
МЕТА ПОЛЯ В АДМИН ПАНЕЛИ
ВАЖНО: Код не добавляет метабокс (метаполя) в админ панель!
Вышеупомянутый код только обрабатывает (выводит) необходимые SEO метатеги, но не добавляет метаполя для записей или таксономий — их нужно создать отдельно.
На странице редактирования записи или таксономии вам нужно создать метабокс с метаполями:
- title — альтернативный SEO заголовок, который будет использован в метатеге
<title>
вместо заголовка записи. - description — описание для страницы. Если оно отсутствует, будет использован текст из аннотации, а если и аннотация отсутствует, будет извлечён фрагмент из начала содержимого записи.
- meta_description — именно так должно называться метаполе описания для таксономий, так как ключ description уже используется для таксономий.
- keywords — метатег ключевых слов. Не уверен, что он необходим в современных условиях.
- robots — указанное здесь значение будет выведено как есть, например: noindex,nofollow.
Проверка, что всё работает с помощью стандартных пользовательских полей
Для записей эти метаполя могут быть созданы с помощью стандартного метаблока «Произвольные поля».
Как создать метабоксы с метаполями?
Это можно сделать различными способами:
- Используя класс
Kama_Post_Meta_Box
. - Просто с помощью кода.
- Используя плагины, такие как ACF или Meta Box.
Как создать метаполя для таксономий?
- С помощью одного из вышеперечисленных плагинов.
- Просто с помощью кода.
Настройка (с использованием хуков)
Код содержит хуки для полного или частичного изменения вывода каждого метаполя. Рассмотрим несколько полезных хуков.
Open Graph
// отключить свойство article:section
.
add_filter('kama_og_meta_show_article_section', '__return_false');
// отключить поиск изображений в содержимом поста.
add_filter('kama_og_meta_thumb_id_find_in_content', '__return_false');
Title
// изменить разделитель для заголовка
add_filter('document_title_separator', fn() => ' - ');
Description
// изменить описание для главной страницы
add_filter('home_meta_description', fn() => 'Описание для главной страницы');
// изменить описание
add_filter('kama_meta_description', 'change_meta_description');
function change_meta_description($desc) {
return $desc;
}
Robots
// метатег robots.
add_filter('wp_robots', 'wp_kama_robots_tag');
function wp_kama_robots_tag($robots) {
// закрыть
if (is_attachment() || is_paged() || is_post_type_archive()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
// закрыть таксономии
// закрыть черновик
if (is_preview()) {
$robots['none'] = true;
}
return $robots;
}
Теперь вы знаете, как настроить метатеги SEO в вашей теме WordPress без использования плагинов, используя простой, но мощный код!