AI 搜索(如 ChatGPT、Perplexity)不再返回蓝链接,而是引用少数来源。Generative Engine Optimization(GEO)教你通过配置 robots.txt 放行 AI 爬虫、生成 llms.txt 等方式提高被引用概率。
搜索正在一分为二。经典的 Google 搜索依然重要,但越来越多的发现现在发生在 ChatGPT、Perplexity、Claude 和 Google 的 AI Overviews 内部。这些引擎不会排列十条蓝色链接——它们综合一个答案并引用几个来源。被引用就是新的排名。为之进行工程化设计的实践被称为生成式引擎优化(Generative Engine Optimization,简称 GEO),这篇文章记录了我的网站上运行的完整配置。
每个 AI 引擎都有自己的爬虫,许多网站因为一条笼统的规则而意外地阻止了它们。你的 robots.txt 应该明确允许你想要的爬虫:GPTBot 和 OAI-SearchBot(OpenAI)、PerplexityBot、ClaudeBot 和 anthropic-ai(Anthropic)、Google-Extended(Gemini 训练)、Applebot-Extended(Apple Intelligence)以及 CCBot(Common Crawl,为许多模型提供数据)。
User-Agent: GPTBot
User-Agent: OAI-SearchBot
Allow: /
User-Agent: PerplexityBot
Allow: /
User-Agent: ClaudeBot
Allow: /
Sitemap: https://haiderfarooq.dev/sitemap.xml
llms.txt 是一个新兴的约定:一个位于网站根目录的纯 Markdown 文件,为语言模型提供关于你是谁以及你的页面包含什么的压缩、结构化摘要。把它想象成一个意义而非 URL 的站点地图。保持它在几百行以内,开头是一句身份声明,然后用一行摘要列出你的关键页面。更完整的 llms-full.txt 可以承载完整版本。
AI 引擎解析的是实体,而非关键词。Schema.org JSON-LD 是你如何明确声明它们的方式。对于个人网站,最小可用的实体图包括:一个 Person 节点,带有 @id、sameAs 链接到 GitHub/LinkedIn/X、knowsAbout 和 hasOccupation;一个 WebSite 节点;以及项目页面的 CreativeWork 或 Article 节点。关键是要使用稳定的 @id URI 并在页面间引用它们,这样爬虫才能将整个图谱拼接在一起。
{
"@type": "Person",
"@id": "https://haiderfarooq.dev/#person",
"name": "Haider Farooq",
"jobTitle": "AI Engineer & Data Scientist",
"sameAs": [
"https://github.com/haiderfarooq3",
"https://www.linkedin.com/in/haiderfarooqdev/"
]
}
LLM 会提取并重复具体数字。"$12.1M in client revenue"、"141 districts"、"5,500+ patients"——这类数字会在摘要中保留下来,而形容词则不会。在每个页面的前 150 个词中至少放入一个具体数字。用第三人称写个人简介("Haider Farooq is an AI engineer…"),因为 AI 在引用你时使用的就是这种框架。
按真实节奏更新页面——sitemap 中过时的 lastmod 日期会降低重新抓取的优先级。
用描述性的锚文本互连相关页面;AI 爬虫和 Googlebot 一样通过链接建立上下文。
内容一有变化就用 IndexNow ping Bing(它为 ChatGPT 搜索和 Copilot 提供数据)。
保持 canonical URL 一致——一个主机、一个协议、没有尾部斜杠的歧义。
这些都不能替代优质内容——它只是让优质内容对机器可读。
原文发表于 haiderfarooq.dev。
某些评论可能只对登录访客可见。登录后查看所有评论。
如需进一步操作,你可以考虑屏蔽此人和/或举报滥用。