Skip to main content

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

botaudit-1.0.0.tar.gz (20.4 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.0.0-py3-none-any.whl (21.6 kB view details)

Uploaded Python 3

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

Hashes for botaudit-1.0.0.tar.gz
Algorithm Hash digest
SHA256 72ff66b14aebd7b12ef2666d5bf20728640b123bc73d13605a8dcd11b4f5bd08
MD5 0f526be885675e823115b798474f928d
BLAKE2b-256 186c47e3c517f1a9c0b2e5e4ce3b0688061c754141ffd8ae8f54a279a8fcb655

See more details on using hashes here.

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

Hashes for botaudit-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 38ed4f03d3874e983500958b05d82643f52b521807bfa9cdb49d86f0427818a3
MD5 40a3d6447d8d85baeded729611caae5f
BLAKE2b-256 338177763260b69b776d1f5a93edf2d0846da60eab759ac66d19ae31f6801aa3

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