Блог

Как добавить JSON-LD на WordPress без плагина

·~2 мин чтения·Андрей · seoforge.dev

Большинство гайдов про Schema.org на WordPress начинают одинаково: «поставьте Yoast SEO Premium за $99 в год». Это работает. Но если у вас три статьи в месяц и блог про столярку — это перебор.

Расскажу как сделать то же самое одним куском кода. Без плагина, без подписки, без подключения чужого CDN. 10 минут работы и Google видит вашу разметку.

Почему не плагин

Плагины schema.org для WordPress делают одну простую вещь: вставляют <script type="application/ld+json"> в <head> каждой страницы. Платите вы за интерфейс — выбор типа, форму, превью.

Если у вас 1-2 типа разметки (статья + Organization) и 3-5 шаблонов страниц — интерфейс не нужен. Один раз настроили — забыли.

Что нужно разметить минимально

Для блога малой компании достаточно три типа:

  1. Article — на каждую статью. Гугл показывает дату, автора, картинку.
  2. Organization — на главной. Гугл связывает сайт с компанией.
  3. 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 недели, без спама.

← Все статьи