infra-check is a single-file command-line tool that inspects any domain for machine-readable infrastructure signals — the kind of things that determine how well a site can be understood by crawlers, AI agents, and automated clients. It runs five checks per domain and produces a binary PASS / FAIL verdict, with optional CSV or JSON export for batch runs.
| # | Check | What it looks for |
|---|---|---|
| 1 | JSON-LD | Presence of valid application/ld+json structured data on the homepage, and the @types it declares. |
| 2 | llms.txt | Whether the domain serves a non-trivial /llms.txt file at the root. |
| 3 | robots.txt | Whether /robots.txt exists, whether generic bots are allowed, and which known AI crawlers (GPTBot, ClaudeBot, Google-Extended, CCBot, …) are blocked. |
| 4 | Headers | HTTP status, a valid text/html content type, and the presence of common security headers (HSTS, X-Content-Type-Options, X-Frame-Options, CSP). |
| 5 | SSL/TLS | That the domain responds over HTTPS without certificate errors. |
A domain passes when at least 3 of the 5 checks pass.
infra-check needs Python 3 and a single dependency:
pip install requestsThen grab the script and run it directly — no packaging or install step required:
python infra-check.py --helppython infra-check.py example.compython infra-check.py example.com another.com third.orgProvide a text file with one domain per line (blank lines and # comments are
ignored):
python infra-check.py --file domains.txtpython infra-check.py --file domains.txt --csv results.csvpython infra-check.py --file domains.txt --json-out results.jsonpython infra-check.py --file domains.txt --quiet| Option | Description |
|---|---|
domains |
One or more domains to check (e.g. example.com). |
--file, -f |
Path to a text file with one domain per line. |
--csv |
Write full results to a CSV file. |
--json-out |
Write full results to a JSON file. |
--quiet, -q |
Only print the verdict lines. |
Checking 2 domain(s)...
✅ example.com [PASS] (4/5 checks passed)
JSON-LD: valid (Organization, WebSite)
llms.txt: missing
robots.txt: open
Headers: HTTP 200, security headers: yes
SSL/TLS: valid
❌ broken.example [FAIL] (1/5 checks passed)
JSON-LD: missing
llms.txt: missing
robots.txt: missing
Headers: unreachable
SSL/TLS: SSL error: certificate verify failed
==================================================
Total: 2 | Passed: 1 | Failed: 1
Released under the MIT License.
Thorsten Litzki — Litzki Systems LLC