agentfit · проверить другой сайт · каталог

https://docs.musixmatch.com/overview

готово · завершён 2026-06-04 21:00 UTC · id запуска 019e9452-54d8-732f-b5d4-4dc852194190


Оценка
0 / 100
not ready
Публичная ссылка
/ru/r/019e9452-54d8-732f-b5d4-4dc852194190

Категории

[A] Обнаруживаемость 0 Обнаруживаемость: 0 of 13.
[B] Элементы страницы 0 Элементы страницы: 0 of 20.
[C] Спецификация API 0 Спецификация API: 0 of 24.
[D] Контент 0 Контент: 0 of 19.
[E] Базовое качество 0 Базовое качество: 0 of 14.
[F] Доступность для агентов 0 Доступность для агентов: 0 of 10.

История

1 прошлый аудит этого URL · старые слева

Изменения относительно прошлого запуска

База сравнения: выбрано автоматически (2026-05-28 17:11 UTC) · итого -77

КатегорияБылоСталоΔ
Обнаруживаемость 16 0 -16
Элементы страницы 19 0 -19
Спецификация API 18 0 -18
Контент 14 0 -14
Базовое качество 10 0 -10
Доступность для агентов 0 0 0
30 критериев изменилось
КритерийСтатусБылоСталоΔ
A1 присутствуетошибка 5 0 -5
A2 присутствуетошибка 3 0 -3
A3 присутствуетошибка 3 0 -3
A4 присутствуетошибка 4 0 -4
A5 частичноошибка 1 0 -1
B1 присутствуетошибка 7 0 -7
B2 присутствуетошибка 5 0 -5
B3 присутствуетошибка 3 0 -3
B4 присутствуетошибка 2 0 -2
B5 отсутствуетошибка 0 0 0
B6 частичноошибка 2 0 -2
C1a присутствуетошибка 8 0 -8
C1b присутствуетнеприменимо 7 0 -7
C2 отсутствуетошибка 0 0 0
C3 частичноошибка 3 0 -3
D1 частичноошибка 2 0 -2
D2 присутствуетошибка 4 0 -4
D3 частичноошибка 1 0 -1
D4 частичноошибка 2 0 -2
D5 частичноошибка 2 0 -2
D6 присутствуетошибка 3 0 -3
E1 присутствуетошибка 6 0 -6
E2 присутствуетошибка 2 0 -2
E3 отсутствуетошибка 0 0 0
E4 присутствуетошибка 2 0 -2
E5 отсутствуетошибка 0 0 0
F1 ошибка 0 0 0
F2 ошибка 0 0 0
F3 ошибка 0 0 0
F4 ошибка 0 0 0

30 критериев

Нажмите на строку, чтобы узнать, что проверяет критерий. Полная рубрика →

IDКритерийСтатусОценка
A1
llms.txt в корне хоста соответствует спецификации llmstxt.org

агентам (да и людям, впервые попавшим на сайт) нужен единый предсказуемый указатель того, где лежит документация. /llms.txt — это соглашение, предложенное Anthropic и сообществом llmstxt.org: один файл в формате Markdown в корне хоста с картой документации.

Оценка. 2 = H1 + ≥1 H2 + ≥3 ссылок, и все они открываются · 1 = любой файл с H1 (понижен с 2, если ссылки не открываются) · 0 = файл отсутствует или это HTML-обёртка.

Исправление. Опубликуйте /llms.txt в корне хоста с заголовком `# H1`, заголовками разделов `## H2` и как минимум тремя Markdown-ссылками, ведущими на конкретные страницы документации. Спецификация — на https://llmstxt.org.

Подтверждение. https://docs.musixmatch.com/llms.txtfetch: GET https://docs.musixmatch.com/llms.txt: Get "https://docs.musixmatch.com/llms.txt": net/http: TLS handshake timeout

/rubric#a1 · статья

ошибка 0/2
A2
Существует llms-full.txt или посекционные агрегаты для LLM

/llms-full.txt — это полнотекстовый дамп вашей документации в одном месте; агенты на больших языковых моделях предпочитают его обходу 200 HTML-страниц. Посекционные варианты (/llms-api.txt и т. п.) тоже подходят.

Оценка. 3 = /llms-full.txt в корне хоста, >1 КБ · 2 = посекционный агрегат, найденный через llms.txt · 0 = ни того ни другого, либо SPA-обёртка по адресу /llms-full.txt.

Исправление. Генерируйте /llms-full.txt на этапе сборки (для mkdocs/docusaurus есть плагины) и отдавайте его как text/plain. Держите размер в пределах 100 МБ, чтобы агенты могли скачать файл без потоковой передачи.

Подтверждение. https://docs.musixmatch.com/llms-full.txtpre-fetch unreachable

/rubric#a2 · статья

ошибка 0/3
A3
robots.txt объявляет политику для AI-ботов и абсолютный Sitemap

каждый AI-краулер (GPTBot, ClaudeBot, Google-Extended, PerplexityBot, CCBot) читает /robots.txt перед обходом. Явные Allow/Disallow для каждого UA плюс абсолютная директива `Sitemap:` снимают неоднозначность как насчёт индексирования, так и насчёт того, что именно индексировать.

Оценка. 3 = явная директива для UA AI-бота И строка с абсолютным Sitemap: · 2 = только директива для AI-бота · 1 = только абсолютный Sitemap · 0 = ни того ни другого, либо 404.

Исправление. Добавьте `User-agent: GPTBot\nAllow: /` (или Disallow, если того требует политика) для каждого крупного LLM-бота, а также строку `Sitemap: https://example.com/sitemap.xml`. Директива `Content-Signal:` от Cloudflare тоже засчитывается.

Подтверждение. https://docs.musixmatch.com/robots.txtrobots.txt pre-fetch failed

/rubric#a3 · статья

ошибка 0/3
A4
sitemap.xml: корректный формат, абсолютные URL, мало таксономического шума

карты сайта сообщают краулерам, что индексировать и как часто это меняется. Корректный `<urlset>` с абсолютными URL в `<loc>` по множеству разных страниц сигнализирует о реальном покрытии; заглушка с одним URL (или картой, где 70%+ — шум вроде /tag/ и /category/) не даёт никакого сигнала.

Оценка. 3 = корректный формат + ≥3 различных путей + <30% таксономического мусора · 2 = слишком скудный (<3 путей) или 30–70% мусора · 1 = только корректный формат · 0 = 404 или ошибка разбора.

Исправление. Генерируйте /sitemap.xml на этапе сборки, включайте каждую страницу документации с абсолютным URL в `<loc>` и исключайте варианты /tag/, /category/, /author/, /page=. Ссылайтесь на него из robots.txt абсолютной строкой `Sitemap:`.

Подтверждение. https://docs.musixmatch.com/sitemap.xmlfetch: GET https://docs.musixmatch.com/sitemap.xml: Get "https://docs.musixmatch.com/sitemap.xml": net/http: TLS handshake timeout

/rubric#a4 · статья

ошибка 0/3
A5
Теги обнаружения на главной: альтернатива в Markdown + OpenGraph

теги обнаружения позволяют агентам найти Markdown-версию страницы без отдельного запроса, а OpenGraph превращает опубликованные ссылки на документацию в расширенные превью в Slack/Discord/Twitter. И то и другое говорит об осведомлённости о машинных потребителях.

Оценка. 2 = `<link rel=alternate type=text/markdown>` + ≥3 различных свойств `og:` · 1 = только альтернатива в Markdown ИЛИ только OpenGraph · 0 = ни того ни другого.

Исправление. Добавьте `<link rel="alternate" type="text/markdown" href="/page.md">` рядом с вашей canonical-ссылкой и убедитесь, что на главной заданы `og:title`, `og:description`, `og:image` (минимум 3 свойства).

Подтверждение. https://docs.musixmatch.com/overviewhomepage not parsed

/rubric#a5 · статья

ошибка 0/2
B1
.md-двойник страниц документации возвращает чистый Markdown

просмотр 200 HTML-страниц для чтения документации нормален для людей; для агентов это затраты на токенизацию на порядок выше. Markdown-двойник на каждую страницу позволяет агентам вытаскивать только текст.

Оценка. 7 = у 3 из 3 выбранных страниц есть работающий .md-двойник · 4 = у 2 из 3 · 2 = у 1 из 3 · 0 = у 0 из 3.

Исправление. Отдавайте `{page}.md` (или `{page}/index.md`) рядом с каждой HTML-страницей ЛИБО поддерживайте согласование содержимого по `Accept: text/markdown`, возвращающее `Content-Type: text/markdown`. У mkdocs-material и docusaurus для этого есть плагины.

Подтверждение. https://docs.musixmatch.com/overviewno sitemap samples available

/rubric#b1 · статья

ошибка 0/7
B2
JSON-LD с корректным @type на главной и на странице документации

JSON-LD — это совместимый со schema.org способ объявить «эта страница — статья» / «этот продукт — SoftwareApplication». На него ориентируются и поисковики, и агенты, и экстракторы структурированных данных.

Оценка. 4 = разбираемый JSON-LD с `@type` И на главной, И на выбранной странице документации · 3 = на одной из двух · 0 = ни на одной.

Исправление. Встройте `<script type="application/ld+json">{"@context":"https://schema.org","@type":"TechArticle",...}</script>` на каждую страницу документации. Для главной хорошо подходит тип `WebApplication`.

Подтверждение. https://docs.musixmatch.com/overviewno parsed pages available

/rubric#b2 · статья

ошибка 0/4
B3
Абсолютный <link rel=canonical> на главной и на выбранной странице

canonical-ссылки детерминированно решают вопрос «это http- или https-версия, со слешем в конце или без, с query-параметрами или без?». Без них агенты могут проиндексировать один и тот же контент под несколькими URL.

Оценка. 3 = абсолютный canonical И на главной, И на выбранной странице · 2 = только на главной · 1 = присутствует, но относительный · 0 = отсутствует.

Исправление. Добавьте `<link rel="canonical" href="https://example.com/page">` в `<head>` каждой страницы. URL должен включать схему и хост (относительные canonical-ссылки — валидный HTML, но для межхостовых агентов теряют смысл).

Подтверждение. https://docs.musixmatch.com/overviewno parsed pages available

/rubric#b3 · статья

ошибка 0/3
B4
Свежесть: dateModified (JSON-LD) или заголовок Last-Modified

агенты (и поисковики) меньше доверяют документации, которая не сообщает, когда её обновляли в последний раз. Страница документации 2019 года без сигнала свежести неотличима от обновлённой вчера.

Оценка. 2 = присутствует `dateModified` в JSON-LD ИЛИ HTTP-заголовок `Last-Modified` · 0 = ни того ни другого.

Исправление. Либо добавьте `"dateModified": "2026-05-28"` в блок JSON-LD, либо настройте CDN/сервер на выдачу HTTP-заголовка `Last-Modified`. В большинстве генераторов статических сайтов шаблонизация на этапе сборки делает это бесплатно.

Подтверждение. https://docs.musixmatch.com/overviewno page metadata available

/rubric#b4 · статья

ошибка 0/2
B5
Машиночитаемые таксономии (keywords, теги, категории)

размеченная тегами документация помогает агентам фильтровать («покажи мне страницы по аутентификации») без разбора всего текста. Засчитываются `<meta name="keywords">`, `keywords` в JSON-LD или URL вида `/tags/`.

Оценка. 2 = присутствует хотя бы один таксономический сигнал (meta keywords, keywords в JSON-LD или ссылки вида /tags|/categories|/topics/) · 0 = ни одного.

Исправление. Добавьте `<meta name="keywords" content="api,auth,oauth">` на каждую страницу, ЛИБО включите массив `keywords` в JSON-LD, ЛИБО организуйте контент под URL-префиксами `/topics/` или `/tags/`.

Подтверждение. https://docs.musixmatch.com/overviewno parsed pages available

/rubric#b5 · статья

ошибка 0/2
B6
<main> или <article> оборачивает основной текст контента

семантические обёртки HTML5 позволяют агентам (и программам чтения с экрана) отбросить навигацию, подвал и боковые панели и читать только текст документации. Страница, где тело — сплошные `<div>`, заставляет действовать наугад.

Оценка. 2 = текст в `<main>` >200 символов И текст в `<article>` >100 символов · 1 = только `<main>` ИЛИ только `<article>` · 0 = ни того ни другого.

Исправление. Оборачивайте основной текст страницы в `<main>` (или в `<article>` для отдельных страниц документации). Не используйте их для боковых панелей и навигации — они предназначены для самого контента.

Подтверждение. https://docs.musixmatch.com/overviewno parsed pages available

/rubric#b6 · статья

ошибка 0/2
C1a
Спецификация OpenAPI / Swagger / AsyncAPI по обнаруживаемому URL

спецификация OpenAPI — это ГЛАВНЫЙ машиночитаемый контракт REST API. Агенты, которые её находят, могут генерировать клиентов, тест-кейсы и точную документацию, не читая ни единой строки HTML.

Оценка. 8 = найдена по одному из стандартных путей-зондов (/openapi.json, /swagger.yaml, /v1/openapi.json и т. д.) · 5 = найдена только через ссылку в HTML · 0 = ничего не найдено.

Исправление. Опубликуйте спецификацию по адресу `/openapi.json` или `/openapi.yaml` в корне хоста (или под путём документации — на этапе 53 проверяются оба). В OpenAPI-first проектах сборочный инструмент уже её генерирует — просто выставьте её наружу.

Подтверждение. https://docs.musixmatch.com/overviewhomepage pre-fetch failed; spec discovery skipped

/rubric#c1a · статья

ошибка 0/8
C1b
Валидный OpenAPI 3.x с info, ≥1 path и схемами ответов

найти спецификацию (C1a) — это полдела; она ещё должна быть валидной версии 3.x И описывать схемы ответов, чтобы агенты знали, что получат назад. Спецификация, перечисляющая пути без форматов ответов, — это половина контракта.

Оценка. 7 = OpenAPI 3.x + валидный info + paths + у ≥30% операций есть схемы содержимого ответов · 6 = есть paths, но схем мало · 3 = откат к Swagger 2.0 · 0 = ошибка разбора.

Исправление. Поднимите спецификацию до OpenAPI 3.0 или 3.1, если вы всё ещё на Swagger 2.0. Добавьте `responses: { '200': { content: { 'application/json': { schema: ... } } } }` к каждой операции — именно схемы делают спецификацию полезной для клиентов.

Подтверждение. https://docs.musixmatch.com/overviewC1a did not find a spec body

/rubric#c1b · статья

неприменимо 0/7
C2
Коллекция Postman или SDK с обнаруживаемой загрузкой/форком

спецификация OpenAPI позволяет агентам сгенерировать клиента; готовая коллекция Postman или собранный SDK позволяет ЛЮДЯМ попробовать API за 30 секунд. И то и другое говорит о вложениях в опыт разработчика.

Оценка. 4 = ссылка на коллекцию Postman И ≥1 ссылка на реестр SDK · 3 = Postman ИЛИ ≥2 ссылки на SDK · 2 = 1 ссылка на SDK · 0 = ничего.

Исправление. Опубликуйте кнопку «Run in Postman», ведущую на god.gw.postman.com/run-collection, и сошлитесь хотя бы на один официальный SDK из npm/PyPI/RubyGems и т. п. прямо с главной страницы документации.

Подтверждение. https://docs.musixmatch.com/overviewno parsed pages available

/rubric#c2 · статья

ошибка 0/4
C3
Страницы эндпоинтов показывают метод, URL, типы, обязательность, примеры

страница документации, которая просто говорит «вызовите /users», бесполезна без метода, типов параметров, обязательных полей и примера запроса/ответа. Агентам (и людям) нужны все пять элементов, чтобы сделать рабочий вызов.

Оценка. 5 = большинство выбранных страниц классифицированы ML-моделью как `complete` · 3 = большинство `partial` (или 2 complete + 1 absent) · 1 = большинство `absent` · 0 = страниц-кандидатов не найдено.

Исправление. На каждой странице эндпоинта приводите: HTTP-метод и путь, таблицу параметров с типами и флагами обязательности, пример с curl и пример JSON-ответа с кодом статуса. Таблицы параметров в стиле Markdown и блоки `<pre>` с JSON классифицируются уверенно.

Подтверждение. https://docs.musixmatch.com/overviewno pages fetched; ML/heuristic skipped

/rubric#c3 · статья

ошибка 0/5
D1
Примеры кода включают curl И хотя бы один SDK на языке

примеры с curl можно проверить где угодно; примеры на SDK показывают идиоматичное использование. Вместе они закрывают и потребность «можно быстро попробовать?», и «как мне это интегрировать?».

Оценка. 4 = curl И блок SDK на каком-либо языке хотя бы на 1 странице · 2 = только curl · 1 = только SDK · 0 = ни того ни другого.

Исправление. Добавьте к каждому эндпоинту блок кода с вкладками, как минимум с curl + вашим самым используемым языком SDK (Python или JavaScript). Используйте `<code class="language-python">` или `language-bash`, чтобы и подсветка синтаксиса, и наш классификатор это распознали.

Подтверждение. https://docs.musixmatch.com/overviewno sample pages available

/rubric#d1 · статья

ошибка 0/4
D2
Реалистичные примеры (не foo/bar/example.com)

`/users/{id}` с `id = 1` и `email = [email protected]` заставляет читателя домысливать, как выглядят реальные данные. Реалистичные заглушки (`[email protected]`, `org_2N5x...`) упрощают работу и предотвращают случайную вставку из документации.

Оценка. 4 = ML-модель говорит, что <20% блоков кода перегружены заглушками · 3 = 20–40% · 2 = 40–60% · 1 = 60–80% · 0 = >80% либо блоков кода нет.

Исправление. Замените `foo`/`bar`/`example.com`/`your_api_key`/`<string>` на реалистично выглядящие значения (`pk_test_51N5...` у Stripe, `+14155552671` у Twilio). Не используйте реальные данные клиентов — но имитируйте их форму.

Подтверждение. https://docs.musixmatch.com/overviewno sample pages available; ML/regex path skipped

/rubric#d2 · статья

ошибка 0/4
D3
Каталог ошибок с HTTP-кодами и причинами

когда интеграция ломается в 3 часа ночи, разработчику нужно понять, что на самом деле означает `403 - resource_not_owned`, не заводя тикет. Отдельная справочная страница по ошибкам — это разница между пятиминутным исправлением и получасовой отладкой.

Оценка. 3 = отдельная страница ошибок (≥3 кодов с пояснениями) · 1 = коды ошибок описаны по тексту на разных страницах · 0 = нет ничего.

Исправление. Опубликуйте `/errors` (или `/reference/errors`) со списком каждого возвращаемого HTTP-статуса + кодов ошибок уровня приложения + одной фразой о причине каждой. Хорошо подходят таблицы; подойдут и списки определений `<dl>`.

Подтверждение. https://docs.musixmatch.com/overviewno homepage / sitemap available

/rubric#d3 · статья

ошибка 0/3
D4
Документированы аутентификация И ограничения частоты запросов

аутентификация — это база; ограничения частоты запросов — то, по чему разработчик понимает, переживёт ли его интеграция нагрузку прода. И то и другое должно быть на странице верхнего уровня, обнаруживаемой с главной.

Оценка. 3 = документированы и аутентификация, и ограничения частоты · 2 = только аутентификация · 1 = только ограничения частоты · 0 = ни того ни другого.

Исправление. Добавьте страницы `/authentication` (потоки bearer / API-ключ / OAuth) и `/rate-limits` (запросов в минуту, заголовки вроде `X-RateLimit-Remaining`, семантика повтора при 429). На каждой нужно хотя бы 200 символов контекста — а не просто сниппет кода.

Подтверждение. https://docs.musixmatch.com/overviewno pages available

/rubric#d4 · статья

ошибка 0/3
D5
Глоссарий ИЛИ согласованная терминология на всех страницах

это «workspace», «team» или «organisation»? Выбрать один термин и держаться его во всей документации — значит предотвратить целый класс тикетов «что здесь значит X?». Лучше всего отдельный глоссарий; согласованное употребление приемлемо.

Оценка. 3 = отдельный /glossary с ≥3 структурированными парами термин/определение · 2 = глоссария нет, но терминология остаётся согласованной между страницами (≥80% преобладающего варианта) · 1 = ссылка на глоссарий есть, но содержимое скудное · 0 = ни того ни другого.

Исправление. Опубликуйте `/glossary` в виде `<dl>` с парами `<dt>термин</dt><dd>определение</dd>` (или таблицу из 2 столбцов с определениями ≥50 символов). Используйте одинаковый регистр и написание каждого термина на всех страницах.

Подтверждение. https://docs.musixmatch.com/overviewhomepage unreachable; glossary probes skipped

/rubric#d5 · статья

ошибка 0/3
D6
Устаревшие / бета-эндпоинты помечены простым текстом

разработчик, вставляющий ваш пример кода 2022 года в проект 2026 года, не должен узнавать об устаревании эндпоинта во время выполнения. Явные пометки `deprecated` / `beta` / `sunset` в документации избавляют от головной боли при миграции.

Оценка. 2 = `deprecated` в спецификации OpenAPI ИЛИ на ≥2 выбранных страницах рядом с заголовками эндпоинтов · 1 = найдены ключевые слова beta/experimental, но нет признаков устаревания · 0 = нет ничего.

Исправление. Помечайте каждый устаревший эндпоинт через `deprecated: true` в OpenAPI И видимым бейджем или предупреждением в HTML-документации (`<Warning>` у Mintlify, синтаксис admonition у Docusaurus и т. п.). То же для бета-эндпоинтов — видимо в тексте, а не только в спецификации.

Подтверждение. https://docs.musixmatch.com/overviewno pages available

/rubric#d6 · статья

ошибка 0/2
E1
Контент виден в чистом HTML без JavaScript (отсекающий критерий)

это ОТСЕКАЮЩИЙ критерий. Если ваша документация отрисовывается только после выполнения JavaScript (обёртка single-page-app), агенты, скачивающие сырой HTML, не видят ничего. Веб-краулеры, скраперы, curl и большинство AI-загрузчиков не выполняют JS.

Оценка. 6 = текст тела >500 символов хотя бы на одной из главной или 2 подстраниц во всех режимах UA · 3 = главная проходит, но подстраницы — SPA · 0 = SPA-обёртка везде, либо VK-ловушка (3+ URL возвращают идентичное тело).

Исправление. Отдавайте предварительно отрисованный HTML по статическим URL. Если вы используете Next.js/Nuxt/SvelteKit, включите SSG или SSR для раздела документации. Обёртки single-page-app (React SPA, Vue SPA без SSR) не проходят этот критерий и каскадно обнуляют многие другие.

Подтверждение. https://docs.musixmatch.com/overviewall UA probes failed to reach target

/rubric#e1 · статья

ошибка 0/6
E2
Стабильные URL: редиректы 301 сохраняют старые пути

когда вы реорганизуете документацию, старые ссылки не должны отдавать 404 — они должны делать 301 на новый URL. Стабильные URL — это то, благодаря чему ссылки из блогов, Stack Overflow и закладок переживают вашу перестройку.

Оценка. 2 = стабильный редирект 301/308 хотя бы на 1 из 2 выбранных вариантов URL · 1 = шаблон canonical-алиаса (200 с `<link rel=canonical>`) · 0 = 302 (временный), 404 или редиректа нет.

Исправление. Меняя URL документа, добавляйте редирект 301 со старого пути на новый. Генераторы статических сайтов делают это через конфиги `_redirects` (Netlify) или `redirects:` в `vercel.json` (Vercel).

Подтверждение. https://docs.musixmatch.com/overviewno sitemap samples available

/rubric#e2 · статья

ошибка 0/2
E3
Явная версия API в пути URL, заголовке или спецификации OpenAPI

`/v1/users` против `/v2/users` — это дешёвый способ версионировать API И сделать это очевидным для агентов. Метаданные версии, находящиеся только в HTTP-заголовке (а не в пути URL или заголовке страницы документации), для краулеров невидимы.

Оценка. 2 = версия в собственной структуре URL документации (URL карты сайта или спецификации OpenAPI: `/v1/`, `/2024-01-15/`) · 1 = версия в URL документируемого эндпоинта (примеры curl/кода), в `info.version` OpenAPI или в заголовке `<h1>`/`<h2>`/футере · 0 = нет нигде.

Исправление. Добавьте к путям API префикс `/v1/`, `/v2/` и показывайте их в примерах curl/кода; ЛИБО задайте непустой `info.version` в спецификации OpenAPI. API с версионированием по дате (`/2024-01-15/users`) тоже засчитываются.

Подтверждение. https://docs.musixmatch.com/overviewno input source (homepage, sitemap, or OpenAPI URL)

/rubric#e3 · статья

ошибка 0/2
E4
Выборочная проверка 5 внутренних ссылок → все возвращают 200

битые внутренние ссылки — самый частый сбой документации после лет изменений. Выборочная проверка 5 ссылок ловит худшие случаи (4xx/5xx по ссылкам прямо на главной), не пытаясь обойти каждую ссылку.

Оценка. 2 = 5 из 5 выбранных ссылок на тот же хост возвращают 200 · 1 = 4 из 5 · 0 = ≤3 из 5 ЛИБО на главной найдено меньше 5 различных ссылок на тот же хост.

Исправление. Запускайте проверку ссылок в составе CI (lychee, htmltest, linkinator). Для самых посещаемых ссылок на главной исправляйте любые 404 перед выпуском. Пять рабочих ссылок с посадочной страницы — это абсолютный минимум.

Подтверждение. https://docs.musixmatch.com/overviewhomepage not parsed

/rubric#e4 · статья

ошибка 0/2
E5
Условия использования: TOS / лицензия / AI-политика явно заданы

без явного TOS или политики AI-использования каждый LLM-скрапер вынужден угадывать вашу позицию. Содержательная страница `/terms` или `/license` — особенно с ключевыми словами про AI/ML — делает политику машиночитаемой.

Оценка. 2 = страница TOS найдена И содержит ключевые слова AI/ML-политики в основном контенте · 1 = TOS найдена (содержательная, но без AI-ключевых слов, либо ссылка есть, но страница 404/скудная) · 0 = ссылки на TOS нет.

Исправление. Опубликуйте `/terms` (или `/legal`, `/license`) минимум с 1000 символами текста политики. Включите явные формулировки про AI-скрапинг, обучение моделей и автоматический доступ — даже если вы всё разрешаете, прямо сказать об этом и есть сигнал.

Подтверждение. https://docs.musixmatch.com/overviewno TOS probe reached target

/rubric#e5 · статья

ошибка 0/2
F1
Широта агентного обнаружения: llms.txt, llms-full, MCP

агент находит ваш сайт через несколько точек входа; F1 вознаграждает наличие более чем одной — доступного llms.txt, полнотекстового фида llms-full.txt и анонсированного MCP/агентного эндпоинта. Он дополняет A1/A2 (оценивающие качество каждой точки входа), подсчитывая, сколько их может обнаружить агент.

Оценка. 2 = ≥2 из {доступный llms.txt, существует llms-full.txt, анонсирован MCP/агентный эндпоинт} · 1 = одно из этого · 0 = ничего · error, если сайт не удалось загрузить.

Исправление. Опубликуйте `/llms.txt` и `/llms-full.txt` в корне хоста и сошлитесь на ваш MCP-сервер или эндпоинт обнаружения `.well-known/` внутри `/llms.txt`, чтобы агенты могли его найти.

Подтверждение. pre-fetch unreachable

/rubric#f1 · статья

ошибка 0/2
F2
Декларативные tool-формы WebMCP, валидные по схеме

WebMCP позволяет странице выставлять вызываемые инструменты для агентов в браузере через декларативную разметку `<form toolname tooldescription>`. F2 вознаграждает присутствующий, корректный по схеме интерфейс WebMCP, чтобы агент мог вызывать инструменты без догадок.

Оценка. 2 = WebMCP обнаружен, 0 ошибок схемы + 0 предупреждений · 1 = обнаружен с проблемами схемы (ошибки или предупреждения) · 0 = не обнаружен · error, если главную не удалось просканировать.

Исправление. Добавьте декларативные tool-формы WebMCP — у каждой `toolname` + `tooldescription`, а на каждом поле ввода `name` + `toolparamdescription`. Сначала исправьте ошибки отсутствующего toolname и обязательного параметра без name — это критичные сбои.

Подтверждение. homepage unreachable or unscannable

/rubric#f2 · статья

ошибка 0/2
F3
Анонсирован MCP-сервер (OAuth по RFC 9728 / 8414)

MCP-сервер позволяет агентам вызывать ваш API как управляемые инструменты. F3 вознаграждает анонс обнаруживаемого, защищённого OAuth MCP-эндпоинта через стандартные метаданные `.well-known`, чтобы агент мог аутентифицироваться и подключиться без индивидуальной настройки.

Оценка. 3 = полный oauth-mcp (protected-resource по RFC 9728 + метаданные сервера авторизации по RFC 8414 + PKCE S256) · 2 = частично · 1 = только эндпоинт · 0 = ничего · error, если сайт недоступен.

Исправление. Отдавайте `/.well-known/oauth-protected-resource`, указывающий на ваш MCP-эндпоинт, и документ метаданных сервера авторизации по RFC 8414 на том же хосте, анонсирующий PKCE `S256`.

Подтверждение. site unreachable — MCP probe inconclusive

/rubric#f3 · статья

ошибка 0/3
F4
Доступность для агентов: статическое имя + валидность ARIA

AI-агент управляет страницей через её дерево доступности — ему нужно, чтобы каждая кнопка, ссылка, поле ввода и изображение несли имя, на которое можно нацелиться. Отсутствующие доступные имена, невалидный ARIA и положительный tabindex — всё это ломает: элементы управления остаются видимыми агенту, но он не может надёжно их назвать или задействовать.

Оценка. 3 = 0 нарушений (и ≥1 элемент для проверки) · 2 = 1–2 · 1 = 3–5 · 0 = ≥6 · not_applicable, если на странице нечего именовать · error, если главную не удалось просканировать. Статическая эвристика (без axe-core/headless): только правила имени и валидности ARIA.

Исправление. Дайте каждой `<button>`/`<a>`/иконке доступное имя (текст, `aria-label` или вложенный `<img alt>` с подписью); свяжите `<label>` с полями ввода и select; добавьте `alt` к изображениям и `<title>` к встроенным SVG; уберите положительный tabindex; исправьте опечатки в атрибутах и ролях `aria-*`.

Подтверждение. homepage unreachable or unscannable

/rubric#f4 · статья

ошибка 0/3

Исходный отчёт: JSON · история: JSON · изменения: JSON

обзорная статья


agentfit · каталог · рубрика · конфиденциальность · условия · cookie · настройки cookie · бот

язык: English · Français · 简体中文 · Русский · Español

© 2026 Станислав Гуменюк · Все права защищены