Skip to content

Make the site agent-ready for AI/LLM crawlers - #2

Merged
yonatanlou merged 2 commits into
mainfrom
agent-ready-seo
Jul 15, 2026
Merged

Make the site agent-ready for AI/LLM crawlers#2
yonatanlou merged 2 commits into
mainfrom
agent-ready-seo

Conversation

@yonatanlou

Copy link
Copy Markdown
Owner

What & why

Makes yonatanlou.github.io discoverable and consumable by AI agents and LLM crawlers (ChatGPT, Claude, Perplexity, Gemini, …), based on the practices in jlhernando.com and joost.blog.

Constraint: the site is a static Eleventy build on GitHub Pages — no custom HTTP headers, no request-time content negotiation. So everything here is static-output only. Techniques needing an edge (HTTP Link headers, Accept: text/markdown negotiation, MCP/WebMCP) are intentionally out of scope. Full rationale in docs/superpowers/specs/2026-07-15-agent-ready-design.md.

Changes

  • public/robots.txt — explicit Allow for named AI agents (GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, Claude-User, anthropic-ai, PerplexityBot, Google-Extended, Applebot-Extended, CCBot, Meta-ExternalAgent, cohere-ai, Bytespider), Content-Signal: ai-train=yes, search=yes, ai-input=yes per block, and a Sitemap: line.
  • /llms.txt + /llms-full.txt — build-generated index and full raw-Markdown corpus of all posts.
  • Per-post Markdown — each post also emitted as a clean …/index.md (page.rawInput), advertised via <link rel="alternate" type="text/markdown">.
  • JSON-LD structured dataBlogPosting on posts; WebSite + Person (with sameAs/jobTitle/worksFor/alumniOf) elsewhere.
  • Meta tags — page-aware <title>, author, canonical, Open Graph, Twitter Card, sitewide rel="describedby"/llms.txt.
  • _data/metadata.js — default OG image, twitter handle, sameAs list reused by JSON-LD.
  • Incidental fix: the newest post's source file had a stray control char (\003) in its filename, producing a broken %03 URL on the live site. Renamed.

Verification

  • npx @11ty/eleventy build passes.
  • All 15 generated JSON-LD blocks parse as valid JSON.
  • Generated /robots.txt, /llms.txt, /llms-full.txt, and 7 per-post .md files verified.
  • rel="alternate" type="text/markdown" present on posts, absent on non-posts.
  • Markdown output is clean (no HTML-entity escaping of apostrophes).

Add static, GitHub Pages-compatible signals for AI agents and LLM
crawlers, following jlhernando.com and joost.blog:

- public/robots.txt: explicit Allow + Content-Signal (ai-train/search/
  ai-input=yes) for named AI agents (GPTBot, ClaudeBot, PerplexityBot,
  Google-Extended, CCBot, ...) plus a Sitemap reference.
- /llms.txt and /llms-full.txt generated at build time.
- Per-post Markdown (…/index.md) via page.rawInput, advertised with
  <link rel=alternate type=text/markdown>.
- JSON-LD: BlogPosting on posts, WebSite + Person elsewhere.
- Meta: page-aware <title>, canonical, Open Graph, Twitter Card, and a
  sitewide rel=describedby link to /llms.txt.
- metadata.js: default OG image, twitter handle, sameAs social list.

Also fix a stray control char (\003) in the newest post's filename that
produced a broken %03 URL.
@yonatanlou
yonatanlou merged commit 71e5a51 into main Jul 15, 2026
2 checks passed
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