Skip to main content

CLI tool that grades how accessible a website is to AI clients

Project description

botaudit

PyPI Python License

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 botaudit

Usage

botaudit https://example.com

Options

Flag Description
--timeout SECONDS HTTP request timeout (default: 10)
--format {text,json,csv} Output format (default: text)
--no-recommendations Suppress improvement recommendations
--skip-llm-discovery Skip LLM discoverability analysis (no robots.txt/llms.txt fetches)
--fail-under GRADE Exit with code 1 if grade is below GRADE (A, B, C, D, or F)

CI usage

# Fail the build if the site scores below a B
botaudit https://staging.myapp.com --fail-under B --format json

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              Report formatting (text, JSON, CSV)
  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

botaudit-1.2.0.tar.gz (22.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

botaudit-1.2.0-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file botaudit-1.2.0.tar.gz.

File metadata

  • Download URL: botaudit-1.2.0.tar.gz
  • Upload date:
  • Size: 22.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for botaudit-1.2.0.tar.gz
Algorithm Hash digest
SHA256 f990d127ac80360f2b95b85705ab145edea15fd6a4084ebfc08a16cc5ca3d1b0
MD5 f7ea32b39210da7f7a3a691fb9948628
BLAKE2b-256 e0e090eb7e97fd2e0768a12efc699f726d83b03070f9a3b8a4b9fe3d026377fe

See more details on using hashes here.

File details

Details for the file botaudit-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: botaudit-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for botaudit-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 41c68aad090aece6e65c852ba43df10f02877ae69590f3edeb2126a8d9480302
MD5 3741fb8f8504e466852829867e85e007
BLAKE2b-256 7583973b13e06097b48610a5883d866ee372b5ede7cb8bfc242fc672932de53c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page