# AI crawler access test: can answer engines read these vendors?

> 6 of 6 tool sites reachable from our build machine on 2026-09-18. 0 of 6 restrict any checked AI crawler in robots.txt (policy undetermined for 1 — robots.txt served a non-robots page). 4 of 6 ship an /llms.txt (cloudflare-pages, netlify, vercel, render). Median homepage TTFB: github-pages fastest at 18ms, firebase-hosting slowest at 511ms.

Human page: https://testedactually.com/free-spa-hosting/benchmarks/free-spa-hosting-ai-crawler-access/
Mirror: https://testedactually.com/free-spa-hosting/benchmarks/free-spa-hosting-ai-crawler-access.md
Updated: 2026-09-18

Methodology: https://testedactually.com/free-spa-hosting/benchmarks/free-spa-hosting-ai-crawler-access/ — script: `scripts/crawler-test.mjs`, n=6 tools × 3 runs, run 2026-09-18.

**AI crawler access test: can answer engines read these vendors? — n=6 tools, 3 runs per tool**

| Tool | TTFB ms (median) | HTML KB | /llms.txt | AI crawler policy | Blocked bots |
| --- | --- | --- | --- | --- | --- |
| [cloudflare-pages](/free-spa-hosting/cloudflare-pages/) | 285 | 572.8 | yes | unknown | none |
| [netlify](/free-spa-hosting/netlify/) | 70 | 402.7 | yes | open | none |
| [vercel](/free-spa-hosting/vercel/) | 74 | 513.9 | yes | open | none |
| [github-pages](/free-spa-hosting/github-pages/) | 18 | 14.1 | no | open | none |
| [render](/free-spa-hosting/render/) | 243 | 391.6 | yes | open | none |
| [firebase-hosting](/free-spa-hosting/firebase-hosting/) | 511 | 515.2 | no | open | none |

### Methodology

- Fetch https://<domain>/robots.txt with a plain HTTP GET and a desktop user agent.
- Parse User-agent groups line by line; a bot is blocked only if a group naming it (or the * wildcard) contains a 'Disallow: /' rule.
- Bots checked: GPTBot, ClaudeBot, CCBot, PerplexityBot, Google-Extended, Applebot-Extended, Bytespider.
- Policy: blocked = GPTBot, ClaudeBot, and CCBot all disallowed from /; partial = at least one checked bot disallowed; open = no restrictions; unknown = robots.txt unreachable.
- Fetch https://<domain>/llms.txt; llmsTxt = HTTP 200.
- Fetch the homepage 3 times; TTFB is time to response headers; report the median. HTML size is the decoded body length of the last successful fetch.

### Limitations

- Single machine, single network location — TTFB is directional, not global CDN truth.
- n=3 runs per tool; we report the median, not a distribution.
- Simplified robots.txt parsing: bot names matched case-insensitively, only Disallow rules read, path wildcards beyond 'Disallow: /' not modeled.
- Homepage only; vendor pricing pages may have different crawler policies.
- Snapshot of 2026-09-18; vendors change crawler policies without notice.
