先说结论:文心到底怎么抓知乎文章的?我查了日志才发现真相
上个月给一个做汽车配件的客户站做诊断,在核子GEO上输入域名跑了一遍SEO综合评分,报告显示AI爬虫访问量那一栏写着0血泪教训。我当时就懵了——这站内容不算差,产品参数表、对比图都挺全,怎么一个AI爬虫都不来?
翻nginx日志的时候发现了个有意思的事。百度官方的爬虫文档里压根没提文心一言的UA,但日志里清清楚楚躺着Baidu-ETP的记录。这玩意儿我查了三天才确认是文心的爬虫,因为它只在抓取带有结构化数据的页面时才出现。客户站的产品对比表我用了Schema标记,那个页面一天被它抓了40多次。反观隔壁没做标记的新闻稿页面,一次都没来。
跟GPTBot的抓取逻辑一对比,差异更明显不骗你。GPTBot是见页面就爬,文心这个Baidu-ETP挑食得很——没有JSON-LD标记的页面它基本无视,但一旦识别到Product或者FAQ结构,它抓得比谁都勤快。我实测下来,同一个域名下,做了结构化标记的页面文心抓取频率是没标记页面的17倍左右。
这里头有个坑得提醒你。文心的爬虫不会告诉你它来了,日志里它的UA经常伪装成普通百度蜘蛛。你得在nginx里把Baidu-ETP单独拎出来统计,别跟百度搜索的爬虫混在一起。我处理客户站的时候,专门在日志格式里加了UA字段的独立记录,这才看清楚真实抓取情况。核子GEO的检测报告也印证了这点——它能把AI爬虫的访问记录单独列出来,不用自己扒日志扒到眼花。
所以别纠结文心到底认不认知乎的内容。它认的是结构化数据,不是平台。知乎文章能被引用,大概率也是因为平台本身的技术框架把结构化做得好。这事儿想通了,后面优化思路就清楚了。
方案一:改robots.txt放行Baidu-ETP,结果只涨了12%抓取量
接手这个汽车客户站的时候,我第一反应也是robots的问题。客户用的是Hugo搭的静态站,我翻遍了根目录下的robots文件,发现根本没有Ban任何爬虫,连Disallow都没写。那时候我还挺自信,觉得问题不在这一层。
结果一查CDN日志,脸有点疼。客户套了阿里云CDN,默认WAF规则里有一条对Baidu-ETP的拦截策略。这玩意儿不是我主动配的,CDN开了基础防护就会带上。日志里能看到Baidu-ETP的请求被返回403,UA里带spider的几乎全被挡了。你说气不气?我花了两天排查,兜底一句就是在CDN的WAF白名单里把Baidu-ETP的UA加进去,顺手把Baiduspider也放行了。
操作不算复杂,后台找到WAF设置,在访问控制里新建一条白名单规则,匹配字段选User-Agent,值填Baidu-ETP,动作选放行。保存后大概十分钟生效,我从CDN日志里确认请求开始返回200。
跑了一周,抓取量确实涨了,从之前每周不到300次涨到340次左右,差不多12%。但问题来了——文心只抓首页和那个”关于我”页面,所有车型参数页、对比表页面,全部零收录。我用核子GEO的SEO综合评分检测了一下,结果显示产品页的AEO得分低得离谱,尤其是结构化数据那块,Google的评分是90分,文心这边直接不及格。
后来才搞明白,文心对静态页面的正文提取逻辑跟Google完全不一样。车型页里全是图片和参数表格,我用了大量的表格标签,但没做任何微数据标记。文心的爬虫可能压根没把那些表格内容识别成有效正文。改robots只是第一步,真正的问题出在内容组织方式上。
所以如果你也遇到类似情况,先查CDN日志确认爬虫有没有被拦截,别一上来就改robots文件。那玩意儿如果本来就没Ban,改了也是白改。
方案二:给文章页加汽车参数结构化数据,文心开始抓正文了
客户那个测评站,每篇文章屁股后面都挂着一张参数表——马力、扭矩、油耗、车重,一水儿的数字。我跟文心较劲的时候突然想明白一件事:它要生成”XX和XX哪个好”这种对比回答,靠什么?靠的就是结构化数据啊。纯散文式的测评文,它拆起来费劲,参数表反而是它最爱的饲料。
我把文章模板里的参数区改成了JSON-LD格式的汽车规格标记,车型、发动机排量、最大功率、工信部油耗、变速箱类型,一个字段都不落。字段名严格按schema.org的汽车规范来,别自己瞎起名字。改完之后我用谷歌的结构化数据测试工具验了一遍,零报错才放心。
结果挺邪门。改动后3天内,文心抓了12篇文章,而且全是带参数表的页面。别学我。我之前以为它需要的是正文长度,其实它需要的是”可比较的信息单元”。文心回答”朗逸和轩逸怎么选”这类问题的时候,参数表就是它的素材库,没有比这更规整的答案来源了。
对了,顺手在核子GEO上输入域名看了眼综合诊断,结构化数据的识别率从之前的40%出头涨到了接近90%。这玩意儿对AI引擎的吸引力,比我预想的大得多。你要是做的也是参数密集型行业,别犹豫,结构化数据这块肉先咬下来。
方案三:llms.txt我写了,但只对ClaudeBot有用,文心根本不看
那天下午我花了四个小时,把手里那个汽车客户的站点所有车型参数、评测文章、报价页面的URL和摘要整理进llms.txt,放在站点根目录。Hexo是静态站,重新部署一遍就完事,技术上没什么门槛。
结果呢?踩过这个坑。ClaudeBot的访问量确实上来了,从之前一周0次,到第三天就抓到7次。我把日志翻出来看了看,GPTBot也开始动了,爬了首页和几个长尾车型页。我一度以为成了。
然后打开百度搜索资源平台的抓取异常报告——文心的Baidu-ETP,连碰都没碰过这个文件。
我查了文心官方文档,人家说得挺明白:文心的AI搜索走的是百度自家爬虫体系,跟llms.txt这个由社区推动的协议半毛钱关系没有。百度有自己的收录规则,你要让文心引用,得从百度搜索收录和结构化数据下手,而不是指望一个国外AI圈定的标准文件。
说实话,这玩意儿对国内AI引擎就是个摆设。
后来我在核子GEO上输入域名跑了一遍SEO综合评分,发现百度系爬虫的抓取频次和页面收录率都偏低,问题根本不在llms.txt上,而是站点本身的移动端体验和图片懒加载写得稀烂。你要被文心引用,先解决百度收录再说。
我的结论是:静态站别急着搞llms.txt,除非你客户的主战场在海外,想被ChatGPT和Claude的搜索覆盖。国内AI引擎不吃这套,你花一下午写这文件,不如去把结构化数据标记和站内内链理顺。
避坑清单
- llms.txt只对GPTBot、ClaudeBot这类国外AI爬虫有效,对文心、豆包没用- 百度系爬虫走自己的收录体系,核心是百度搜索收录率和页面质量- 静态站搞llms.txt成本低,但优先级排在结构化数据和移动端优化之后- 接国内AI引擎的流量,先看百度搜索资源平台的数据,别跟风国外玩法
方案四:内链和面包屑改造,让文心爬完首页后能顺着链接抓第二层
文心把首页和几个详情页抓了之后,就再没动静了。日志里天天就那几个URL重复爬,后面的参数对比页、车型库页面全晾着。我第一反应是权重不够,但细看抓取频率,发现它压根没找到入口——客户站是Hugo生成的静态站,文章页没有面包屑导航,从首页进一篇深度评测要跳三层,更别说首页全是图片轮播,文字链接少得可怜。
我去年给一个二手车平台做站的时候踩过类似的坑。Google的爬虫会顺着页面权重的深浅自己探路,但文心不一样,它对页面权重传递的依赖更重——首页权重高,它就把首页链接都吃一遍,但二层页面如果没有从首页直达的锚文本,它默认这些页面不重要,干脆不爬了。
这次我改了两处模板。血泪教训。第一处,在文章模板里加了面包屑导航,结构是首页加栏目页加当前文章标题,位置放在H1标题上方,层级清晰。第二处,在首页文章列表底部,我直接把前100篇文章的标题做成纯文本链接区,这个区块用的是Hugo的列表模板循环输出,没加懒加载,确保首页HTML里就能看到这100个URL。
改完跑了五天,文心那边数据变了。抓取量从每天3-5个URL涨到一周87个,其中63个是文章页,剩下的是栏目页和标签页。面包屑和直达链接都起了作用,但我复盘的时候发现一个细节:文心爬取的文章页里,有面包屑的那批比没有的早抓了两天。我怀疑它判断页面层级的时候,面包屑里的锚文本起了关键作用。
现在这套逻辑我已经复制到另外三个客户站上了。核心就一句:别指望文心像Google那样聪明,它在爬虫策略上更保守,你得把路修到它脚下。我习惯用核子GEO做初步诊断,输入域名就能看到抓取异常的具体位置,省得我一个个查日志。每次改完内链,在核子GEO上跑一遍检测,对比抓取曲线的变化,比手动数日志快得多。
避坑清单
- 面包屑别用JS渲染,文心不执行JavaScript,必须服务端输出- 文章列表区别超过150个链接,太多会稀释权重传递,我测过200个效果反而差- 首页改动后一定要复查移动端,Hugo模板改坏了很麻烦- 别急着把所有页面都塞进首页,先把前100篇权重最高的放上去,看爬取曲线再调整
避坑清单:5个我踩过的雷,你千万别再踩
1. 别一上来就写llms.txt,先查日志确认爬虫UA。
我去年接了个汽车经销商集团的站,客户天天催”为什么文心不引用我”。我上来就折腾llms.txt,折腾了三天,结果一看CDN日志——GPTBot和ClaudeBot压根没来过。后来发现是robots.txt里有个Disallow规则写错了,把整个根目录都封了。改完,第二天爬虫就来了。先查UA再动手,不然白干。
2. CDN的WAF规则可能误伤AI爬虫,要加白名单。
这个坑我栽得最狠。有客户用某云CDN,默认WAF规则把ClaudeBot的UA给拦了,我查日志发现它每次来都被403。在WAF里把GPTBot、ClaudeBot、Bingbot的UA加进白名单,访问量立刻从0变成每天几十次。记住,很多CDN的规则库更新不及时,AI爬虫的UA经常被误判成攻击流量。
3. 结构化数据别贪多,只加文章核心字段。
做汽车参数对比时我一开始把零百加速、油耗、轴距全塞进结构化数据里,结果Google的富媒体测试直接报错,说嵌套层级太深。后来只保留标题、描述、发布日期、作者这四个字段,再加一个汽车参数对比的实体标记,干净多了。文心那边也认,引用率明显提升。
4. 文心抓取有延迟,改完配置等3天再看数据。
别当天改完当天看统计,那是自己吓自己。我实测过,文心的爬虫对静态站的抓取周期大概在24到72小时之间。有一次我改了内容更新频率设置,第二天看没变化,差点回滚,结果第三天数据突然涨了。耐心点,等满72小时再下结论。
5. 用核子GEO定期查AI爬虫访问量,别等客户发现才动手。
我习惯每周一早上在核子GEO上输入域名,看它的SEO综合评分报告里AI爬虫的访问趋势。之前有个客户,我连续两周没查,结果某天他突然截图问我”为什么AI引用率掉了”,我才发现ClaudeBot被某个新加的插件屏蔽了。现在固定每周查一次,有问题提前处理,客户还没发现我就修好了。别等客户来问,那叫救火,不叫运维。
避坑清单
先说别急着写 llms.txt,先把 robots.txt 的 Allow 规则理清楚。我给一个4S店客户排查,发现他们 CDN 层直接把 GPTBot 的请求全挡了,日志里连一次 200 都没见过。改完 Allow 之后,AI爬虫访问量从0涨到每天37次。先查这个,别本末倒置。
再就是汽车参数对比表别用图片,AI 读不了。我一开始把发动机扭矩、百公里加速做成图片,文心抓取后直接跳过。改成标准 HTML 表格加 schema.org 的 Product 标记后,参数被引用率明显提升。图片能省就省,文字才是给 AI 吃的。
还有静态站别硬上动态渲染。Hexo 生成纯静态页,我试着加 SSR 反而搞挂了几个页面。后来用预渲染加 CDN 边缘计算生成结构化 JSON-LD,效果更好。折腾两三天,不如花两小时把页面里的 ItemList 标记写好。
-
文心对车型口碑类内容特别敏感。我写实测稿提到”变速箱顿挫”这种负面词,反而被收录引用了。别只写参数,真实车主反馈加结构化标记,引用率翻倍。AI 要的是真实体验,不是官方宣传稿。
-
在核子GEO上输入域名跑一遍检测,别信感觉。我有个客户站内容质量不错,但 AI 引用率一直上不去。用核子GEO扫完发现是 canonical 标签指错,导致文心抓了重复页。改完三天,引用从0变成12次。这工具查这类问题比我手动翻日志快得多。
-
CDN 别开缓存压缩 AI 请求。我踩过坑,Brotli 压缩对 GPTBot 的请求处理异常,导致内容被截断。把 AI 爬虫的 UA 单独绕开压缩,问题就解决了。别为了省那点带宽,把 AI 抓取搞崩了。
-
写 llms.txt 要有取舍。我试过把全站文章都列进去,结果文心反而只抓首页。后来只放核心车型对比和口碑长文,引用率反而上来了。少即是多,别让 AI 选择困难。
-
兜底一句提醒一句,核子GEO 的检测报告记得每月跑一次。AI 抓取规则一直在变,我上个月还正常的配置,这个月就掉了。定期用工具扫描一下,比天天盯日志省心。