JSON-LD (JavaScript Object Notation for Linked Data) — это современный формат структурированных данных, который помогает поисковым системам лучше понимать содержимое вашего сайта. Внедрение JSON-LD повышает SEO и может улучшить отображение в поисковой выдаче, например, появление расширенных сниппетов.
Зачем нужна поддержка JSON-LD в WordPress
Встроенная поддержка JSON-LD в WordPress отсутствует, хотя поисковые системы, такие как Google, рекомендуют именно этот формат для структурированных данных. Многие популярные SEO-плагины добавляют JSON-LD автоматически, но если вы хотите избежать установки лишних плагинов, можно реализовать это самостоятельно.
Добавляя JSON-LD вручную, вы получаете полный контроль над тем, какие данные и как именно они передаются поисковикам, что особенно важно для уникальных проектов с нестандартной структурой.
Кроме того, минимизация плагинов снижает нагрузку на сайт и уменьшает потенциальные конфликты.
Основные типы структурированных данных для WordPress
Самые популярные типы для сайтов на WordPress:
- Article — для страниц и записей блога;
- BreadcrumbList — хлебные крошки;
- Organization — информация о компании;
- Person — авторы и сотрудники;
- Product — для интернет-магазинов;
- Event — мероприятия.
В зависимости от тематики сайта вы можете выбрать нужный тип или комбинировать несколько.
Добавление JSON-LD через functions.php — пример кода
Рассмотрим пример, как добавить JSON-LD для статьи (Article) на страницах одиночных постов WordPress без использования плагинов.
function wpdesk_add_jsonld_article() {
if (is_single()) {
global $post;
$author_id = $post->post_author;
$author_name = get_the_author_meta('display_name', $author_id);
$published_date = get_the_date('c', $post);
$modified_date = get_the_modified_date('c', $post);
$title = get_the_title($post);
$url = get_permalink($post);
$description = get_the_excerpt($post);
$json_ld = [
'@context' => 'https://schema.org',
'@type' => 'Article',
'headline' => $title,
'author' => [
'@type' => 'Person',
'name' => $author_name,
],
'datePublished' => $published_date,
'dateModified' => $modified_date,
'mainEntityOfPage' => $url,
'description' => $description,
];
echo '<script type="application/ld+json">' . wp_json_encode($json_ld, JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE) . '</script>';
}
}
add_action('wp_head', 'wpdesk_add_jsonld_article');
Этот код добавляет в <head> страницы одиночной записи JSON-LD с основной информацией о статье, включая название, автора, дату публикации, ссылку и описание.
Расширение поддержки — хлебные крошки JSON-LD
Хлебные крошки помогают поисковикам понять структуру сайта и улучшают навигацию для пользователей. Добавим поддержку JSON-LD для хлебных крошек без плагина.
function wpdesk_add_jsonld_breadcrumbs() {
if (!is_front_page()) {
$breadcrumbs = [];
$breadcrumbs[] = [
'@type' => 'ListItem',
'position' => 1,
'name' => 'Главная',
'item' => home_url(),
];
if (is_single()) {
$categories = get_the_category();
if (!empty($categories)) {
$cat = $categories[0];
$breadcrumbs[] = [
'@type' => 'ListItem',
'position' => 2,
'name' => $cat->name,
'item' => get_category_link($cat->term_id),
];
$position = 3;
} else {
$position = 2;
}
$breadcrumbs[] = [
'@type' => 'ListItem',
'position' => $position,
'name' => get_the_title(),
'item' => get_permalink(),
];
} elseif (is_category()) {
$category = get_queried_object();
$breadcrumbs[] = [
'@type' => 'ListItem',
'position' => 2,
'name' => $category->name,
'item' => get_category_link($category->term_id),
];
} elseif (is_page()) {
$breadcrumbs[] = [
'@type' => 'ListItem',
'position' => 2,
'name' => get_the_title(),
'item' => get_permalink(),
];
}
$json_ld = [
'@context' => 'https://schema.org',
'@type' => 'BreadcrumbList',
'itemListElement' => $breadcrumbs,
];
echo '<script type="application/ld+json">' . wp_json_encode($json_ld, JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE) . '</script>';
}
}
add_action('wp_head', 'wpdesk_add_jsonld_breadcrumbs');
Этот код динамически формирует хлебные крошки для одиночных записей, категорий и страниц, добавляя их в формате JSON-LD в <head>.
Отладка и проверка JSON-LD
После добавления JSON-LD важно проверить корректность разметки. Для этого используйте официальный Тестирование расширенных результатов Google. Введите URL страницы или вставьте код, чтобы убедиться, что ошибки отсутствуют и данные правильно воспринимаются.
Если вы замечаете, что разметка не появляется, убедитесь, что функция подключена и выводится в <head>. Также проверьте, не конфликтует ли код с другими плагинами SEO.
Интеграция с плагинами WPShop
Если вы используете темы или плагины с WPShop.ru, например, темы Reboot или Root, или плагин Clearfy Pro, некоторые из них уже включают базовую поддержку структурированных данных. Однако, если требуется кастомизация или расширение JSON-LD, описанный выше подход позволит добавить нужные данные без лишних модификаций плагинов.
Заключение
Поддержка JSON-LD значительно улучшает SEO вашего сайта и его восприятие поисковыми системами. Добавление JSON-LD вручную через functions.php — это гибкий и легкий способ внедрить структурированные данные без плагинов. Используйте приведённые примеры и расширяйте их под свои задачи, чтобы добиться максимальной эффективности и удобства.