Loading the report. A first-ever scan of a domain runs live against the site and takes about ten seconds.
Loading the report. A first-ever scan of a domain runs live against the site and takes about ten seconds.
This is how AI agents (not browsers) experience shop-hanghieu.com. The score weights five categories of machine-readability; the ticks on the arc are the 36 individual checks behind it.
Send this to whoever edits the site. The link shows the score and grade as a preview card, and it stays current: it re-reads the latest scan rather than freezing today’s number.
Checks tagged “emerging” are 2026 agent-protocol standards most of the web hasn’t adopted yet. Adopting early is an edge, not a defect.
No <meta name="description">. Agents use it as a page summary; add a 50–200 character description.
Show me exactly what to doThe meta description is a one-sentence summary of the page that you control, embedded in the HTML head. Without it, machines compose their own summary from whatever text appears first, often cookie-notice or navigation boilerplate.
This is the sentence you get to write about yourself. Pages without one are summarised by autopilot, and the autopilot frequently leads with the least representative text on the page.
Get it in your inbox now, plus a heads-up whenever shop-hanghieu.com’s agent-readiness score changes. Free, unsubscribe anytime.
Prefer we just watch it for you? Monitor rescans weekly and emails what changed, $29/mo. Start monitoring →
This graded your homepage. Your pricing, docs, and checkout live on other pages: the ones assistants actually quote when they recommend you. A 68/100 here means agents are already missing things on the page you polish most. The $29 Deep Scan audits the whole site against all 36 checks, then emails a PDF with every failing check and its exact fix, ranked by what costs you the most visibility. One-time, delivered in minutes, no subscription.
Embed this badge on your site. It links back to this live scan and updates on every rescan.
<a href="https://agentspeed.com/scan/shop-hanghieu.com"><img src="https://agentspeed.com/badge/shop-hanghieu.com" alt="AgentSpeed agent-readiness score" height="56"></a>Get this report by email, then a heads-up when shop-hanghieu.com’s agent-readiness actually changes: a check regressing, or the composite dropping.
Two things never trigger an email: a score change caused by us publishing a new rubric, because that is a different instrument rather than a change to your site, and movement explained only by timing-derived checks, which shift run to run on a site nobody touched.
Want it on your own schedule, with Slack or a webhook instead of email? Score-drift monitoring is on every paid plan.
This score says whether an AI agent could read shop-hanghieu.com. AI traffic analytics says whether one actually came, and which pages turned it away.
Running AI agents of your own? AgentSpeed also monitors them in production: every run, its latency, cost, and failures, with alerts when something breaks. Free for 10,000 events a month, no credit card.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Visible text is 6.2% of HTML weight (4914/79772 bytes). 13% of the document is inline script, 53% is markup.
Show me exactly what to doOf everything your server sends for this page, very little is actual readable text. The rest is code, styling, and markup wrapper. Agents fetched a lot of bytes and found few words.
Agents work with retrieval budgets. A page that is 2% text either gets skimmed (and mis-summarised) or skipped. More signal per byte means more of your actual message survives into the agent’s summary.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Heading issues: no <h1>; 1 skipped level(s).
Show me exactly what to doHeadings (H1, H2, H3…) are the page’s outline. Yours skip levels, repeat H1s, or use styled text instead of real heading tags, so the outline machines extract is scrambled.
Agents use the heading tree to navigate long pages and to decide which section answers a question. A broken tree means quotes get attributed to the wrong section, or sections are missed entirely.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
1 recommended-field warning(s). First: WebPage recommends "description" (improves agent comprehension).
Show me exactly what to doYour page HAS structured data, but it is malformed: broken JSON syntax, or types and fields that don’t exist in the schema.org vocabulary. Machines can see the block but can’t parse it.
Invalid JSON-LD is worse than it looks. The agent spends its attention budget on the block, fails to parse it, and falls back to guessing from prose anyway. You pay the cost of structured data without getting the benefit.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
TTFB 2134ms. Slow. Agents time out aggressively.
Show me exactly what to doTime to first byte is how long your server thinks before it starts answering: the gap between an agent asking for the page and the first byte of HTML arriving. Yours crossed our threshold (under 200ms scores full marks, over 2 seconds fails).
Agents fetch with tight timeouts and many pages in parallel. A server that takes seconds to start answering gets cut off mid-queue, and a page that times out is a page that was never read. Speed here is not polish; it decides whether the content gets fetched at all.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
No Content-Signal directives. Add e.g. `Content-Signal: ai-train=no, ai-summarize=yes` to declare granular AI usage policy beyond binary allow/disallow.
Show me exactly what to doContent-Signal is a newer robots.txt directive (pushed by Cloudflare) that lets you state a granular AI policy: for example "don’t train on my content, but summarising it in answers is fine". Classic robots.txt only offers all-or-nothing per crawler; this adds the middle ground. We looked for a Content-Signal line in your robots.txt and response headers and found none.
Without a granular signal, crawlers infer your intent from blunt allow/block rules, and sites often block more than they mean to just to avoid training use. A declared signal lets you keep answer visibility (summaries, citations) while opting out of what you object to. This is an emerging standard: honoring is voluntary and adoption is early, which is why it is flagged as emerging and weighs little.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
One prompt covering the fixes above that have a step-by-step plan, in the same priority order, with the same guardrails.
This scan shows whether an agent can read the site. One free probe asks a real assistant a real buying question and records who it cited.