AXRAY
ВойтиСоздать аккаунт

Как это работает

Один обычный HTTP-запрос, а затем 70 вопросов о том, что вернулось.

Никакого headless-браузера. Никакого выполнения JavaScript. Никаких повторов. Это ограничение и есть продукт: именно такой бюджет вам реально даёт большинство краулеров, и воспроизвести его — единственный честный способ показать, что они видят.

1. Мы загружаем страницу так, как это делает агент

AXRAY отправляет один GET с честным user-agent, таймаутом в двенадцать секунд и жёстким ограничением по объёму, следуя редиректам вручную, чтобы цепочку можно было показать. Потом останавливается. Если вашему содержимому нужен браузер, чтобы появиться, здесь оно не появится — ровно то же происходит внутри краулера.

Параллельно мы забираем файлы уровня домена, которые агент ищет, прежде чем довериться сайту: /robots.txt, /sitemap.xml, /llms.txt, /.well-known/security.txt и /.well-known/mcp.json.

2. Мы разбираем её без DOM

HTML разбирается небольшим снисходительным парсером, написанным специально для этого. Никакого браузерного движка, никаких сторонних парсеров, никакого JavaScript. Реальные страницы сломаны, а сканер, падающий на плохой разметке, — это сканер, которому никто не доверяет, поэтому он терпим по замыслу.

3. Мы задаём 70 вопросов

Каждая проверка — чистая функция одного и того же зафиксированного набора фактов, поэтому один и тот же адрес получает одинаковую оценку в CLI, в CI и на этом сайте. Каждая проверка возвращает вердикт, доказательство, фразу о том, почему это важно агенту, и по возможности фрагмент, который можно вставить.

4. Мы взвешиваем, ограничиваем и ранжируем

Проверки, неприменимые к вашей странице, уходят из знаменателя, а не отнимают баллы: страницу без форм никогда не наказывают за отсутствие подписей к полям. Оценки направлений складываются по весам в общее число.

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

Наконец каждая находка переводится в баллы, которые она вам стоит по общей шкале, и список исправлений сортируется по этому числу. Это очередь работ, а не список претензий.

5. Мы показываем, с чем агент ушёл

Каждый отчёт содержит страницу, пересобранную в Markdown из того же разбора, из которого вышла оценка: заголовки, текст, ссылки и alt-тексты изображений, пережившие загрузку без браузера. Ничего не добавляется и ничего не додумывается. На странице, которая собирается в браузере посетителя, это обычно три строки, и один этот факт объясняет оценку быстрее любого списка проваленных проверок.

Над ним два числа: примерно во сколько токенов обходится агенту чтение всей страницы и сколько из них — собственное содержимое страницы, а не навигация, шапка и подвал вокруг него. Полезно второе. Контекстное окно — фиксированный бюджет, и сайт, тратящий две трети каждой страницы на мега-меню, платит это на каждой странице, которую ассистент когда-либо прочитает.

6. Мы режем её так, как это делает система поиска

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

Из этого выходят два числа. Доля вашего содержимого, которая держится сама по себе, и доля того, что было бы извлечено, приходящаяся на навигацию, а не на содержимое: меню и списки ссылок тоже попадают в индекс, тоже извлекаются и ни на что не отвечают. Языковая модель здесь не участвует: каждый вывод следует из структуры страницы, что и делает его воспроизводимым и оспоримым.

Рядом мы сверяем ваши структурированные данные с видимым текстом и сообщаем, где они расходятся. Цена в JSON-LD, которой нет среди цен на странице. Товар, помеченный как «в наличии», на странице, где написано «распродано». Ничего из этого не видно в браузере, ничего не ломает тесты, и всё это цитируется уверенно — потому что у ассистента нет причин сомневаться в той половине страницы, которой можно просто поверить.

Как считается оценка в токенах и насколько она может ошибаться

Это оценка, и она везде помечена как оценка. AXRAY не тянет зависимостей и файлов данных, а словари за cl100k_base и o200k_base весят мегабайты, так что запускать здесь нечего. Вместо этого: латиница, цифры и пунктуация сливаются в куски примерно по четыре символа и считаются по четверти токена; хань, кана и хангыль так не сливаются и считаются почти по токену на символ — это разница между «примерно верно» и «ошибка втрое» на японской странице; переводы строк учитываются, потому что это настоящие токены.

На английской прозе это попадает примерно в десять процентов от настоящего токенизатора. Точности хватает, чтобы соотнести страницу с контекстным окном и сравнить содержательную половину страницы с обвязкой. Её не хватает, чтобы кому-то выставлять счёт, и здесь этого никто не делает.

Вопросы, которые задают на самом деле

Это просто SEO под другим названием?

Нет, и разница в характере сбоя. Поисковик с плохим заголовком покажет плохой заголовок. Ассистент с плохим заголовком выдумает свой, припишет его вам и покажет тому, кто никогда не увидит ваш сайт. Примерно у трети этих проверок вообще нет SEO-аналога: пропущен ли названный ИИ-краулер, машиночитаемы ли ваши цены, может ли агент работать с вашими формами, опубликовали ли вы что-нибудь, что агент может вызвать.

Почему не отрендерить страницу браузером сначала?

Потому что это вам польстило бы. Большинство краулеров забирает обычный HTML без JavaScript и с жёстким таймаутом, и воспроизведение этого бюджета — единственный честный способ сообщить, что они видят. Если вашему содержимому нужен браузер, чтобы появиться, здесь оно не появится — ровно это и происходит внутри краулера.

Во что мне обходится проверка как владельцу сайта?

Горстка запросов: сама страница, ваш robots.txt, карта сайта, llms.txt и несколько известных путей. Один хост запрашивается не чаще 30 раз в час суммарно по всем пользователям AXRAY, повторные запросы в течение 10 минут отдаются из сохранённого результата, а обходы подчиняются вашему robots.txt и вашей задержке обхода. Если вы предпочитаете, чтобы мы вас вообще не запрашивали, две строки в robots.txt нас останавливают.

Публикует ли проверка что-либо о сайте?

Нет. Отчёт доступен только по собственной неугадываемой ссылке, и ничего не попадает в публичный Индекс AX, пока владелец домена не подтвердит контроль над ним и не попросит об этом.

Разве нельзя просто добавить нужные файлы и получить хорошую оценку?

Уже нет, и мы публикуем, как это пресечено. Двадцать проверок, которые раньше удовлетворял пустой файл, теперь смотрят на его содержимое: llms.txt должен что-то говорить и куда-то вести, у Product должны быть offers, в security.txt должен быть указан контакт. Если что-то есть, но пусто внутри, отчёт помечает это как слабое свидетельство, и оно приносит не более половины своего веса.

Чего мы намеренно не делаем

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

Проходит ли AXRAY собственную проверку?

Обязан. Этот сайт рендерится на сервере, размечен семантически, описан в JSON-LD и публикует llms.txt, robots.txt, sitemap.xml и манифест агента. Запустите npx axray-cli axray.online и проверьте.