Audit and auto-fix a website's visibility to AI crawlers and answer engines (GPTBot, ClaudeBot, PerplexityBot, and more).
Project description
aivisible-fix
Audits a website for the specific things that make it invisible to AI crawlers and AI answer engines (ChatGPT, Claude, Perplexity, Gemini/AI Overviews, and others) — and, unlike the free "checker" tools already on the market, generates the fix, not just a score.
$ aivisible-fix audit https://example.com
AI-visibility audit for https://example.com
Score: 40/100
[FAIL] robots_reachable: robots.txt missing or unreachable ...
[PASS] no_ai_crawlers_blocked: No known AI crawler is explicitly blocked.
[FAIL] llms_txt_present: No /llms.txt ...
...
$ aivisible-fix fix https://example.com --name "Example Co" --description "..."
Wrote robots.fixed.txt
Wrote llms.txt
Review both files, then deploy them at your site root. Nothing was auto-published.
What it checks
- robots.txt reachable — the baseline signal every crawler reads first.
- No AI crawler is explicitly blocked — checked per-agent (GPTBot,
ChatGPT-User, OAI-SearchBot, ClaudeBot, Claude-Web, anthropic-ai,
PerplexityBot, Perplexity-User, Google-Extended, CCBot, Bytespider,
Amazonbot, Applebot-Extended, cohere-ai, Meta-ExternalAgent, Diffbot,
YouBot — see
aivisible_fix/crawlers.py), not just a blanketDisallow: /. - llms.txt present — the emerging convention (llmstxt.org) for a short, LLM-readable summary of what a site is and which pages matter.
- sitemap.xml present and valid, and referenced from robots.txt.
- JSON-LD structured data on the homepage — what answer engines lean on to extract facts (org, product, FAQ, etc.) without guessing from prose.
Score is out of 100, weighted toward the two things that, per current published research, cause the overwhelming majority of AI-search invisibility: blocked crawlers (40 pts) and missing discovery trail — sitemap + llms.txt (40 pts combined).
Why this instead of the free checkers
Search "AI visibility checker" and you'll find eight-plus free tools (isvisible.ai, llmpulse.ai, siftly.ai, and others) that already do the scoring for free — that part of the market is a commodity and not worth competing on head to head.
None of them write the fix. This tool's differentiator is that
aivisible-fix fix outputs a ready-to-deploy patched robots.txt (every
existing line preserved, blocked AI agents explicitly re-allowed) and a
starter llms.txt — output, not just diagnosis. The natural extension
(not built yet — see ROADMAP below) is a GitHub App that opens this as a
pull request automatically, the way Dependabot does for dependency bumps,
plus scheduled re-audits so a clean report doesn't silently rot as new
crawlers ship.
Badge
$ aivisible-fix badge https://example.com
Wrote aivisible-badge.svg (score 40/100). Host it yourself and embed:
<a href="https://example.com"><img src="/aivisible-badge.svg" alt="AI-visible: 40/100"></a>
Static SVG, generated locally — no server or account required. Color tracks score (red under 50, amber under 80, green at 80+).
Install
pip install -e .
No dependencies beyond the Python 3.10+ standard library — deliberately, so it's trivial to also ship as a single-file GitHub Action.
Status
v0.1 — functional CLI, tested against live sites (see commit history / this was built and smoke-tested against example.com and nytimes.com, correctly detecting NYT's well-documented blanket block of AI crawlers). Not yet published to PyPI or packaged as a GitHub Action — see BUSINESS_PLAN.md for what's next and what needs a human to do it (PyPI account, GitHub App registration, a payment processor for the paid tier).
Project details
Release history Release notifications | RSS feed
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 aivisible_fix-0.2.0.tar.gz.
File metadata
- Download URL: aivisible_fix-0.2.0.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ceb8bd08ee8f35e38437b0da0cfbbf1aaa357b2fb86c19de8b93f47506bda87c
|
|
| MD5 |
298931d0cb77def5e117d670bc680811
|
|
| BLAKE2b-256 |
69fc42a5ae900e6efe61a3181cf8870a72f515e2d386f608c9b7dd19f849e046
|
Provenance
The following attestation bundles were made for aivisible_fix-0.2.0.tar.gz:
Publisher:
publish.yml on jimmybuggella-star/aivisible-fix
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aivisible_fix-0.2.0.tar.gz -
Subject digest:
ceb8bd08ee8f35e38437b0da0cfbbf1aaa357b2fb86c19de8b93f47506bda87c - Sigstore transparency entry: 2206700543
- Sigstore integration time:
-
Permalink:
jimmybuggella-star/aivisible-fix@3b98fddbd0bdfa7fd3aec6879fc2c36f6565c216 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/jimmybuggella-star
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3b98fddbd0bdfa7fd3aec6879fc2c36f6565c216 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file aivisible_fix-0.2.0-py3-none-any.whl.
File metadata
- Download URL: aivisible_fix-0.2.0-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a4b337289589fe613dea11617241ab979956a79c0ebd68bbdefcf398af0972e
|
|
| MD5 |
3f8be64223f09853fe476d8d16975774
|
|
| BLAKE2b-256 |
3b9bfb03e9a87a76d5a818a4eeb0319fb63d82f865b3c37128ecfdcfc7283d1b
|
Provenance
The following attestation bundles were made for aivisible_fix-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on jimmybuggella-star/aivisible-fix
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aivisible_fix-0.2.0-py3-none-any.whl -
Subject digest:
5a4b337289589fe613dea11617241ab979956a79c0ebd68bbdefcf398af0972e - Sigstore transparency entry: 2206700562
- Sigstore integration time:
-
Permalink:
jimmybuggella-star/aivisible-fix@3b98fddbd0bdfa7fd3aec6879fc2c36f6565c216 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/jimmybuggella-star
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3b98fddbd0bdfa7fd3aec6879fc2c36f6565c216 -
Trigger Event:
workflow_dispatch
-
Statement type: