ShipworkSite inspection
Checks

Crawlability

PaginationAre paginated pages set up right?Internal searchIs site search eating crawl budget?URL parametersAre parameters creating duplicates?Log analyserWhat does Googlebot actually crawl?Robots builderNeed a robots.txt file?Soft 404sAre pages “not found” but returning 200?JavaScriptCan crawlers see it without running JS?FreshnessIs my site quietly going stale?Robots.txtDoes robots.txt say what I think?

Indexing

Sitemap lastmodAre my sitemap dates valid?SitemapIs my sitemap actually fetchable?IndexingIs Google allowed to index my pages?CanonicalsIs Google indexing the wrong URL?Index signalsDo sitemap and index signals agree?Sitemap generatorNeed a sitemap.xml for my site?Bulk URL statusWhere does each of these URLs really land?Redirect builderNeed the redirect rules?RedirectsAre my URLs answering directly, over HTTPS?

On-page

Keyword ideasWhat are people searching for?SERP previewHow does my page look in Google?Content qualityAre your pages too thin or too alike?Image weightAre images slowing the page?CannibalizationAre pages competing with each other?On-page checkDoes the page use its target phrase?ImagesAre my images accessible and loading?Meta tag builderWhat should my title and share tags say?DuplicatesDo my pages compete for one query?

Links

Orphan pagesWhich pages can no link reach?Link graphHow deep do your pages sit?Anchor textDo links say what they point at?Outbound linksAre external links still alive?Broken linksAre internal links sending visitors nowhere?

Structured data

Rich resultsIs my markup eligible for a rich result?Structured dataIs my product schema valid?Schema coverageDo my key pages carry structured data?Social previewHow does my page look when shared?Schema vs pageDoes markup match the page price?Schema builderNeed valid JSON-LD?

International

Hreflang sitemapDo page and sitemap hreflang agree?HreflangDo my language versions link back?Hreflang builderNeed the hreflang tags?Redirect planMy site has dead links — what redirects do I write?Sitemap diffIs anything missing from my sitemap?Robots simulatorWhat does my robots.txt actually block?Can Googlebot?Can Googlebot fetch this URL?
Every error, explainedGuides →
Pricing Learn Error guides Run free audit
Sign in

Signing in is optional: it keeps your account, watches and connections on any device. Every free check, the audit and the score work with no account at all.

Sign in with GoogleOpens your account, or creates a free one PricingPlans and credit packs for the paid jobs

Can AI agents actually use your site?

Crawlers read pages; agents act on them. This checks the four levels Cloudflare's Agent Readiness scan uses, from the basics every site needs to the discovery documents that let an assistant find and use an API.

Runs the Agent readiness check on the address you enter, from outside your network. Nothing is stored.

What this check inspects

Shipwork reads robots.txt for named AI crawler groups and a Content-Signal line, asks the home page for Markdown with an Accept: text/markdown header, and looks for the sitemap. It then reads the well-known discovery documents: the API catalog, auth.md, OAuth and protected-resource metadata, the A2A agent card, the agent-skills index, the MCP server card and a Web Bot Auth key directory, checks the home page for a discovery Link header and in-browser WebMCP tools, and notes the commerce documents (ACP, UCP, MPP). Every read is passive: nothing is posted or registered.

What a failure means

Level 1 is for every site: a missing robots.txt or sitemap is worth fixing, and missing Content Signals, named AI crawler rules or Markdown for agents are notes, because they are newer standards. Levels 2 and 3 only matter for a site that offers an API or an agent, and commerce only for one that wants agents to buy from it, so a missing item there is never a fault.

How to fix it

  1. Add a Content-Signal line to robots.txt stating whether AI may use your content for search, answers and training.
  2. Name the AI crawlers you care about (GPTBot, ClaudeBot, PerplexityBot, Google-Extended) in their own robots.txt groups.
  3. Serve a Markdown copy of pages to requests that ask for text/markdown; Cloudflare can do this at the edge.
  4. If you have an API, publish /.well-known/api-catalog, a Link header pointing to it, and an auth.md explaining access.

A typical failure, worked through

The setupA SaaS site allows every crawler through the wildcard rule and has a public API documented only on a human docs page.

What the check reportsThe check passes robots.txt and the sitemap, notes that no AI crawler is named and no Content Signals are declared, and shows discovery at 0 of 3 because nothing tells an agent the API exists.

The pointBeing crawlable is not the same as being usable. The discovery documents are small files, and they are what an assistant reads to decide it can act on your site.

Questions

Where do these levels come from?
They mirror the Agent Readiness scan in the Cloudflare dashboard (and isitagentready.com), so a result here lines up with what you see there.
Does every site need all of it?
No. Level 1 is for everyone. The API, OAuth, agent and commerce documents only make sense if you offer those things; publishing them for a service you do not run would mislead agents.
Does the check register or post anything?
No. Every item is a public read of a file, a header or a robots.txt line.

Related checks and guides