hh.ru
Автоматическое сканирование по открытой шкале 1.1 · 7,3 с · группа «Знания» (определена автоматически) · версия 1.1, калибровка не проведена
Может ли ИИ использовать ваш сайт как источник?
Найдёт сайт, но не сможет надёжно сослаться на автора и дату материала.
С прошлого сканирования 23.10.2026 уровень не изменился: 1 «Разметка».
Если тип определён неверно
Разметка
Синяя ступень — сейчас. Пунктир — цель после работ.
# hh.ru — уровень 1 из 4 «Разметка» Сканирование на готовность к ИИ-агентам, 23.10.2026 09:49 UTC. Группа сайта: «Знания». Отчёт: https://agentreadyscan.ru/check/?url=hh.ru · шкала: https://agentreadyscan.ru/metodika/ **Может ли ИИ использовать ваш сайт как источник?** Пока нет — Найдёт сайт, но не сможет надёжно сослаться на автора и дату материала. Замечаний: критичных 3, важных 11, на доводку 7. В порядке: 20 из 41. ## Что мешает уровню 2 - **Материалы размечены (Article).** Материалов с разметкой: 80. Не хватает полей: author, dateModified. Как исправить: Дополните Article: headline, author, datePublished, dateModified. - **Файл /llms.txt.** Не найден (404). Как исправить: Создайте llms.txt: кто вы, что продаёте, ссылки на ключевые разделы и данные. Это соглашение, а не стандарт, но пункт дешёвый. - **sitemap.xml с реальными датами lastmod.** Индекс карт: 55, с lastmod: 0. Дат изменения нет. Как исправить: Добавьте <lastmod> с реальной датой правки каждой страницы. ## Остальные замечания - **Несуществующая страница отвечает 404.** Вместо 404 — редирект 301. Как исправить: Отдавайте 404 или 410 вместо перенаправления. - **Время до первого байта до 600 мс.** TTFB 608 мс (из дата-центра в России, один замер). Как исправить: Включите кэширование страниц на сервере. Агенты обрывают медленные запросы. - **Файл /llms-full.txt.** Не найден (404). Как исправить: Выложите полный Markdown-каталог: линейки, характеристики, применение. - **Инструкция для агентов /AGENTS.md.** Не найдена (404). Как исправить: Опишите точки входа, как получить цену, единицы измерения и оговорки о достоверности. - **Markdown-карта сайта /sitemap.md.** Не найдена (404). Как исправить: Выложите карту сайта в Markdown для агентов. - **meta description 120–160 символов.** 180 симв. Как исправить: Опишите страницу в 120–160 символах. - **Open Graph: 6 основных тегов.** Найдено 3 из 6: og:title, og:description, og:image. Как исправить: Добавьте og:title, og:description, og:image, og:url, og:type, og:locale. - **Ровно один <h1>.** Найдено: 0. Как исправить: На странице должен быть один главный заголовок. - **Доля текста в HTML больше 15%.** Текст — 0,3% от объёма HTML. Как исправить: Страница — в основном код. Проверьте, что содержание есть в HTML, а не подгружается скриптами. - **Organization с реквизитами.** Есть: legalName, logo, address, sameAs. Нет: контакты, реквизиты. Как исправить: Дополните Organization недостающими полями. - **FAQ, глоссарий или инструкции размечены.** Не найдено на проверенных страницах. Как исправить: Разметьте FAQ, глоссарий терминов (DefinedTermSet) и инструкции. - **Автор указан со ссылкой.** Автор указан без ссылки на профиль или не указан. Как исправить: Укажите автора как Person или Organization со ссылкой url или sameAs. - **Markdown-зеркало страницы (link rel="alternate").** Ссылки на Markdown-версию нет. Как исправить: Добавьте <link rel="alternate" type="text/markdown" href="…">. - **Ответ в Markdown по Accept: text/markdown.** На запрос с Accept: text/markdown сервер ответил text/html; charset=utf-8. Как исправить: Отдавайте Markdown-версию по заголовку Accept (content negotiation). - **Описание API (OpenAPI).** Открытого API с описанием OpenAPI не найдено. Как исправить: Опубликуйте JSON-API товаров и цены с OpenAPI-схемой и сошлитесь на неё из AGENTS.md. - **Реквизиты юрлица: ИНН и ОГРН.** ИНН: нет, ОГРН: нет (на главной и в разметке). Как исправить: Покажите полное наименование, ИНН, ОГРН и юридический адрес — хотя бы в подвале. Для англоязычного сайта подойдут метки INN и OGRN либо поля taxID и identifier в разметке Organization. - **Контакты: e-mail или телефон ссылкой.** Нет ссылок mailto: или tel:. Как исправить: Сделайте почту и телефон ссылками — агент распознает их однозначно. - **Условия использования материалов объявлены.** Условия использования материалов не объявлены ни в разметке, ни в llms.txt, ни в AGENTS.md. Как исправить: Укажите лицензию (license в разметке) или правила цитирования и использования в llms.txt и AGENTS.md. ## Объём главной страницы для агента - Исходный HTML: примерно 514 235 токенов - То же содержание текстом: примерно 1 423 токенов - Лишнее (вёрстка, скрипты, стили): 100% Оценка: у каждой модели свой токенизатор, точное число отличается примерно на пятую часть. ## Справочная смета исправлений (прайс AI-D2C) - Базовый слой для агентов — 20 000 ₽, срок 1 неделя - Разметка типа страницы — 15 000 ₽, срок 2–3 дня на тип - Нестандартная работа — 15 000 ₽, срок по оценке - **Итого с НДС: 52 500 ₽** Цена одна для всех, исполнителя вы выбираете сами. Оферта: https://aid2c.ru/oferta/ --- Оценка по внешним признакам на дату сканирования: сайт запрашивается по HTTP без выполнения JavaScript. Это не сертификат. Сервис делает ООО «САРМАТЕХ», которое под маркой AI-D2C выполняет и работы по подготовке сайтов, поэтому проверка не независима.
Что нужно сделать, чтобы подняться на уровень 2
Отмечайте сделанное, так проще не потерять нить. Когда закончите, просканируйте сайт заново.
Задача: поднять сайт hh.ru до уровня 2 готовности к ИИ-агентам Проверка: https://agentreadyscan.ru/check/?url=hh.ru — шкала и требования открыты: https://agentreadyscan.ru/metodika/ Сканер читает исходный HTML без выполнения JavaScript. Всё, что появляется только после скриптов, он считает отсутствующим. Ниже 3 пункта. Их нужно закрыть все: уровень присваивается, только когда выполнены все требования. ———————————————————————————————————————————————————————————— ПУНКТ 1 из 3 Задача: Материалы размечены (Article) — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Материалов с разметкой: 80. Не хватает полей: author, dateModified. Что нужно сделать: Дополните Article: headline, author, datePublished, dateModified. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Материалы размечены (Article)» закрыт. ———————————————————————————————————————————————————————————— ПУНКТ 2 из 3 Задача: Файл /llms.txt — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Не найден (404). Что нужно сделать: Создайте llms.txt: кто вы, что продаёте, ссылки на ключевые разделы и данные. Это соглашение, а не стандарт, но пункт дешёвый. Ориентир по коду (Файл llms.txt). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```markdown # Название компании > Одно-два предложения: чем занимаетесь, что продаёте, где работаете. Язык сайта — русский. ## Каталог - [Раздел каталога](https://hh.ru/catalog/razdel/): что внутри, диапазон цен - [Второй раздел](https://hh.ru/catalog/vtoroy/) ## Условия - [Доставка](https://hh.ru/dostavka/) - [Оплата](https://hh.ru/oplata/) ## Контакты - info@hh.ru - ООО «Название», ИНН 0000000000 ``` Требования к правке: - Файл должен открываться по прямому адресу и отдаваться с кодом 200, без редиректа. - Кодировка UTF-8, перевод строки — обычный, без BOM. - Адреса внутри файла — полные, с https:// и доменом. - Файл не должен быть закрыт от роботов правилами robots.txt или защитой сайта. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Файл /llms.txt» закрыт. ———————————————————————————————————————————————————————————— ПУНКТ 3 из 3 Задача: sitemap.xml с реальными датами lastmod — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Индекс карт: 55, с lastmod: 0. Дат изменения нет. Что нужно сделать: Добавьте <lastmod> с реальной датой правки каждой страницы. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «sitemap.xml с реальными датами lastmod» закрыт.
Материалы размечены (Article)
Материалов с разметкой: 80. Не хватает полей: author, dateModified.
Задача: Материалы размечены (Article) — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Материалов с разметкой: 80. Не хватает полей: author, dateModified. Что нужно сделать: Дополните Article: headline, author, datePublished, dateModified. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Материалы размечены (Article)» закрыт.
Файл /llms.txt
Не найден (404).
Короткая выжимка о сайте для языковых моделей. Готовый генератор с проверкой — на странице /llms-txt/.
Положите файл в корень сайта: https://ваш-сайт.ru/имя-файла. Кодировка UTF-8, тип ответа text/plain (для .md — text/markdown).
# Название компании
> Одно-два предложения: чем занимаетесь, что продаёте, где работаете.
Язык сайта — русский.
## Каталог
- [Раздел каталога](https://hh.ru/catalog/razdel/): что внутри, диапазон цен
- [Второй раздел](https://hh.ru/catalog/vtoroy/)
## Условия
- [Доставка](https://hh.ru/dostavka/)
- [Оплата](https://hh.ru/oplata/)
## Контакты
- info@hh.ru
- ООО «Название», ИНН 0000000000Положите файл в корень сайта, рядом с index.php. Если корень закрыт правилами в .htaccess, добавьте исключение для этого имени.
# Название компании
> Одно-два предложения: чем занимаетесь, что продаёте, где работаете.
Язык сайта — русский.
## Каталог
- [Раздел каталога](https://hh.ru/catalog/razdel/): что внутри, диапазон цен
- [Второй раздел](https://hh.ru/catalog/vtoroy/)
## Условия
- [Доставка](https://hh.ru/dostavka/)
- [Оплата](https://hh.ru/oplata/)
## Контакты
- info@hh.ru
- ООО «Название», ИНН 0000000000Положите файл в корень сайта, рядом с wp-config.php. Плагины кэширования файл не трогают, очищать кэш не нужно.
# Название компании
> Одно-два предложения: чем занимаетесь, что продаёте, где работаете.
Язык сайта — русский.
## Каталог
- [Раздел каталога](https://hh.ru/catalog/razdel/): что внутри, диапазон цен
- [Второй раздел](https://hh.ru/catalog/vtoroy/)
## Условия
- [Доставка](https://hh.ru/dostavka/)
- [Оплата](https://hh.ru/oplata/)
## Контакты
- info@hh.ru
- ООО «Название», ИНН 0000000000Tilda не даёт класть свои файлы в корень. Варианты: перенести сайт на своё размещение, поставить перед Tilda обратный прокси (Nginx, Cloudflare Workers) и отдавать файл с него, либо опубликовать файл на поддомене и сослаться на него из robots.txt.
# Название компании
> Одно-два предложения: чем занимаетесь, что продаёте, где работаете.
Язык сайта — русский.
## Каталог
- [Раздел каталога](https://hh.ru/catalog/razdel/): что внутри, диапазон цен
- [Второй раздел](https://hh.ru/catalog/vtoroy/)
## Условия
- [Доставка](https://hh.ru/dostavka/)
- [Оплата](https://hh.ru/oplata/)
## Контакты
- info@hh.ru
- ООО «Название», ИНН 0000000000Задача: Файл /llms.txt — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Не найден (404). Что нужно сделать: Создайте llms.txt: кто вы, что продаёте, ссылки на ключевые разделы и данные. Это соглашение, а не стандарт, но пункт дешёвый. Ориентир по коду (Файл llms.txt). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```markdown # Название компании > Одно-два предложения: чем занимаетесь, что продаёте, где работаете. Язык сайта — русский. ## Каталог - [Раздел каталога](https://hh.ru/catalog/razdel/): что внутри, диапазон цен - [Второй раздел](https://hh.ru/catalog/vtoroy/) ## Условия - [Доставка](https://hh.ru/dostavka/) - [Оплата](https://hh.ru/oplata/) ## Контакты - info@hh.ru - ООО «Название», ИНН 0000000000 ``` Требования к правке: - Файл должен открываться по прямому адресу и отдаваться с кодом 200, без редиректа. - Кодировка UTF-8, перевод строки — обычный, без BOM. - Адреса внутри файла — полные, с https:// и доменом. - Файл не должен быть закрыт от роботов правилами robots.txt или защитой сайта. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Файл /llms.txt» закрыт.
sitemap.xml с реальными датами lastmod
Индекс карт: 55, с lastmod: 0. Дат изменения нет.
Задача: sitemap.xml с реальными датами lastmod — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Индекс карт: 55, с lastmod: 0. Дат изменения нет. Что нужно сделать: Добавьте <lastmod> с реальной датой правки каждой страницы. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «sitemap.xml с реальными датами lastmod» закрыт.
Можно поправить за час, без разработчика
Не влияет на уровень, но агентам станет понятнее.
Файл /llms-full.txt
Не найден (404).
Полный текст ключевых страниц одним файлом. Собирается скриптом при публикации: заголовок страницы, адрес, текст без вёрстки.
Положите файл в корень сайта: https://ваш-сайт.ru/имя-файла. Кодировка UTF-8, тип ответа text/plain (для .md — text/markdown).
# Полные тексты страниц hh.ru
## Доставка
https://hh.ru/dostavka/
Текст страницы без вёрстки.
## Оплата
https://hh.ru/oplata/
Текст страницы без вёрстки.Положите файл в корень сайта, рядом с index.php. Если корень закрыт правилами в .htaccess, добавьте исключение для этого имени.
# Полные тексты страниц hh.ru
## Доставка
https://hh.ru/dostavka/
Текст страницы без вёрстки.
## Оплата
https://hh.ru/oplata/
Текст страницы без вёрстки.Положите файл в корень сайта, рядом с wp-config.php. Плагины кэширования файл не трогают, очищать кэш не нужно.
# Полные тексты страниц hh.ru
## Доставка
https://hh.ru/dostavka/
Текст страницы без вёрстки.
## Оплата
https://hh.ru/oplata/
Текст страницы без вёрстки.Tilda не даёт класть свои файлы в корень. Варианты: перенести сайт на своё размещение, поставить перед Tilda обратный прокси (Nginx, Cloudflare Workers) и отдавать файл с него, либо опубликовать файл на поддомене и сослаться на него из robots.txt.
# Полные тексты страниц hh.ru
## Доставка
https://hh.ru/dostavka/
Текст страницы без вёрстки.
## Оплата
https://hh.ru/oplata/
Текст страницы без вёрстки.Задача: Файл /llms-full.txt — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Не найден (404). Что нужно сделать: Выложите полный Markdown-каталог: линейки, характеристики, применение. Ориентир по коду (Файл llms-full.txt). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```markdown # Полные тексты страниц hh.ru ## Доставка https://hh.ru/dostavka/ Текст страницы без вёрстки. ## Оплата https://hh.ru/oplata/ Текст страницы без вёрстки. ``` Требования к правке: - Файл должен открываться по прямому адресу и отдаваться с кодом 200, без редиректа. - Кодировка UTF-8, перевод строки — обычный, без BOM. - Адреса внутри файла — полные, с https:// и доменом. - Файл не должен быть закрыт от роботов правилами robots.txt или защитой сайта. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Файл /llms-full.txt» закрыт.
Инструкция для агентов /AGENTS.md
Не найдена (404).
Инструкция для агентов: где брать данные машинно и чего делать не нужно. Имя файла пишется прописными буквами.
Положите файл в корень сайта: https://ваш-сайт.ru/имя-файла. Кодировка UTF-8, тип ответа text/plain (для .md — text/markdown).
# AGENTS.md
Инструкция для ИИ-агентов, работающих с сайтом hh.ru.
## Что здесь есть
Коротко: чем занимается компания и что можно найти на сайте.
## Машиночитаемые источники
- Карта сайта: https://hh.ru/sitemap.xml
- Краткая выжимка: https://hh.ru/llms.txt
- Описание API: https://hh.ru/openapi.json
- Товарный фид (YML): https://hh.ru/feed.yml
## Как пользоваться данными
- Цены и наличие берите из JSON-LD на странице материалы: они обновляются вместе с каталогом.
- Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново.
- Ссылайтесь на страницу материалы, а не на каталог целиком.
## Чего делать не нужно
- Не оформляйте заказ без подтверждения человека.
- Не используйте фотографии отдельно от описания материалы.
## Контакт для вопросов
info@hh.ruПоложите файл в корень сайта, рядом с index.php. Если корень закрыт правилами в .htaccess, добавьте исключение для этого имени.
# AGENTS.md
Инструкция для ИИ-агентов, работающих с сайтом hh.ru.
## Что здесь есть
Коротко: чем занимается компания и что можно найти на сайте.
## Машиночитаемые источники
- Карта сайта: https://hh.ru/sitemap.xml
- Краткая выжимка: https://hh.ru/llms.txt
- Описание API: https://hh.ru/openapi.json
- Товарный фид (YML): https://hh.ru/feed.yml
## Как пользоваться данными
- Цены и наличие берите из JSON-LD на странице материалы: они обновляются вместе с каталогом.
- Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново.
- Ссылайтесь на страницу материалы, а не на каталог целиком.
## Чего делать не нужно
- Не оформляйте заказ без подтверждения человека.
- Не используйте фотографии отдельно от описания материалы.
## Контакт для вопросов
info@hh.ruПоложите файл в корень сайта, рядом с wp-config.php. Плагины кэширования файл не трогают, очищать кэш не нужно.
# AGENTS.md
Инструкция для ИИ-агентов, работающих с сайтом hh.ru.
## Что здесь есть
Коротко: чем занимается компания и что можно найти на сайте.
## Машиночитаемые источники
- Карта сайта: https://hh.ru/sitemap.xml
- Краткая выжимка: https://hh.ru/llms.txt
- Описание API: https://hh.ru/openapi.json
- Товарный фид (YML): https://hh.ru/feed.yml
## Как пользоваться данными
- Цены и наличие берите из JSON-LD на странице материалы: они обновляются вместе с каталогом.
- Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново.
- Ссылайтесь на страницу материалы, а не на каталог целиком.
## Чего делать не нужно
- Не оформляйте заказ без подтверждения человека.
- Не используйте фотографии отдельно от описания материалы.
## Контакт для вопросов
info@hh.ruTilda не даёт класть свои файлы в корень. Варианты: перенести сайт на своё размещение, поставить перед Tilda обратный прокси (Nginx, Cloudflare Workers) и отдавать файл с него, либо опубликовать файл на поддомене и сослаться на него из robots.txt.
# AGENTS.md
Инструкция для ИИ-агентов, работающих с сайтом hh.ru.
## Что здесь есть
Коротко: чем занимается компания и что можно найти на сайте.
## Машиночитаемые источники
- Карта сайта: https://hh.ru/sitemap.xml
- Краткая выжимка: https://hh.ru/llms.txt
- Описание API: https://hh.ru/openapi.json
- Товарный фид (YML): https://hh.ru/feed.yml
## Как пользоваться данными
- Цены и наличие берите из JSON-LD на странице материалы: они обновляются вместе с каталогом.
- Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново.
- Ссылайтесь на страницу материалы, а не на каталог целиком.
## Чего делать не нужно
- Не оформляйте заказ без подтверждения человека.
- Не используйте фотографии отдельно от описания материалы.
## Контакт для вопросов
info@hh.ruЗадача: Инструкция для агентов /AGENTS.md — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Не найдена (404). Что нужно сделать: Опишите точки входа, как получить цену, единицы измерения и оговорки о достоверности. Ориентир по коду (Файл AGENTS.md). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```markdown # AGENTS.md Инструкция для ИИ-агентов, работающих с сайтом hh.ru. ## Что здесь есть Коротко: чем занимается компания и что можно найти на сайте. ## Машиночитаемые источники - Карта сайта: https://hh.ru/sitemap.xml - Краткая выжимка: https://hh.ru/llms.txt - Описание API: https://hh.ru/openapi.json - Товарный фид (YML): https://hh.ru/feed.yml ## Как пользоваться данными - Цены и наличие берите из JSON-LD на странице материалы: они обновляются вместе с каталогом. - Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново. - Ссылайтесь на страницу материалы, а не на каталог целиком. ## Чего делать не нужно - Не оформляйте заказ без подтверждения человека. - Не используйте фотографии отдельно от описания материалы. ## Контакт для вопросов info@hh.ru ``` Требования к правке: - Файл должен открываться по прямому адресу и отдаваться с кодом 200, без редиректа. - Кодировка UTF-8, перевод строки — обычный, без BOM. - Адреса внутри файла — полные, с https:// и доменом. - Файл не должен быть закрыт от роботов правилами robots.txt или защитой сайта. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Инструкция для агентов /AGENTS.md» закрыт.
Markdown-карта сайта /sitemap.md
Не найдена (404).
Карта сайта для чтения, а не для поисковых систем: только важные страницы с пояснениями.
Положите файл в корень сайта: https://ваш-сайт.ru/имя-файла. Кодировка UTF-8, тип ответа text/plain (для .md — text/markdown).
# Карта сайта hh.ru
- [Главная](https://hh.ru/) — чем занимается компания
- [Каталог](https://hh.ru/catalog/) — все разделы
- [Доставка](https://hh.ru/dostavka/) — сроки и стоимость
- [Контакты](https://hh.ru/kontakty/) — адрес, телефон, реквизитыПоложите файл в корень сайта, рядом с index.php. Если корень закрыт правилами в .htaccess, добавьте исключение для этого имени.
# Карта сайта hh.ru
- [Главная](https://hh.ru/) — чем занимается компания
- [Каталог](https://hh.ru/catalog/) — все разделы
- [Доставка](https://hh.ru/dostavka/) — сроки и стоимость
- [Контакты](https://hh.ru/kontakty/) — адрес, телефон, реквизитыПоложите файл в корень сайта, рядом с wp-config.php. Плагины кэширования файл не трогают, очищать кэш не нужно.
# Карта сайта hh.ru
- [Главная](https://hh.ru/) — чем занимается компания
- [Каталог](https://hh.ru/catalog/) — все разделы
- [Доставка](https://hh.ru/dostavka/) — сроки и стоимость
- [Контакты](https://hh.ru/kontakty/) — адрес, телефон, реквизитыTilda не даёт класть свои файлы в корень. Варианты: перенести сайт на своё размещение, поставить перед Tilda обратный прокси (Nginx, Cloudflare Workers) и отдавать файл с него, либо опубликовать файл на поддомене и сослаться на него из robots.txt.
# Карта сайта hh.ru
- [Главная](https://hh.ru/) — чем занимается компания
- [Каталог](https://hh.ru/catalog/) — все разделы
- [Доставка](https://hh.ru/dostavka/) — сроки и стоимость
- [Контакты](https://hh.ru/kontakty/) — адрес, телефон, реквизитыЗадача: Markdown-карта сайта /sitemap.md — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Не найдена (404). Что нужно сделать: Выложите карту сайта в Markdown для агентов. Ориентир по коду (Файл sitemap.md). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```markdown # Карта сайта hh.ru - [Главная](https://hh.ru/) — чем занимается компания - [Каталог](https://hh.ru/catalog/) — все разделы - [Доставка](https://hh.ru/dostavka/) — сроки и стоимость - [Контакты](https://hh.ru/kontakty/) — адрес, телефон, реквизиты ``` Требования к правке: - Файл должен открываться по прямому адресу и отдаваться с кодом 200, без редиректа. - Кодировка UTF-8, перевод строки — обычный, без BOM. - Адреса внутри файла — полные, с https:// и доменом. - Файл не должен быть закрыт от роботов правилами robots.txt или защитой сайта. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Markdown-карта сайта /sitemap.md» закрыт.
meta description 120–160 символов
180 симв.
Описание страницы длиной 120–160 символов, своё на каждой странице.
Вставляется в <head> страницы, до закрывающего </head>.
<meta name="description" content="Что это за страница и что на ней можно сделать. Одно-два предложения длиной 120–160 символов.">Для страниц товаров тот же вызов ставится в шаблоне карточки, чтобы данные подставлялись из свойств элемента.
<?php
// В шаблоне сайта: local/templates/ВАШ_ШАБЛОН/header.php, до вызова ShowHead()
$APPLICATION->AddHeadString(<<<'HTML'
<meta name="description" content="Что это за страница и что на ней можно сделать. Одно-два предложения длиной 120–160 символов.">
HTML, true);
Данные подставляются из полей записи; хардкодить значения в functions.php не нужно.
<?php
// В functions.php активной темы (лучше — дочерней) или в своём плагине
add_action('wp_head', function () {
echo <<<'HTML'
<meta name="description" content="Что это за страница и что на ней можно сделать. Одно-два предложения длиной 120–160 символов.">
HTML;
}, 20);
В Tilda блок вставляется вручную, поэтому значения на каждой странице свои. Для большого каталога это не работает — нужен свой движок.
<!-- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD.
Для одной страницы: Настройки страницы → Дополнительно → HTML-код в HEAD. -->
<meta name="description" content="Что это за страница и что на ней можно сделать. Одно-два предложения длиной 120–160 символов.">
Задача: meta description 120–160 символов — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: 180 симв. Что нужно сделать: Опишите страницу в 120–160 символах. Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```html <meta name="description" content="Что это за страница и что на ней можно сделать. Одно-два предложения длиной 120–160 символов."> ``` Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «meta description 120–160 символов» закрыт.
Open Graph: 6 основных тегов
Найдено 3 из 6: og:title, og:description, og:image.
Шесть основных тегов Open Graph. Адрес картинки — абсолютный.
Вставляется в <head> страницы, до закрывающего </head>.
<meta property="og:title" content="Заголовок страницы">
<meta property="og:description" content="Описание страницы в одно-два предложения.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://hh.ru/tekushchaya-stranica/">
<meta property="og:image" content="https://hh.ru/assets/og.png">
<meta property="og:site_name" content="Название компании">Для страниц товаров тот же вызов ставится в шаблоне карточки, чтобы данные подставлялись из свойств элемента.
<?php
// В шаблоне сайта: local/templates/ВАШ_ШАБЛОН/header.php, до вызова ShowHead()
$APPLICATION->AddHeadString(<<<'HTML'
<meta property="og:title" content="Заголовок страницы">
<meta property="og:description" content="Описание страницы в одно-два предложения.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://hh.ru/tekushchaya-stranica/">
<meta property="og:image" content="https://hh.ru/assets/og.png">
<meta property="og:site_name" content="Название компании">
HTML, true);
Данные подставляются из полей записи; хардкодить значения в functions.php не нужно.
<?php
// В functions.php активной темы (лучше — дочерней) или в своём плагине
add_action('wp_head', function () {
echo <<<'HTML'
<meta property="og:title" content="Заголовок страницы">
<meta property="og:description" content="Описание страницы в одно-два предложения.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://hh.ru/tekushchaya-stranica/">
<meta property="og:image" content="https://hh.ru/assets/og.png">
<meta property="og:site_name" content="Название компании">
HTML;
}, 20);
В Tilda блок вставляется вручную, поэтому значения на каждой странице свои. Для большого каталога это не работает — нужен свой движок.
<!-- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD.
Для одной страницы: Настройки страницы → Дополнительно → HTML-код в HEAD. -->
<meta property="og:title" content="Заголовок страницы">
<meta property="og:description" content="Описание страницы в одно-два предложения.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://hh.ru/tekushchaya-stranica/">
<meta property="og:image" content="https://hh.ru/assets/og.png">
<meta property="og:site_name" content="Название компании">
Задача: Open Graph: 6 основных тегов — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Найдено 3 из 6: og:title, og:description, og:image. Что нужно сделать: Добавьте og:title, og:description, og:image, og:url, og:type, og:locale. Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```html <meta property="og:title" content="Заголовок страницы"> <meta property="og:description" content="Описание страницы в одно-два предложения."> <meta property="og:type" content="website"> <meta property="og:url" content="https://hh.ru/tekushchaya-stranica/"> <meta property="og:image" content="https://hh.ru/assets/og.png"> <meta property="og:site_name" content="Название компании"> ``` Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Open Graph: 6 основных тегов» закрыт.
Автор указан со ссылкой
Автор указан без ссылки на профиль или не указан.
Задача: Автор указан со ссылкой — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Автор указан без ссылки на профиль или не указан. Что нужно сделать: Укажите автора как Person или Organization со ссылкой url или sameAs. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Автор указан со ссылкой» закрыт.
Реквизиты юрлица: ИНН и ОГРН
ИНН: нет, ОГРН: нет (на главной и в разметке).
Реквизиты в разметке — не замена подвалу, а дополнение к нему: агент берёт их отсюда, человек из подвала.
Вставляется в <head> страницы, до закрывающего </head>.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://hh.ru/#org",
"name": "ООО «Название»",
"url": "https://hh.ru/",
"email": "info@hh.ru",
"telephone": "+7 000 000-00-00",
"taxID": "0000000000",
"identifier": [
{"@type": "PropertyValue", "name": "ИНН", "value": "0000000000"},
{"@type": "PropertyValue", "name": "КПП", "value": "000000000"},
{"@type": "PropertyValue", "name": "ОГРН", "value": "0000000000000"}
],
"address": {
"@type": "PostalAddress",
"addressCountry": "RU",
"postalCode": "000000",
"addressRegion": "Область",
"addressLocality": "Город",
"streetAddress": "ул. Примерная, 1"
}
}
</script>Для страниц товаров тот же вызов ставится в шаблоне карточки, чтобы данные подставлялись из свойств элемента.
<?php
// В шаблоне сайта: local/templates/ВАШ_ШАБЛОН/header.php, до вызова ShowHead()
$APPLICATION->AddHeadString(<<<'HTML'
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://hh.ru/#org",
"name": "ООО «Название»",
"url": "https://hh.ru/",
"email": "info@hh.ru",
"telephone": "+7 000 000-00-00",
"taxID": "0000000000",
"identifier": [
{"@type": "PropertyValue", "name": "ИНН", "value": "0000000000"},
{"@type": "PropertyValue", "name": "КПП", "value": "000000000"},
{"@type": "PropertyValue", "name": "ОГРН", "value": "0000000000000"}
],
"address": {
"@type": "PostalAddress",
"addressCountry": "RU",
"postalCode": "000000",
"addressRegion": "Область",
"addressLocality": "Город",
"streetAddress": "ул. Примерная, 1"
}
}
</script>
HTML, true);
Данные подставляются из полей записи; хардкодить значения в functions.php не нужно.
<?php
// В functions.php активной темы (лучше — дочерней) или в своём плагине
add_action('wp_head', function () {
echo <<<'HTML'
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://hh.ru/#org",
"name": "ООО «Название»",
"url": "https://hh.ru/",
"email": "info@hh.ru",
"telephone": "+7 000 000-00-00",
"taxID": "0000000000",
"identifier": [
{"@type": "PropertyValue", "name": "ИНН", "value": "0000000000"},
{"@type": "PropertyValue", "name": "КПП", "value": "000000000"},
{"@type": "PropertyValue", "name": "ОГРН", "value": "0000000000000"}
],
"address": {
"@type": "PostalAddress",
"addressCountry": "RU",
"postalCode": "000000",
"addressRegion": "Область",
"addressLocality": "Город",
"streetAddress": "ул. Примерная, 1"
}
}
</script>
HTML;
}, 20);
В Tilda блок вставляется вручную, поэтому значения на каждой странице свои. Для большого каталога это не работает — нужен свой движок.
<!-- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD.
Для одной страницы: Настройки страницы → Дополнительно → HTML-код в HEAD. -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://hh.ru/#org",
"name": "ООО «Название»",
"url": "https://hh.ru/",
"email": "info@hh.ru",
"telephone": "+7 000 000-00-00",
"taxID": "0000000000",
"identifier": [
{"@type": "PropertyValue", "name": "ИНН", "value": "0000000000"},
{"@type": "PropertyValue", "name": "КПП", "value": "000000000"},
{"@type": "PropertyValue", "name": "ОГРН", "value": "0000000000000"}
],
"address": {
"@type": "PostalAddress",
"addressCountry": "RU",
"postalCode": "000000",
"addressRegion": "Область",
"addressLocality": "Город",
"streetAddress": "ул. Примерная, 1"
}
}
</script>
Задача: Реквизиты юрлица: ИНН и ОГРН — сайт hh.ru
Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует.
Что нашёл сканер: ИНН: нет, ОГРН: нет (на главной и в разметке).
Что нужно сделать: Покажите полное наименование, ИНН, ОГРН и юридический адрес — хотя бы в подвале. Для англоязычного сайта подойдут метки INN и OGRN либо поля taxID и identifier в разметке Organization.
Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта.
```html
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://hh.ru/#org",
"name": "ООО «Название»",
"url": "https://hh.ru/",
"email": "info@hh.ru",
"telephone": "+7 000 000-00-00",
"taxID": "0000000000",
"identifier": [
{"@type": "PropertyValue", "name": "ИНН", "value": "0000000000"},
{"@type": "PropertyValue", "name": "КПП", "value": "000000000"},
{"@type": "PropertyValue", "name": "ОГРН", "value": "0000000000000"}
],
"address": {
"@type": "PostalAddress",
"addressCountry": "RU",
"postalCode": "000000",
"addressRegion": "Область",
"addressLocality": "Город",
"streetAddress": "ул. Примерная, 1"
}
}
</script>
```
Требования к правке:
- Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера.
- Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной.
- Не менять вёрстку и внешний вид страницы.
- Не трогать остальные теги и разметку, которые уже есть.
Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Реквизиты юрлица: ИНН и ОГРН» закрыт.Контакты: e-mail или телефон ссылкой
Нет ссылок mailto: или tel:.
Задача: Контакты: e-mail или телефон ссылкой — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Нет ссылок mailto: или tel:. Что нужно сделать: Сделайте почту и телефон ссылками — агент распознает их однозначно. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Контакты: e-mail или телефон ссылкой» закрыт.
Условия использования материалов объявлены
Условия использования материалов не объявлены ни в разметке, ни в llms.txt, ни в AGENTS.md.
Условия использования материалов машинно: агент узнаёт, можно ли цитировать сайт и на каких условиях.
Вставляется в <head> страницы, до закрывающего </head>.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"@id": "https://hh.ru/#site",
"url": "https://hh.ru/",
"name": "Название сайта",
"license": "https://hh.ru/usloviya/",
"copyrightHolder": {"@id": "https://hh.ru/#org"},
"copyrightYear": 2026
}
</script>Для страниц товаров тот же вызов ставится в шаблоне карточки, чтобы данные подставлялись из свойств элемента.
<?php
// В шаблоне сайта: local/templates/ВАШ_ШАБЛОН/header.php, до вызова ShowHead()
$APPLICATION->AddHeadString(<<<'HTML'
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"@id": "https://hh.ru/#site",
"url": "https://hh.ru/",
"name": "Название сайта",
"license": "https://hh.ru/usloviya/",
"copyrightHolder": {"@id": "https://hh.ru/#org"},
"copyrightYear": 2026
}
</script>
HTML, true);
Данные подставляются из полей записи; хардкодить значения в functions.php не нужно.
<?php
// В functions.php активной темы (лучше — дочерней) или в своём плагине
add_action('wp_head', function () {
echo <<<'HTML'
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"@id": "https://hh.ru/#site",
"url": "https://hh.ru/",
"name": "Название сайта",
"license": "https://hh.ru/usloviya/",
"copyrightHolder": {"@id": "https://hh.ru/#org"},
"copyrightYear": 2026
}
</script>
HTML;
}, 20);
В Tilda блок вставляется вручную, поэтому значения на каждой странице свои. Для большого каталога это не работает — нужен свой движок.
<!-- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD.
Для одной страницы: Настройки страницы → Дополнительно → HTML-код в HEAD. -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"@id": "https://hh.ru/#site",
"url": "https://hh.ru/",
"name": "Название сайта",
"license": "https://hh.ru/usloviya/",
"copyrightHolder": {"@id": "https://hh.ru/#org"},
"copyrightYear": 2026
}
</script>
Задача: Условия использования материалов объявлены — сайт hh.ru
Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует.
Что нашёл сканер: Условия использования материалов не объявлены ни в разметке, ни в llms.txt, ни в AGENTS.md.
Что нужно сделать: Укажите лицензию (license в разметке) или правила цитирования и использования в llms.txt и AGENTS.md.
Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта.
```html
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"@id": "https://hh.ru/#site",
"url": "https://hh.ru/",
"name": "Название сайта",
"license": "https://hh.ru/usloviya/",
"copyrightHolder": {"@id": "https://hh.ru/#org"},
"copyrightYear": 2026
}
</script>
```
Требования к правке:
- Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера.
- Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной.
- Не менять вёрстку и внешний вид страницы.
- Не трогать остальные теги и разметку, которые уже есть.
Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Условия использования материалов объявлены» закрыт.Из чего складывается цена
| Позиция прайса | Объём | Сумма |
|---|---|---|
| Базовый слой для агентовсрок: 1 неделяrobots.txt для ИИ-ботов, sitemap с датами, llms.txt, AGENTS.md, Markdown-версии страниц, разметка компании с ИНН и ОГРН.Закрывает в отчёте: sitemap.xml с реальными датами lastmod; Файл /llms.txt; Файл /llms-full.txt; Инструкция для агентов /AGENTS.md; Markdown-карта сайта /sitemap.md; Organization с реквизитами и ещё 5 | 1 × 20 000 ₽ | 20 000 ₽ |
| Разметка типа страницысрок: 2–3 дня на типJSON-LD и таблица характеристик для одного типа страниц: карточка товара, категория, статья.Закрывает в отчёте: meta description 120–160 символов; Open Graph: 6 основных тегов; Ровно один <h1>; FAQ, глоссарий или инструкции размечены; Материалы размечены (Article); Автор указан со ссылкой | 2 × 7 500 ₽ | 15 000 ₽ |
| Нестандартная работасрок: по оценкеТо, чего нет в прайсе. Количество часов называем и согласуем до начала работ.Закрывает в отчёте: Несуществующая страница отвечает 404 (1 ч); Время до первого байта до 600 мс (4 ч) | 5 × 3 000 ₽ | 15 000 ₽ |
| API расчёта цены · по желаниюНужно для уровня 3, если цена зависит от размера или опций. | — | 10 000 ₽ + 5 000 ₽ за параметр |
| Без НДС | 50 000 ₽ | |
| НДС 5% | 2 500 ₽ | |
| Итого | 52 500 ₽ | |
По умолчанию работы оплачиваются одним объёмом. По согласованию до начала работ проект можно разбить на этапы: первым этапом идёт Базовый слой для агентов, 20 000 ₽ без НДС, срок 1 неделя.
Оценка по отчёту: движок и число товаров определены автоматически, часы на проблемы сервера — средние. Точная сумма фиксируется в договоре по формуле прайс-листа после подтверждения объёмов. Строки «по желанию» в итог не входят. Цена одна для всех, исполнителя выбираете вы.
Оставить заявку на исправление ↗ОплатитьУточнить объёмы в калькуляторе ↗Публичная оферта ↗
Как это работает: 1) заявка, бесплатно и без договора; 2) смета на почту по этому прайсу; 3) счёт по согласованной смете. Договор заключается, когда вы подтверждаете смету письмом или оплачиваете счёт (оферта, п. 3.3). Кнопка «Оплатить» ведёт на страницу об оплате: онлайн-оплата в разработке, сейчас оплата по счёту.
Что дальше
Исправить самому
Часть пунктов закрывается за час без разработчика. У каждого пункта написано, как исправить.
Передать студии или разработчику
Отчёт и шкала открыты: любой исполнитель увидит те же требования. После правок просканируйте сайт заново.
Заявка в AI-D2C
Работы по смете, цена по публичному прайсу. Смета придёт на почту, оплата только после вашего согласия. Оставить заявку ↗
Вы веб-студия и работаете по этой методике? Напишите нам: будем рекомендовать вас в отчётах, когда запустим список партнёров.
Что видит агент
Столько агент тратит на одно обращение к вашей главной странице. 100% этого объёма — вёрстка и скрипты, в которых нет содержания: агент платит за них так же, как за текст. Markdown-версия страницы (пункты «Markdown-зеркало» и «Ответ по Accept» в расшифровке) убирает эту разницу: человек получает обычную страницу, агент — только текст.
Оценка: у каждой модели свой токенизатор, точное число отличается примерно на пятую часть. Считается по главной странице, остальные страницы сканер целиком не загружает.
Машинные точки входа: 0 из 7
Адреса, по которым агент ищет машинный вход на сайт, не разбирая страницы. На уровень они не влияют: ни один из этих форматов пока не обязателен, и большинству сайтов нужны не все. Панель показывает, что принято в отрасли сейчас — и что из этого у вас уже есть.
| нет | Карточка MCP-сервера/.well-known/mcp.json | Говорит агенту, что у сайта есть MCP-сервер и какие у него инструменты. Черновик SEP-1649. |
| нет | Карточка агента A2A/.well-known/agent.json | Описание собственного агента сайта для протокола agent-to-agent (A2A v1.0). |
| нет | OAuth Discovery (RFC 8414)/.well-known/oauth-authorization-server | Где агенту получать токен доступа, если часть данных закрыта. |
| нет | OAuth Protected Resource (RFC 9728)/.well-known/oauth-protected-resource | Какой сервер авторизации защищает ваш API (RFC 9728). |
| нет | Каталог API (RFC 9727)/.well-known/api-catalog | Один адрес со списком всех ваших API — агенту не нужно их угадывать. |
| нет | Профиль UCP/.well-known/ucp | Описание сценария покупки или заявки для агента. Один из способов закрыть уровень 4. |
| нет | Описание API (OpenAPI)/openapi.json | Машинное описание API: агент понимает, какие запросы можно делать. Входит в требования уровня 3. |
Подробная расшифровка проверок
Для тех, кто хочет разобраться или передать разработчику.
Сервер и доступ ✓ 6⚠ 2
Несуществующая страница отвечает 404
Вместо 404 — редирект 301.
Несуществующая страница должна отвечать кодом 404, а не 200 со словами «страница не найдена». Иначе агент считает её настоящей и запоминает мусор.
server {
error_page 404 /404.html;
location = /404.html {
internal;
}
}
# Проверка: должно быть «HTTP/1.1 404»
# curl -I https://hh.ru/stranica-kotoroy-net-12345# .htaccess в корне сайта
ErrorDocument 404 /404.html
# Проверка: должно быть «HTTP/1.1 404»
# curl -I https://hh.ru/stranica-kotoroy-net-12345<?php
// В обработчике несуществующей страницы — до вывода шаблона
http_response_code(404);
header('X-Robots-Tag: noindex');
// дальше выводится обычный шаблон страницы «не найдено»
Задача: Несуществующая страница отвечает 404 — сайт hh.ru
Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует.
Что нашёл сканер: Вместо 404 — редирект 301.
Что нужно сделать: Отдавайте 404 или 410 вместо перенаправления.
Ориентир по коду (Nginx). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта.
```nginx
server {
error_page 404 /404.html;
location = /404.html {
internal;
}
}
# Проверка: должно быть «HTTP/1.1 404»
# curl -I https://hh.ru/stranica-kotoroy-net-12345
```
Требования к правке:
- Правка делается на уровне сервера, а не скриптом в браузере.
- Остальные адреса сайта должны продолжать работать как раньше: проверьте главную, карточку и страницу поиска.
- После правки перезапустите сервер и убедитесь, что конфигурация прошла проверку.
Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Несуществующая страница отвечает 404» закрыт.Время до первого байта до 600 мс
TTFB 608 мс (из дата-центра в России, один замер).
Задача: Время до первого байта до 600 мс — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: TTFB 608 мс (из дата-центра в России, один замер). Что нужно сделать: Включите кэширование страниц на сервере. Агенты обрывают медленные запросы. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Время до первого байта до 600 мс» закрыт.
В порядке: Сайт работает по HTTPS; Главная отвечает 200; Не больше одного редиректа, только 301; Нет запрета индексации (noindex); Файрвол не блокирует ИИ-ботов; Content-Type text/html и UTF-8.
Файлы сайта ✓ 4⚠ 6не нужно 2
sitemap.xml с реальными датами lastmod
Индекс карт: 55, с lastmod: 0. Дат изменения нет.
Задача: sitemap.xml с реальными датами lastmod — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Индекс карт: 55, с lastmod: 0. Дат изменения нет. Что нужно сделать: Добавьте <lastmod> с реальной датой правки каждой страницы. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «sitemap.xml с реальными датами lastmod» закрыт.
Файл /llms.txt
Не найден (404).
Короткая выжимка о сайте для языковых моделей. Готовый генератор с проверкой — на странице /llms-txt/.
Положите файл в корень сайта: https://ваш-сайт.ru/имя-файла. Кодировка UTF-8, тип ответа text/plain (для .md — text/markdown).
# Название компании
> Одно-два предложения: чем занимаетесь, что продаёте, где работаете.
Язык сайта — русский.
## Каталог
- [Раздел каталога](https://hh.ru/catalog/razdel/): что внутри, диапазон цен
- [Второй раздел](https://hh.ru/catalog/vtoroy/)
## Условия
- [Доставка](https://hh.ru/dostavka/)
- [Оплата](https://hh.ru/oplata/)
## Контакты
- info@hh.ru
- ООО «Название», ИНН 0000000000Положите файл в корень сайта, рядом с index.php. Если корень закрыт правилами в .htaccess, добавьте исключение для этого имени.
# Название компании
> Одно-два предложения: чем занимаетесь, что продаёте, где работаете.
Язык сайта — русский.
## Каталог
- [Раздел каталога](https://hh.ru/catalog/razdel/): что внутри, диапазон цен
- [Второй раздел](https://hh.ru/catalog/vtoroy/)
## Условия
- [Доставка](https://hh.ru/dostavka/)
- [Оплата](https://hh.ru/oplata/)
## Контакты
- info@hh.ru
- ООО «Название», ИНН 0000000000Положите файл в корень сайта, рядом с wp-config.php. Плагины кэширования файл не трогают, очищать кэш не нужно.
# Название компании
> Одно-два предложения: чем занимаетесь, что продаёте, где работаете.
Язык сайта — русский.
## Каталог
- [Раздел каталога](https://hh.ru/catalog/razdel/): что внутри, диапазон цен
- [Второй раздел](https://hh.ru/catalog/vtoroy/)
## Условия
- [Доставка](https://hh.ru/dostavka/)
- [Оплата](https://hh.ru/oplata/)
## Контакты
- info@hh.ru
- ООО «Название», ИНН 0000000000Tilda не даёт класть свои файлы в корень. Варианты: перенести сайт на своё размещение, поставить перед Tilda обратный прокси (Nginx, Cloudflare Workers) и отдавать файл с него, либо опубликовать файл на поддомене и сослаться на него из robots.txt.
# Название компании
> Одно-два предложения: чем занимаетесь, что продаёте, где работаете.
Язык сайта — русский.
## Каталог
- [Раздел каталога](https://hh.ru/catalog/razdel/): что внутри, диапазон цен
- [Второй раздел](https://hh.ru/catalog/vtoroy/)
## Условия
- [Доставка](https://hh.ru/dostavka/)
- [Оплата](https://hh.ru/oplata/)
## Контакты
- info@hh.ru
- ООО «Название», ИНН 0000000000Задача: Файл /llms.txt — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Не найден (404). Что нужно сделать: Создайте llms.txt: кто вы, что продаёте, ссылки на ключевые разделы и данные. Это соглашение, а не стандарт, но пункт дешёвый. Ориентир по коду (Файл llms.txt). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```markdown # Название компании > Одно-два предложения: чем занимаетесь, что продаёте, где работаете. Язык сайта — русский. ## Каталог - [Раздел каталога](https://hh.ru/catalog/razdel/): что внутри, диапазон цен - [Второй раздел](https://hh.ru/catalog/vtoroy/) ## Условия - [Доставка](https://hh.ru/dostavka/) - [Оплата](https://hh.ru/oplata/) ## Контакты - info@hh.ru - ООО «Название», ИНН 0000000000 ``` Требования к правке: - Файл должен открываться по прямому адресу и отдаваться с кодом 200, без редиректа. - Кодировка UTF-8, перевод строки — обычный, без BOM. - Адреса внутри файла — полные, с https:// и доменом. - Файл не должен быть закрыт от роботов правилами robots.txt или защитой сайта. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Файл /llms.txt» закрыт.
Файл /llms-full.txt
Не найден (404).
Полный текст ключевых страниц одним файлом. Собирается скриптом при публикации: заголовок страницы, адрес, текст без вёрстки.
Положите файл в корень сайта: https://ваш-сайт.ru/имя-файла. Кодировка UTF-8, тип ответа text/plain (для .md — text/markdown).
# Полные тексты страниц hh.ru
## Доставка
https://hh.ru/dostavka/
Текст страницы без вёрстки.
## Оплата
https://hh.ru/oplata/
Текст страницы без вёрстки.Положите файл в корень сайта, рядом с index.php. Если корень закрыт правилами в .htaccess, добавьте исключение для этого имени.
# Полные тексты страниц hh.ru
## Доставка
https://hh.ru/dostavka/
Текст страницы без вёрстки.
## Оплата
https://hh.ru/oplata/
Текст страницы без вёрстки.Положите файл в корень сайта, рядом с wp-config.php. Плагины кэширования файл не трогают, очищать кэш не нужно.
# Полные тексты страниц hh.ru
## Доставка
https://hh.ru/dostavka/
Текст страницы без вёрстки.
## Оплата
https://hh.ru/oplata/
Текст страницы без вёрстки.Tilda не даёт класть свои файлы в корень. Варианты: перенести сайт на своё размещение, поставить перед Tilda обратный прокси (Nginx, Cloudflare Workers) и отдавать файл с него, либо опубликовать файл на поддомене и сослаться на него из robots.txt.
# Полные тексты страниц hh.ru
## Доставка
https://hh.ru/dostavka/
Текст страницы без вёрстки.
## Оплата
https://hh.ru/oplata/
Текст страницы без вёрстки.Задача: Файл /llms-full.txt — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Не найден (404). Что нужно сделать: Выложите полный Markdown-каталог: линейки, характеристики, применение. Ориентир по коду (Файл llms-full.txt). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```markdown # Полные тексты страниц hh.ru ## Доставка https://hh.ru/dostavka/ Текст страницы без вёрстки. ## Оплата https://hh.ru/oplata/ Текст страницы без вёрстки. ``` Требования к правке: - Файл должен открываться по прямому адресу и отдаваться с кодом 200, без редиректа. - Кодировка UTF-8, перевод строки — обычный, без BOM. - Адреса внутри файла — полные, с https:// и доменом. - Файл не должен быть закрыт от роботов правилами robots.txt или защитой сайта. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Файл /llms-full.txt» закрыт.
Инструкция для агентов /AGENTS.md
Не найдена (404).
Инструкция для агентов: где брать данные машинно и чего делать не нужно. Имя файла пишется прописными буквами.
Положите файл в корень сайта: https://ваш-сайт.ru/имя-файла. Кодировка UTF-8, тип ответа text/plain (для .md — text/markdown).
# AGENTS.md
Инструкция для ИИ-агентов, работающих с сайтом hh.ru.
## Что здесь есть
Коротко: чем занимается компания и что можно найти на сайте.
## Машиночитаемые источники
- Карта сайта: https://hh.ru/sitemap.xml
- Краткая выжимка: https://hh.ru/llms.txt
- Описание API: https://hh.ru/openapi.json
- Товарный фид (YML): https://hh.ru/feed.yml
## Как пользоваться данными
- Цены и наличие берите из JSON-LD на странице материалы: они обновляются вместе с каталогом.
- Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново.
- Ссылайтесь на страницу материалы, а не на каталог целиком.
## Чего делать не нужно
- Не оформляйте заказ без подтверждения человека.
- Не используйте фотографии отдельно от описания материалы.
## Контакт для вопросов
info@hh.ruПоложите файл в корень сайта, рядом с index.php. Если корень закрыт правилами в .htaccess, добавьте исключение для этого имени.
# AGENTS.md
Инструкция для ИИ-агентов, работающих с сайтом hh.ru.
## Что здесь есть
Коротко: чем занимается компания и что можно найти на сайте.
## Машиночитаемые источники
- Карта сайта: https://hh.ru/sitemap.xml
- Краткая выжимка: https://hh.ru/llms.txt
- Описание API: https://hh.ru/openapi.json
- Товарный фид (YML): https://hh.ru/feed.yml
## Как пользоваться данными
- Цены и наличие берите из JSON-LD на странице материалы: они обновляются вместе с каталогом.
- Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново.
- Ссылайтесь на страницу материалы, а не на каталог целиком.
## Чего делать не нужно
- Не оформляйте заказ без подтверждения человека.
- Не используйте фотографии отдельно от описания материалы.
## Контакт для вопросов
info@hh.ruПоложите файл в корень сайта, рядом с wp-config.php. Плагины кэширования файл не трогают, очищать кэш не нужно.
# AGENTS.md
Инструкция для ИИ-агентов, работающих с сайтом hh.ru.
## Что здесь есть
Коротко: чем занимается компания и что можно найти на сайте.
## Машиночитаемые источники
- Карта сайта: https://hh.ru/sitemap.xml
- Краткая выжимка: https://hh.ru/llms.txt
- Описание API: https://hh.ru/openapi.json
- Товарный фид (YML): https://hh.ru/feed.yml
## Как пользоваться данными
- Цены и наличие берите из JSON-LD на странице материалы: они обновляются вместе с каталогом.
- Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново.
- Ссылайтесь на страницу материалы, а не на каталог целиком.
## Чего делать не нужно
- Не оформляйте заказ без подтверждения человека.
- Не используйте фотографии отдельно от описания материалы.
## Контакт для вопросов
info@hh.ruTilda не даёт класть свои файлы в корень. Варианты: перенести сайт на своё размещение, поставить перед Tilda обратный прокси (Nginx, Cloudflare Workers) и отдавать файл с него, либо опубликовать файл на поддомене и сослаться на него из robots.txt.
# AGENTS.md
Инструкция для ИИ-агентов, работающих с сайтом hh.ru.
## Что здесь есть
Коротко: чем занимается компания и что можно найти на сайте.
## Машиночитаемые источники
- Карта сайта: https://hh.ru/sitemap.xml
- Краткая выжимка: https://hh.ru/llms.txt
- Описание API: https://hh.ru/openapi.json
- Товарный фид (YML): https://hh.ru/feed.yml
## Как пользоваться данными
- Цены и наличие берите из JSON-LD на странице материалы: они обновляются вместе с каталогом.
- Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново.
- Ссылайтесь на страницу материалы, а не на каталог целиком.
## Чего делать не нужно
- Не оформляйте заказ без подтверждения человека.
- Не используйте фотографии отдельно от описания материалы.
## Контакт для вопросов
info@hh.ruЗадача: Инструкция для агентов /AGENTS.md — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Не найдена (404). Что нужно сделать: Опишите точки входа, как получить цену, единицы измерения и оговорки о достоверности. Ориентир по коду (Файл AGENTS.md). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```markdown # AGENTS.md Инструкция для ИИ-агентов, работающих с сайтом hh.ru. ## Что здесь есть Коротко: чем занимается компания и что можно найти на сайте. ## Машиночитаемые источники - Карта сайта: https://hh.ru/sitemap.xml - Краткая выжимка: https://hh.ru/llms.txt - Описание API: https://hh.ru/openapi.json - Товарный фид (YML): https://hh.ru/feed.yml ## Как пользоваться данными - Цены и наличие берите из JSON-LD на странице материалы: они обновляются вместе с каталогом. - Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново. - Ссылайтесь на страницу материалы, а не на каталог целиком. ## Чего делать не нужно - Не оформляйте заказ без подтверждения человека. - Не используйте фотографии отдельно от описания материалы. ## Контакт для вопросов info@hh.ru ``` Требования к правке: - Файл должен открываться по прямому адресу и отдаваться с кодом 200, без редиректа. - Кодировка UTF-8, перевод строки — обычный, без BOM. - Адреса внутри файла — полные, с https:// и доменом. - Файл не должен быть закрыт от роботов правилами robots.txt или защитой сайта. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Инструкция для агентов /AGENTS.md» закрыт.
Markdown-карта сайта /sitemap.md
Не найдена (404).
Карта сайта для чтения, а не для поисковых систем: только важные страницы с пояснениями.
Положите файл в корень сайта: https://ваш-сайт.ru/имя-файла. Кодировка UTF-8, тип ответа text/plain (для .md — text/markdown).
# Карта сайта hh.ru
- [Главная](https://hh.ru/) — чем занимается компания
- [Каталог](https://hh.ru/catalog/) — все разделы
- [Доставка](https://hh.ru/dostavka/) — сроки и стоимость
- [Контакты](https://hh.ru/kontakty/) — адрес, телефон, реквизитыПоложите файл в корень сайта, рядом с index.php. Если корень закрыт правилами в .htaccess, добавьте исключение для этого имени.
# Карта сайта hh.ru
- [Главная](https://hh.ru/) — чем занимается компания
- [Каталог](https://hh.ru/catalog/) — все разделы
- [Доставка](https://hh.ru/dostavka/) — сроки и стоимость
- [Контакты](https://hh.ru/kontakty/) — адрес, телефон, реквизитыПоложите файл в корень сайта, рядом с wp-config.php. Плагины кэширования файл не трогают, очищать кэш не нужно.
# Карта сайта hh.ru
- [Главная](https://hh.ru/) — чем занимается компания
- [Каталог](https://hh.ru/catalog/) — все разделы
- [Доставка](https://hh.ru/dostavka/) — сроки и стоимость
- [Контакты](https://hh.ru/kontakty/) — адрес, телефон, реквизитыTilda не даёт класть свои файлы в корень. Варианты: перенести сайт на своё размещение, поставить перед Tilda обратный прокси (Nginx, Cloudflare Workers) и отдавать файл с него, либо опубликовать файл на поддомене и сослаться на него из robots.txt.
# Карта сайта hh.ru
- [Главная](https://hh.ru/) — чем занимается компания
- [Каталог](https://hh.ru/catalog/) — все разделы
- [Доставка](https://hh.ru/dostavka/) — сроки и стоимость
- [Контакты](https://hh.ru/kontakty/) — адрес, телефон, реквизитыЗадача: Markdown-карта сайта /sitemap.md — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Не найдена (404). Что нужно сделать: Выложите карту сайта в Markdown для агентов. Ориентир по коду (Файл sitemap.md). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```markdown # Карта сайта hh.ru - [Главная](https://hh.ru/) — чем занимается компания - [Каталог](https://hh.ru/catalog/) — все разделы - [Доставка](https://hh.ru/dostavka/) — сроки и стоимость - [Контакты](https://hh.ru/kontakty/) — адрес, телефон, реквизиты ``` Требования к правке: - Файл должен открываться по прямому адресу и отдаваться с кодом 200, без редиректа. - Кодировка UTF-8, перевод строки — обычный, без BOM. - Адреса внутри файла — полные, с https:// и доменом. - Файл не должен быть закрыт от роботов правилами robots.txt или защитой сайта. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Markdown-карта сайта /sitemap.md» закрыт.
Условия использования материалов объявлены
Условия использования материалов не объявлены ни в разметке, ни в llms.txt, ни в AGENTS.md.
Условия использования материалов машинно: агент узнаёт, можно ли цитировать сайт и на каких условиях.
Вставляется в <head> страницы, до закрывающего </head>.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"@id": "https://hh.ru/#site",
"url": "https://hh.ru/",
"name": "Название сайта",
"license": "https://hh.ru/usloviya/",
"copyrightHolder": {"@id": "https://hh.ru/#org"},
"copyrightYear": 2026
}
</script>Для страниц товаров тот же вызов ставится в шаблоне карточки, чтобы данные подставлялись из свойств элемента.
<?php
// В шаблоне сайта: local/templates/ВАШ_ШАБЛОН/header.php, до вызова ShowHead()
$APPLICATION->AddHeadString(<<<'HTML'
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"@id": "https://hh.ru/#site",
"url": "https://hh.ru/",
"name": "Название сайта",
"license": "https://hh.ru/usloviya/",
"copyrightHolder": {"@id": "https://hh.ru/#org"},
"copyrightYear": 2026
}
</script>
HTML, true);
Данные подставляются из полей записи; хардкодить значения в functions.php не нужно.
<?php
// В functions.php активной темы (лучше — дочерней) или в своём плагине
add_action('wp_head', function () {
echo <<<'HTML'
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"@id": "https://hh.ru/#site",
"url": "https://hh.ru/",
"name": "Название сайта",
"license": "https://hh.ru/usloviya/",
"copyrightHolder": {"@id": "https://hh.ru/#org"},
"copyrightYear": 2026
}
</script>
HTML;
}, 20);
В Tilda блок вставляется вручную, поэтому значения на каждой странице свои. Для большого каталога это не работает — нужен свой движок.
<!-- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD.
Для одной страницы: Настройки страницы → Дополнительно → HTML-код в HEAD. -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"@id": "https://hh.ru/#site",
"url": "https://hh.ru/",
"name": "Название сайта",
"license": "https://hh.ru/usloviya/",
"copyrightHolder": {"@id": "https://hh.ru/#org"},
"copyrightYear": 2026
}
</script>
Задача: Условия использования материалов объявлены — сайт hh.ru
Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует.
Что нашёл сканер: Условия использования материалов не объявлены ни в разметке, ни в llms.txt, ни в AGENTS.md.
Что нужно сделать: Укажите лицензию (license в разметке) или правила цитирования и использования в llms.txt и AGENTS.md.
Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта.
```html
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"@id": "https://hh.ru/#site",
"url": "https://hh.ru/",
"name": "Название сайта",
"license": "https://hh.ru/usloviya/",
"copyrightHolder": {"@id": "https://hh.ru/#org"},
"copyrightYear": 2026
}
</script>
```
Требования к правке:
- Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера.
- Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной.
- Не менять вёрстку и внешний вид страницы.
- Не трогать остальные теги и разметку, которые уже есть.
Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Условия использования материалов объявлены» закрыт.В порядке: Файл robots.txt; robots.txt пускает ИИ-ботов; robots.txt пускает YandexBot и YandexAdditional; В robots.txt есть строка Sitemap.
HTML-разметка ✓ 6⚠ 4
meta description 120–160 символов
180 симв.
Описание страницы длиной 120–160 символов, своё на каждой странице.
Вставляется в <head> страницы, до закрывающего </head>.
<meta name="description" content="Что это за страница и что на ней можно сделать. Одно-два предложения длиной 120–160 символов.">Для страниц товаров тот же вызов ставится в шаблоне карточки, чтобы данные подставлялись из свойств элемента.
<?php
// В шаблоне сайта: local/templates/ВАШ_ШАБЛОН/header.php, до вызова ShowHead()
$APPLICATION->AddHeadString(<<<'HTML'
<meta name="description" content="Что это за страница и что на ней можно сделать. Одно-два предложения длиной 120–160 символов.">
HTML, true);
Данные подставляются из полей записи; хардкодить значения в functions.php не нужно.
<?php
// В functions.php активной темы (лучше — дочерней) или в своём плагине
add_action('wp_head', function () {
echo <<<'HTML'
<meta name="description" content="Что это за страница и что на ней можно сделать. Одно-два предложения длиной 120–160 символов.">
HTML;
}, 20);
В Tilda блок вставляется вручную, поэтому значения на каждой странице свои. Для большого каталога это не работает — нужен свой движок.
<!-- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD.
Для одной страницы: Настройки страницы → Дополнительно → HTML-код в HEAD. -->
<meta name="description" content="Что это за страница и что на ней можно сделать. Одно-два предложения длиной 120–160 символов.">
Задача: meta description 120–160 символов — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: 180 симв. Что нужно сделать: Опишите страницу в 120–160 символах. Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```html <meta name="description" content="Что это за страница и что на ней можно сделать. Одно-два предложения длиной 120–160 символов."> ``` Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «meta description 120–160 символов» закрыт.
Open Graph: 6 основных тегов
Найдено 3 из 6: og:title, og:description, og:image.
Шесть основных тегов Open Graph. Адрес картинки — абсолютный.
Вставляется в <head> страницы, до закрывающего </head>.
<meta property="og:title" content="Заголовок страницы">
<meta property="og:description" content="Описание страницы в одно-два предложения.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://hh.ru/tekushchaya-stranica/">
<meta property="og:image" content="https://hh.ru/assets/og.png">
<meta property="og:site_name" content="Название компании">Для страниц товаров тот же вызов ставится в шаблоне карточки, чтобы данные подставлялись из свойств элемента.
<?php
// В шаблоне сайта: local/templates/ВАШ_ШАБЛОН/header.php, до вызова ShowHead()
$APPLICATION->AddHeadString(<<<'HTML'
<meta property="og:title" content="Заголовок страницы">
<meta property="og:description" content="Описание страницы в одно-два предложения.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://hh.ru/tekushchaya-stranica/">
<meta property="og:image" content="https://hh.ru/assets/og.png">
<meta property="og:site_name" content="Название компании">
HTML, true);
Данные подставляются из полей записи; хардкодить значения в functions.php не нужно.
<?php
// В functions.php активной темы (лучше — дочерней) или в своём плагине
add_action('wp_head', function () {
echo <<<'HTML'
<meta property="og:title" content="Заголовок страницы">
<meta property="og:description" content="Описание страницы в одно-два предложения.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://hh.ru/tekushchaya-stranica/">
<meta property="og:image" content="https://hh.ru/assets/og.png">
<meta property="og:site_name" content="Название компании">
HTML;
}, 20);
В Tilda блок вставляется вручную, поэтому значения на каждой странице свои. Для большого каталога это не работает — нужен свой движок.
<!-- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD.
Для одной страницы: Настройки страницы → Дополнительно → HTML-код в HEAD. -->
<meta property="og:title" content="Заголовок страницы">
<meta property="og:description" content="Описание страницы в одно-два предложения.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://hh.ru/tekushchaya-stranica/">
<meta property="og:image" content="https://hh.ru/assets/og.png">
<meta property="og:site_name" content="Название компании">
Задача: Open Graph: 6 основных тегов — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Найдено 3 из 6: og:title, og:description, og:image. Что нужно сделать: Добавьте og:title, og:description, og:image, og:url, og:type, og:locale. Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```html <meta property="og:title" content="Заголовок страницы"> <meta property="og:description" content="Описание страницы в одно-два предложения."> <meta property="og:type" content="website"> <meta property="og:url" content="https://hh.ru/tekushchaya-stranica/"> <meta property="og:image" content="https://hh.ru/assets/og.png"> <meta property="og:site_name" content="Название компании"> ``` Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Open Graph: 6 основных тегов» закрыт.
Ровно один <h1>
Найдено: 0.
Задача: Ровно один <h1> — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Найдено: 0. Что нужно сделать: На странице должен быть один главный заголовок. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Ровно один <h1>» закрыт.
Доля текста в HTML больше 15%
Текст — 0,3% от объёма HTML.
Задача: Доля текста в HTML больше 15% — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Текст — 0,3% от объёма HTML. Что нужно сделать: Страница — в основном код. Проверьте, что содержание есть в HTML, а не подгружается скриптами. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Доля текста в HTML больше 15%» закрыт.
В порядке: Атрибут lang у <html>; Уникальный <title> до ~60 символов; rel="canonical"; Иерархия h2–h3 (не меньше 3); Семантические теги main, header, nav, footer; У изображений есть alt.
Структурированные данные JSON-LD ✓ 3⚠ 4не нужно 8
Organization с реквизитами
Есть: legalName, logo, address, sameAs. Нет: контакты, реквизиты.
Organization с реквизитами. ИНН и ОГРН кладутся в identifier как PropertyValue: это единственный способ передать их машинно.
Вставляется в <head> страницы, до закрывающего </head>.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://hh.ru/#org",
"name": "ООО «Название»",
"url": "https://hh.ru/",
"email": "info@hh.ru",
"telephone": "+7 000 000-00-00",
"taxID": "0000000000",
"identifier": [
{"@type": "PropertyValue", "name": "ИНН", "value": "0000000000"},
{"@type": "PropertyValue", "name": "КПП", "value": "000000000"},
{"@type": "PropertyValue", "name": "ОГРН", "value": "0000000000000"}
],
"address": {
"@type": "PostalAddress",
"addressCountry": "RU",
"postalCode": "000000",
"addressRegion": "Область",
"addressLocality": "Город",
"streetAddress": "ул. Примерная, 1"
}
}
</script>Для страниц товаров тот же вызов ставится в шаблоне карточки, чтобы данные подставлялись из свойств элемента.
<?php
// В шаблоне сайта: local/templates/ВАШ_ШАБЛОН/header.php, до вызова ShowHead()
$APPLICATION->AddHeadString(<<<'HTML'
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://hh.ru/#org",
"name": "ООО «Название»",
"url": "https://hh.ru/",
"email": "info@hh.ru",
"telephone": "+7 000 000-00-00",
"taxID": "0000000000",
"identifier": [
{"@type": "PropertyValue", "name": "ИНН", "value": "0000000000"},
{"@type": "PropertyValue", "name": "КПП", "value": "000000000"},
{"@type": "PropertyValue", "name": "ОГРН", "value": "0000000000000"}
],
"address": {
"@type": "PostalAddress",
"addressCountry": "RU",
"postalCode": "000000",
"addressRegion": "Область",
"addressLocality": "Город",
"streetAddress": "ул. Примерная, 1"
}
}
</script>
HTML, true);
Данные подставляются из полей записи; хардкодить значения в functions.php не нужно.
<?php
// В functions.php активной темы (лучше — дочерней) или в своём плагине
add_action('wp_head', function () {
echo <<<'HTML'
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://hh.ru/#org",
"name": "ООО «Название»",
"url": "https://hh.ru/",
"email": "info@hh.ru",
"telephone": "+7 000 000-00-00",
"taxID": "0000000000",
"identifier": [
{"@type": "PropertyValue", "name": "ИНН", "value": "0000000000"},
{"@type": "PropertyValue", "name": "КПП", "value": "000000000"},
{"@type": "PropertyValue", "name": "ОГРН", "value": "0000000000000"}
],
"address": {
"@type": "PostalAddress",
"addressCountry": "RU",
"postalCode": "000000",
"addressRegion": "Область",
"addressLocality": "Город",
"streetAddress": "ул. Примерная, 1"
}
}
</script>
HTML;
}, 20);
В Tilda блок вставляется вручную, поэтому значения на каждой странице свои. Для большого каталога это не работает — нужен свой движок.
<!-- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD.
Для одной страницы: Настройки страницы → Дополнительно → HTML-код в HEAD. -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://hh.ru/#org",
"name": "ООО «Название»",
"url": "https://hh.ru/",
"email": "info@hh.ru",
"telephone": "+7 000 000-00-00",
"taxID": "0000000000",
"identifier": [
{"@type": "PropertyValue", "name": "ИНН", "value": "0000000000"},
{"@type": "PropertyValue", "name": "КПП", "value": "000000000"},
{"@type": "PropertyValue", "name": "ОГРН", "value": "0000000000000"}
],
"address": {
"@type": "PostalAddress",
"addressCountry": "RU",
"postalCode": "000000",
"addressRegion": "Область",
"addressLocality": "Город",
"streetAddress": "ул. Примерная, 1"
}
}
</script>
Задача: Organization с реквизитами — сайт hh.ru
Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует.
Что нашёл сканер: Есть: legalName, logo, address, sameAs. Нет: контакты, реквизиты.
Что нужно сделать: Дополните Organization недостающими полями.
Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта.
```html
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://hh.ru/#org",
"name": "ООО «Название»",
"url": "https://hh.ru/",
"email": "info@hh.ru",
"telephone": "+7 000 000-00-00",
"taxID": "0000000000",
"identifier": [
{"@type": "PropertyValue", "name": "ИНН", "value": "0000000000"},
{"@type": "PropertyValue", "name": "КПП", "value": "000000000"},
{"@type": "PropertyValue", "name": "ОГРН", "value": "0000000000000"}
],
"address": {
"@type": "PostalAddress",
"addressCountry": "RU",
"postalCode": "000000",
"addressRegion": "Область",
"addressLocality": "Город",
"streetAddress": "ул. Примерная, 1"
}
}
</script>
```
Требования к правке:
- Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера.
- Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной.
- Не менять вёрстку и внешний вид страницы.
- Не трогать остальные теги и разметку, которые уже есть.
Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Organization с реквизитами» закрыт.FAQ, глоссарий или инструкции размечены
Не найдено на проверенных страницах.
Задача: FAQ, глоссарий или инструкции размечены — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Не найдено на проверенных страницах. Что нужно сделать: Разметьте FAQ, глоссарий терминов (DefinedTermSet) и инструкции. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «FAQ, глоссарий или инструкции размечены» закрыт.
Материалы размечены (Article)
Материалов с разметкой: 80. Не хватает полей: author, dateModified.
Задача: Материалы размечены (Article) — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Материалов с разметкой: 80. Не хватает полей: author, dateModified. Что нужно сделать: Дополните Article: headline, author, datePublished, dateModified. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Материалы размечены (Article)» закрыт.
Автор указан со ссылкой
Автор указан без ссылки на профиль или не указан.
Задача: Автор указан со ссылкой — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Автор указан без ссылки на профиль или не указан. Что нужно сделать: Укажите автора как Person или Organization со ссылкой url или sameAs. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Автор указан со ссылкой» закрыт.
В порядке: JSON-LD есть в исходном HTML; Только JSON-LD, без Microdata и RDFa; Связный граф через @id.
Машинный доступ ✓ 0⚠ 3
Markdown-зеркало страницы (link rel="alternate")
Ссылки на Markdown-версию нет.
Ссылка на Markdown-версию страницы. Ставится в head каждой страницы, у которой такая версия есть.
Вставляется в <head> страницы, до закрывающего </head>.
<link rel="alternate" type="text/markdown" href="https://hh.ru/stranica.md" title="Markdown-версия страницы">Для страниц товаров тот же вызов ставится в шаблоне карточки, чтобы данные подставлялись из свойств элемента.
<?php
// В шаблоне сайта: local/templates/ВАШ_ШАБЛОН/header.php, до вызова ShowHead()
$APPLICATION->AddHeadString(<<<'HTML'
<link rel="alternate" type="text/markdown" href="https://hh.ru/stranica.md" title="Markdown-версия страницы">
HTML, true);
Данные подставляются из полей записи; хардкодить значения в functions.php не нужно.
<?php
// В functions.php активной темы (лучше — дочерней) или в своём плагине
add_action('wp_head', function () {
echo <<<'HTML'
<link rel="alternate" type="text/markdown" href="https://hh.ru/stranica.md" title="Markdown-версия страницы">
HTML;
}, 20);
В Tilda блок вставляется вручную, поэтому значения на каждой странице свои. Для большого каталога это не работает — нужен свой движок.
<!-- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD.
Для одной страницы: Настройки страницы → Дополнительно → HTML-код в HEAD. -->
<link rel="alternate" type="text/markdown" href="https://hh.ru/stranica.md" title="Markdown-версия страницы">
Задача: Markdown-зеркало страницы (link rel="alternate") — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Ссылки на Markdown-версию нет. Что нужно сделать: Добавьте <link rel="alternate" type="text/markdown" href="…">. Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```html <link rel="alternate" type="text/markdown" href="https://hh.ru/stranica.md" title="Markdown-версия страницы"> ``` Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Markdown-зеркало страницы (link rel="alternate")» закрыт.
Ответ в Markdown по Accept: text/markdown
На запрос с Accept: text/markdown сервер ответил text/html; charset=utf-8.
Один адрес отдаёт HTML человеку и Markdown агенту — по заголовку Accept. Markdown-версии страниц при этом должны уже существовать.
# В server {} — отдавать .md тем, кто просит Markdown
map $http_accept $md_suffix {
default "";
"~*text/markdown" ".md";
}
server {
location / {
add_header Vary Accept;
if (-f $document_root$uri$md_suffix) {
rewrite ^(.*)$ $1$md_suffix last;
}
try_files $uri $uri/ /index.php?$args;
}
location ~ \.md$ {
default_type text/markdown;
charset utf-8;
add_header Vary Accept;
add_header X-Robots-Tag noindex;
}
}# .htaccess в корне сайта
AddType text/markdown .md
<IfModule mod_headers.c>
<FilesMatch "\.(html|md)$">
Header append Vary "Accept"
</FilesMatch>
<FilesMatch "\.md$">
Header set X-Robots-Tag "noindex"
</FilesMatch>
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} text/markdown [NC]
RewriteCond %{DOCUMENT_ROOT}/$1index.md -f
RewriteRule ^(.*/)?$ /$1index.md [L]
</IfModule><?php
// В самом начале обработки страницы, до любого вывода
$accept = $_SERVER['HTTP_ACCEPT'] ?? '';
header('Vary: Accept');
if (stripos($accept, 'text/markdown') !== false) {
$md = __DIR__ . '/index.md';
if (is_file($md)) {
header('Content-Type: text/markdown; charset=utf-8');
header('X-Robots-Tag: noindex');
readfile($md);
exit;
}
}
Задача: Ответ в Markdown по Accept: text/markdown — сайт hh.ru
Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует.
Что нашёл сканер: На запрос с Accept: text/markdown сервер ответил text/html; charset=utf-8.
Что нужно сделать: Отдавайте Markdown-версию по заголовку Accept (content negotiation).
Ориентир по коду (Nginx). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта.
```nginx
# В server {} — отдавать .md тем, кто просит Markdown
map $http_accept $md_suffix {
default "";
"~*text/markdown" ".md";
}
server {
location / {
add_header Vary Accept;
if (-f $document_root$uri$md_suffix) {
rewrite ^(.*)$ $1$md_suffix last;
}
try_files $uri $uri/ /index.php?$args;
}
location ~ \.md$ {
default_type text/markdown;
charset utf-8;
add_header Vary Accept;
add_header X-Robots-Tag noindex;
}
}
```
Требования к правке:
- Правка делается на уровне сервера, а не скриптом в браузере.
- Остальные адреса сайта должны продолжать работать как раньше: проверьте главную, карточку и страницу поиска.
- После правки перезапустите сервер и убедитесь, что конфигурация прошла проверку.
Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Ответ в Markdown по Accept: text/markdown» закрыт.Описание API (OpenAPI)
Открытого API с описанием OpenAPI не найдено.
Задача: Описание API (OpenAPI) — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Открытого API с описанием OpenAPI не найдено. Что нужно сделать: Опубликуйте JSON-API товаров и цены с OpenAPI-схемой и сошлитесь на неё из AGENTS.md. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Описание API (OpenAPI)» закрыт.
Правовое и доверие ✓ 1⚠ 2
Реквизиты юрлица: ИНН и ОГРН
ИНН: нет, ОГРН: нет (на главной и в разметке).
Реквизиты в разметке — не замена подвалу, а дополнение к нему: агент берёт их отсюда, человек из подвала.
Вставляется в <head> страницы, до закрывающего </head>.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://hh.ru/#org",
"name": "ООО «Название»",
"url": "https://hh.ru/",
"email": "info@hh.ru",
"telephone": "+7 000 000-00-00",
"taxID": "0000000000",
"identifier": [
{"@type": "PropertyValue", "name": "ИНН", "value": "0000000000"},
{"@type": "PropertyValue", "name": "КПП", "value": "000000000"},
{"@type": "PropertyValue", "name": "ОГРН", "value": "0000000000000"}
],
"address": {
"@type": "PostalAddress",
"addressCountry": "RU",
"postalCode": "000000",
"addressRegion": "Область",
"addressLocality": "Город",
"streetAddress": "ул. Примерная, 1"
}
}
</script>Для страниц товаров тот же вызов ставится в шаблоне карточки, чтобы данные подставлялись из свойств элемента.
<?php
// В шаблоне сайта: local/templates/ВАШ_ШАБЛОН/header.php, до вызова ShowHead()
$APPLICATION->AddHeadString(<<<'HTML'
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://hh.ru/#org",
"name": "ООО «Название»",
"url": "https://hh.ru/",
"email": "info@hh.ru",
"telephone": "+7 000 000-00-00",
"taxID": "0000000000",
"identifier": [
{"@type": "PropertyValue", "name": "ИНН", "value": "0000000000"},
{"@type": "PropertyValue", "name": "КПП", "value": "000000000"},
{"@type": "PropertyValue", "name": "ОГРН", "value": "0000000000000"}
],
"address": {
"@type": "PostalAddress",
"addressCountry": "RU",
"postalCode": "000000",
"addressRegion": "Область",
"addressLocality": "Город",
"streetAddress": "ул. Примерная, 1"
}
}
</script>
HTML, true);
Данные подставляются из полей записи; хардкодить значения в functions.php не нужно.
<?php
// В functions.php активной темы (лучше — дочерней) или в своём плагине
add_action('wp_head', function () {
echo <<<'HTML'
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://hh.ru/#org",
"name": "ООО «Название»",
"url": "https://hh.ru/",
"email": "info@hh.ru",
"telephone": "+7 000 000-00-00",
"taxID": "0000000000",
"identifier": [
{"@type": "PropertyValue", "name": "ИНН", "value": "0000000000"},
{"@type": "PropertyValue", "name": "КПП", "value": "000000000"},
{"@type": "PropertyValue", "name": "ОГРН", "value": "0000000000000"}
],
"address": {
"@type": "PostalAddress",
"addressCountry": "RU",
"postalCode": "000000",
"addressRegion": "Область",
"addressLocality": "Город",
"streetAddress": "ул. Примерная, 1"
}
}
</script>
HTML;
}, 20);
В Tilda блок вставляется вручную, поэтому значения на каждой странице свои. Для большого каталога это не работает — нужен свой движок.
<!-- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD.
Для одной страницы: Настройки страницы → Дополнительно → HTML-код в HEAD. -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://hh.ru/#org",
"name": "ООО «Название»",
"url": "https://hh.ru/",
"email": "info@hh.ru",
"telephone": "+7 000 000-00-00",
"taxID": "0000000000",
"identifier": [
{"@type": "PropertyValue", "name": "ИНН", "value": "0000000000"},
{"@type": "PropertyValue", "name": "КПП", "value": "000000000"},
{"@type": "PropertyValue", "name": "ОГРН", "value": "0000000000000"}
],
"address": {
"@type": "PostalAddress",
"addressCountry": "RU",
"postalCode": "000000",
"addressRegion": "Область",
"addressLocality": "Город",
"streetAddress": "ул. Примерная, 1"
}
}
</script>
Задача: Реквизиты юрлица: ИНН и ОГРН — сайт hh.ru
Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует.
Что нашёл сканер: ИНН: нет, ОГРН: нет (на главной и в разметке).
Что нужно сделать: Покажите полное наименование, ИНН, ОГРН и юридический адрес — хотя бы в подвале. Для англоязычного сайта подойдут метки INN и OGRN либо поля taxID и identifier в разметке Organization.
Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта.
```html
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://hh.ru/#org",
"name": "ООО «Название»",
"url": "https://hh.ru/",
"email": "info@hh.ru",
"telephone": "+7 000 000-00-00",
"taxID": "0000000000",
"identifier": [
{"@type": "PropertyValue", "name": "ИНН", "value": "0000000000"},
{"@type": "PropertyValue", "name": "КПП", "value": "000000000"},
{"@type": "PropertyValue", "name": "ОГРН", "value": "0000000000000"}
],
"address": {
"@type": "PostalAddress",
"addressCountry": "RU",
"postalCode": "000000",
"addressRegion": "Область",
"addressLocality": "Город",
"streetAddress": "ул. Примерная, 1"
}
}
</script>
```
Требования к правке:
- Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера.
- Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной.
- Не менять вёрстку и внешний вид страницы.
- Не трогать остальные теги и разметку, которые уже есть.
Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Реквизиты юрлица: ИНН и ОГРН» закрыт.Контакты: e-mail или телефон ссылкой
Нет ссылок mailto: или tel:.
Задача: Контакты: e-mail или телефон ссылкой — сайт hh.ru Контекст. Сайт hh.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Нет ссылок mailto: или tel:. Что нужно сделать: Сделайте почту и телефон ссылками — агент распознает их однозначно. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=hh.ru и убедиться, что пункт «Контакты: e-mail или телефон ссылкой» закрыт.
В порядке: Политика обработки персональных данных.
Ограничения метода. Отчёт отражает внешние признаки на дату сканирования. Он не подтверждает, что данные на сайте верны, и не прогнозирует ответы ИИ-ассистентов. Сканер читает исходный HTML без выполнения скриптов; то, что появляется после них, считается отсутствующим.
Сформирован автоматически по открытой шкале. Это не сертификат.agentreadyscan.ru · ООО «САРМАТЕХ» · ИНН 4725011864
