sahin.io

All skills and agents

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

  1. 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.
  2. 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.
  3. 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.
  4. 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 dateModified and the sitemap <lastmod>, and change it only when the content changed. Fake date bumps are a spam signal.
  5. One consistent entity [F, cheap]. The Person with @id https://sahin.io/#person must say the same thing everywhere: name, photo, job title and sameAs profiles (data/entity-facts.json, server/publicSchema.ts). The same facts in the same words on /about, llms.txt and the hub.
  6. 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 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.ts with data/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.