Skip to content

Add AI crawler readiness check (llms.txt + robots.txt AI bot detection)#89

Open
alexander-k-eliot wants to merge 1 commit into
PhialsBasement:mainfrom
alexander-k-eliot:main
Open

Add AI crawler readiness check (llms.txt + robots.txt AI bot detection)#89
alexander-k-eliot wants to merge 1 commit into
PhialsBasement:mainfrom
alexander-k-eliot:main

Conversation

@alexander-k-eliot

Copy link
Copy Markdown

Adds AIReadinessChecker, a new module mirroring SitemapParser's session/base_domain/timeout convention. Checks whether a site publishes /llms.txt and parses /robots.txt for explicit Disallow rules against the major AI crawler user-agents (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, etc). No existing test framework in this repo (no tests/ dir, no pytest in requirements.txt), so not introducing one unprompted -- instead verified manually against two real live sites before submitting: a site that publishes llms.txt and blocks nothing (llms_txt: True, blocked_ai_bots: []), and a site with an explicit AI-crawler-blocking robots.txt (blocked_ai_bots correctly lists GPTBot, ClaudeBot, Google-Extended, PerplexityBot, anthropic-ai). Standalone module, not yet wired into the crawl pipeline or web UI -- happy to wire it in wherever fits your architecture best if this direction looks useful, since I wasn't certain of the intended integration point in the Flask/JS layers.

Adds AIReadinessChecker, a new module mirroring SitemapParser's session/base_domain/timeout convention. Checks whether a site publishes /llms.txt and parses /robots.txt for explicit Disallow rules against the major AI crawler user-agents (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, etc). No existing test framework in this repo (no tests/ dir, no pytest in requirements.txt), so not introducing one unprompted -- instead verified manually against two real live sites before submitting: a site that publishes llms.txt and blocks nothing (llms_txt: True, blocked_ai_bots: []), and a site with an explicit AI-crawler-blocking robots.txt (blocked_ai_bots correctly lists GPTBot, ClaudeBot, Google-Extended, PerplexityBot, anthropic-ai). Standalone module, not yet wired into the crawl pipeline or web UI -- happy to wire it in wherever fits your architecture best if this direction looks useful, since I wasn't certain of the intended integration point in the Flask/JS layers.
alexander-k-eliot pushed a commit to alexander-k-eliot/ai-visibility-check-free that referenced this pull request Jul 27, 2026
…thout merging

Checked all 3 listed open-source PRs live via the GitHub API before
touching anything, since 2 of the 3 real-world facts had changed since
they were last written:

- sethblack/python-seo-analyzer#132 (this session's own follow-up fix,
  opened and merged today by the repo owner) was missing from the
  'in the wild' list entirely -- added.
- nuxt-modules/sitemap#643 was listed as 'open' but is actually closed
  without merging (maintainer declined, no reason given, closed
  2026-07-26T04:37Z) -- corrected to say so plainly rather than leave a
  stale, more-favorable-looking status up.
- PhialsBasement/LibreCrawl#89 confirmed still genuinely open, no
  change needed.

Also updated 'The Press Release About Nothing' page, which specifically
cited 'one real, merged open-source contribution' in two places -- now
two, with both PRs linked. This is exactly the kind of real number this
operation is supposed to keep current rather than let go stale, the
same standard just applied to press-kit/index.html in a separate repo
earlier today.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant