AXRAY

Agent Experience report · spec v1.1.0 · 3d ago

axray.online

https://axray.online/

Reachability 100
Comprehension 100
Structure 100
Actionability 100
Agent Contract 95

Applying only the configuration-level fixes below would reach 100/100 — a gain of 1 points with no engineering work.

Unchanged at 99 since the measurement 3d ago.

axray.online scores 99/100 (A+) for Agent Experience. This page is built for agents. It is in the top fraction of a percent of the web on Agent Experience. The three highest-value fixes are identity is machine-verifiable (+0.7 pts).

This report is not listed anywhere. It is reachable only by this link, and axray.online does not appear in the public AX Index. Listing it is something the domain's owner has to ask for.

In plain English

An AI assistant can find axray.online, read it, and act on what it finds.

A good result
Yes

Can an AI assistant open this page at all?

Yes. When an assistant goes to look, the page answers it.

This is the thing most sites get wrong first, and this one does not.

Yes

Will it describe this business correctly?

Yes. The page states plainly what it is, in words the assistant can read.

What an assistant says about this page comes from the page itself.

Yes

Can it quote the facts — prices, contact details, opening hours?

Yes. The key facts are published in a form it can lift word for word.

Asked what this costs or how to get in touch, an assistant answers with the real number.

Yes

Can it take the next step — follow a link, use a form, get in touch?

Yes. Links lead somewhere, forms are labelled, and there is a clear way to make contact.

An assistant can carry somebody from an answer all the way to you.

Yes

Have the AI companies been told your rules?

Yes. The site states which AI systems may use it and on what terms.

The terms are yours, in writing, where the crawlers look for them.

What to do with a page that already passes

Applying only the 1 configuration-level fix below takes this page from 99 to 100 out of 100, with no engineering work.

Every question above is already answered yes. The work now is keeping it that way: run npx axray-cli axray.online --min 94 in your deploy pipeline, and a change that breaks it fails the build instead of being discovered months later.

Technical detail all 57 checks, the evidence behind each one, and copy-pasteable fixes

0 failing · 1 warnings · 50 passing

Fix list, highest value first

Each item shows the points it is currently costing on the same 0–100 scale as the score at the top. Items marked config only are content or configuration changes that do not need an engineer.

Warn Identity is machine-verifiable +0.7 pts config only

Organization data present but no sameAs links.

Entity resolution is how assistants decide two mentions are the same company. Unresolved entities get merged with, or mistaken for, someone else.

How to fix it

Publish Organization data with sameAs links to your verified profiles.

{"@context":"https://schema.org","@type":"Organization","name":"Example Inc","url":"https://example.com","logo":"https://example.com/logo.png","sameAs":["https://x.com/example","https://github.com/example","https://www.linkedin.com/company/example"]}

Passing checks

Kept here so the report is auditable rather than a list of complaints.

Pass Page responds to a plain HTTP request

HTTP 200 in 70 ms.

The baseline: an agent with no browser, no cookies and no JavaScript received your page.

Pass No bot wall in front of the content

The response body was the real page, not a challenge or block screen.

Bot protection that cannot tell a shopping assistant from a scraper silently removes you from AI answers, with no error anyone on your team will ever see.

Pass Content exists without running JavaScript

1176 words of readable text arrived in the HTML itself.

Most crawling agents never execute JavaScript. Whatever is not in the raw HTML does not exist for them.

Pass robots.txt is present and parseable

robots.txt served with 4 user-agent groups.

A valid robots.txt is how you talk to crawlers before they read a single page.

Pass Answer engines are allowed to crawl

All 5 crawlers in this group may fetch /.

These crawlers are the ones that put your link inside an AI answer. Blocking them removes the referral traffic, not just the training use.

Pass User-triggered fetchers are allowed

All 3 crawlers in this group may fetch /.

These fetches happen because a human just pasted your link into an assistant. A block here fails in front of a real person who wanted to read you.

Pass Classic search crawlers are allowed

All 2 crawlers in this group may fetch /.

AI Overviews and Copilot answers are grounded on the classic search index. Blocking Googlebot or Bingbot now also removes you from AI surfaces.

Pass No directive suppressing AI use of this page

Robots directives present and permissive: index, follow, max-snippet:-1, max-image-preview:large

noindex and nosnippet remove you from the surfaces that would otherwise quote and link you.

Pass Short redirect chain

The URL served content directly with no redirect.

Every hop costs latency and some agents cap redirects at two or three.

Pass Responds fast enough for an agent budget

Full response in 70 ms.

Agents fetch many pages per answer and drop the slow ones. Speed is a ranking input you control.

Pass HTML payload stays inside an agent context budget

8 KB of HTML, 7% of it inline script.

Agents truncate long documents. Anything past the cut simply is not read.

Pass Declares a correct content type

Content-Type: text/html; charset=utf-8

A declared charset avoids mojibake when an agent quotes your text back to a user.

Pass Has a descriptive <title>

"AXRAY - Agent Experience scanner. See your site the way an AI agent does." (73 characters).

This is the label assistants attach to you when they cite this page.

Pass Has a meta description

166 characters: "Scan any URL and see exactly what an AI agent can reach, understand and act on. 57 checks, an AX score out of 100 and a…"

This is the summary assistants reuse verbatim more often than any other field.

Pass The page describes itself consistently

<title>, og:title, twitter:title all describe the same page.

Agreement across the machine-readable labels is what lets an assistant state one name for this page and keep stating it.

Pass Exactly one <h1> naming the page

"Your website was built for people. Increasingly, it is read by machines."

The h1 is the strongest in-page signal of what the document is about.

Pass Headings form a sane outline

20 headings with no skipped levels.

A clean outline is what lets an agent quote the right section instead of the whole page.

Pass Enough substance to be worth citing

1176 words of readable text, 1075 of them in the main content.

Assistants prefer sources with enough material to answer a question outright rather than pages that just point elsewhere.

Pass Answers questions in a form that can be quoted

6 headings are phrased as questions, with about 179 words of content each.

Retrieval matches the reader's question against your headings. A heading that is the question wins that match against a heading that is a label.

  • Can it get the bytes?
  • Can it tell what this is?
  • Can it read the facts?
  • Can it do the next thing?
Pass Signal-to-markup ratio

23.1% of the payload is readable text.

A high ratio means an agent spends its limited context on your content instead of your tooling.

Pass Declares a document language

<html lang="en">, and the text is Latin as expected.

Language is how an assistant decides whether to answer a user in your words or translate them.

Pass Images carry alt text

1 of 1 images described; 0 intentionally marked decorative.

Alt text is the only way the content of an image reaches an agent.

Pass Main content is marked as such

<main> present with <article>; 4 of 4 landmark regions used.

The <main> element tells an extractor where your content stops and your chrome starts. It is the difference between quoting your argument and quoting your nav bar.

Pass Uses semantic elements, not div soup

36% of structural elements are semantic (41 semantic vs 73 div).

Semantic tags carry meaning an agent can use; a div carries none.

Pass URL describes the content

Site root.

Assistants show the URL next to the citation, and readable URLs get clicked more than opaque ids.

Pass Ships structured data

4 JSON-LD blocks on the page, 7 carrying real properties.

Structured data is the only part of your page an agent reads without having to interpret it.

Pass Structured data parses cleanly

All 4 blocks parse as valid JSON with a schema.org context.

A block with a syntax error is silently discarded by every consumer. You get the maintenance cost with none of the benefit.

Pass Structured data describes the right thing

Declared types: Organization, WebSite, WebPage, SoftwareApplication, Offer.

The right @type is what lets an assistant answer "how much is it" or "when is it" without reading your prose at all.

Pass Open Graph card is complete

og:title, og:description, og:type, og:url and og:image all present.

Open Graph is the fallback summary almost every crawler reads when it cannot parse the page body.

Pass Declares a canonical URL

Canonical: https://axray.online/

Agents dedupe sources by canonical URL, and cross-origin canonicals hand your citation to somebody else.

Pass Publishes a sitemap

https://axray.online/sitemap.xml lists 12 URLs.

A sitemap is how a crawler discovers the pages your navigation hides behind JavaScript menus.

Pass Prices are machine-readable

Prices in the copy ($24.00) are backed by Offer structured data.

A shopping or research agent comparing options reads Offer, not your pricing table CSS.

Pass Declares a link preview card

4 twitter:* tags present.

Several agents fall back to card metadata when they cannot extract the body reliably.

Pass Navigation uses real links

All 34 links resolve to a real URL.

Real hrefs are the only navigation primitive an agent has.

Pass Link text describes the destination

100% of links have descriptive text.

Link text is how an agent decides which link to follow when it is looking for something specific.

Pass Links onward into the site

31 internal links give an agent somewhere to go next.

Agents explore a site breadth-first from whatever page they landed on. Dense internal linking is how the rest of your content gets found.

Pass Form fields are labelled

All 1 fields have an associated label or aria-label.

An agent filling a form on a user's behalf reads labels to decide what goes in each box.

Pass Form fields have stable names

All 1 fields have readable name attributes.

Names are the keys an agent uses to build a submission. Generated hashes change on every deploy and break automation silently.

Pass Fields declare autocomplete tokens

1 of 1 fields declare an autocomplete token.

Autocomplete tokens are a standard vocabulary. They remove all ambiguity about which box is the email and which is the company.

Pass Controls are real buttons

2 native button controls, no div-as-button patterns found.

A <button> announces itself as an actionable control. A styled div announces nothing.

Pass Reachable by a human, discoverably

3 contact signals: 1 mailto link, contact page link, contactPoint in structured data.

Assistants routinely answer "how do I contact them". If they cannot find the answer they say so, and the user goes elsewhere.

Pass Site search is machine-usable

A GET form uses the same "url" parameter the declared SearchAction names.

A declared SearchAction lets an agent query your site directly instead of crawling it page by page.

Pass Programmatic surface is discoverable

/.well-known/mcp.json; docs link: /docs; OpenAPI document referenced

When an agent can call your API it stops scraping your HTML, which is cheaper for you and more reliable for the user.

Pass Publishes an llms.txt

https://axray.online/llms.txt served 2575 bytes, 360 words and 15 usable links.

llms.txt is the one file written for assistants rather than browsers: a curated map of what matters on your site, in the order you want it read.

Pass llms.txt is actually useful

7 sections, 15 curated links, 14 annotated, with a summary blockquote.

A well-formed llms.txt is read as a table of contents. A dumped sitemap is read as noise.

Pass States an explicit AI policy

robots.txt names specific AI crawlers rather than relying on the wildcard group.

Naming crawlers explicitly is how you separate "do not train on me" from "do not send me traffic". The wildcard group cannot express that distinction.

Pass Exposes an agent-callable manifest

https://axray.online/.well-known/mcp.json names "axray" and at least one endpoint.

A callable manifest turns you from something an agent scrapes into something an agent uses. Almost nobody has one yet, which is exactly why it is worth having.

Pass Says when the content changed

Last-Modified: Wed, 26 Aug 2026 00:00:00 GMT; ETag present; a usable date in structured data; <time datetime> elements.

Assistants prefer sources they can date, and they say so to users: "according to a page updated in March". Undated pages lose to dated ones.

Pass Declares content licensing

rel="license" pointing at https://axray.online/terms.

A machine-readable licence tells an agent how it may reuse your text. Ambiguity is usually resolved against you.

Pass Publishes security.txt

/.well-known/security.txt names mailto:hello@axray.online, valid until 2027-09-01T21:09:31.755Z.

It is the standard machine-readable place to say who to contact. Agents and researchers both look there first.

Not applicable

These questions were not asked of this page, and are excluded from the score entirely.

n/a Real agent user-agents are served normally

Live user-agent probing was not run for this scan.

Some sites answer 200 to a generic client and 403 to a named AI crawler. Only a live probe finds that.

n/a Provides a no-JavaScript fallback

Not needed: the page already server-renders its content.

n/a Publishes a feed of its content

Nothing indicates this page is part of a published stream of content, so a feed is not expected.

A feed is how an agent follows a site that keeps publishing. Pages that do not publish on a schedule have nothing to put in one.

n/a Declares its language alternates

No hreflang links, and nothing on the page suggests the content exists in another language.

hreflang is how a site with several language versions tells an assistant which one to quote to which reader. A site with one language has nothing to declare.

n/a Declares its place in the site

Top-level page; breadcrumbs are not expected.

n/a Inline microdata annotations

No microdata; JSON-LD is the preferred format anyway.

Crawler access

Who can actually reach this page

Resolved from robots.txt for this exact path, per crawler. Blocking a training crawler is a legitimate business decision. Blocking an answer engine removes you from the results that would have linked you.

Answer engine

Indexes you so an assistant can cite and link you. Blocking it removes you from AI answers.

OAI-SearchBot OpenAI Allowed
Claude-SearchBot Anthropic Allowed
PerplexityBot Perplexity Allowed
Amazonbot Amazon Allowed
DuckAssistBot DuckDuckGo Allowed

User-triggered

Fetches your page because a human asked an assistant to open it right now. Blocking it breaks a live request.

ChatGPT-User OpenAI Allowed
Claude-User Anthropic Allowed
Perplexity-User Perplexity Allowed

Classic search

Traditional search indexing, increasingly the substrate AI answers are built on.

Googlebot Google Allowed
Bingbot Microsoft Allowed

Training crawler

Collects content for model training. Blocking it is a legitimate business choice with no traffic cost.

GPTBot OpenAI Allowed
ClaudeBot Anthropic Allowed
Google-Extended Google Allowed
Applebot-Extended Apple Allowed
meta-externalagent Meta Allowed
CCBot Common Crawl Allowed

Evidence

What we actually received

Every number in this report comes from this one plain HTTP response. No browser, no JavaScript, no retries.

Raw observations from the fetch
ObservationValue
Final URLhttps://axray.online/
HTTP status200
Response time70 ms
HTML size30 KB
Inline script2 KB (7% of payload)
Readable words1176
Text-to-markup23.1%
TitleAXRAY - Agent Experience scanner. See your site the way an AI agent does.
Languageen
Canonicalhttps://axray.online/
Detected stack(none detected)
robots.txtserved
sitemap.xml12 URLs
llms.txt7 sections, 15 links

Share this report

Public report link, and a badge you can put in a README or a footer.

[![AX score](https://axray.online/badge/axray.online.svg)](https://axray.online/report/FlVNp4_AHINJng)