Что такое JSON-LD и зачем он нужен в WordPress
JSON-LD (JavaScript Object Notation for Linked Data) — это формат структурированных данных, который помогает поисковым системам лучше понимать содержимое сайта. В отличие от микроразметки на основе HTML-тегов, JSON-LD добавляется в виде отдельного скрипта в <head> страницы и не влияет на внешний вид сайта.
Поддержка JSON-LD важна для улучшения SEO, так как поисковики используют эти данные для отображения расширенных сниппетов — рейтингов, событий, рецептов, организации и т.д. В WordPress по умолчанию базовая поддержка schema.org реализована для страниц и записей, но зачастую её недостаточно для сложных сайтов. Поэтому полезно добавить или расширить поддержку JSON-LD самостоятельно.
В этой статье мы рассмотрим, как добавить кастомные JSON-LD структуры в WordPress, используя как плагины, так и собственные функции.
Использование плагинов для добавления JSON-LD
Плагин Schema & Structured Data for WP & AMP
Один из самых популярных и функциональных плагинов — Schema & Structured Data for WP & AMP. Он позволяет добавлять различные типы схем: статья, продукт, организация, рецепт, событие и др.
Преимущества плагина:
- Простой интерфейс настройки без кода
- Поддержка более 35 типов схем
- Автоматическая генерация JSON-LD для записей и страниц
- Интеграция с AMP
Пример использования: после установки и активации плагина в настройках можно выбрать тип схемы для постов, добавить поля, например, рейтинг, автор, дата публикации, и плагин автоматически вставит JSON-LD в <head>.
Плагин WP SEO Structured Data Schema
Другой вариант — плагин WP SEO Structured Data Schema. Он ориентирован на простое добавление основных схем и хорошо подходит для небольших сайтов.
Особенности:
- Минималистичный интерфейс
- Поддержка основных типов: организация, статья, человек
- Возможность добавлять пользовательские данные через фильтры
Однако, если нужна расширенная кастомизация, чаще рекомендуется писать собственный код.
Добавление JSON-LD вручную через функции в WordPress
Создание базового JSON-LD для организации
Если вы хотите добавить простую схему организации на все страницы, можно использовать хук wp_head. Например, добавим базовые данные:
function wpnote_add_jsonld_organization() {
if (is_front_page()) {
$json_ld = [
'@context' => 'https://schema.org',
'@type' => 'Organization',
'name' => 'WPNote',
'url' => home_url(),
'logo' => home_url('/wp-content/uploads/logo.png'),
'sameAs' => [
'https://www.facebook.com/wpnote',
'https://twitter.com/wpnote'
]
];
echo '<script type="application/ld+json">' . wp_json_encode($json_ld) . '</script>';
}
}
add_action('wp_head', 'wpnote_add_jsonld_organization');Этот код добавит JSON-LD с информацией об организации только на главной странице. Функция wp_json_encode корректно сериализует массив в JSON.
Добавление JSON-LD для записей
Для добавления расширенной разметки статьи можно расширить данные, включая авторство, дату публикации, изображение и описание. Пример для записи:
function wpnote_add_jsonld_article() {
if (is_singular('post')) {
global $post;
$author_name = get_the_author_meta('display_name', $post->post_author);
$image = get_the_post_thumbnail_url($post->ID, 'full');
$json_ld = [
'@context' => 'https://schema.org',
'@type' => 'Article',
'mainEntityOfPage' => [
'@type' => 'WebPage',
'@id' => get_permalink($post->ID)
],
'headline' => get_the_title($post->ID),
'image' => $image ? [$image] : [],
'datePublished' => get_the_date('c', $post->ID),
'dateModified' => get_the_modified_date('c', $post->ID),
'author' => [
'@type' => 'Person',
'name' => $author_name
],
'publisher' => [
'@type' => 'Organization',
'name' => 'WPNote',
'logo' => [
'@type' => 'ImageObject',
'url' => home_url('/wp-content/uploads/logo.png')
]
],
'description' => get_the_excerpt($post->ID)
];
echo '<script type="application/ld+json">' . wp_json_encode($json_ld) . '</script>';
}
}
add_action('wp_head', 'wpnote_add_jsonld_article');Этот код выводит структурированные данные о записи, что помогает поисковикам корректно индексировать и отображать информацию.
Расширение JSON-LD для кастомных типов записей и полей
Если на сайте используются кастомные типы записей, например product или event, важно добавлять соответствующие схемы. Можно использовать метаполя для хранения специфичных данных и включать их в JSON-LD.
Пример для кастомного типа event с пользовательскими полями даты и места:
function wpnote_add_jsonld_event() {
if (is_singular('event')) {
global $post;
$event_date = get_post_meta($post->ID, 'event_date', true);
$event_location = get_post_meta($post->ID, 'event_location', true);
$json_ld = [
'@context' => 'https://schema.org',
'@type' => 'Event',
'name' => get_the_title($post->ID),
'startDate' => $event_date,
'location' => [
'@type' => 'Place',
'name' => $event_location
],
'url' => get_permalink($post->ID),
'description' => get_the_excerpt($post->ID)
];
echo '<script type="application/ld+json">' . wp_json_encode($json_ld) . '</script>';
}
}
add_action('wp_head', 'wpnote_add_jsonld_event');Такая кастомизация позволит сделать сайт более информативным для поисковиков и увеличить CTR в выдаче.
Проверка и отладка JSON-LD на сайте
После добавления JSON-LD важно проверить корректность разметки. Для этого используйте официальные инструменты Google:
Просто вставьте URL страницы и убедитесь, что ошибки отсутствуют, а данные отображаются правильно. Если есть ошибки или предупреждения, исправьте их в коде или настройках плагина.
Также полезно проверять наличие JSON-LD в исходном коде страницы через браузер, нажав правой кнопкой мыши и выбрав "Просмотреть исходный код".
Итоги и рекомендации по добавлению JSON-LD
Поддержка JSON-LD — важный инструмент для улучшения SEO и взаимодействия с поисковыми системами. Для большинства сайтов достаточно установить и настроить плагин Schema & Structured Data for WP & AMP, но при необходимости гибкой кастомизации лучше писать собственные функции.
При написании кода следуйте таким советам:
- Используйте хук
wp_headдля вывода JSON-LD - Применяйте функцию
wp_json_encodeдля корректного формирования JSON - Проверяйте разметку через инструменты Google
- Обновляйте данные при изменении контента
Таким образом, вы сможете улучшить видимость сайта в поисковых системах и получить больше целевого трафика.