You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: ai/agent-readiness-checks.mdx
+38-32Lines changed: 38 additions & 32 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -391,14 +391,16 @@ This check fetches `/robots.txt` and verifies that none of the known AI agent us
391
391
**How to improve:** Review your `robots.txt` for blanket disallow rules targeting AI user-agents. Replace them with path-specific rules if you need to restrict access to certain sections without blocking all content.
392
392
393
393
<Promptdescription="Update `robots.txt` to allow AI agents."actions={["copy", "cursor"]}>
394
-
You have my current `robots.txt`(paste below). Update it so **no major AI agent user-agent** is blocked with `Disallow: /` or `Disallow: /*` (readiness checks flag patterns that blanket-block crawlers such as Claude, ChatGPT, Gemini, Copilot, Perplexity, and similar).
394
+
My `robots.txt`may be blocking AI crawlers. Update it so none of these user-agents are blocked with `Disallow: /` or `Disallow: /*`: `GPTBot`, `ClaudeBot`, `Claude-User`, `Google-Extended`, `PerplexityBot`, `Copilot`, `OAI-SearchBot`.
395
395
396
396
Rules:
397
-
-Prefer **path-specific**`Disallow` for sensitive areas instead of sitewide blocks for AI bots
398
-
-Keep or improve rules for abusive scrapers if present—do not weaken protections unrelated to documentation
399
-
- If `User-agent: *`is overly broad, add explicit `Allow` lines for doc paths for AI bots **or** narrow the wildcard rule; explain precedence so I do not accidentally keep a sitewide deny
397
+
-Use path-specific `Disallow` for sensitive areas rather than sitewide blocks for AI crawlers
398
+
-Preserve existing rules for non-AI bots—do not weaken unrelated protections
399
+
- If `User-agent: *`has a broad`Disallow`, add explicit `Allow` lines for AI crawlers above it and explain precedence
400
400
401
-
Output: full revised `robots.txt`, then a short “what changed” note listing each AI-related user-agent and its effective access to `/` and `/docs` (or my doc path prefix).
401
+
Deliver:
402
+
1. The complete revised `robots.txt`
403
+
2. A summary of what changed for each AI-related user-agent and its effective access to my documentation path
402
404
</Prompt>
403
405
404
406
## Sitemap
@@ -412,16 +414,17 @@ Mintlify automatically generates and hosts a `sitemap.xml` for all documentation
412
414
**How to improve:** If you use a reverse proxy, forward `/sitemap.xml` to your Mintlify subdomain. If you host docs outside Mintlify, generate a sitemap with your static site generator or framework.
413
415
414
416
<Promptdescription="Generate a `sitemap.xml` for your documentation site."actions={["copy", "cursor"]}>
415
-
Build a `sitemap.xml`for my documentation site that a readiness check can fetch at `/sitemap.xml`and recognize as XML (`Content-Type``application/xml` or equivalent, or body starting with `<?xml`, `<urlset`, or `<sitemapindex`).
417
+
I need a `sitemap.xml`served at `/sitemap.xml`so agents and crawlers can discover all my documentation URLs without guessing at navigation.
416
418
417
419
Include:
418
-
- Every **public** doc URL I care about crawlers indexing (canonical `https://` URLs, no auth-gated pages)
419
-
- Optional `lastmod` if you can infer from git or file dates; otherwise omit rather than guess wildly
420
-
-`changefreq` / `priority` only if my stack already uses them—do not invent policy I did not ask for
421
-
422
-
Inputs I can provide: **<base URL, list of routes, or “crawl this repo path”>**
420
+
- Every public documentation URL in canonical `https://` form—no auth-gated pages
421
+
-`lastmod` if you can derive it from git history or file dates; omit it rather than guess
422
+
-`changefreq` and `priority` only if my framework already generates them
423
423
424
-
Deliver: the XML file content plus where to place it in my build output so it is served at `/sitemap.xml`.
424
+
Deliver:
425
+
1. The complete `sitemap.xml` file content
426
+
2. Where to place it so it is served at `/sitemap.xml` in my build output
427
+
3. A `curl` one-liner to confirm it's reachable and recognized as XML: `curl -sI https://yourdomain.com/sitemap.xml | grep content-type`
425
428
</Prompt>
426
429
427
430
## Structured data
@@ -430,42 +433,45 @@ This check fetches your documentation homepage as HTML and looks for `<script ty
430
433
431
434
Mintlify embeds JSON-LD structured data automatically in all page responses.
432
435
433
-
**Why this check matters:** JSON-LD gives agents machine-readable context about your pages—organization information, breadcrumbs, article metadata, and relationships—without requiring them to infer context from content or HTML structure.
436
+
**Why this check matters:** JSON-LD gives agents machine-readable context about your pages-organization information, breadcrumbs, article metadata, and relationships—without requiring them to infer context from content or HTML structure.
434
437
435
438
**How to improve:** Mintlify handles this automatically. If you host docs outside Mintlify, add JSON-LD markup to your page templates.
436
439
437
440
<Promptdescription="Add JSON-LD structured data to your documentation site."actions={["copy", "cursor"]}>
438
-
Add JSON-LD to my documentation templates so pages include parseable `<script type="application/ld+json">` blocks (readiness checks scan the homepage HTML for valid JSON-LD).
-**Article-style doc pages:**`TechArticle` or `Article` (headline, datePublished if available, author/org)
443
-
-**All inner pages:**`BreadcrumbList` matching the sidebar hierarchy
444
-
-**Organization** once (homepage or layout): name, url, logo if I have a stable URL
441
+
I need parseable `<script type="application/ld+json">` blocks on my documentation pages so agents can read machine-readable context about my site structure and content.
445
442
446
-
My stack: **<framework and templating, e.g. Docusaurus, Next.js App Router, Mintlify custom head>**
443
+
For each page type, add a minimal valid JSON-LD graph:
444
+
-**Homepage / docs root:**`WebSite` with `name`, `url`, and optional `potentialAction` for site search
445
+
-**Doc pages:**`TechArticle` or `Article` with `headline`, `datePublished` if available, and `author` or `organization`
446
+
-**All inner pages:**`BreadcrumbList` matching the page's position in the navigation hierarchy
447
+
-**Once in the layout:**`Organization` with `name`, `url`, and `logo`
447
448
448
-
Show: exact template injection points, one example JSON-LD blob per page type filled with placeholders, and how to avoid duplicate `@id` collisions across routes.
449
+
Deliver:
450
+
1. Exact template injection points for each page type in my stack
451
+
2. One complete example JSON-LD blob per page type with realistic placeholders
452
+
3. How to keep `@id` values unique across routes to avoid collisions
453
+
4. How to verify: open DevTools → Elements → search for `application/ld+json`
449
454
</Prompt>
450
455
451
456
## Response latency
452
457
453
458
This check times a GET request to your documentation root. It passes if the first byte arrives within 2,000 milliseconds and fails if the request times out.
454
459
455
-
**Why this check matters:** Slow responses cause agent timeouts in multi-step workflows where documentation is fetched as a subtask. A 2-second threshold accounts for agent processing overhead on top of network time.
460
+
**Why this check matters:** Slow responses cause agent timeouts in multi-step workflows where documentation is fetched as a subtask. A two-second threshold accounts for agent processing overhead on top of network time.
456
461
457
-
**How to improve:**For Mintlify-hosted sites, response time is handled by Mintlify's infrastructure and should pass for most deployments. If your site uses a reverse proxy or custom hosting, enable CDN caching, reduce server-side rendering time, and minimize blocking resources on the documentation homepage.
462
+
**How to improve:** If your site uses a reverse proxy or custom hosting, enable CDN caching, reduce server-side rendering time, and minimize blocking resources on the documentation homepage.
458
463
459
464
<Promptdescription="Diagnose and fix slow documentation response time."actions={["copy", "cursor"]}>
460
-
My documentation **homepage/root** sometimes exceeds **2,000 ms time to first byte (TTFB)**—that fails our agent-readiness latency check (first byte must arrive within 2s).
465
+
My documentation homepage is exceeding 2,000 ms time to first byte (TTFB), which fails the agent-readiness latency check.
461
466
462
467
Help me triage in order:
463
-
1.**Measure** — How to isolate TTFB vs total load (e.g. `curl -w '%{time_starttransfer}\n' -o /dev/null -s`, browser DevTools)
464
-
2.**Edge vs origin** — CDN cache hit ratio, whether HTML is dynamically rendered per request, cold starts
465
-
3.**Origin work** — SSR cost, data fetching on the critical path, region distance
466
-
4.**Proxy misconfig** — buffering, auth subrequests, slow upstream health checks
467
-
468
-
My setup: **<hosting, CDN, proxy, framework>**
468
+
1.**Measure** — Isolate TTFB from total load time: `curl -w '%{time_starttransfer}\n' -o /dev/null -s https://yourdomain.com` and browser DevTools Network tab
469
+
2.**Edge vs origin** — CDN cache hit ratio, whether HTML is server-rendered per request, cold start behavior
470
+
3.**Origin bottlenecks** — SSR render cost, blocking data fetches on the critical path, server region vs. user location
Return: top 3 likely causes for *my* stack, concrete settings or code changes to try first, and success criteria (which metric should drop below what threshold).
473
+
Deliver:
474
+
1. The top 3 most likely causes for my specific stack
475
+
2. Concrete configuration changes or code edits to try first
476
+
3. How to verify the fix: TTFB should drop below 1,500 ms measured with the `curl` command above
0 commit comments