Техническое SEO и разметка JSON-LD

Зачем:Вы сделаете сайт удобным для робота: robots.txt, карта сайта, канонические адреса, noindex для служебных страниц, и расскажете поисковику, о чём страница, разметкой schema.org в формате JSON-LD. После урока у вас готовы файлы robots.txt и sitemap.xml, список страниц, закрытых от индекса, и блок JSON-LD с данными вашего проекта.

30 минут

Озвучено синтезом речи (Qwen3-TTS), голос не принадлежит человеку.

Техническое SEO — настройка сайта для поискового робота: robots.txt, sitemap.xml, канонические адреса, noindex. Разметка JSON-LD сообщает, о чём страница.

Сначала войти в дом

В прошлом уроке вы разобрали, что поисковик проходит три шага: сканирование, индексацию и ранжирование. Это урок о двух первых. Он технический, но не сложный: всё сводится к трём маленьким файлам, одному мета-тегу и одному блоку разметки. Если с ними ошибиться, лучшие тексты в мире никто не увидит. Недаром один из частых «сюрпризов» нового сайта: при разработке доступ роботам закрыли, чтобы не показывать сырую версию, а после запуска забыли открыть.

robots.txt: что роботу можно, а что не нужно

Что это. Текстовый файл, который лежит строго по адресу /robots.txt в корне сайта (https://zarechye.example/robots.txt). Честные роботы поисковиков сначала читают его, и только потом ходят по сайту. Правила записаны группами: для какого робота (User-agent) что запрещено (Disallow) или разрешено (Allow).

User-agent: *
Disallow: /kabinet/
Sitemap: https://zarechye.example/sitemap.xml

Здесь написано: всем роботам нельзя ходить в раздел личного кабинета, а карта сайта лежит там-то. Звёздочка означает «все». Для отдельных роботов можно написать отдельные группы (User-agent: Googlebot, User-agent: YandexBot).

Откуда это. Файл придумал в 1994 году Мартейн Костер (Martijn Koster) для ранних поисковиков, чтобы владельцы сайтов могли сказать роботам, куда не ходить. Тридцать лет это было негласное соглашение. Только в 2022 году его оформили как стандарт: RFC 9309, он лежит в источниках. Яндекс и Google его поддерживают, у каждого есть свои дополнения (например, у Яндекса Clean-param для адресов с параметрами).

Чего robots.txt не делает. Это важно, потому что на этом ошибаются чаще всего:

  • Он не защищает. Это просьба, а не замок. Честные роботы послушаются, злоумышленник нет. Закрывать секретное нужно паролем и правами на сервере.
  • Он публичен. Любой может открыть /robots.txt. Если вы перечислите в нём секретные разделы, вы расскажете о них всем.
  • Он управляет доступом, а не показом. Если страница закрыта в robots.txt, но на неё ссылаются другие сайты, поисковик может показать голый адрес без описания. Чтобы страницу не показывали, нужен другой инструмент: noindex.
  • Одна ошибка закрывает всё. Строка Disallow: / запрещает весь сайт. Проверяйте файл после каждой правки.

sitemap.xml: список для робота

Что это. Файл (чаще всего /sitemap.xml) со списком адресов, которые вы хотите показать поисковику. Формат XML простой:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url><loc>https://zarechye.example/</loc><lastmod>2026-10-27</lastmod></url>
  <url><loc>https://zarechye.example/uslugi/</loc><lastmod>2026-10-20</lastmod></url>
</urlset>

Только loc обязателен. lastmod (дата последнего изменения) полезен, если вы указываете её честно. Другие теги (priority, changefreq) Google игнорирует. В одном файле до 50 000 адресов и 50 мегабайт.

Что важно понимать. Карта сайта подсказка, а не команда: она помогает роботу найти страницы (особенно те, на которые нет ссылок), но не заставляет проиндексировать. Укажите её в robots.txt строкой Sitemap: и отправьте в Вебмастер и Search Console. Включайте только нужные страницы: те, что закрыты noindex или перенаправлены, из карты убирайте.

Каноническая страница и дубли

Одна и та же страница бывает доступна по нескольким адресам: http:// и https://, с www и без, со слэшем на конце и без, с параметрами (?utm_source=..., о метках вы знаете из урока про соцсети). Для поисковика это разные страницы, у которых одно содержание: дубли. Они делят между собой силу ссылок и путают поисковик.

Что делать:

  1. Одна основная версия. Выберите: https, с www или без. Остальные версии отправляйте на основную редиректом 301 (вы разбирали коды ответов в части про HTTP: 301 это «переехала навсегда»).
  2. rel="canonical". В head каждой страницы пропишите <link rel="canonical" href="https://zarechye.example/uslugi/">, и пусть адрес будет полным. Это подсказка: «основная версия этой страницы вот эта». Страница может указывать и на саму себя.
  3. Единый вид адресов. Решите про слэш на конце и строчные буквы и придерживайтесь.

noindex: как не пустить страницу в поиск

Не все страницы сайта нужны поиску: «Спасибо» после заявки, личный кабинет, результаты внутреннего поиска, корзина. Чтобы поисковик не хранил их, в head ставят мета-тег:

<meta name="robots" content="noindex">

Или то же самое в заголовке ответа сервера (X-Robots-Tag: noindex), если это не HTML, например PDF.

Главная ловушка, которую показывает схема ниже: для noindex роботу нужно открыть страницу. Если вы закрыли её в robots.txt, он не откроет её и не увидит метку. Поэтому правило такое: страницы, которые не должны быть в поиске, оставляйте доступными для робота и ставьте noindex. А robots.txt оставьте для разделов, куда роботу ходить просто не нужно (огромные служебные каталоги), и для защиты не рассчитывайте.

А для личного кабинета нужен вход по паролю: это защита, а noindex только просьба не показывать.

Игра «паук»

Откройте схему. Это выдуманный сайт из семи страниц и связи между ними. Робот начинает с главной и идёт по ссылкам. Закрывайте страницы в robots.txt, ставьте noindex, включайте sitemap и смотрите, что робот находит, читает и запоминает. Цель: нужные страницы доступны и в индексе, служебные не попадут в индекс, и ни одно правило не мешает другому.

Робот идёт по ссылкам
  • Главная /

    В индексе. Просканирована и может попасть в индекс.

  • Услуги /uslugi/

    В индексе. Просканирована и может попасть в индекс.

  • Цены и запись /ceny/

    В индексе. Просканирована и может попасть в индекс.

  • Статья про границу /blog/granica/

    В индексе. Просканирована и может попасть в индекс.

  • Личный кабинет /kabinet/ (служебная: в поиск не нужна)

    В индексе. Просканирована и может попасть в индекс.

  • Страница «Спасибо» /spasibo/ (служебная: в поиск не нужна)

    В индексе. Просканирована и может попасть в индекс.

  • Старое предложение (ссылок нет) /staroe-predlozhenie/

    Не в индексе. Робот не нашёл эту страницу: на неё нет ссылок и её нет в sitemap.

Что не так (3): /kabinet/: служебная страница попадёт в индекс; /spasibo/: служебная страница попадёт в индекс; /staroe-predlozhenie/: нужная страница не найдена.

Сайт выдуманный. Правила те, что описывают поисковики: robots.txt управляет доступом, а не показом; чтобы страницу не показывали, оставьте её открытой и поставьте noindex.

Проверьте себя: как правильно закрыть от поиска страницу «Спасибо»?

Оставить её открытой для робота и поставить в head мета-тег noindex. Если закрыть её ещё и в robots.txt, робот не увидит метку, а адрес всё равно может показаться в выдаче.

Языки: hreflang

Для сайта на нескольких языках (в брифе поле «языки») в head каждой версии указывают её «родственников» тегами <link rel="alternate" hreflang="en" href="..."> (вы разбирали это в части про HTML и языки страницы). Правила три: у каждой версии ссылки на все версии, включая себя; адреса полные; страницы взаимно ссылаются друг на друга. Тогда Яндекс и Google показывают человеку страницу на его языке, а не наугад.

Разметка: рассказываем поисковику, что за страница

Поисковик читает текст страницы и догадывается, что в нём что. Догадки не всегда верны: цифра «2026» год или цена? Разметка снимает вопрос.

schema.org это общий словарь типов и свойств: Organization (организация), Person (человек), Event (событие), Product (товар), Article (статья) и сотни других. Его создали в 2011 году крупнейшие поисковики (Google, Microsoft, Yahoo, к ним присоединился Яндекс). JSON-LD это способ записать эти данные: как обычный JSON внутри тега script с типом application/ld+json. Стандарт JSON-LD принят консорциумом W3C. Google рекомендует именно его, Яндекс тоже понимает schema.org.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Название проекта",
  "url": "https://zarechye.example/",
  "email": "hello@zarechye.example",
  "telephone": "+7 000 000-00-00"
}
</script>

Что она даёт: поисковику яснее, о чём страница и кто за ней стоит; а для части типов ваша страница может получить в выдаче расширенное оформление (рейтинг, цена, дата события). Чего не даёт: гарантий. Google сам решает, показывать ли расширенный результат, и со временем меняет, какие виды поддерживает: смотрите актуальный список в документации.

Правила честной разметки.

  1. Размечайте то, что видно на странице. Часы работы, которых на странице нет, указывать нельзя. Фальшивая разметка нарушает правила Google и может привести к санкциям.
  2. Выбирайте тип по сути. Эксперт Person или ProfessionalService, компания Organization, место LocalBusiness (следующие уроки), магазин Store с товарами Product, фестиваль Event, сервис SoftwareApplication.
  3. Проверяйте. Проверку расширенных результатов (Google) и валидатор разметки (schema.org) можно найти по их названиям; они покажут синтаксические ошибки.
  4. Не размножайте. Одна основная сущность на страницу, остальные связываются с ней.

Практика

Подготовьте технические части сайта.

  1. robots.txt: строка User-agent, закрыты только служебные разделы, строка Sitemap с полным адресом.
  2. Адреса и sitemap.xml: по полному адресу для каждого раздела из брифа и сам файл.
  3. Закрытые от индекса страницы: не меньше двух, хотя бы одна через noindex.
  4. JSON-LD в head: @context, @type, название проекта, адрес и контакт из брифа.

Проверка смотрит на форму файлов и на блок разметки. Подходит ли тип вашему проекту, решаете вы: откройте schema.org и найдите тип, который описывает вас точнее, чем Organization.

Практика

Готовлю вашу страницу…

Тест

Вопрос 1 из 6

Соедините инструмент с задачей

Подберите пару к каждому пункту.

Карточки

Эти карточки попадут в повторение, когда вы завершите урок.

  • Что делает robots.txt и чего не делает?

    Ответ

    Лежит в корне сайта и просит робота не ходить в указанные разделы. Не защищает информацию (его читают честные роботы) и не гарантирует, что адрес не покажут.

  • Что такое sitemap.xml?

    Ответ

    Список адресов сайта в формате XML (теги urlset, url, loc). Это подсказка роботу, а не команда; в одном файле до 50 000 адресов.

  • Зачем rel="canonical"?

    Ответ

    Чтобы из нескольких адресов одной страницы (http/https, с www, с параметрами) поисковик знал основной. Дополняется редиректом 301.

  • Как не пустить страницу в поиск?

    Ответ

    Оставить её открытой для робота и поставить мета-тег robots со значением noindex. Закрывать в robots.txt для этого не нужно, иначе робот не увидит метку.

  • Что такое JSON-LD и schema.org?

    Ответ

    schema.org словарь типов (Organization, Event, Product), JSON-LD способ записать данные в виде JSON внутри script в head. Разметка должна пересказывать то, что видно на странице.

Источники

Дальше

Теперь вы знаете: техническое SEO: robots.txt, sitemap, канонические адреса, структурированные данные: schema.org и JSON-LD.