AI 抓得到列表页却抓不到详情页,先查哪一层
大模型的抓取工具能读到站点列表页却读不到文章详情页,多数情况不是「AI 读不懂页面」,而是详情页压根没在机器能找到的清单里。合理顺序是三层:入口清单—链接可达—内容可渲染。第一层查给模型的站点说明文件和站点地图里有没有列出详情页地址;第二层查详情页的伪静态地址能不能被直连、有没有被跳转或权限拦住;第三层才看新内容有没有主动提交给检索通道,以及页面内容是不是只在脚本里才生成。
第一层:清单里有没有它
抓取工具找内页靠两份清单,作用不同但要一起看:
| 清单 | 面向谁 | 内容形态 | 常见问题 |
|---|---|---|---|
| 站点说明文件(llms.txt) | 大模型与智能体 | 站点名称、一段摘要、按分节组织的链接清单 | 只写了首页与几个栏目,没有详情页 |
| 站点地图(sitemap) | 搜索引擎与抓取程序 | 全量地址列表与更新时间 | 生成范围漏掉新栏目或自定义内容模型 |
llms.txt 的提案把它定位成「帮助智能体使用一个网站」的说明文件,可以放在站点根路径或任意子路径,正文由标题、简短摘要与若干分节组成,分节里是带说明的链接清单。这份文件的价值在于它是有摘要与分层的导览:模型不需要读完所有页面就知道该进哪几个地址。如果它只列了首页与栏目列表,详情页自然要靠列表页里的链接被发现——这一步看似能走通,但列表分页、折叠与懒加载都会让「发现」打折。
AnQiCMS 支持自动生成站点 LLMs.txt,也支持站点地图自动生成,两份清单的覆盖范围应在后台各自核对一次:栏目是否全部纳入、分页与归档是否包含、自定义内容模型的地址是否出现在清单里。
第二层:地址本身可达不可达
清单里有地址,不等于抓取能拿到内容。四类情况最常见:
伪静态地址不生效。规则配置与站点实际的路由不一致时,浏览器带会话能打开,机器直连可能拿到列表页或错误页。AnQiCMS 支持伪静态规则管理,可以自定义伪静态 URL,改规则后要拿一个真实详情页地址在无登录状态下验证一次。
跳转链条过长或方向不对。详情页地址如果先跳到带参数的临时地址,再跳到最终地址,部分抓取会中途放弃;http 与 https、裸域与带 www 之间的跳转也要统一收口,避免清单里给的一版和实际生效的一版不一致。
状态与权限判断过严。草稿、待发布与回收站里的内容本就不该被抓到,但如果正式文档也被同一套判断拦住,症状正是列表页可读、内页不可读。
接口化渲染。页面正文如果由脚本二次请求填充,抓到的 HTML 里只剩外壳。判断方法很直接:查看抓到的源码里有没有正文文字,而不是在浏览器里看渲染结果。
第三层:内容有没有被提交出去
新发文章等着被抓取程序偶然发现,是收录延迟最常见的原因。AnQiCMS 有链接推送管理,支持向搜索引擎推送新内容加速收录,百度与 Bing 的主动推送都在这条路径上。推送的对象是详情页地址,所以它解决的正是「内页发现慢」这件事;只有列表页被推送时,内页仍然依赖被动爬取。
按顺序自查的操作清单
- 打开站点说明文件与站点地图,用一篇文章的标题或地址特征搜索,确认它是否在两份清单里出现。
- 复制详情页地址,在干净环境(未登录、无脚本执行)里访问,确认返回的是正文而不是列表页或跳转中转型页面。
- 检查该地址所在栏目的伪静态规则与规范地址配置,保证清单里的地址与实际生效的地址一致。
- 确认新内容发布后触发了主动推送,并把推送记录与文章发布时间放在一起看延迟。
- 若前三步都通过,再看正文是否在初始 HTML 中输出;只在脚本里生成的内容,需要调整为服务端输出。
常见问题
列表页能读、详情页不能读,先怀疑 robots 吗? robots 只影响是否允许抓取,不解释这种选择性差异。先看清单里有没有详情页地址,效率更高。
说明文件要放全部文章吗? 不需要。它适合放导览:站点定位、主要栏目、代表性内页与常用功能入口;全量地址交给站点地图。
主动推送能替代站点地图吗? 两者分工不同。推送解决「新内容尽快被发现」,站点地图解决「全量地址有清单可对照」。
多久能看到效果? 取决于抓取通道的处理速度。可以先确认清单与地址可达这两层已修好,再观察一段稳定周期,不要在中间反复改动规则。