Agent Experience report · spec v1.5.7 · 9h ago
axray.online
https://axray.online/
Agent ready
axray.online scores 100/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.
What the number is made of
70 checks run against this page, AX spec v1.5.7.
Where the points are going
Nothing is being lost on any pillar.
Start here
Nothing is failing or borderline on this page. There is no fix list to work through.
Reachability
Nothing lost here
Comprehension
Nothing lost here
Structure
Nothing lost here
Actionability
Nothing lost here
Agent Contract
Nothing lost here
Unchanged at 100 since the measurement 21h ago.
An AI assistant can find axray.online, read it, and act on what it finds.
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.
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.
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.
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.
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.
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
Every question above is already answered yes. The work now is keeping it that way:
run npx axray-cli axray.online --min 95
in your deploy pipeline, and a change that breaks it fails the build instead of being
discovered months later.
What an assistant could tell somebody
The questions people ask about you, and whether this page answers them.
1 of the 7 questions below have no answer on this page at all. An assistant asked one of them either says it does not know, or fills the gap from somewhere you do not control.
| The question | Answer | What is actually there |
|---|---|---|
| What is this company, and what does it do? | Stated | Organization data names you and describes you: "AXRAY measures Agent Experience: whether AI agents can reach, understand and act on a web…" |
| What do they sell? | Stated | 1 declared: AXRAY. |
| What does it cost? | Stated | 2 declared Offers, starting at 0.00 USD. |
| How do I get in touch with them? | Stated | A ContactPoint is declared in structured data. |
| Where are they? | Missing | No PostalAddress, no areaServed and no link to a locations page. |
| Is it in stock? | Implied | Stock is described in the page text but not declared on the Offer, so it is prose rather than a fact. |
| What happens if I want to send it back? | Implied | No MerchantReturnPolicy on the page, though llms.txt may point an assistant at the terms. |
Where are they? Every "near me" question, every "is this a local company", every assistant deciding whether you serve a customer's country is answered from this. With nothing declared, you are answered as though you were nowhere.
Is it in stock? A shopping agent that cannot read availability treats the item as unknown and moves to a listing it can read. This is the fact that decides whether you are in the comparison at all.
What happens if I want to send it back? Return terms are one of the last things a buyer checks and one of the first an assistant is asked about. Unanswerable, it says so, and the hesitation is yours to absorb.
Stated means the fact is in a form a machine lifts out and repeats exactly. Implied means it is on the page in prose, or one fetch away behind a link — findable, paraphrasable, and often not worth the request. None of this changes the score above; it is a second reading of the same scan, published beside it rather than folded into it.
The context an agent gets
What the assistant actually came away with
No layout, no styling, no clicking: this is your page rebuilt from the bytes that arrived, in the shape a model reads. Everything an assistant can say about you, it says from this. Read it as your customer’s question would be answered from it — if a fact you sell on is missing here, it is missing from the answer.
Token counts are estimates, not a tokenizer’s output: AXRAY ships no vocabulary files, and the method is described in full. They are close enough to size a page against a context window and to compare the two halves of one page against each other.
54,312 bytes of HTML, which the browser turns into a laid-out page — styling, images and anything the scripts build after load.
1,792 words of that are readable text, 19% of the payload.
[Skip to main content](#main)
[AXRAY](/)
- [How it works](/how-it-works)
- [The AX spec](/ax-spec)
- [AX Index](/index)
- [API](/docs)
- [For agencies](/for-agencies)
- [Pricing](/pricing)
Switch between the light and dark theme [Sign in](/login)[Create account](/signup)
Menu
- [How it works](/how-it-works)
- [The AX spec](/ax-spec)
- [AX Index](/index)
- [API](/docs)
- [For agencies](/for-agencies)
- [Pricing](/pricing)
- [Sign in](/login)
- [Create account](/signup)
AI readability check
# People ask AI about you. See what it reads on your site.
AXRAY reads your page the way ChatGPT, Claude and Perplexity read it, then tells you in plain words what reaches them and what never arrives. About two seconds, no account.
Website URL to scan Run the scan
Prefer a terminal? `npx axray-cli example.com`
- 1 free scan, no account
- An answer in about two seconds
- Nothing to install
What you walk away with, free, in about two seconds
## Your score, and the gap to what it could be
One number out of 100, and the number you would reach by changing settings alone — no rebuild, no engineering.
## The seven questions a customer asks
What you sell, what it costs, where you are, how to reach you. You see which ones your page can answer to a machine, and which it cannot.
## The fix list, in order, with the lines to paste
Each item carries the points it wins back and says whether it is a setting or a rebuild. The first three are usually settings.
One product page shown twice: what a person sees, and what an AI agent actually receives. Drag the beam across to move between them.
northline.coffee/ethiopia-guji Example
HTTP 403 — CDN challenge served to GPTBot
`<!-- what arrived, with the browser switched off --><divclass="logo"></div><ahref="#">Shop</a>navigation is a dead end<imgsrc="guji.webp">no alt text<h1> — missingnothing names this page<divclass="p">$24.00</div>price is not an Offer<buttononclick="buy()">Add to cart</button><!-- 0 bytes of structured data -->no Product, no Offer`
What a person sees Drag the beam ↔ What the agent got
The part your customer sees
## The same question about the same shop, answered from two versions of its website.
Everything else here shows the mechanism. This is the outcome: what an assistant tells the person who asked. Nobody sees your score — they see this.
Across 292 public sites we measured, an assistant could not say what 172 of them sell, or how to get in touch with 149 of them.
Site scores 34 34
YouWhat does Northline Coffee sell, and how much is it?
I wasn’t able to read Northline Coffee’s website. They appear to be a coffee roaster, but I can’t confirm what they currently stock or what it costs.
- No source cited
- Price not stated
- No link offered
Same shop, scores 92 92
YouWhat does Northline Coffee sell, and how much is it?
Northline Coffee roasts single-origin beans. Their Ethiopia Guji, washed, is **$24.00** for 250 g whole bean — peach, bergamot and brown sugar. In stock, ships in two days.
- Cited — northline.coffee
- Price read from Offer data
- Link offered to the customer
An illustration, using the same invented shop as the comparator above.
70checks run against every URL, across five weighted pillars
54named AI crawlers resolved against your robots.txt individually
293well-known public sites measured to build the baseline
68is what the median one of them scores out of 100
Resolved individually against your robots.txt
OAI-SearchBot Claude-SearchBot PerplexityBot Applebot meta-webindexer Amazonbot DuckAssistBot Bravebot YouBot TongyiBot PetalBot YandexAdditional ChatGPT-User Claude-User Perplexity-User MistralAI-User Google-NotebookLM GoogleAgent-URLContext kagi-fetcher meta-externalfetcher Kimi-User Amzn-User cohere-ai ChatGPT Agent Operator GoogleAgent-Mariner Gemini-Deep-Research AmazonBuyForMe NovaAct Manus-User ExaSearchBot TavilyBot FirecrawlAgent ShapBot Diffbot Cloudflare-AutoRAG bedrockbot Googlebot Bingbot Claude-Code Cursor Google-Gemini-CLI Devin opencode Trae GPTBot ClaudeBot Google-Extended Applebot-Extended meta-externalagent CCBot Bytespider DeepSeekBot AI2Bot
What this is, in one sentence
## AXRAY tells you whether AI can find your site, describe it correctly, and send you the customer.
01
### Can it get in at all?
Many sites turn AI crawlers away without meaning to. Nothing breaks and no alert fires — you simply stop appearing in answers, and there is no way to notice from the inside.
02
### Does it get you right?
What you sell, what it costs, where you are. If those are not stated in a form a machine can lift out, the assistant guesses — and the guess is what your customer reads.
03
### Can one piece of it be quoted?
An assistant is handed a few hundred tokens of your page, not the page. If that piece never says what it is about, there is nothing safe to quote — and the answer gets written from a competitor whose piece did.
04
### What should you fix first?
One ordered list, not a wall of warnings. Each item carries the points it wins back and says whether it is a setting or a rebuild.
What you get back
## A number you can act on, not a wall of warnings.
This is our own report, scanned live against this page. A measurement product that will not publish its own measurement is asking for a trust it has not earned.
AXRAY axray.online
Scanned 12h ago · 70 checks [Open the full report →](/report/avl9-Ybc46PwdQ)
Overall AX score
100 / 100 A+
Agent ready
axray.online scores 100/100 (A+) for Agent Experience.
25% weight
100
Reachability
Nothing lost here
25% weight
100
Comprehension
Nothing lost here
18% weight
100
Structure
Nothing lost here
17% weight
100
Actionability
Nothing lost here
15% weight
100
Agent Contract
Nothing lost here
weight 25
Reachability
### Can it get the bytes?
A Cloudflare challenge that a browser solves silently returns a wall to ChatGPT. Your page simply does not exist in that answer.
weight 25
Comprehension
### Can it tell what this is?
No h1, no description, 40 words of text: the assistant writes its own summary of you, and it will be wrong in a way you never see.
weight 18
Structure
### Can it read the facts?
Your price is styled text in a div. A competitor publishes an Offer. The shopping agent quotes their number and calls yours "not stated".
weight 17
Actionability
### Can it do the next thing?
Navigation built from click handlers on empty anchors works for a mouse and is a dead end for an agent. Everything behind it is unreachable.
weight 15
Agent Contract
### Did you tell it the rules?
No llms.txt, no per-crawler policy, no manifest. Every operator applies its own default to you and you find out afterwards.
70 checks across those five pillars, plus your robots.txt resolved against 54 named AI crawlers one at a time — [how it works](/how-it-works), [the full rubric](/ax-spec).
In your terminal and your pipeline
## The same engine, everywhere you work.
[CLI and API docs](/docs)
your terminal
```
$ npx axray-cli example.com
# fails the build if the score drops below 70
$ npx axray-cli "$DEPLOY_URL" --min 70
```
The CLI runs the same scoring code as this page, so the number in CI is the number on the report. Free, and it needs no account.
What it costs
## Free to find out. A few dollars to keep watching.
One scan costs nothing and needs no account, because a number you cannot get is not worth publishing. You pay when you want the whole site crawled rather than one page, or the scanner running in your pipeline instead of your browser.
Free
Free forever
Find out where you stand.
- 1 scan a day with no account at all
- 2 a month once you sign up
- Full 70-check report and fix list
- Reports reachable by their own private link
[Scan a URL](#url)
Pro
$3.99 per month
For one site you actually care about.
- 100 scans a day
- Whole-site crawl up to 50 pages
- 3 pages watched on a schedule, with alerts
- Systemic issue analysis across templates
[Start Pro](/pricing)
Prices are shown in your own currency at checkout, tax included. [See the full comparison](/pricing).
Before you paste an address
## The questions people ask first.
Do I need an account to try it?
No. 1 scan a day with no account, no card and nothing to install — paste an address and the report is on screen in about two seconds. You get the score, all five pillars and the two findings worth most, in full; the rest of the fix list and the ready-made files are what a paid week buys. A free account adds 2 scans a month, keeps your reports to yourself and remembers what you have scanned. The command-line tool has no paywall at all.
My site is a React or Next.js app. Will it just score zero?
It scores whatever arrives without a browser, and if your content is assembled in the visitor’s browser then very little arrives. That is not us failing to read your site — it is the same empty shell the crawler gets, and the reason your pages can be missing from answers while looking perfect to you. The fix is to render on the server: Next.js server components or `getStaticProps`, Nuxt or SvelteKit in SSR mode, or a prerender step for the routes that matter.
How is this different from Lighthouse or an SEO audit?
Lighthouse runs a browser and measures how fast the page paints for a person. An SEO tool asks how you rank. AXRAY runs no browser at all, which is the point: it reproduces the budget a crawling agent actually gives you and reports what survived. Around a third of the 70 checks have no equivalent in either tool.
Can I run this automatically, on every deploy?
Yes. `npx axray-cli your-site.com --min 70` exits non-zero below the threshold, so a change that would have broken what agents can read fails the build instead of shipping. The command-line tool is free and needs no account.
Does scanning my site publish anything about it?
No. The report is reachable only through its own unguessable link, and your domain does not enter the public [AX Index](/index) unless you prove you control it and ask to be listed.
More about the method, and the objections to it, on [how it works](/how-it-works#faq), [the published specification](/ax-spec).
![The AXRAY agent holding a scorecard reading 100 out of 100, grade A plus]
## Find out what AI sees on your site.
About two seconds, no account. Most people are surprised, and most of what turns up is fixable the same day.
[Scan a URL](#url)
Scan any page
Run the scan
AXRAY
See what AI can actually read on your website.
Agent Experience specification v1.5.7. Open rubric, open CLI.
## Product
- [How it works](/how-it-works)
- [Pricing](/pricing)
- [AX Index](/index)
- [Compare sites](/compare)
- [Badge](/badge)
## Developers
- [CLI and API documentation](/docs)
- [The AX specification](/ax-spec)
- [Free tools](/tools)
- [robots.txt generator](/tools/robots-txt)
- [llms.txt generator](/tools/llms-txt)
- [Every check](/check)
- [Open dataset](/research)
- [llms.txt](/llms.txt)
- [OpenAPI schema](/openapi.json)
## Company
- [For agencies](/for-agencies)
- [Guides](/guides)
- [Writing](/writing)
- [AI crawler reference](/ai-crawlers)
- [Glossary](/glossary)
- [Türkçe yazılar](/yazilar)
- [About AXRAY](/about)
- [Changelog](/changelog)
- [Contact us](/contact)
- [Terms of service](/terms)
- [Privacy policy](/privacy)
- [Security](/security)
- [security.txt](/.well-known/security.txt)
- English
- [العربية](/ar)
- [Русский](/ru)
- [Türkçe](/tr)
© 2026 AXRAY. Built to be read by machines. Last updated 2026-08-26.
[hello@axray.online](mailto:hello@axray.online)
What survives being cut up
Your page in the pieces an assistant is actually handed.
No assistant reads a whole page. A retrieval system cuts it into passages of a few hundred tokens, stores them separately, and hands back one of them next to pieces of forty other sites — and the answer gets written from that one passage alone. 1 of the 23 passages carrying prose cannot be understood on their own. Retrieved without the rest of the page — which is how they are retrieved — an assistant cannot tell what it is about, so it reaches for a source it can quote safely.
stands alone needs the rest of the page navigation
| Passage | Under which heading | Why it does not stand alone |
|---|---|---|
| 1 | no heading above it | It carries a byline, an image or a bare link and no words of its own, so retrieved on its own it says nothing. “AI readability check…” |
The cut is the one a heading-aware splitter makes: a new passage at every heading, the heading path carried into the passage the way a real pipeline carries it, and a cap of about 300 tokens. No language model is involved — every verdict here comes from the structure of the page, which is what makes it reproducible and what makes it arguable.
Technical detail all 70 checks, the evidence behind each one, and copy-pasteable fixes
0 failing · 0 warnings · 64 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.
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 220 ms.
The baseline: an agent with no browser, no cookies and no JavaScript received your page.
What http-ok measures, what it is worth, and how often the web fails it
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.
What not-blocked measures, what it is worth, and how often the web fails it
Pass Content exists without running JavaScript
1792 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.
What server-rendered measures, what it is worth, and how often the web fails it
Pass The status code matches what the page says
HTTP 200, and the page does not describe itself as missing.
Status and content agree, so a crawler stores this URL as what it actually is.
What status-honesty measures, what it is worth, and how often the web fails it
Pass robots.txt is present and parseable
robots.txt served with 8 user-agent groups.
A valid robots.txt is how you talk to crawlers before they read a single page.
What robots-exists measures, what it is worth, and how often the web fails it
Pass Answer engines are allowed to crawl
All 12 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.
What robots-answer-engines measures, what it is worth, and how often the web fails it
Pass User-triggered fetchers are allowed
All 11 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.
What robots-user-triggered measures, what it is worth, and how often the web fails it
Pass Autonomous agents are allowed
All 7 crawlers in this group may fetch /.
These are the agents that shortlist, book and buy on somebody’s behalf. A block here does not make you look worse than a competitor; it removes you from the comparison before the customer sees it.
What robots-agents measures, what it is worth, and how often the web fails it
Pass Retrieval providers are allowed
All 7 crawlers in this group may fetch /.
A handful of companies sell the index that most AI products search rather than crawling themselves. Blocking one of these removes you from every application built on it at once, and none of those applications will ever appear in your logs.
What robots-providers measures, what it is worth, and how often the web fails it
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.
What robots-search measures, what it is worth, and how often the web fails it
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.
What meta-robots measures, what it is worth, and how often the web fails it
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.
What redirect-chain measures, what it is worth, and how often the web fails it
Pass Responds fast enough for an agent budget
Full response in 220 ms.
Agents fetch many pages per answer and drop the slow ones. Speed is a ranking input you control.
What response-speed measures, what it is worth, and how often the web fails it
Pass HTML payload stays inside an agent context budget
11 KB of HTML, 9% of it inline script.
Agents truncate long documents. Anything past the cut simply is not read.
What payload-weight measures, what it is worth, and how often the web fails it
Pass HTML is compressed on the wire
Content-Encoding: br. 53 KB of HTML arrived as 11 KB, a 4.6x saving.
An agent reading many of your pages to answer one question pays for every byte in time and in egress. Compression is the cheapest thing on this report.
What compression measures, what it is worth, and how often the web fails it
Pass Re-fetching is cheap for a crawler
ETag and Last-Modified present, with Cache-Control: private, no-cache.
A crawler can revalidate this page for the cost of an empty response instead of downloading it again.
What cache-validators measures, what it is worth, and how often the web fails it
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.
What content-type measures, what it is worth, and how often the web fails it
Pass Has a descriptive <title>
"AXRAY - See what AI can actually read on your website." (54 characters).
This is the label assistants attach to you when they cite this page.
What title measures, what it is worth, and how often the web fails it
Pass Has a meta description
155 characters: "Paste a web address and find out how much of your page reaches ChatGPT, Claude, Perplexity and Google AI. Free, a score…"
This is the summary assistants reuse verbatim more often than any other field.
What meta-description measures, what it is worth, and how often the web fails it
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.
What metadata-consistency measures, what it is worth, and how often the web fails it
Pass Exactly one <h1> naming the page
"People ask AI about you. See what it reads on your site."
The h1 is the strongest in-page signal of what the document is about.
What h1 measures, what it is worth, and how often the web fails it
Pass Headings form a sane outline
23 headings with no skipped levels.
A clean outline is what lets an agent quote the right section instead of the whole page.
What heading-hierarchy measures, what it is worth, and how often the web fails it
Pass Enough substance to be worth citing
1792 words of readable text, 1653 of them in the main content.
Assistants prefer sources with enough material to answer a question outright rather than pages that just point elsewhere.
What content-volume measures, what it is worth, and how often the web fails it
Pass Answers questions in a form that can be quoted
FAQ structured data with 5 question-and-answer pairs, and 9 question-shaped headings.
A question paired with its answer in structured data is the one format an assistant can lift whole, attribute to you, and quote without paraphrasing.
What answerable measures, what it is worth, and how often the web fails it
Pass Passages make sense on their own
Cut into 23 retrieval passages of about 300 tokens. 22 of the 23 that carry prose stand on their own — 100% of the content by weight.
An assistant that retrieves any one part of this page has enough context in it to quote the part accurately.
- Passage 1 (no heading): It carries a byline, an image or a bare link and no words of its own, so retrieved on its own it says nothing.
What passage-independence measures, what it is worth, and how often the web fails it
Pass Signal-to-markup ratio
19.3% of the payload is readable text.
A high ratio means an agent spends its limited context on your content instead of your tooling.
What text-ratio measures, what it is worth, and how often the web fails it
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.
What lang measures, what it is worth, and how often the web fails it
Pass Text arrived intact, not mangled
No mojibake and no replacement characters in the decoded text.
Whatever an assistant quotes from this page, it will quote the characters you wrote.
What encoding-integrity measures, what it is worth, and how often the web fails it
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.
What image-alt measures, what it is worth, and how often the web fails it
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.
What landmarks measures, what it is worth, and how often the web fails it
Pass Uses semantic elements, not div soup
33% of structural elements are semantic (51 semantic vs 104 div).
Semantic tags carry meaning an agent can use; a div carries none.
What semantic-density measures, what it is worth, and how often the web fails it
Pass URL describes the content
Site root.
Assistants show the URL next to the citation, and readable URLs get clicked more than opaque ids.
What readable-url measures, what it is worth, and how often the web fails it
Pass Ships structured data
5 JSON-LD blocks on the page, 13 carrying real properties.
Structured data is the only part of your page an agent reads without having to interpret it.
What jsonld-present measures, what it is worth, and how often the web fails it
Pass Structured data parses cleanly
All 5 blocks parse as valid JSON with a schema.org context, and every type and property name is in the vocabulary.
A block with a syntax error is silently discarded by every consumer. You get the maintenance cost with none of the benefit.
What jsonld-valid measures, what it is worth, and how often the web fails it
Pass Structured data describes the right thing
Declared types: Organization, WebSite, WebPage, SoftwareApplication, Offer, FAQPage, Question.
The right @type is what lets an assistant answer "how much is it" or "when is it" without reading your prose at all.
What jsonld-types measures, what it is worth, and how often the web fails it
Pass Structured data agrees with the page
Every fact declared in the structured data is supported by the page itself: names, prices, dates, availability and contact details all match.
An assistant reading the structured data and an assistant reading the prose come away with the same answer, which is the entire point of publishing both.
What fact-consistency measures, what it is worth, and how often the web fails it
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.
What open-graph measures, what it is worth, and how often the web fails it
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.
What canonical measures, what it is worth, and how often the web fails it
Pass Publishes a sitemap
https://axray.online/sitemap.xml lists 241 URLs.
A sitemap is how a crawler discovers the pages your navigation hides behind JavaScript menus.
What sitemap measures, what it is worth, and how often the web fails it
Pass Publishes a feed of its content
1 feed declared: https://axray.online/writing/feed.xml.
A feed hands an agent the whole content stream already parsed, with dates and titles attached, instead of making it crawl and guess. It is the cheapest way to be re-read as you publish rather than once.
What feed-discovery measures, what it is worth, and how often the web fails it
Pass Declares its language alternates
5 hreflang alternates, self-referencing, with an x-default.
A complete set is what lets an assistant answer a reader in their own language using your own words rather than a machine translation of somebody else's page.
What language-alternates measures, what it is worth, and how often the web fails it
Pass Prices are machine-readable
Prices in the copy ($24.00, $3.99) are backed by Offer structured data.
A shopping or research agent comparing options reads Offer, not your pricing table CSS.
What price-structured measures, what it is worth, and how often the web fails it
Pass Dates are machine-readable
Dates are published in an unambiguous form: 1 <time datetime> element and ISO dates in the structured data.
An agent can order this page against others by date without parsing a sentence or guessing whether 03/04 is March or April.
What date-markup measures, what it is worth, and how often the web fails it
Pass Declares a link preview card
4 twitter:* tags present.
Several agents fall back to card metadata when they cannot extract the body reliably.
What twitter-card measures, what it is worth, and how often the web fails it
Pass Navigation uses real links
All 60 links resolve to a real URL.
Real hrefs are the only navigation primitive an agent has.
What links-crawlable measures, what it is worth, and how often the web fails it
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.
What anchor-text measures, what it is worth, and how often the web fails it
Pass Form fields are labelled
All 2 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.
What form-labels measures, what it is worth, and how often the web fails it
Pass Form fields have stable names
All 2 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.
What form-names measures, what it is worth, and how often the web fails it
Pass Fields declare autocomplete tokens
2 of 2 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.
What form-autocomplete measures, what it is worth, and how often the web fails it
Pass Controls are real buttons
6 native button controls, no div-as-button patterns found.
A <button> announces itself as an actionable control. A styled div announces nothing.
What button-semantics measures, what it is worth, and how often the web fails it
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.
What contact-affordance measures, what it is worth, and how often the web fails it
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.
What search-affordance measures, what it is worth, and how often the web fails it
Pass Declares what an agent can do here
1 callable action declared: SearchAction.
An agent reading this page is told what it can do here and where to do it, instead of reverse-engineering it from the markup.
- SearchAction
What potential-action measures, what it is worth, and how often the web fails it
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.
What api-discovery measures, what it is worth, and how often the web fails it
Pass Publishes an llms.txt
https://axray.online/llms.txt served 9070 bytes, 1232 words and 41 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.
What llms-txt measures, what it is worth, and how often the web fails it
Pass llms.txt is actually useful
11 sections, 41 curated links, 28 annotated, with a summary blockquote.
A well-formed llms.txt is read as a table of contents. A dumped sitemap is read as noise.
What llms-txt-quality measures, what it is worth, and how often the web fails it
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.
What ai-policy measures, what it is worth, and how often the web fails it
Pass Declares AI usage preferences the standard way
Usage preferences declared for train-ai and search: Content-Usage: train-ai=y, search=y; robots.txt — Content-Usage: train-ai=y, search=y
You have a documented, machine-readable position on how your content may be used, published in the form the standards work is settling on rather than in prose nobody parses.
- Content-Usage: train-ai=y, search=y
- robots.txt — Content-Usage: train-ai=y, search=y
What content-usage measures, what it is worth, and how often the web fails it
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.
What mcp-manifest measures, what it is worth, and how often the web fails it
Pass Identity is machine-verifiable
AXRAY declared with 3 sameAs links.
sameAs is how an assistant confirms that this site, that GitHub org and that company are the same entity. Without it you are three unrelated strings.
- https://www.instagram.com/axray.online/
- https://www.npmjs.com/package/axray-cli
- https://www.producthunt.com/products/axray
What identity measures, what it is worth, and how often the web fails it
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.
What freshness measures, what it is worth, and how often the web fails it
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.
What licence-signal measures, what it is worth, and how often the web fails it
Pass Publishes security.txt
/.well-known/security.txt names mailto:hello@axray.online, valid until 2027-10-10T14:38:42.939Z.
It is the standard machine-readable place to say who to contact. Agents and researchers both look there first.
What security-txt measures, what it is worth, and how often the web fails it
Not applicable
These questions were not asked of this page, and are excluded from the score entirely.
n/a Coding agents can read the documentation
This page carries no code samples and does not sit on a documentation path, so a coding agent has no reason to fetch it.
Developers now read documentation through an agent as often as through a browser. When the agent cannot fetch your reference page, it writes the integration from memory, and what ships is an incorrect use of your API that you get the support ticket for.
What robots-coding measures, what it is worth, and how often the web fails it
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.
What agent-live-probe measures, what it is worth, and how often the web fails it
n/a Provides a no-JavaScript fallback
Not needed: the page already server-renders its content.
What noscript-fallback measures, what it is worth, and how often the web fails it
n/a Tabular data is marked up as a table
No <table> on this page, so there is no table markup to judge.
Agents are asked to compare things more than anything else, and a real table is the only form in which a comparison survives being read by a machine.
What table-semantics measures, what it is worth, and how often the web fails it
n/a Declares its place in the site
Top-level page; breadcrumbs are not expected.
What breadcrumbs measures, what it is worth, and how often the web fails it
n/a Inline microdata annotations
No microdata; JSON-LD is the preferred format anyway.
What microdata measures, what it is worth, and how often the web fails it
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.
User-triggered
Fetches your page because a human asked an assistant to open it right now. Blocking it breaks a live request.
Autonomous agent
Browses, compares and buys on a person’s behalf. Blocking it removes you from the shortlist before anyone sees it.
Retrieval provider
Sells the index that other companies’ AI products search. Blocking it removes you from all of them at once.
Classic search
Traditional search indexing, increasingly the substrate AI answers are built on.
Coding agent
Reads documentation while a developer is building against you. Blocking it is how your API gets used wrong.
Training crawler
Collects content for model training. Blocking it is a legitimate business choice with no traffic cost.
Evidence
What we actually received
Every number in this report comes from this one plain HTTP response. No browser, no JavaScript, no retries.
| Observation | Value |
|---|---|
| Final URL | https://axray.online/ |
| HTTP status | 200 |
| Response time | 220 ms |
| HTML size | 53 KB |
| Inline script | 5 KB (9% of payload) |
| Readable words | 1792 |
| Text-to-markup | 19.3% |
| Title | AXRAY - See what AI can actually read on your website. |
| Language | en |
| Canonical | https://axray.online/ |
| Detected stack | (none detected) |
| robots.txt | served |
| sitemap.xml | 241 URLs |
| llms.txt | 11 sections, 41 links |
Share this report
Public report link, and a badge you can put in a README or a footer.
[](https://axray.online/report/BIXoo2bbwqwf1w)