---
url: /learn/checklist
title: "Agent-readiness checklist — Siere Learn"
description: "A technical checklist for what AI agents receive from your site: discovery, access, source completeness, structure and identity, fidelity, experimental surfaces. Each item has a command to check it by hand, and the page fills itself in from an audit id."
type: website
language: en
site_name: Siere
canonical: https://www.siere.ai/learn/checklist
aeo_generated: 2026-08-24T15:04:16.364Z
---

[Learn](/learn)/Checklist

# Agent-readiness checklist

What to verify about the response an AI agent receives from your site, grouped by the six dimensions the free audit reports. Every item has a command you can run yourself. Run the check on a URL and the page fills in each dimension from that report — a checklist that fills itself in is worth more than one you tick by hand.

Fill this checklist from a report: run the check, then open the link in the results email or on the report page.
[See what an AI agent receives from your URL](/tools/agent-response-check)
Audit id
Fill in

## 1.Discovery

- 
robots.txt exists, returns a usable policy, and allows the crawlers you intend to allow on the paths that matter.

curl -s https://example.com/robots.txt — read the group that applies to each crawler token (GPTBot, OAI-SearchBot, ClaudeBot, Claude-SearchBot, PerplexityBot) and the winning rule for the path.
- sitemap.xml exists, is valid XML and lists the URLs you want discovered.

curl -s https://example.com/sitemap.xml | grep -c '<loc>' — a non-zero count and a <urlset> or <sitemapindex> root.
- Important pages are reachable through internal links, not only through the sitemap.

From the homepage source, follow the links; a page only the sitemap knows about is an orphan.

Why this matters: [Is llms.txt enough? Discovery versus delivery](/learn/is-llms-txt-enough)

## 2.Access

- 
The URL returns 200 to an ordinary request.

curl -sI https://example.com/page | head -1
- The URL returns the same status to requests carrying documented AI crawler headers — no bot block, captcha or login wall reserved for them.

curl -sI -A 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot' https://example.com/page | head -1 — and check the body for a block page even on 200.
- Crawler-header requests are not redirected somewhere different from ordinary requests.

Compare the final URL of curl -sIL for both requests.

Why this matters: [What AI agents actually receive from JavaScript websites](/learn/what-ai-agents-receive-from-javascript-websites)

## 3.Source completeness

- 
The source response contains the primary content before any JavaScript runs — several hundred visible words, not a shell.

curl -sL https://example.com/page | sed 's/<script[^>]*>.*<\/script>//g; s/<[^>]*>//g' | tr -s ' \n' | wc -w
- The visible text in the source is close to what a browser shows after rendering.

Compare the word count above with the rendered page (select all, count). A large gap means client-side rendering.

Why this matters: [What AI agents actually receive from JavaScript websites](/learn/what-ai-agents-receive-from-javascript-websites)

## 4.Structure & identity

- 
The source carries a <title>.

curl -sL https://example.com/page | grep -o '<title>[^<]*'
- The source carries a canonical link that resolves to an absolute URL.

curl -sL https://example.com/page | grep -o 'rel="canonical"[^>]*'
- Structured data (JSON-LD) is present in the source, not injected client-side, and its @id values are absolute URLs.

curl -sL https://example.com/page | grep -c 'application/ld+json' — then validate the JSON.

Why this matters: [React, Vue, Angular: making client-rendered content agent-readable](/learn/react-vue-angular-agent-readable)

## 5.Fidelity

- 
Title and canonical are identical between the ordinary response and each crawler-header response.

Run the title/canonical greps above with and without the crawler User-Agent and diff.
- Visible words and important links overlap materially between the two responses (the audit treats under 50% word overlap as a failure and under 80% as partial).

diff <(curl -sL URL | sed 's/<[^>]*>//g') <(curl -sL -A "$UA" URL | sed 's/<[^>]*>//g') | head
- If you serve agents a different representation (Markdown, structured content), it says the same things as the page.

Read both. A fidelity check should be automated in your delivery layer, and re-run after each deploy.

Why this matters: [AI visibility dashboards show the problem. How do you fix it?](/learn/from-ai-visibility-dashboard-to-fix)

## 6.Experimental surfaces

- 
llms.txt exists and lists only URLs whose responses you have verified are complete.

curl -s https://example.com/llms.txt — then run the source-completeness check on a listed URL.
- If you publish llms-full.txt or per-page Markdown, it is generated from current content.

Compare a Markdown entry with the live page after a content change.
- ai.txt / usage policy is consistent with your content licence.

curl -s https://example.com/ai.txt — an attribution licence should not be paired with a blanket 'no'.

Why this matters: [Is llms.txt enough? Discovery versus delivery](/learn/is-llms-txt-enough)

Published under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). Copy it, adapt it, attribute Siere. The audit thresholds quoted here are those of the free check on this site as of 2026-08-18.

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://www.siere.ai/#organization",
  "name": "Siere",
  "url": "https://www.siere.ai/",
  "logo": "https://www.siere.ai/social-square.png",
  "sameAs": [],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer support",
    "email": "contact@siere.ai",
    "url": "https://www.siere.ai/contact"
  }
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "@id": "https://www.siere.ai/#website",
  "name": "Siere",
  "url": "https://www.siere.ai/",
  "description": "Your website is invisible to AI agents. Siere fixes that. We make your site readable, structured, and optimized for the next generation of AI-powered search.",
  "publisher": {
    "@type": "Organization",
    "name": "Siere",
    "@id": "https://www.siere.ai/#organization"
  }
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "@id": "https://www.siere.ai/#software",
  "name": "Agent Experience Optimization",
  "url": "https://www.siere.ai/",
  "description": "Your website is invisible to AI agents. Siere fixes that. We make your site readable, structured, and optimized for the next generation of AI-powered search.",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Web",
  "offers": [
    {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "USD",
      "name": "Starter"
    },
    {
      "@type": "Offer",
      "price": "99",
      "priceCurrency": "USD",
      "name": "Pro"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "@id": "https://www.siere.ai/#faq",
  "url": "https://www.siere.ai/",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is Agent Experience Optimization?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "AEO makes your website readable, structured, and reliably citable by AI agents like ChatGPT, Claude, Perplexity, and Gemini. Most modern websites are JavaScript-rendered and look like blank pages to AI crawlers — Siere fixes that without changing your visitor experience."
      }
    },
    {
      "@type": "Question",
      "name": "How does Siere work?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Siere sits between your server and incoming requests. When an AI agent visits, Siere serves an optimized markdown version of your content. When a human visits, your normal page is served unchanged."
      }
    },
    {
      "@type": "Question",
      "name": "Do I need to change my site?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. Siere installs as middleware. There are no content changes or rewrites required."
      }
    }
  ]
}
```

