CLI tool that grades how accessible a website is to AI clients
Project description
botaudit
CLI tool that grades how accessible a website is to AI clients.
botaudit fetches a webpage, analyzes its HTML structure, and scores it across six categories that affect how well AI crawlers and language models can discover and consume its content. The output is a letter-graded report with per-category scores and actionable recommendations.
Installation
Requires Python 3.11+.
pip install .
Usage
botaudit https://example.com
Options
| Flag | Description |
|---|---|
--timeout SECONDS |
HTTP request timeout (default: 10) |
--no-recommendations |
Suppress improvement recommendations |
--skip-llm-discovery |
Skip LLM discoverability analysis (no robots.txt/llms.txt fetches) |
Example output
==================================================
BotAudit Report
https://example.com
==================================================
Overall Grade: B (82/100)
--------------------------------------------------
Content Availability (27%) 90/100
--------------------------------------------------
- 342 words of visible text.
- <noscript> fallback present.
Semantic HTML (23%) 68/100
--------------------------------------------------
- 15 semantic vs 7 generic elements (ratio: 68%)
- Semantic tags: nav (3), article (2), section (4), header (2), ...
Recommendations:
[MEDIUM] Wrap supplementary content (sidebars, promos) with <aside>.
...
Categories
Each category is scored 0-100 and weighted toward the overall grade:
| Category | Weight | What it measures |
|---|---|---|
| Content Availability | 27% | Visible text in initial HTML, <noscript> fallback |
| Semantic HTML | 23% | Ratio of semantic elements (<article>, <nav>, ...) to generic containers (<div>, <span>) |
| Link Discoverability | 18% | Navigable <a href> links vs javascript:, #, or empty hrefs |
| Structured Data | 13% | JSON-LD, Open Graph tags, meta description |
| Metadata & Discoverability | 9% | <title>, canonical URL, robots meta, sitemap reference |
| LLM Discoverability | 10% | robots.txt AI crawler policies, llms.txt, llms-full.txt |
Grades map to the overall weighted score: A (90+), B (80-89), C (70-79), D (60-69), F (<60).
Categories scoring below 90 receive actionable recommendations at HIGH, MEDIUM, or LOW severity.
Development
python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
pip install -e .
Running tests
python -m unittest discover tests
Project structure
src/botaudit/
cli.py CLI entry point and argument parsing
fetcher.py HTTP fetching with error handling
analysis.py HTML analysis (5 categories)
robots_analysis.py robots.txt parsing for AI crawler access
llm_discoverability.py LLM discovery file fetching and analysis
grading.py Per-category scoring and overall grading
recommendations.py Per-category recommendation generation
report.py Plain-text report formatting
models.py Shared data structures and constants
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file botaudit-1.0.0.tar.gz.
File metadata
- Download URL: botaudit-1.0.0.tar.gz
- Upload date:
- Size: 20.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72ff66b14aebd7b12ef2666d5bf20728640b123bc73d13605a8dcd11b4f5bd08
|
|
| MD5 |
0f526be885675e823115b798474f928d
|
|
| BLAKE2b-256 |
186c47e3c517f1a9c0b2e5e4ce3b0688061c754141ffd8ae8f54a279a8fcb655
|
File details
Details for the file botaudit-1.0.0-py3-none-any.whl.
File metadata
- Download URL: botaudit-1.0.0-py3-none-any.whl
- Upload date:
- Size: 21.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38ed4f03d3874e983500958b05d82643f52b521807bfa9cdb49d86f0427818a3
|
|
| MD5 |
40a3d6447d8d85baeded729611caae5f
|
|
| BLAKE2b-256 |
338177763260b69b776d1f5a93edf2d0846da60eab759ac66d19ae31f6801aa3
|