ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

GEO 实战:让 AI 搜索引用你的内容,从 robots.txt 到 llms.txt 全解析

GEO 实战:让 AI 搜索引用你的内容,从 robots.txt 到 llms.txt 全解析 1. 为什么你的网站在 AI 搜索里“查无此人”先说一个我最近帮朋友排查的真实案例。他运营了一个做工业传感器选型的技术博客内容全是实打实的选型参数、接线图、Modbus 寄存器地址表在传统搜索引擎里排名一直不错。但从前年下半年开始他明显感觉到来自搜索的流量在往下掉而与此同时他自己用 AI 搜索工具查“某型号压力变送器怎么接线”时AI 给出的答案里引用的全是几个他听都没听过的小站他自己的文章一个字都没被提到。他第一反应是“AI 是不是看不上我的内容”第二反应是“是不是我内容质量不行”。我让他把服务器日志拉出来按 AI 爬虫的 User-Agent 过滤了一遍结果很直接AI 的抓取器压根就没怎么来过他的站。不是内容不行是门都没让人家进。这就是 GEOGenerative Engine Optimization生成式引擎优化要解决的核心问题。它和传统 SEO 不是一回事。传统 SEO 的目标是“让搜索引擎把我的网页排到前面”用户点进来才算数GEO 的目标是“让 AI 在生成答案的时候把我的内容当作可信来源引用进去”用户可能根本不点你的链接但你的品牌、你的数据、你的观点已经出现在答案里了。这两件事的底层逻辑差别很大。传统搜索引擎主要看链接、关键词、页面权重AI 搜索在检索阶段依赖的是可抓取性、内容结构化程度、语义清晰度在生成阶段依赖的是内容的可信度和可引用性。你内容再好如果 AI 爬虫进不来、读不懂、不敢引用那在 AI 搜索的世界里就等于不存在。这篇文章我打算把这件事拆开讲透AI 搜索到底怎么决定引用谁、robots.txt 和 llms.txt 这两个文件到底该怎么写、代码层面有哪些必须改的地方、以及我踩过的那些坑。适合所有还在靠内容吃饭的站长、技术博主、独立开发者以及负责企业官网 SEO/GEO 的同学。哪怕你只会改几个文本文件看完也能立刻动手。2. AI 搜索的引用链路拆解它到底在哪一步把你筛掉了2.1 从“抓取”到“引用”的四段链路很多人以为 AI 搜索就是“大模型直接回答”其实背后是一条完整的流水线。我把它拆成四段你对照自己的站看看卡在哪一段。第一段是发现与抓取。AI 搜索的爬虫会像传统搜索引擎一样去发现网页。区别在于很多 AI 爬虫对 robots.txt 的遵守程度、对抓取频率的敏感度、对 JS 渲染的依赖程度都不一样。有的爬虫只抓 HTML 原始内容不执行 JavaScript有的会执行但预算有限。如果你的核心内容全靠前端 JS 渲染出来那在“只抓原始 HTML”的爬虫眼里你的页面就是一片空白。第二段是解析与切分。抓到的页面会被切成一段一段的“块”chunk因为大模型的上下文窗口有限不可能把整个网页塞进去。切分逻辑通常是按标题层级、段落、列表来切。如果你的页面是一大坨没有标题、没有列表、没有语义标签的纯文本切出来的块就是乱的AI 很难判断哪一块在讲什么。第三段是检索与召回。用户提问后系统会从索引里召回一批候选块。这一步靠的是向量相似度和关键词匹配的混合。你的内容如果语义模糊、代词满天飞“它”“这个”“上面说的”向量化之后就会和用户的真实问题对不上。第四段是生成与引用。模型从召回的块里挑出最可信、最相关的组织成答案并标注来源。这一步它偏好的是有明确事实、有数据、有步骤、有出处、语气客观的内容。营销味重、全是形容词、没有具体信息的段落基本不会被引用。2.2 为什么“内容好”不等于“会被引用”我见过太多站长卡在一个认知误区里我内容原创、我写得深、我字数多凭什么不引用我。问题在于AI 搜索的引用决策不是“内容质量评分”而是“这段内容能不能被安全地、准确地、低成本地用在答案里”。举个具体的对比。同样讲“压力变送器接线”A 站写的是“我们的产品接线非常方便采用先进技术深受客户好评”B 站写的是“两线制接线电源正极接变送器 端信号线接 - 端负载电阻串在回路中典型值 250Ω”。AI 要生成答案时B 站这段话可以直接用A 站那段话用了等于没说。所以被引用的是 B 站哪怕 A 站权重更高。这就引出一个关键结论GEO 的核心不是讨好算法而是降低 AI 使用你内容的成本。你的内容越容易被切分、被理解、被直接引用被引用的概率就越高。2.3 三个最容易被忽略的“隐形门槛”除了内容本身还有三个技术门槛经常被忽略而且它们往往才是“查无此人”的真正原因。第一个是robots.txt 把 AI 爬虫挡在门外。很多站长早年为了防采集在 robots.txt 里写了Disallow: /或者屏蔽了一大批 User-Agent结果把 AI 爬虫也一起挡了。更隐蔽的是有些 CDN 或安全插件默认就拦截非主流爬虫你在 robots.txt 里放行了也没用。第二个是llms.txt 缺失或写错。llms.txt 是这两年才逐渐被 AI 搜索生态接受的一个约定文件放在网站根目录用来告诉 AI“我这个站是干什么的、哪些内容值得看、怎么引用”。它不是强制标准但越来越多的 AI 检索系统会优先读取它。没有它AI 对你的站就是“盲人摸象”。第三个是页面结构对机器不友好。标题层级混乱、正文全在图片里、关键信息藏在折叠面板后面、URL 带一堆无意义参数这些都会让切分和召回效果大打折扣。3. robots.txt 实战把 AI 爬虫请进门而不是关在门外3.1 先搞清楚谁在抓你动手改之前先做一件事看日志。把最近 30 天的访问日志拉出来按 User-Agent 分组统计。你会看到几类典型的 AI 爬虫标识比如带有GPTBot、ClaudeBot、PerplexityBot、Google-Extended、Bytespider这类字段的请求。我一般用一条命令快速统计awk -F {print $6} access.log | sort | uniq -c | sort -rn | head -50这条命令把日志里 User-Agent 字段拎出来排序你一眼就能看出哪些爬虫来过、来了多少次。如果某个 AI 爬虫一次都没出现那基本可以确定它被挡了或者它根本发现不了你的站。注意不同 CDN 的日志格式不一样字段位置可能不同。如果上面这条命令输出不对先head -1 access.log看一眼格式再调整字段序号。3.2 robots.txt 的正确写法robots.txt 的语法很简单但坑很多。核心原则是默认放行只挡你真正想挡的。下面是我现在给技术博客用的模板你可以直接抄User-agent: * Allow: / User-agent: GPTBot Allow: / User-agent: ClaudeBot Allow: / User-agent: PerplexityBot Allow: / User-agent: Google-Extended Allow: / Sitemap: https://example.com/sitemap.xml几个关键点解释一下。User-agent: *加Allow: /是兜底保证默认放行。然后针对主流 AI 爬虫单独声明放行这样做的好处是万一将来某个爬虫的默认策略变了你这里显式放行能避免误伤。最后一行 Sitemap 一定要写它是爬虫发现你内容的主要入口之一。那什么情况下该挡我的经验是后台路径、搜索结果页、带 session id 的动态 URL、纯 API 接口这些该挡就挡它们对 AI 引用没价值还会浪费抓取预算。写法就是User-agent: * Disallow: /admin/ Disallow: /search? Disallow: /api/ Allow: /提示Disallow和Allow同时存在时匹配更长的规则优先。所以Allow: /放在Disallow后面是安全的它只对没被 Disallow 命中的路径生效。3.3 那些“改了 robots.txt 也没用”的情况这是我最想提醒的一点。很多人改完 robots.txt 发现 AI 爬虫还是不来原因往往不在 robots.txt 本身。第一种情况是CDN 或 WAF 拦截。有些云厂商的默认防护规则会把“非浏览器”的请求直接拦掉返回 403。你在 robots.txt 里放行一百遍也没用因为请求根本没到你的源站。解决办法是去 CDN 控制台把主流 AI 爬虫的 User-Agent 加进白名单。第二种情况是服务器返回了错误的响应码。爬虫来抓的时候如果你的站返回 503、429 或者超时它就会降低抓取频率甚至放弃。我遇到过一台小服务器AI 爬虫一来就 502查了半天发现是并发连接数太小调大之后立刻正常了。第三种情况是DNS 或证书问题。这个比较少见但确实遇到过站点证书链不完整浏览器能容错爬虫直接拒绝连接。用curl -I https://你的域名看一眼如果报证书错误赶紧修。4. llms.txt 完整写法给 AI 一份“内容说明书”4.1 llms.txt 到底是什么llms.txt 是一个放在网站根目录的纯文本文件作用类似于给 AI 看的“站点说明书”。它用 Markdown 格式写成告诉 AI这个站是做什么的、有哪些核心内容、每块内容大概讲什么、推荐从哪个链接进入。它和 sitemap 的区别在于sitemap 是给所有爬虫的“链接清单”只列 URLllms.txt 是给 AI 的“内容导读”带描述、带结构、带优先级。AI 检索系统读到 llms.txt 后能更快地理解你的站减少误判。4.2 完整写法模板下面是我现在用的 llms.txt 模板结构清晰直接可用# 工业传感器技术博客 专注工业传感器选型、接线、通信协议与故障排查的技术博客内容以实操参数和现场经验为主。 ## 核心内容 - [压力变送器选型指南](https://example.com/pressure-transmitter-guide)涵盖量程、精度、输出信号、供电方式的选型逻辑与参数对照表。 - [Modbus 寄存器地址表](https://example.com/modbus-registers)主流型号的寄存器地址、数据类型、读写权限完整列表。 - [接线与故障排查](https://example.com/wiring-faq)两线制、三线制、四线制接线的常见错误与排查步骤。 ## 可选内容 - [行业标准解读](https://example.com/standards)相关国家标准的要点摘录与实操影响。 - [常见问题](https://example.com/faq)高频问题的简短回答。 ## 联系方式 - 邮箱contactexample.com几个写法要点。第一行# 站点名是必须的AI 靠它识别站点身份。引用块是站点简介一到两句话讲清楚你是干什么的别写营销话术。## 核心内容下面列的是你最希望被引用的页面每条带链接和一句话描述描述里要包含具体信息参数、型号、步骤不要写“很好很全”这种空话。## 可选内容是次要页面。最后可以留联系方式。4.3 写 llms.txt 的五个实操心得第一描述要具体到能被直接引用。比如“涵盖量程、精度、输出信号”就比“内容全面”强一百倍因为前者本身就是可引用的信息。第二链接用绝对路径别用相对路径AI 解析相对路径容易出错。第三控制条目数量。核心内容我一般控制在 5 到 10 条太多了 AI 反而抓不住重点。可选内容也别超过 15 条。第四定期更新。你发了新文章、改了旧内容llms.txt 要同步。我一般每月检查一次把失效链接删掉把新的重点内容加进去。第五别把它当关键词堆砌场。llms.txt 是导读不是 SEO 工具。堆关键词只会让 AI 觉得你在作弊反而降低信任度。注意llms.txt 目前不是强制标准不同 AI 系统对它的支持程度不一样。但它的成本极低收益明确属于“做了不亏”的事。我实测下来加了 llms.txt 之后几个主流 AI 搜索引用我站内容的频率有明显提升。5. 代码层面的改造让 AI 读得懂、切得开、敢引用5.1 结构化数据给内容贴标签AI 切分内容时最依赖的就是 HTML 的语义结构。你要做的第一件事是把该用的标签用对。标题层级必须严格一个页面只有一个h1h2是主要章节h3是子章节不要跳级。我见过很多站为了视觉效果把h2写成div加样式AI 一看就懵了因为它不知道这是标题还是普通文字。正文用article或main包裹段落用p列表用ul/ol表格用table。这些标签 AI 都能识别能显著提升切分质量。更进一步可以加 JSON-LD 结构化数据。比如一篇技术文章可以加Article或TechArticle类型的标记script typeapplication/ldjson { context: https://schema.org, type: TechArticle, headline: 压力变送器两线制接线方法, description: 两线制接线的电源、信号、负载电阻连接方式与常见错误。, author: { type: Person, name: 作者名 }, datePublished: 2025-01-15, dateModified: 2025-03-20 } /script这段标记的作用是告诉 AI这是一篇技术文章标题是什么讲什么谁写的什么时候发的。AI 在判断可信度时作者和日期是重要信号。5.2 服务端渲染别让内容藏在 JS 后面这是最容易被忽略、但影响最大的一点。很多现代前端框架默认是客户端渲染页面初始 HTML 里只有一堆div和script真正的内容要等 JS 执行完才出现。问题在于相当一部分 AI 爬虫不执行 JavaScript或者执行预算很低。它们抓到的就是那个空壳 HTML内容一个字都读不到。解决办法有两个。一是用服务端渲染或静态生成让内容直接出现在初始 HTML 里。二是如果实在改不了架构至少给关键内容做预渲染或者用noscript标签提供降级内容。我帮朋友排查的那个站就是典型的客户端渲染。我让他用curl抓一下页面curl -s https://example.com/article | grep -c 压力变送器结果是 0说明初始 HTML 里根本没有正文。改成服务端渲染后同样的命令返回了几十AI 爬虫的抓取量也跟着上来了。5.3 内容切分友好段落、列表、表格的写法AI 把页面切成块的时候块的质量直接决定召回效果。我的经验是每个段落控制在 3 到 6 行讲清楚一个点。段落太长切出来的块太大向量化后语义不聚焦段落太短信息量不够引用价值低。关键参数、步骤、对比尽量用列表或表格。列表和表格天然就是“可引用单元”AI 可以直接把一行或一格拿去做答案。比如参数对照表AI 引用起来非常方便。避免代词指代。写“该型号的供电电压是 24V”别写“它的供电电压是 24V”。因为块被切出来之后“它”指谁就丢了AI 无法判断。5.4 一个可直接抄的页面结构模板下面是我现在写技术文章用的 HTML 骨架你可以直接套article h1压力变送器两线制接线方法/h1 p本文讲清楚两线制接线的电源、信号、负载电阻连接方式以及三种常见错误。/p h21. 两线制接线原理/h2 p两线制是指电源和信号共用两根线……/p h22. 接线步骤/h2 ol li电源正极接变送器 端。/li li信号线接 - 端负载电阻串在回路中。/li li负载电阻典型值 250Ω。/li /ol h23. 常见错误/h2 table thead trth错误现象/thth原因/thth解决方法/th/tr /thead tbody trtd无信号输出/tdtd电源极性接反/tdtd调换正负极/td/tr /tbody /table /article这个结构的好处是标题清晰、步骤有序、错误用表格对照AI 切分和引用都很顺手。6. 常见问题与排查技巧实录6.1 排查速查表现象可能原因排查方法解决AI 爬虫从不访问robots.txt 拦截或 CDN 拦截看日志 User-Agentcurl 测试放行爬虫加 CDN 白名单爬虫来了但内容没被引用客户端渲染初始 HTML 无正文curl 抓页面 grep 关键词改服务端渲染或预渲染引用了但内容不准确切分混乱代词太多检查标题层级和段落长度规范标签去掉代词引用频率突然下降服务器响应慢或报错看响应码和响应时间扩容修证书llms.txt 不生效路径错误或格式错误浏览器直接访问该文件放根目录检查 Markdown 格式6.2 三个我踩过的坑第一个坑是robots.txt 里的通配符用错。我早年写过Disallow: /*.pdf本意是挡 PDF结果把带 pdf 字样的正常页面也挡了。后来才知道robots.txt 的通配符匹配规则和正则不一样*匹配任意字符$匹配结尾。写之前一定要用在线测试工具验证一遍。第二个坑是llms.txt 编码问题。我一开始用某个编辑器保存默认编码是 GBK结果 AI 读出来是乱码。后来统一用 UTF-8 无 BOM 保存问题解决。这个坑很隐蔽因为浏览器打开看着正常但机器读就是乱的。第三个坑是过度依赖 llms.txt。有段时间我以为写好 llms.txt 就万事大吉结果发现 AI 还是不怎么引用。后来才明白llms.txt 只是“导读”真正决定引用的是页面内容本身的质量和结构。导读写得再好内容不行也白搭。6.3 一个实用的验证流程每次改完配置我都会走一遍这个流程验证用curl -I检查 robots.txt 和 llms.txt 是否可访问返回 200。用curl -s抓一个内容页grep 核心关键词确认正文在初始 HTML 里。去 CDN 控制台确认 AI 爬虫 User-Agent 在白名单里。等 3 到 7 天看日志里 AI 爬虫的访问量有没有变化。用主流 AI 搜索工具搜自己的核心关键词看有没有被引用。这个流程走下来基本能定位 90% 的问题。7. 我个人的几点实操体会做 GEO 这件事最反直觉的一点是它比传统 SEO 更“诚实”。传统 SEO 有很多技巧可以钻空子但 AI 搜索的引用决策更接近“这段内容到底有没有用”。你内容里有没有具体参数、有没有可执行的步骤、有没有明确的事实AI 一读就知道。我现在写技术文章的默认标准是假设读者是一个要照着做的工程师也假设 AI 是一个要摘录的编辑。前者要求我把步骤写清楚后者要求我把结构写清楚。这两个标准其实是一致的都是“降低使用成本”。另外别指望改完立刻见效。AI 搜索的索引更新有自己的节奏我观察下来从改配置到引用量明显变化通常要两到四周。这期间你要做的是持续产出结构化、有具体信息的内容而不是反复折腾配置文件。最后分享一个小技巧把你最希望被引用的那几段内容单独拿出来读一遍问自己“如果我是 AI这段话能不能直接抄进答案里”。如果答案是“能”那这段内容就是合格的 GEO 内容如果答案是“还得改改”那就按这个标准改。这个自检方法比任何工具都管用。
返回列表