Техническое 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=..., о метках вы знаете из урока про соцсети). Для поисковика это разные страницы, у которых одно содержание: дубли. Они делят между собой силу ссылок и путают поисковик.
Что делать:
- Одна основная версия. Выберите: https, с www или без. Остальные версии отправляйте на основную редиректом 301 (вы разбирали коды ответов в части про HTTP: 301 это «переехала навсегда»).
rel="canonical". В head каждой страницы пропишите<link rel="canonical" href="https://zarechye.example/uslugi/">, и пусть адрес будет полным. Это подсказка: «основная версия этой страницы вот эта». Страница может указывать и на саму себя.- Единый вид адресов. Решите про слэш на конце и строчные буквы и придерживайтесь.
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 сам решает, показывать ли расширенный результат, и со временем меняет, какие виды поддерживает: смотрите актуальный список в документации.
Правила честной разметки.
- Размечайте то, что видно на странице. Часы работы, которых на странице нет, указывать нельзя. Фальшивая разметка нарушает правила Google и может привести к санкциям.
- Выбирайте тип по сути. Эксперт
PersonилиProfessionalService, компанияOrganization, местоLocalBusiness(следующие уроки), магазинStoreс товарамиProduct, фестивальEvent, сервисSoftwareApplication. - Проверяйте. Проверку расширенных результатов (Google) и валидатор разметки (schema.org) можно найти по их названиям; они покажут синтаксические ошибки.
- Не размножайте. Одна основная сущность на страницу, остальные связываются с ней.
Практика
Подготовьте технические части сайта.
- robots.txt: строка User-agent, закрыты только служебные разделы, строка Sitemap с полным адресом.
- Адреса и sitemap.xml: по полному адресу для каждого раздела из брифа и сам файл.
- Закрытые от индекса страницы: не меньше двух, хотя бы одна через noindex.
- 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. Разметка должна пересказывать то, что видно на странице.
Источники
- Google Search Central: Introduction to robots.txt CC BY, по-английски
- Google Search Central: Block Search indexing with noindex CC BY, по-английски
- Google Search Central: What is a sitemap CC BY, по-английски
- Google Search Central: Consolidate duplicate URLs CC BY, по-английски
- Google Search Central: Intro to structured data markup CC BY, по-английски
- RFC 9309: Robots Exclusion Protocol только ссылка, по-английски
- Яндекс Вебмастер: использование файла robots.txt только ссылка, по-русски
- Getting Started with schema.org using Microdata (schema.org) CC BY-SA, по-английски
Дальше
Теперь вы знаете: техническое SEO: robots.txt, sitemap, канонические адреса, структурированные данные: schema.org и JSON-LD.