securitm.ru
Автоматическое сканирование по открытой шкале 1.1 · 2,9 с · группа «Услуги» (определена автоматически) · версия 1.1, калибровка не проведена
Может ли ИИ записаться или заказать у вас?
Найдёт компанию, но не сравнит услуги и цены.
Если тип определён неверно
Разметка
Синяя ступень — сейчас. Пунктир — цель после работ.
# securitm.ru — уровень 1 из 4 «Разметка» Сканирование на готовность к ИИ-агентам, 24.10.2026 11:59 UTC. Группа сайта: «Услуги». Отчёт: https://agentreadyscan.ru/check/?url=securitm.ru · шкала: https://agentreadyscan.ru/metodika/ **Может ли ИИ записаться или заказать у вас?** Нет — Найдёт компанию, но не сравнит услуги и цены. Замечаний: критичных 5, важных 4, на доводку 7. В порядке: 25 из 41. ## Что мешает уровню 2 - **Услуги размечены (Service).** Service, ProfessionalService или разметки вида деятельности не найдено. Как исправить: Разметьте каждую услугу типом Service: name, description, provider, areaServed — и Offer с ценой. - **Цена в Offer, без нулевых цен.** Найдена цена 0 — агент воспримет товар как бесплатный. Как исправить: Если публичной цены нет — уберите price и объявите QuoteAction с адресом запроса. ## Остальные замечания - **Файл /llms-full.txt.** Не найден (404). Как исправить: Выложите полный Markdown-каталог: линейки, характеристики, применение. - **Инструкция для агентов /AGENTS.md.** Не найдена (404). Как исправить: Опишите точки входа, как получить цену, единицы измерения и оговорки о достоверности. - **Markdown-карта сайта /sitemap.md.** Не найдена (404). Как исправить: Выложите карту сайта в Markdown для агентов. - **Уникальный <title> до ~60 символов.** «SGRC-система SECURITM — автоматизация управления информационной безопасностью» — 77 симв. Как исправить: Сократите: длинный заголовок обрезается. - **meta description 120–160 символов.** 267 симв. Как исправить: Опишите страницу в 120–160 символах. - **Семантические теги main, header, nav, footer.** Есть: header, footer. Как исправить: Разметьте страницу семантическими тегами. - **Доля текста в HTML больше 15%.** Текст — 11,4% от объёма HTML. Как исправить: Страница — в основном код. Проверьте, что содержание есть в HTML, а не подгружается скриптами. - **Organization с реквизитами.** Есть: legalName, logo, address, sameAs, контакты. Нет: реквизиты. Как исправить: Дополните Organization недостающими полями. - **potentialAction: что агент может сделать.** Действий не объявлено. Как исправить: Объявите BuyAction, QuoteAction или SearchAction с адресом. - **FAQ, глоссарий или инструкции размечены.** Не найдено на проверенных страницах. Как исправить: Разметьте FAQ, глоссарий терминов (DefinedTermSet) и инструкции. - **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. ## Объём главной страницы для агента - Исходный HTML: примерно 41 432 токенов - То же содержание текстом: примерно 4 063 токенов - Лишнее (вёрстка, скрипты, стили): 90% Оценка: у каждой модели свой токенизатор, точное число отличается примерно на пятую часть. ## Справочная смета исправлений (прайс AI-D2C) - Базовый слой для агентов — 20 000 ₽, срок 1 неделя - Разметка типа страницы — 15 000 ₽, срок 2–3 дня на тип - **Итого с НДС: 36 750 ₽** Цена одна для всех, исполнителя вы выбираете сами. Оферта: https://aid2c.ru/oferta/ --- Оценка по внешним признакам на дату сканирования: сайт запрашивается по HTTP без выполнения JavaScript. Это не сертификат. Сервис делает ООО «САРМАТЕХ», которое под маркой AI-D2C выполняет и работы по подготовке сайтов, поэтому проверка не независима.
Что нужно сделать, чтобы подняться на уровень 2
Отмечайте сделанное, так проще не потерять нить. Когда закончите, просканируйте сайт заново.
Задача: поднять сайт securitm.ru до уровня 2 готовности к ИИ-агентам
Проверка: https://agentreadyscan.ru/check/?url=securitm.ru — шкала и требования открыты: https://agentreadyscan.ru/metodika/
Сканер читает исходный HTML без выполнения JavaScript. Всё, что появляется только после скриптов, он считает отсутствующим.
Ниже 2 пункта. Их нужно закрыть все: уровень присваивается, только когда выполнены все требования.
————————————————————————————————————————————————————————————
ПУНКТ 1 из 2
Задача: Услуги размечены (Service) — сайт securitm.ru
Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует.
Что нашёл сканер: Service, ProfessionalService или разметки вида деятельности не найдено.
Что нужно сделать: Разметьте каждую услугу типом Service: name, description, provider, areaServed — и Offer с ценой.
Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта.
```html
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>
```
Требования к правке:
- Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера.
- Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной.
- Не менять вёрстку и внешний вид страницы.
- Не трогать остальные теги и разметку, которые уже есть.
Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «Услуги размечены (Service)» закрыт.
————————————————————————————————————————————————————————————
ПУНКТ 2 из 2
Задача: Цена в Offer, без нулевых цен — сайт securitm.ru
Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует.
Что нашёл сканер: Найдена цена 0 — агент воспримет товар как бесплатный.
Что нужно сделать: Если публичной цены нет — уберите price и объявите QuoteAction с адресом запроса.
Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта.
```html
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>
```
Требования к правке:
- Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера.
- Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной.
- Не менять вёрстку и внешний вид страницы.
- Не трогать остальные теги и разметку, которые уже есть.
Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «Цена в Offer, без нулевых цен» закрыт.
Услуги размечены (Service)
Service, ProfessionalService или разметки вида деятельности не найдено.
Разметка услуги с ценой и исполнителем.
Вставляется в <head> страницы, до закрывающего </head>.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>Для страниц товаров тот же вызов ставится в шаблоне карточки, чтобы данные подставлялись из свойств элемента.
<?php
// В шаблоне сайта: local/templates/ВАШ_ШАБЛОН/header.php, до вызова ShowHead()
$APPLICATION->AddHeadString(<<<'HTML'
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</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": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>
HTML;
}, 20);
В Tilda блок вставляется вручную, поэтому значения на каждой странице свои. Для большого каталога это не работает — нужен свой движок.
<!-- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD.
Для одной страницы: Настройки страницы → Дополнительно → HTML-код в HEAD. -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>
Задача: Услуги размечены (Service) — сайт securitm.ru
Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует.
Что нашёл сканер: Service, ProfessionalService или разметки вида деятельности не найдено.
Что нужно сделать: Разметьте каждую услугу типом Service: name, description, provider, areaServed — и Offer с ценой.
Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта.
```html
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>
```
Требования к правке:
- Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера.
- Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной.
- Не менять вёрстку и внешний вид страницы.
- Не трогать остальные теги и разметку, которые уже есть.
Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «Услуги размечены (Service)» закрыт.Цена в Offer, без нулевых цен
Найдена цена 0 — агент воспримет товар как бесплатный.
Блок offers внутри Product или Service. Цена пишется числом в строке, без пробелов и знака рубля.
Вставляется в <head> страницы, до закрывающего </head>.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>Для страниц товаров тот же вызов ставится в шаблоне карточки, чтобы данные подставлялись из свойств элемента.
<?php
// В шаблоне сайта: local/templates/ВАШ_ШАБЛОН/header.php, до вызова ShowHead()
$APPLICATION->AddHeadString(<<<'HTML'
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</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": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>
HTML;
}, 20);
В Tilda блок вставляется вручную, поэтому значения на каждой странице свои. Для большого каталога это не работает — нужен свой движок.
<!-- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD.
Для одной страницы: Настройки страницы → Дополнительно → HTML-код в HEAD. -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>
Задача: Цена в Offer, без нулевых цен — сайт securitm.ru
Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует.
Что нашёл сканер: Найдена цена 0 — агент воспримет товар как бесплатный.
Что нужно сделать: Если публичной цены нет — уберите price и объявите QuoteAction с адресом запроса.
Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта.
```html
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>
```
Требования к правке:
- Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера.
- Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной.
- Не менять вёрстку и внешний вид страницы.
- Не трогать остальные теги и разметку, которые уже есть.
Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «Цена в Offer, без нулевых цен» закрыт.Можно поправить за час, без разработчика
Не влияет на уровень, но агентам станет понятнее.
Файл /llms-full.txt
Не найден (404).
Полный текст ключевых страниц одним файлом. Собирается скриптом при публикации: заголовок страницы, адрес, текст без вёрстки.
Положите файл в корень сайта: https://ваш-сайт.ru/имя-файла. Кодировка UTF-8, тип ответа text/plain (для .md — text/markdown).
# Полные тексты страниц securitm.ru
## Доставка
https://securitm.ru/dostavka/
Текст страницы без вёрстки.
## Оплата
https://securitm.ru/oplata/
Текст страницы без вёрстки.Положите файл в корень сайта, рядом с index.php. Если корень закрыт правилами в .htaccess, добавьте исключение для этого имени.
# Полные тексты страниц securitm.ru
## Доставка
https://securitm.ru/dostavka/
Текст страницы без вёрстки.
## Оплата
https://securitm.ru/oplata/
Текст страницы без вёрстки.Положите файл в корень сайта, рядом с wp-config.php. Плагины кэширования файл не трогают, очищать кэш не нужно.
# Полные тексты страниц securitm.ru
## Доставка
https://securitm.ru/dostavka/
Текст страницы без вёрстки.
## Оплата
https://securitm.ru/oplata/
Текст страницы без вёрстки.Tilda не даёт класть свои файлы в корень. Варианты: перенести сайт на своё размещение, поставить перед Tilda обратный прокси (Nginx, Cloudflare Workers) и отдавать файл с него, либо опубликовать файл на поддомене и сослаться на него из robots.txt.
# Полные тексты страниц securitm.ru
## Доставка
https://securitm.ru/dostavka/
Текст страницы без вёрстки.
## Оплата
https://securitm.ru/oplata/
Текст страницы без вёрстки.Задача: Файл /llms-full.txt — сайт securitm.ru Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Не найден (404). Что нужно сделать: Выложите полный Markdown-каталог: линейки, характеристики, применение. Ориентир по коду (Файл llms-full.txt). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```markdown # Полные тексты страниц securitm.ru ## Доставка https://securitm.ru/dostavka/ Текст страницы без вёрстки. ## Оплата https://securitm.ru/oplata/ Текст страницы без вёрстки. ``` Требования к правке: - Файл должен открываться по прямому адресу и отдаваться с кодом 200, без редиректа. - Кодировка UTF-8, перевод строки — обычный, без BOM. - Адреса внутри файла — полные, с https:// и доменом. - Файл не должен быть закрыт от роботов правилами robots.txt или защитой сайта. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «Файл /llms-full.txt» закрыт.
Инструкция для агентов /AGENTS.md
Не найдена (404).
Инструкция для агентов: где брать данные машинно и чего делать не нужно. Имя файла пишется прописными буквами.
Положите файл в корень сайта: https://ваш-сайт.ru/имя-файла. Кодировка UTF-8, тип ответа text/plain (для .md — text/markdown).
# AGENTS.md
Инструкция для ИИ-агентов, работающих с сайтом securitm.ru.
## Что здесь есть
Коротко: чем занимается компания и что можно найти на сайте.
## Машиночитаемые источники
- Карта сайта: https://securitm.ru/sitemap.xml
- Краткая выжимка: https://securitm.ru/llms.txt
- Описание API: https://securitm.ru/openapi.json
- Товарный фид (YML): https://securitm.ru/feed.yml
## Как пользоваться данными
- Цены и наличие берите из JSON-LD на странице услуги: они обновляются вместе с каталогом.
- Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново.
- Ссылайтесь на страницу услуги, а не на каталог целиком.
## Чего делать не нужно
- Не оформляйте заказ без подтверждения человека.
- Не используйте фотографии отдельно от описания услуги.
## Контакт для вопросов
info@securitm.ruПоложите файл в корень сайта, рядом с index.php. Если корень закрыт правилами в .htaccess, добавьте исключение для этого имени.
# AGENTS.md
Инструкция для ИИ-агентов, работающих с сайтом securitm.ru.
## Что здесь есть
Коротко: чем занимается компания и что можно найти на сайте.
## Машиночитаемые источники
- Карта сайта: https://securitm.ru/sitemap.xml
- Краткая выжимка: https://securitm.ru/llms.txt
- Описание API: https://securitm.ru/openapi.json
- Товарный фид (YML): https://securitm.ru/feed.yml
## Как пользоваться данными
- Цены и наличие берите из JSON-LD на странице услуги: они обновляются вместе с каталогом.
- Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново.
- Ссылайтесь на страницу услуги, а не на каталог целиком.
## Чего делать не нужно
- Не оформляйте заказ без подтверждения человека.
- Не используйте фотографии отдельно от описания услуги.
## Контакт для вопросов
info@securitm.ruПоложите файл в корень сайта, рядом с wp-config.php. Плагины кэширования файл не трогают, очищать кэш не нужно.
# AGENTS.md
Инструкция для ИИ-агентов, работающих с сайтом securitm.ru.
## Что здесь есть
Коротко: чем занимается компания и что можно найти на сайте.
## Машиночитаемые источники
- Карта сайта: https://securitm.ru/sitemap.xml
- Краткая выжимка: https://securitm.ru/llms.txt
- Описание API: https://securitm.ru/openapi.json
- Товарный фид (YML): https://securitm.ru/feed.yml
## Как пользоваться данными
- Цены и наличие берите из JSON-LD на странице услуги: они обновляются вместе с каталогом.
- Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново.
- Ссылайтесь на страницу услуги, а не на каталог целиком.
## Чего делать не нужно
- Не оформляйте заказ без подтверждения человека.
- Не используйте фотографии отдельно от описания услуги.
## Контакт для вопросов
info@securitm.ruTilda не даёт класть свои файлы в корень. Варианты: перенести сайт на своё размещение, поставить перед Tilda обратный прокси (Nginx, Cloudflare Workers) и отдавать файл с него, либо опубликовать файл на поддомене и сослаться на него из robots.txt.
# AGENTS.md
Инструкция для ИИ-агентов, работающих с сайтом securitm.ru.
## Что здесь есть
Коротко: чем занимается компания и что можно найти на сайте.
## Машиночитаемые источники
- Карта сайта: https://securitm.ru/sitemap.xml
- Краткая выжимка: https://securitm.ru/llms.txt
- Описание API: https://securitm.ru/openapi.json
- Товарный фид (YML): https://securitm.ru/feed.yml
## Как пользоваться данными
- Цены и наличие берите из JSON-LD на странице услуги: они обновляются вместе с каталогом.
- Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново.
- Ссылайтесь на страницу услуги, а не на каталог целиком.
## Чего делать не нужно
- Не оформляйте заказ без подтверждения человека.
- Не используйте фотографии отдельно от описания услуги.
## Контакт для вопросов
info@securitm.ruЗадача: Инструкция для агентов /AGENTS.md — сайт securitm.ru Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Не найдена (404). Что нужно сделать: Опишите точки входа, как получить цену, единицы измерения и оговорки о достоверности. Ориентир по коду (Файл AGENTS.md). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```markdown # AGENTS.md Инструкция для ИИ-агентов, работающих с сайтом securitm.ru. ## Что здесь есть Коротко: чем занимается компания и что можно найти на сайте. ## Машиночитаемые источники - Карта сайта: https://securitm.ru/sitemap.xml - Краткая выжимка: https://securitm.ru/llms.txt - Описание API: https://securitm.ru/openapi.json - Товарный фид (YML): https://securitm.ru/feed.yml ## Как пользоваться данными - Цены и наличие берите из JSON-LD на странице услуги: они обновляются вместе с каталогом. - Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново. - Ссылайтесь на страницу услуги, а не на каталог целиком. ## Чего делать не нужно - Не оформляйте заказ без подтверждения человека. - Не используйте фотографии отдельно от описания услуги. ## Контакт для вопросов info@securitm.ru ``` Требования к правке: - Файл должен открываться по прямому адресу и отдаваться с кодом 200, без редиректа. - Кодировка UTF-8, перевод строки — обычный, без BOM. - Адреса внутри файла — полные, с https:// и доменом. - Файл не должен быть закрыт от роботов правилами robots.txt или защитой сайта. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «Инструкция для агентов /AGENTS.md» закрыт.
Markdown-карта сайта /sitemap.md
Не найдена (404).
Карта сайта для чтения, а не для поисковых систем: только важные страницы с пояснениями.
Положите файл в корень сайта: https://ваш-сайт.ru/имя-файла. Кодировка UTF-8, тип ответа text/plain (для .md — text/markdown).
# Карта сайта securitm.ru
- [Главная](https://securitm.ru/) — чем занимается компания
- [Каталог](https://securitm.ru/catalog/) — все разделы
- [Доставка](https://securitm.ru/dostavka/) — сроки и стоимость
- [Контакты](https://securitm.ru/kontakty/) — адрес, телефон, реквизитыПоложите файл в корень сайта, рядом с index.php. Если корень закрыт правилами в .htaccess, добавьте исключение для этого имени.
# Карта сайта securitm.ru
- [Главная](https://securitm.ru/) — чем занимается компания
- [Каталог](https://securitm.ru/catalog/) — все разделы
- [Доставка](https://securitm.ru/dostavka/) — сроки и стоимость
- [Контакты](https://securitm.ru/kontakty/) — адрес, телефон, реквизитыПоложите файл в корень сайта, рядом с wp-config.php. Плагины кэширования файл не трогают, очищать кэш не нужно.
# Карта сайта securitm.ru
- [Главная](https://securitm.ru/) — чем занимается компания
- [Каталог](https://securitm.ru/catalog/) — все разделы
- [Доставка](https://securitm.ru/dostavka/) — сроки и стоимость
- [Контакты](https://securitm.ru/kontakty/) — адрес, телефон, реквизитыTilda не даёт класть свои файлы в корень. Варианты: перенести сайт на своё размещение, поставить перед Tilda обратный прокси (Nginx, Cloudflare Workers) и отдавать файл с него, либо опубликовать файл на поддомене и сослаться на него из robots.txt.
# Карта сайта securitm.ru
- [Главная](https://securitm.ru/) — чем занимается компания
- [Каталог](https://securitm.ru/catalog/) — все разделы
- [Доставка](https://securitm.ru/dostavka/) — сроки и стоимость
- [Контакты](https://securitm.ru/kontakty/) — адрес, телефон, реквизитыЗадача: Markdown-карта сайта /sitemap.md — сайт securitm.ru Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Не найдена (404). Что нужно сделать: Выложите карту сайта в Markdown для агентов. Ориентир по коду (Файл sitemap.md). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```markdown # Карта сайта securitm.ru - [Главная](https://securitm.ru/) — чем занимается компания - [Каталог](https://securitm.ru/catalog/) — все разделы - [Доставка](https://securitm.ru/dostavka/) — сроки и стоимость - [Контакты](https://securitm.ru/kontakty/) — адрес, телефон, реквизиты ``` Требования к правке: - Файл должен открываться по прямому адресу и отдаваться с кодом 200, без редиректа. - Кодировка UTF-8, перевод строки — обычный, без BOM. - Адреса внутри файла — полные, с https:// и доменом. - Файл не должен быть закрыт от роботов правилами robots.txt или защитой сайта. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «Markdown-карта сайта /sitemap.md» закрыт.
Уникальный <title> до ~60 символов
«SGRC-система SECURITM — автоматизация управления информационной безопасностью» — 77 симв.
Задача: Уникальный <title> до ~60 символов — сайт securitm.ru Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: «SGRC-система SECURITM — автоматизация управления информационной безопасностью» — 77 симв. Что нужно сделать: Сократите: длинный заголовок обрезается. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «Уникальный <title> до ~60 символов» закрыт.
meta description 120–160 символов
267 симв.
Описание страницы длиной 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 символов — сайт securitm.ru Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: 267 симв. Что нужно сделать: Опишите страницу в 120–160 символах. Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```html <meta name="description" content="Что это за страница и что на ней можно сделать. Одно-два предложения длиной 120–160 символов."> ``` Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «meta description 120–160 символов» закрыт.
Реквизиты юрлица: ИНН и ОГРН
ИНН: нет, ОГРН: нет (на главной и в разметке).
Реквизиты в разметке — не замена подвалу, а дополнение к нему: агент берёт их отсюда, человек из подвала.
Вставляется в <head> страницы, до закрывающего </head>.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://securitm.ru/#org",
"name": "ООО «Название»",
"url": "https://securitm.ru/",
"email": "info@securitm.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://securitm.ru/#org",
"name": "ООО «Название»",
"url": "https://securitm.ru/",
"email": "info@securitm.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://securitm.ru/#org",
"name": "ООО «Название»",
"url": "https://securitm.ru/",
"email": "info@securitm.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://securitm.ru/#org",
"name": "ООО «Название»",
"url": "https://securitm.ru/",
"email": "info@securitm.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>
Задача: Реквизиты юрлица: ИНН и ОГРН — сайт securitm.ru
Контекст. Сайт securitm.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://securitm.ru/#org",
"name": "ООО «Название»",
"url": "https://securitm.ru/",
"email": "info@securitm.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=securitm.ru и убедиться, что пункт «Реквизиты юрлица: ИНН и ОГРН» закрыт.Из чего складывается цена
| Позиция прайса | Объём | Сумма |
|---|---|---|
| Базовый слой для агентовсрок: 1 неделяrobots.txt для ИИ-ботов, sitemap с датами, llms.txt, AGENTS.md, Markdown-версии страниц, разметка компании с ИНН и ОГРН.Закрывает в отчёте: Файл /llms-full.txt; Инструкция для агентов /AGENTS.md; Markdown-карта сайта /sitemap.md; Organization с реквизитами; Markdown-зеркало страницы (link rel="alternate"); Ответ в Markdown по Accept: text/markdown и ещё 1 | 1 × 20 000 ₽ | 20 000 ₽ |
| Разметка типа страницысрок: 2–3 дня на типJSON-LD и таблица характеристик для одного типа страниц: карточка товара, категория, статья.Закрывает в отчёте: Уникальный <title> до ~60 символов; meta description 120–160 символов; Семантические теги main, header, nav, footer; FAQ, глоссарий или инструкции размечены; Услуги размечены (Service); Цена в Offer, без нулевых цен | 2 × 7 500 ₽ | 15 000 ₽ |
| API расчёта цены · по желаниюНужно для уровня 3, если цена зависит от размера или опций. | — | 10 000 ₽ + 5 000 ₽ за параметр |
| Подключение к «Купить в 1 клик» в Алисе AI (YCP) · по желаниюДля уровня 4 в рознице. Для B2B вместо этого — документированный запрос расчёта. | — | 60 000 ₽ (по API) |
| Без НДС | 35 000 ₽ | |
| НДС 5% | 1 750 ₽ | |
| Итого | 36 750 ₽ | |
По умолчанию работы оплачиваются одним объёмом. По согласованию до начала работ проект можно разбить на этапы: первым этапом идёт Базовый слой для агентов, 20 000 ₽ без НДС, срок 1 неделя.
Оценка по отчёту: движок и число товаров определены автоматически, часы на проблемы сервера — средние. Точная сумма фиксируется в договоре по формуле прайс-листа после подтверждения объёмов. Строки «по желанию» в итог не входят. Цена одна для всех, исполнителя выбираете вы.
Оставить заявку на исправление ↗ОплатитьУточнить объёмы в калькуляторе ↗Публичная оферта ↗
Как это работает: 1) заявка, бесплатно и без договора; 2) смета на почту по этому прайсу; 3) счёт по согласованной смете. Договор заключается, когда вы подтверждаете смету письмом или оплачиваете счёт (оферта, п. 3.3). Кнопка «Оплатить» ведёт на страницу об оплате: онлайн-оплата в разработке, сейчас оплата по счёту.
Что дальше
Исправить самому
Часть пунктов закрывается за час без разработчика. У каждого пункта написано, как исправить.
Передать студии или разработчику
Отчёт и шкала открыты: любой исполнитель увидит те же требования. После правок просканируйте сайт заново.
Заявка в AI-D2C
Работы по смете, цена по публичному прайсу. Смета придёт на почту, оплата только после вашего согласия. Оставить заявку ↗
Вы веб-студия и работаете по этой методике? Напишите нам: будем рекомендовать вас в отчётах, когда запустим список партнёров.
Что видит агент
Столько агент тратит на одно обращение к вашей главной странице. 90% этого объёма — вёрстка и скрипты, в которых нет содержания: агент платит за них так же, как за текст. 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. |
Подробная расшифровка проверок
Для тех, кто хочет разобраться или передать разработчику.
Сервер и доступ ✓ 8
Замечаний нет.
В порядке: Сайт работает по HTTPS; Главная отвечает 200; Не больше одного редиректа, только 301; Нет запрета индексации (noindex); Файрвол не блокирует ИИ-ботов; Несуществующая страница отвечает 404; Content-Type text/html и UTF-8; Время до первого байта до 600 мс.
Файлы сайта ✓ 6⚠ 3не нужно 3
Файл /llms-full.txt
Не найден (404).
Полный текст ключевых страниц одним файлом. Собирается скриптом при публикации: заголовок страницы, адрес, текст без вёрстки.
Положите файл в корень сайта: https://ваш-сайт.ru/имя-файла. Кодировка UTF-8, тип ответа text/plain (для .md — text/markdown).
# Полные тексты страниц securitm.ru
## Доставка
https://securitm.ru/dostavka/
Текст страницы без вёрстки.
## Оплата
https://securitm.ru/oplata/
Текст страницы без вёрстки.Положите файл в корень сайта, рядом с index.php. Если корень закрыт правилами в .htaccess, добавьте исключение для этого имени.
# Полные тексты страниц securitm.ru
## Доставка
https://securitm.ru/dostavka/
Текст страницы без вёрстки.
## Оплата
https://securitm.ru/oplata/
Текст страницы без вёрстки.Положите файл в корень сайта, рядом с wp-config.php. Плагины кэширования файл не трогают, очищать кэш не нужно.
# Полные тексты страниц securitm.ru
## Доставка
https://securitm.ru/dostavka/
Текст страницы без вёрстки.
## Оплата
https://securitm.ru/oplata/
Текст страницы без вёрстки.Tilda не даёт класть свои файлы в корень. Варианты: перенести сайт на своё размещение, поставить перед Tilda обратный прокси (Nginx, Cloudflare Workers) и отдавать файл с него, либо опубликовать файл на поддомене и сослаться на него из robots.txt.
# Полные тексты страниц securitm.ru
## Доставка
https://securitm.ru/dostavka/
Текст страницы без вёрстки.
## Оплата
https://securitm.ru/oplata/
Текст страницы без вёрстки.Задача: Файл /llms-full.txt — сайт securitm.ru Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Не найден (404). Что нужно сделать: Выложите полный Markdown-каталог: линейки, характеристики, применение. Ориентир по коду (Файл llms-full.txt). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```markdown # Полные тексты страниц securitm.ru ## Доставка https://securitm.ru/dostavka/ Текст страницы без вёрстки. ## Оплата https://securitm.ru/oplata/ Текст страницы без вёрстки. ``` Требования к правке: - Файл должен открываться по прямому адресу и отдаваться с кодом 200, без редиректа. - Кодировка UTF-8, перевод строки — обычный, без BOM. - Адреса внутри файла — полные, с https:// и доменом. - Файл не должен быть закрыт от роботов правилами robots.txt или защитой сайта. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «Файл /llms-full.txt» закрыт.
Инструкция для агентов /AGENTS.md
Не найдена (404).
Инструкция для агентов: где брать данные машинно и чего делать не нужно. Имя файла пишется прописными буквами.
Положите файл в корень сайта: https://ваш-сайт.ru/имя-файла. Кодировка UTF-8, тип ответа text/plain (для .md — text/markdown).
# AGENTS.md
Инструкция для ИИ-агентов, работающих с сайтом securitm.ru.
## Что здесь есть
Коротко: чем занимается компания и что можно найти на сайте.
## Машиночитаемые источники
- Карта сайта: https://securitm.ru/sitemap.xml
- Краткая выжимка: https://securitm.ru/llms.txt
- Описание API: https://securitm.ru/openapi.json
- Товарный фид (YML): https://securitm.ru/feed.yml
## Как пользоваться данными
- Цены и наличие берите из JSON-LD на странице услуги: они обновляются вместе с каталогом.
- Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново.
- Ссылайтесь на страницу услуги, а не на каталог целиком.
## Чего делать не нужно
- Не оформляйте заказ без подтверждения человека.
- Не используйте фотографии отдельно от описания услуги.
## Контакт для вопросов
info@securitm.ruПоложите файл в корень сайта, рядом с index.php. Если корень закрыт правилами в .htaccess, добавьте исключение для этого имени.
# AGENTS.md
Инструкция для ИИ-агентов, работающих с сайтом securitm.ru.
## Что здесь есть
Коротко: чем занимается компания и что можно найти на сайте.
## Машиночитаемые источники
- Карта сайта: https://securitm.ru/sitemap.xml
- Краткая выжимка: https://securitm.ru/llms.txt
- Описание API: https://securitm.ru/openapi.json
- Товарный фид (YML): https://securitm.ru/feed.yml
## Как пользоваться данными
- Цены и наличие берите из JSON-LD на странице услуги: они обновляются вместе с каталогом.
- Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново.
- Ссылайтесь на страницу услуги, а не на каталог целиком.
## Чего делать не нужно
- Не оформляйте заказ без подтверждения человека.
- Не используйте фотографии отдельно от описания услуги.
## Контакт для вопросов
info@securitm.ruПоложите файл в корень сайта, рядом с wp-config.php. Плагины кэширования файл не трогают, очищать кэш не нужно.
# AGENTS.md
Инструкция для ИИ-агентов, работающих с сайтом securitm.ru.
## Что здесь есть
Коротко: чем занимается компания и что можно найти на сайте.
## Машиночитаемые источники
- Карта сайта: https://securitm.ru/sitemap.xml
- Краткая выжимка: https://securitm.ru/llms.txt
- Описание API: https://securitm.ru/openapi.json
- Товарный фид (YML): https://securitm.ru/feed.yml
## Как пользоваться данными
- Цены и наличие берите из JSON-LD на странице услуги: они обновляются вместе с каталогом.
- Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново.
- Ссылайтесь на страницу услуги, а не на каталог целиком.
## Чего делать не нужно
- Не оформляйте заказ без подтверждения человека.
- Не используйте фотографии отдельно от описания услуги.
## Контакт для вопросов
info@securitm.ruTilda не даёт класть свои файлы в корень. Варианты: перенести сайт на своё размещение, поставить перед Tilda обратный прокси (Nginx, Cloudflare Workers) и отдавать файл с него, либо опубликовать файл на поддомене и сослаться на него из robots.txt.
# AGENTS.md
Инструкция для ИИ-агентов, работающих с сайтом securitm.ru.
## Что здесь есть
Коротко: чем занимается компания и что можно найти на сайте.
## Машиночитаемые источники
- Карта сайта: https://securitm.ru/sitemap.xml
- Краткая выжимка: https://securitm.ru/llms.txt
- Описание API: https://securitm.ru/openapi.json
- Товарный фид (YML): https://securitm.ru/feed.yml
## Как пользоваться данными
- Цены и наличие берите из JSON-LD на странице услуги: они обновляются вместе с каталогом.
- Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново.
- Ссылайтесь на страницу услуги, а не на каталог целиком.
## Чего делать не нужно
- Не оформляйте заказ без подтверждения человека.
- Не используйте фотографии отдельно от описания услуги.
## Контакт для вопросов
info@securitm.ruЗадача: Инструкция для агентов /AGENTS.md — сайт securitm.ru Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Не найдена (404). Что нужно сделать: Опишите точки входа, как получить цену, единицы измерения и оговорки о достоверности. Ориентир по коду (Файл AGENTS.md). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```markdown # AGENTS.md Инструкция для ИИ-агентов, работающих с сайтом securitm.ru. ## Что здесь есть Коротко: чем занимается компания и что можно найти на сайте. ## Машиночитаемые источники - Карта сайта: https://securitm.ru/sitemap.xml - Краткая выжимка: https://securitm.ru/llms.txt - Описание API: https://securitm.ru/openapi.json - Товарный фид (YML): https://securitm.ru/feed.yml ## Как пользоваться данными - Цены и наличие берите из JSON-LD на странице услуги: они обновляются вместе с каталогом. - Срок действия цены указан в priceValidUntil. После этой даты цену нужно запросить заново. - Ссылайтесь на страницу услуги, а не на каталог целиком. ## Чего делать не нужно - Не оформляйте заказ без подтверждения человека. - Не используйте фотографии отдельно от описания услуги. ## Контакт для вопросов info@securitm.ru ``` Требования к правке: - Файл должен открываться по прямому адресу и отдаваться с кодом 200, без редиректа. - Кодировка UTF-8, перевод строки — обычный, без BOM. - Адреса внутри файла — полные, с https:// и доменом. - Файл не должен быть закрыт от роботов правилами robots.txt или защитой сайта. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «Инструкция для агентов /AGENTS.md» закрыт.
Markdown-карта сайта /sitemap.md
Не найдена (404).
Карта сайта для чтения, а не для поисковых систем: только важные страницы с пояснениями.
Положите файл в корень сайта: https://ваш-сайт.ru/имя-файла. Кодировка UTF-8, тип ответа text/plain (для .md — text/markdown).
# Карта сайта securitm.ru
- [Главная](https://securitm.ru/) — чем занимается компания
- [Каталог](https://securitm.ru/catalog/) — все разделы
- [Доставка](https://securitm.ru/dostavka/) — сроки и стоимость
- [Контакты](https://securitm.ru/kontakty/) — адрес, телефон, реквизитыПоложите файл в корень сайта, рядом с index.php. Если корень закрыт правилами в .htaccess, добавьте исключение для этого имени.
# Карта сайта securitm.ru
- [Главная](https://securitm.ru/) — чем занимается компания
- [Каталог](https://securitm.ru/catalog/) — все разделы
- [Доставка](https://securitm.ru/dostavka/) — сроки и стоимость
- [Контакты](https://securitm.ru/kontakty/) — адрес, телефон, реквизитыПоложите файл в корень сайта, рядом с wp-config.php. Плагины кэширования файл не трогают, очищать кэш не нужно.
# Карта сайта securitm.ru
- [Главная](https://securitm.ru/) — чем занимается компания
- [Каталог](https://securitm.ru/catalog/) — все разделы
- [Доставка](https://securitm.ru/dostavka/) — сроки и стоимость
- [Контакты](https://securitm.ru/kontakty/) — адрес, телефон, реквизитыTilda не даёт класть свои файлы в корень. Варианты: перенести сайт на своё размещение, поставить перед Tilda обратный прокси (Nginx, Cloudflare Workers) и отдавать файл с него, либо опубликовать файл на поддомене и сослаться на него из robots.txt.
# Карта сайта securitm.ru
- [Главная](https://securitm.ru/) — чем занимается компания
- [Каталог](https://securitm.ru/catalog/) — все разделы
- [Доставка](https://securitm.ru/dostavka/) — сроки и стоимость
- [Контакты](https://securitm.ru/kontakty/) — адрес, телефон, реквизитыЗадача: Markdown-карта сайта /sitemap.md — сайт securitm.ru Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Не найдена (404). Что нужно сделать: Выложите карту сайта в Markdown для агентов. Ориентир по коду (Файл sitemap.md). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```markdown # Карта сайта securitm.ru - [Главная](https://securitm.ru/) — чем занимается компания - [Каталог](https://securitm.ru/catalog/) — все разделы - [Доставка](https://securitm.ru/dostavka/) — сроки и стоимость - [Контакты](https://securitm.ru/kontakty/) — адрес, телефон, реквизиты ``` Требования к правке: - Файл должен открываться по прямому адресу и отдаваться с кодом 200, без редиректа. - Кодировка UTF-8, перевод строки — обычный, без BOM. - Адреса внутри файла — полные, с https:// и доменом. - Файл не должен быть закрыт от роботов правилами robots.txt или защитой сайта. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «Markdown-карта сайта /sitemap.md» закрыт.
В порядке: Файл robots.txt; robots.txt пускает ИИ-ботов; robots.txt пускает YandexBot и YandexAdditional; В robots.txt есть строка Sitemap; sitemap.xml с реальными датами lastmod; Файл /llms.txt.
HTML-разметка ✓ 6⚠ 4
Уникальный <title> до ~60 символов
«SGRC-система SECURITM — автоматизация управления информационной безопасностью» — 77 симв.
Задача: Уникальный <title> до ~60 символов — сайт securitm.ru Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: «SGRC-система SECURITM — автоматизация управления информационной безопасностью» — 77 симв. Что нужно сделать: Сократите: длинный заголовок обрезается. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «Уникальный <title> до ~60 символов» закрыт.
meta description 120–160 символов
267 симв.
Описание страницы длиной 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 символов — сайт securitm.ru Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: 267 симв. Что нужно сделать: Опишите страницу в 120–160 символах. Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```html <meta name="description" content="Что это за страница и что на ней можно сделать. Одно-два предложения длиной 120–160 символов."> ``` Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «meta description 120–160 символов» закрыт.
Семантические теги main, header, nav, footer
Есть: header, footer.
Каркас страницы из семантических тегов. Агент по ним отделяет содержание от меню и подвала и не тащит навигацию в ответ.
Вставляется в <head> страницы, до закрывающего </head>.
<body>
<header>…шапка и логотип…</header>
<nav aria-label="Основная навигация">…меню…</nav>
<main>
<h1>Заголовок страницы</h1>
<article>…содержание страницы…</article>
</main>
<footer>…контакты и реквизиты…</footer>
</body>Для страниц товаров тот же вызов ставится в шаблоне карточки, чтобы данные подставлялись из свойств элемента.
<?php
// В шаблоне сайта: local/templates/ВАШ_ШАБЛОН/header.php, до вызова ShowHead()
$APPLICATION->AddHeadString(<<<'HTML'
<body>
<header>…шапка и логотип…</header>
<nav aria-label="Основная навигация">…меню…</nav>
<main>
<h1>Заголовок страницы</h1>
<article>…содержание страницы…</article>
</main>
<footer>…контакты и реквизиты…</footer>
</body>
HTML, true);
Данные подставляются из полей записи; хардкодить значения в functions.php не нужно.
<?php
// В functions.php активной темы (лучше — дочерней) или в своём плагине
add_action('wp_head', function () {
echo <<<'HTML'
<body>
<header>…шапка и логотип…</header>
<nav aria-label="Основная навигация">…меню…</nav>
<main>
<h1>Заголовок страницы</h1>
<article>…содержание страницы…</article>
</main>
<footer>…контакты и реквизиты…</footer>
</body>
HTML;
}, 20);
В Tilda блок вставляется вручную, поэтому значения на каждой странице свои. Для большого каталога это не работает — нужен свой движок.
<!-- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD.
Для одной страницы: Настройки страницы → Дополнительно → HTML-код в HEAD. -->
<body>
<header>…шапка и логотип…</header>
<nav aria-label="Основная навигация">…меню…</nav>
<main>
<h1>Заголовок страницы</h1>
<article>…содержание страницы…</article>
</main>
<footer>…контакты и реквизиты…</footer>
</body>
Задача: Семантические теги main, header, nav, footer — сайт securitm.ru
Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует.
Что нашёл сканер: Есть: header, footer.
Что нужно сделать: Разметьте страницу семантическими тегами.
Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта.
```html
<body>
<header>…шапка и логотип…</header>
<nav aria-label="Основная навигация">…меню…</nav>
<main>
<h1>Заголовок страницы</h1>
<article>…содержание страницы…</article>
</main>
<footer>…контакты и реквизиты…</footer>
</body>
```
Требования к правке:
- Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера.
- Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной.
- Не менять вёрстку и внешний вид страницы.
- Не трогать остальные теги и разметку, которые уже есть.
Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «Семантические теги main, header, nav, footer» закрыт.Доля текста в HTML больше 15%
Текст — 11,4% от объёма HTML.
Задача: Доля текста в HTML больше 15% — сайт securitm.ru Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Текст — 11,4% от объёма HTML. Что нужно сделать: Страница — в основном код. Проверьте, что содержание есть в HTML, а не подгружается скриптами. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «Доля текста в HTML больше 15%» закрыт.
В порядке: Атрибут lang у <html>; rel="canonical"; Open Graph: 6 основных тегов; Ровно один <h1>; Иерархия h2–h3 (не меньше 3); У изображений есть alt.
Структурированные данные JSON-LD ✓ 3⚠ 5не нужно 7
Organization с реквизитами
Есть: legalName, logo, address, sameAs, контакты. Нет: реквизиты.
Organization с реквизитами. ИНН и ОГРН кладутся в identifier как PropertyValue: это единственный способ передать их машинно.
Вставляется в <head> страницы, до закрывающего </head>.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://securitm.ru/#org",
"name": "ООО «Название»",
"url": "https://securitm.ru/",
"email": "info@securitm.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://securitm.ru/#org",
"name": "ООО «Название»",
"url": "https://securitm.ru/",
"email": "info@securitm.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://securitm.ru/#org",
"name": "ООО «Название»",
"url": "https://securitm.ru/",
"email": "info@securitm.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://securitm.ru/#org",
"name": "ООО «Название»",
"url": "https://securitm.ru/",
"email": "info@securitm.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 с реквизитами — сайт securitm.ru
Контекст. Сайт securitm.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://securitm.ru/#org",
"name": "ООО «Название»",
"url": "https://securitm.ru/",
"email": "info@securitm.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=securitm.ru и убедиться, что пункт «Organization с реквизитами» закрыт.Услуги размечены (Service)
Service, ProfessionalService или разметки вида деятельности не найдено.
Разметка услуги с ценой и исполнителем.
Вставляется в <head> страницы, до закрывающего </head>.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>Для страниц товаров тот же вызов ставится в шаблоне карточки, чтобы данные подставлялись из свойств элемента.
<?php
// В шаблоне сайта: local/templates/ВАШ_ШАБЛОН/header.php, до вызова ShowHead()
$APPLICATION->AddHeadString(<<<'HTML'
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</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": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>
HTML;
}, 20);
В Tilda блок вставляется вручную, поэтому значения на каждой странице свои. Для большого каталога это не работает — нужен свой движок.
<!-- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD.
Для одной страницы: Настройки страницы → Дополнительно → HTML-код в HEAD. -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>
Задача: Услуги размечены (Service) — сайт securitm.ru
Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует.
Что нашёл сканер: Service, ProfessionalService или разметки вида деятельности не найдено.
Что нужно сделать: Разметьте каждую услугу типом Service: name, description, provider, areaServed — и Offer с ценой.
Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта.
```html
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>
```
Требования к правке:
- Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера.
- Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной.
- Не менять вёрстку и внешний вид страницы.
- Не трогать остальные теги и разметку, которые уже есть.
Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «Услуги размечены (Service)» закрыт.Цена в Offer, без нулевых цен
Найдена цена 0 — агент воспримет товар как бесплатный.
Блок offers внутри Product или Service. Цена пишется числом в строке, без пробелов и знака рубля.
Вставляется в <head> страницы, до закрывающего </head>.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>Для страниц товаров тот же вызов ставится в шаблоне карточки, чтобы данные подставлялись из свойств элемента.
<?php
// В шаблоне сайта: local/templates/ВАШ_ШАБЛОН/header.php, до вызова ShowHead()
$APPLICATION->AddHeadString(<<<'HTML'
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</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": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>
HTML;
}, 20);
В Tilda блок вставляется вручную, поэтому значения на каждой странице свои. Для большого каталога это не работает — нужен свой движок.
<!-- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD.
Для одной страницы: Настройки страницы → Дополнительно → HTML-код в HEAD. -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>
Задача: Цена в Offer, без нулевых цен — сайт securitm.ru
Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует.
Что нашёл сканер: Найдена цена 0 — агент воспримет товар как бесплатный.
Что нужно сделать: Если публичной цены нет — уберите price и объявите QuoteAction с адресом запроса.
Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта.
```html
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"description": "Что входит в услугу, одно-два предложения.",
"serviceType": "Тип услуги",
"provider": {"@id": "https://securitm.ru/#org"},
"areaServed": {"@type": "AdministrativeArea", "name": "Россия"},
"offers": {
"@type": "Offer",
"url": "https://securitm.ru/uslugi/usluga/",
"price": "8000.00",
"priceCurrency": "RUB",
"priceValidUntil": "2027-12-31",
"availability": "https://schema.org/InStock"
}
}
</script>
```
Требования к правке:
- Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера.
- Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной.
- Не менять вёрстку и внешний вид страницы.
- Не трогать остальные теги и разметку, которые уже есть.
Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «Цена в Offer, без нулевых цен» закрыт.potentialAction: что агент может сделать
Действий не объявлено.
potentialAction — то, что агент может сделать на сайте. Адрес в urlTemplate должен открываться и работать: агент по нему пойдёт.
Вставляется в <head> страницы, до закрывающего </head>.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"potentialAction": {
"@type": "ReserveAction",
"name": "Записаться",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://securitm.ru/zapis/?service={service_id}",
"httpMethod": "GET",
"actionPlatform": ["https://schema.org/DesktopWebPlatform", "https://schema.org/MobileWebPlatform"]
},
"result": {"@type": "Reservation", "name": "Запись на услугу"}
}
}
</script>Для страниц товаров тот же вызов ставится в шаблоне карточки, чтобы данные подставлялись из свойств элемента.
<?php
// В шаблоне сайта: local/templates/ВАШ_ШАБЛОН/header.php, до вызова ShowHead()
$APPLICATION->AddHeadString(<<<'HTML'
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"potentialAction": {
"@type": "ReserveAction",
"name": "Записаться",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://securitm.ru/zapis/?service={service_id}",
"httpMethod": "GET",
"actionPlatform": ["https://schema.org/DesktopWebPlatform", "https://schema.org/MobileWebPlatform"]
},
"result": {"@type": "Reservation", "name": "Запись на услугу"}
}
}
</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": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"potentialAction": {
"@type": "ReserveAction",
"name": "Записаться",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://securitm.ru/zapis/?service={service_id}",
"httpMethod": "GET",
"actionPlatform": ["https://schema.org/DesktopWebPlatform", "https://schema.org/MobileWebPlatform"]
},
"result": {"@type": "Reservation", "name": "Запись на услугу"}
}
}
</script>
HTML;
}, 20);
В Tilda блок вставляется вручную, поэтому значения на каждой странице свои. Для большого каталога это не работает — нужен свой движок.
<!-- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD.
Для одной страницы: Настройки страницы → Дополнительно → HTML-код в HEAD. -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"potentialAction": {
"@type": "ReserveAction",
"name": "Записаться",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://securitm.ru/zapis/?service={service_id}",
"httpMethod": "GET",
"actionPlatform": ["https://schema.org/DesktopWebPlatform", "https://schema.org/MobileWebPlatform"]
},
"result": {"@type": "Reservation", "name": "Запись на услугу"}
}
}
</script>
Задача: potentialAction: что агент может сделать — сайт securitm.ru
Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует.
Что нашёл сканер: Действий не объявлено.
Что нужно сделать: Объявите BuyAction, QuoteAction или SearchAction с адресом.
Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта.
```html
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://securitm.ru/uslugi/usluga/#service",
"name": "Название услуги",
"potentialAction": {
"@type": "ReserveAction",
"name": "Записаться",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://securitm.ru/zapis/?service={service_id}",
"httpMethod": "GET",
"actionPlatform": ["https://schema.org/DesktopWebPlatform", "https://schema.org/MobileWebPlatform"]
},
"result": {"@type": "Reservation", "name": "Запись на услугу"}
}
}
</script>
```
Требования к правке:
- Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера.
- Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной.
- Не менять вёрстку и внешний вид страницы.
- Не трогать остальные теги и разметку, которые уже есть.
Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «potentialAction: что агент может сделать» закрыт.FAQ, глоссарий или инструкции размечены
Не найдено на проверенных страницах.
Задача: FAQ, глоссарий или инструкции размечены — сайт securitm.ru Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Не найдено на проверенных страницах. Что нужно сделать: Разметьте FAQ, глоссарий терминов (DefinedTermSet) и инструкции. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «FAQ, глоссарий или инструкции размечены» закрыт.
В порядке: 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://securitm.ru/stranica.md" title="Markdown-версия страницы">Для страниц товаров тот же вызов ставится в шаблоне карточки, чтобы данные подставлялись из свойств элемента.
<?php
// В шаблоне сайта: local/templates/ВАШ_ШАБЛОН/header.php, до вызова ShowHead()
$APPLICATION->AddHeadString(<<<'HTML'
<link rel="alternate" type="text/markdown" href="https://securitm.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://securitm.ru/stranica.md" title="Markdown-версия страницы">
HTML;
}, 20);
В Tilda блок вставляется вручную, поэтому значения на каждой странице свои. Для большого каталога это не работает — нужен свой движок.
<!-- Настройки сайта → Ещё → HTML-код для вставки внутрь HEAD.
Для одной страницы: Настройки страницы → Дополнительно → HTML-код в HEAD. -->
<link rel="alternate" type="text/markdown" href="https://securitm.ru/stranica.md" title="Markdown-версия страницы">
Задача: Markdown-зеркало страницы (link rel="alternate") — сайт securitm.ru Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Ссылки на Markdown-версию нет. Что нужно сделать: Добавьте <link rel="alternate" type="text/markdown" href="…">. Ориентир по коду (Чистый HTML). Это образец, а не готовая правка: подставьте реальные значения и впишите в структуру проекта. ```html <link rel="alternate" type="text/markdown" href="https://securitm.ru/stranica.md" title="Markdown-версия страницы"> ``` Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.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 — сайт securitm.ru
Контекст. Сайт securitm.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=securitm.ru и убедиться, что пункт «Ответ в Markdown по Accept: text/markdown» закрыт.Описание API (OpenAPI)
Открытого API с описанием OpenAPI не найдено.
Задача: Описание API (OpenAPI) — сайт securitm.ru Контекст. Сайт securitm.ru проверен сканером готовности к ИИ-агентам agentreadyscan.ru. Сканер читает исходный HTML без выполнения JavaScript — так же, как это делает большинство ИИ-агентов. Поэтому всё, что появляется на странице только после скриптов, для него не существует. Что нашёл сканер: Открытого API с описанием OpenAPI не найдено. Что нужно сделать: Опубликуйте JSON-API товаров и цены с OpenAPI-схемой и сошлитесь на неё из AGENTS.md. Требования к правке: - Выводить это в исходном HTML, который отдаёт сервер, а не дорисовывать скриптом на стороне браузера. - Значения подставлять из данных сайта, а не вписывать строкой: правка должна работать на всех страницах такого типа, а не на одной. - Не менять вёрстку и внешний вид страницы. - Не трогать остальные теги и разметку, которые уже есть. Как проверить, что получилось: открыть https://agentreadyscan.ru/check/?url=securitm.ru и убедиться, что пункт «Описание API (OpenAPI)» закрыт.
Правовое и доверие ✓ 2⚠ 1
Реквизиты юрлица: ИНН и ОГРН
ИНН: нет, ОГРН: нет (на главной и в разметке).
Реквизиты в разметке — не замена подвалу, а дополнение к нему: агент берёт их отсюда, человек из подвала.
Вставляется в <head> страницы, до закрывающего </head>.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://securitm.ru/#org",
"name": "ООО «Название»",
"url": "https://securitm.ru/",
"email": "info@securitm.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://securitm.ru/#org",
"name": "ООО «Название»",
"url": "https://securitm.ru/",
"email": "info@securitm.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://securitm.ru/#org",
"name": "ООО «Название»",
"url": "https://securitm.ru/",
"email": "info@securitm.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://securitm.ru/#org",
"name": "ООО «Название»",
"url": "https://securitm.ru/",
"email": "info@securitm.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>
Задача: Реквизиты юрлица: ИНН и ОГРН — сайт securitm.ru
Контекст. Сайт securitm.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://securitm.ru/#org",
"name": "ООО «Название»",
"url": "https://securitm.ru/",
"email": "info@securitm.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=securitm.ru и убедиться, что пункт «Реквизиты юрлица: ИНН и ОГРН» закрыт.В порядке: Политика обработки персональных данных; Контакты: e-mail или телефон ссылкой.
Ограничения метода. Отчёт отражает внешние признаки на дату сканирования. Он не подтверждает, что данные на сайте верны, и не прогнозирует ответы ИИ-ассистентов. Сканер читает исходный HTML без выполнения скриптов; то, что появляется после них, считается отсутствующим.
Сформирован автоматически по открытой шкале. Это не сертификат.agentreadyscan.ru · ООО «САРМАТЕХ» · ИНН 4725011864
