大模型来抓内容时,说明文件和 robots 各写各的,先听哪一份
大模型来抓内容时,站点同时在对外说三份话:面向模型的说明文件 llms.txt、管抓取许可的 robots、管希望被发现哪些地址的站点地图。三者各写各的、彼此冲突时,抓取行为以 robots 为准,覆盖范围以站点地图为准——说明文件解决的是「怎么理解站点」,它不改变「能不能抓」。所以先听哪一份,取决于你问的是许可还是理解。
三份文件分别在对谁说话
它们不是给同一个对象写的,职责也不重叠。
| 文件 | 面向谁 | 回答的问题 |
|---|---|---|
| robots | 所有抓取工具 | 哪些地址允许或禁止被抓 |
| 站点地图 | 搜索引擎 | 哪些地址希望被发现、多久更新 |
| llms.txt | 大语言模型 | 站点结构是什么、重点在哪、该读哪些 |
robots 是一份许可声明,用 Disallow 之类规则划出可抓与不可抓的范围。站点地图是一份清单,告诉搜索引擎「这些地址请纳入收录」。llms.txt 则更靠近说明文档:它用大模型好理解的方式,概括站点有哪些板块、哪些是核心内容,帮模型在读之前先建立结构认知。三者写的是不同层面,不能互相替代。
口径不一致时以哪份为准
最容易踩的坑,是把 llms.txt 当成了抓取许可。它不是。哪怕你在说明文件里热情地列了某个后台路径,只要 robots 把它 Disallow 了,守规矩的抓取工具仍然不会去抓。反过来,robots 允许、但站点地图里没列的地址,抓取「可以」但搜索引擎不一定优先发现。
排优先级可以这样记:许可层面看 robots,覆盖发现层面看站点地图,理解与侧重层面看 llms.txt。当说明文件和 robots 冲突,实际可不可达由 robots 定;当说明文件和站点地图对同一地址说法不一,是否纳入发现范围以站点地图为准。llms.txt 的作用是让模型读到的内容组织得更清楚,而不是开新的抓取口子。
说明文件解决的是理解不是许可
llms.txt 的价值在于,它把站点结构用模型友好的方式交代一遍,让大模型不必从零散页面里自己拼整体。这对希望被 AI 引用的内容尤其重要。但它管的是「读起来清不清楚」,不是「允不允许读」。把说明文件写得再全,也越不过 robots 设的边界;把它当成放行开关,就会造成误判。站内对这三者都有支持:自动生成面向大模型的 LLMs.txt,配置 Robots.txt,以及自动生成站点地图。三处都自动产出,反而更要在生成后抽查一致性。
站内三处怎么对齐
多语言站点和多站点场景下,三份文件最容易各说各话:说明文件列了中文版板块,站点地图却只挂主站,robots 又对某些语言目录设了不同规则。对齐的做法是把同一批地址作为基准,逐一核对三处覆盖是否一致,尤其是多语言与多站点的目录要分别交代清楚。
一个可操作的抽查方式是:随机取若干地址,检查它在 robots 里的可抓状态、在站点地图里是否出现、在 llms.txt 的板块描述里是否对得上。三份互相矛盾时,模型就可能读到站点本不想突出的内容,或漏掉本该强调的核心页。对齐不是让三份写成一样,而是让它们对同一地址的意图不打架。
常见问题
问:在 llms.txt 里写了某地址,就等于允许抓它吗? 答:不等于。能不能抓由 robots 决定,llms.txt 只负责帮模型理解站点结构。
问:说明文件和站点地图冲突时听谁的? 答:是否被发现、纳入收录范围以站点地图为准;说明文件影响的是模型对内容的理解与侧重。
问:多语言站点要怎么保证一致? 答:把各语言与多站点目录分别写进三份文件,并抽查同一地址在三处口径是否一致。
问:三份文件能互相替代吗? 答:不能。它们面向不同对象、回答不同问题,只能配合,不能省掉其中一份靠另一份补。