ai-search-optimization
AI search optimization (AIO, also called GEO, AEO or LLMO) for sahin.io/angel-investments, meaning how pages get cited by Google AI Overviews and AI Mode, ChatGPT search, Perplexity, Claude, Gemini and Copilot. Covers the AI crawler list, answer-first writing, cited sources, statistics and quotations, honest freshness dates, entity consistency, llms.txt and how to measure AI visibility, each tagged by how strong the evidence is. Use before writing or changing public copy, robots.txt, llms.txt, the Person entity or dates, and whenever the owner asks about AI search, AI answers, ChatGPT or Perplexity visibility, GEO, AEO or AIO.
- Source file
.claude/skills/ai-search-optimization/SKILL.md
AI search optimization
Adapted from the seo-geo skill in claude-seo
(MIT, Copyright (c) 2026 agricidaniel) and the ai-seo skill in
marketingskills (MIT,
Copyright (c) 2025 Corey Haines), checked against Google, OpenAI, Anthropic,
Perplexity, Apple and Meta crawler documentation in October 2026. Classic SEO
thresholds are in seo-audit.
Evidence tags: [E] primary source or a measured study, [W] weak (one vendor, small sample, correlation only), [F] folklore. Act on [E] first. Never spend effort on [F] alone.
What gets a page cited
- Be crawlable by the search bots, in plain HTML [E]. AI search engines other than Google and Apple do not run JavaScript (Vercel/MERJ crawl study). Everything that matters is in the static HTML here. Keep it that way: no copy that only appears after hydration.
- Answer first [W]. 44% of ChatGPT citations come from the first 30% of a page (Growth Memo, 18,012 citations, February 2026). The H1 and a one-to-two sentence direct answer come before lists, cards and filters. Each H2 section opens with its answer, then the detail. Google says there is no need to chop pages into small chunks [E]; clear headings are enough.
- Cite sources, add statistics and quotations [E]. The Princeton GEO study (KDD 2024) measured: quotations +41%, statistics +31%, citing sources +28%, fluent writing +28% visibility; keyword stuffing −8% to −9%. Lower-ranked pages gained most. Link the publisher's name to the page that holds the figure. Never invent a figure or a quote.
- Honest freshness [W]. AI-cited pages are on average 26% newer than the
organic results for the same query (Ahrefs, 17M citations). Show a visible
"Updated" date that equals the JSON-LD
dateModifiedand the sitemap<lastmod>, and change it only when the content changed. Fake date bumps are a spam signal. - One consistent entity [F, cheap]. The
Personwith@idhttps://sahin.io/#personmust say the same thing everywhere: name, photo, job title andsameAsprofiles (data/entity-facts.json,server/publicSchema.ts). The same facts in the same words on /about, llms.txt and the hub. - Off-site mentions [W]. Branded web mentions correlate with AI Overview visibility (Spearman 0.66) more than backlinks do (Ahrefs, 75k brands). This is owner work: interviews, lists, podcasts, the Lenny's Newsletter recognition. Bought or fake mentions don't help (Google [E]).
What does not move AI citations
- llms.txt: Google ignores it [E], 97% of llms.txt files got no requests in a May 2026 log study [W]. Keep ours (cheap, useful for agents and coding tools), but don't expect citations from it.
- Special "AI schema": Google says structured data is not required for AI features [E]. Keep schema accurate for rich results and entities.
- Fixed 40–60 word answer blocks or question-only headings [F].
AI crawlers
Allow every search and user-fetch bot. Allowing training bots is a licensing
choice and does not change citations. The section copy is
client/public/robots.txt; the root https://sahin.io/robots.txt lives in
~/Code/sahin/web, which we never edit from here (standing-rules).
| Vendor | Training | Search index | User fetch |
|---|---|---|---|
| OpenAI | GPTBot |
OAI-SearchBot |
ChatGPT-User |
| Anthropic | ClaudeBot |
Claude-SearchBot |
Claude-User |
| Perplexity | none | PerplexityBot |
Perplexity-User |
Google-Extended (token; no effect on Search or AI Overviews) |
Googlebot (the only way into AI Overviews and AI Mode) |
Google-Agent |
|
| Apple | Applebot-Extended (token) |
Applebot |
none |
| Meta | meta-externalagent |
meta-webindexer |
meta-externalfetcher |
| Microsoft | none | bingbot (feeds Copilot) |
none |
| Others | CCBot, cohere-ai |
DuckAssistBot, Amazonbot |
MistralAI-User |
Claude's web search draws mostly on Brave's index [W]; Copilot on Bing's.
Bing Webmaster Tools and IndexNow (scripts/indexnow-submit.ts) matter for
both.
Rules the audit enforces
scripts/seo-aio-audit.mjs (see seo-audit for how to run it and the baseline):
| Rule id | Check |
|---|---|
h1-early |
The H1 starts within the first 30% of the page's visible text |
article-citations |
An Article page links at least one source outside sahin.io |
visible-date |
An Article page shows the month and year of its dateModified |
robots-ai-crawlers |
robots.txt names the search bots above and blocks none of them |
Writing checklist for new copy
- First sentence under the H1 answers the query the title targets, naming the entities (Sahin Boydas, the company, the founders, the category).
- Every statistic has a year and a linked source; reuse the count placeholders
(
portfolio-counts-single-source), never type a count. - One real quotation is better than three adjectives. Only quote a public, linkable source.
- Write in definitive sentences. Avoid "might", "could potentially".
- No private deal data, ever (
private-data-boundary).
Measuring AI visibility
- The repo's harness:
scripts/ai-visibility.tswithdata/ai-visibility/prompts.json(3 samples per prompt across engines). Report as "cited 3/5, n=5", never a single run. - Google Search Console "Generative AI performance" report (AI Overviews and AI Mode impressions, no clicks).
- Bing Webmaster Tools "AI Performance" (Copilot citations and grounding queries).
- ChatGPT referrals carry
utm_source=chatgpt.com; treat the count as a floor. - Server logs by user agent (
OAI-SearchBot,Claude-SearchBot,PerplexityBot,*-User), verified against each vendor's published IP list.