Блог
Как добавить JSON-LD на WordPress без плагина
Большинство гайдов про Schema.org на WordPress начинают одинаково: «поставьте Yoast SEO Premium за $99 в год». Это работает. Но если у вас три статьи в месяц и блог про столярку — это перебор.
Расскажу как сделать то же самое одним куском кода. Без плагина, без подписки, без подключения чужого CDN. 10 минут работы и Google видит вашу разметку.
Почему не плагин
Плагины schema.org для WordPress делают одну простую вещь: вставляют <script type="application/ld+json"> в <head> каждой страницы. Платите вы за интерфейс — выбор типа, форму, превью.
Если у вас 1-2 типа разметки (статья + Organization) и 3-5 шаблонов страниц — интерфейс не нужен. Один раз настроили — забыли.
Что нужно разметить минимально
Для блога малой компании достаточно три типа:
- Article — на каждую статью. Гугл показывает дату, автора, картинку.
- Organization — на главной. Гугл связывает сайт с компанией.
- BreadcrumbList — на статьях и категориях. Гугл показывает «путь» в выдаче.
Этого хватает чтобы получить «звёзды» (Rich Results) на 80% поисковых запросов про ваш блог.
Шаг 1. Article на странице статьи
Откройте functions.php темы (Appearance → Theme File Editor → functions.php). Добавьте в конец:
add_action('wp_head', 'seoforge_article_schema');
function seoforge_article_schema() {
if (!is_single()) return;
$post = get_post();
$author = get_the_author_meta('display_name', $post->post_author);
$image = get_the_post_thumbnail_url($post->ID, 'full');
$schema = [
'@context' => 'https://schema.org',
'@type' => 'Article',
'headline' => get_the_title(),
'description' => get_the_excerpt(),
'author' => ['@type' => 'Person', 'name' => $author],
'datePublished' => get_the_date('c'),
'dateModified' => get_the_modified_date('c'),
'image' => $image,
'publisher' => [
'@type' => 'Organization',
'name' => get_bloginfo('name'),
'logo' => ['@type' => 'ImageObject', 'url' => get_site_icon_url()],
],
'mainEntityOfPage' => get_permalink(),
];
echo '<script type="application/ld+json">' . wp_json_encode($schema) . '</script>';
}
Сохранили — открыли любую статью в режиме «view source» (Ctrl+U). В <head> должен появиться JSON-LD блок.
Шаг 2. Organization на главной
Тот же functions.php, добавьте ещё:
add_action('wp_head', 'seoforge_org_schema');
function seoforge_org_schema() {
if (!is_front_page()) return;
$schema = [
'@context' => 'https://schema.org',
'@type' => 'Organization',
'name' => get_bloginfo('name'),
'url' => home_url('/'),
'logo' => get_site_icon_url(),
'sameAs' => [
// Подставьте свои соцсети
'https://t.me/your_channel',
'https://vk.com/your_page',
],
];
echo '<script type="application/ld+json">' . wp_json_encode($schema) . '</script>';
}
Шаг 3. Проверка в Google
Открыли Rich Results Test. Вставили URL статьи. Жмёте Test URL.
Через 30 секунд видите: «Article: detected», «Organization: detected». Если красные ошибки — Гугл скажет каких полей не хватает (обычно image слишком маленький — нужно ≥1200×630).
Когда плагин всё-таки нужен
Если у вас интернет-магазин на WooCommerce с тысячей товаров и каждый имеет цену, рейтинг, доставку — Product schema усложняется. Тогда плагин типа Rank Math (бесплатный) разумнее ручного кода.
Для блогов до 200 статей кода из этой статьи хватает с запасом.
Если в коде не уверены
Если боитесь править functions.php — есть проще путь. На seoforge.dev/schema есть форма: вбили заголовок + дату + автора → получили готовый JSON-LD. Скопировали в свой шаблон один раз — забыли.
Free-вариант показывает «via seoforge.dev» комментарием внутри JSON-LD. Гугл его игнорирует, разметка работает как обычно. Pro убирает комментарий и даёт CSV-bulk: загрузил список из 100 статей → получил архив готовых JSON-LD-блоков.
Понравилась статья?
Подпишись — пришлём 1 письмо в 2 недели, без спама.