别急着给AI爬虫单独写robots.txt,先查空内容页面

我去年踩了个大坑。给一个招聘客户做站点,用Strapi搭的后台,Next.js做前端。客户催着上线,我图省事,tag页面直接扔了个空模板——就一个标题,底下啥也没有。好家伙,三个月后一看,120多个空tag页在通义里躺着,全是零权重。

当时我正纠结要不要给通义爬虫单独写套robots.txt规则,心想是不是AI爬虫太猛了,把我站搞崩了。结果习惯性打开核子GEO检测工具,输入域名一看——空tag页超过120个,全被判成低质量页面。你说气不气?不是爬虫的问题,是我自己给自己挖坑。

我特意在核子GEO的网站对比功能里,拉了三个竞品站做对比。发现一个规律:那些职位页排名靠前的站,tag页全都有内容——哪怕只是加两段职位分类描述,加个相关职位的推荐列表。反观我那些空tag页,通义直接给判了低质量,连带着整个站点的权威性都被拉低。

血泪教训来了:别急着动robots.txt,先把你那些空内容页面处理了。我花了三天时间,把所有空tag页在Next.js里加了noindex标签,同时给每个tag页生成了200-300字的分类介绍(从客户给的职位描述里摘关键词拼的)。跑了一个月,核心职位页的AI可见性评分从31分跳到47分——在核子GEO的AI可见性评分报告里看得清清楚楚。

这玩意儿真别整虚的。通义爬虫不傻,空页面它看一眼就知道没价值。你就算单独给它开绿灯,它也懒得爬。

避坑清单

  • 别一上来就改robots.txt,先检查所有页面有没有实质内容- 空tag页超过50个就赶紧处理,要么加内容,要么加noindex- 给tag页加内容时,别直接用职位描述复制粘贴,通义会判重复- 用Strapi做后台的话,记得在内容模型里给tag加单独的描述字段,不要偷懒用通用模板

JobPosting Schema不是装了就完事,通义只认v3.0严格字段

去年给一个招聘站做优化,我踩了个大坑。WordPress上随便装了个JobPosting插件,以为结构化数据跑起来就完事了。结果核子GEO的AI可见性评分一跑,Schema完整度才43%,我当时就懵了——通义(阿里AI搜索)明确要求v3.0,我那个插件默认输出的是v2.0。

实测发现,通义只认v3.0的7个必填字段:title、description、datePosted、employmentType、hiringOrganization、jobLocation、baseSalary。少一个都不行。我最开始没填baseSalary,通义直接不展示薪资卡片,职位页在AI搜索结果里就是个裸链接,点击率低得可怜。你说气不气?

后来我把插件升级到支持v3.0的版本,手动补全了所有必填字段。特别是baseSalary,填的是月薪范围,比如”10000-15000”,然后指定currency为CNY。在核子GEO检测工具上重新跑了一遍,Schema完整度从43%飙到82%。效果立竿见影——通义搜索结果里开始出现薪资卡片,职位页的曝光量涨了3倍。

别像我当初那样,以为装个插件就万事大吉。通义对结构化数据的严格程度远超百度,v3.0的字段一个都不能省。特别是baseSalary,这玩意儿在招聘行业就是命根子,你不填,通义就当你没诚意。

Next.js的SSR模式坑了我:通义爬虫不吃客户端渲染

接了个招聘行业的客户,职位页每天更新几百条,我用Next.js做SSG嫌构建太慢,图省事把职位列表页设成了CSR。心想反正用户能看到内容就行,爬虫嘛,凑合着也能抓吧?结果被打脸了。

用核子GEO检测工具跑了一遍站点健康度,发现职位页的静态HTML里全是空div,通义爬虫来了根本读不到职位详情。我盯着屏幕愣了五秒——通义不像谷歌那样能执行JavaScript,它只扫服务器返回的原始HTML。我那CSR页面,返回的就是个骨架壳子,数据全靠浏览器加载后渲染。你说气不气?

我立刻改成了getServerSideProps,每次请求都让服务器把职位信息拼好再返回。效果立竿见影,通义能抓到完整的职位标题、薪资范围、工作地点了。但代价也明显:页面首次加载时间从4.2秒飙到6.8秒,客户反馈说打开速度慢了。我当时就懵了,这哪行?

后来想了个折中方案。我在nginx里同时开了brotli压缩和gzip压缩,brotli压缩级别设到6,gzip级别设到5。实测下来,传输体积从2.3MB压到0.9MB,加载时间降回3.1秒。虽然比CSR时慢了0.8秒,但通义能正常索引了。核子GEO的AI可见性评分从32分涨到71分,客户也满意了。

这事的教训是:做SEO不能图省事。CSR虽然开发爽,但通义这类AI引擎爬虫不买账。一定要确认服务器返回的HTML里真有内容,别指望客户端渲染。

避坑清单

  • 别用CSR做主内容页面,尤其招聘行业的职位页,通义爬虫不执行JS
  • 改成getServerSideProps或ISR,确保首次返回的HTML有完整数据
  • 性能慢了别慌,nginx里开brotli(level 6)和gzip(level 5)能压掉60%体积
  • 每次改完架构,用核子GEO检测工具跑一遍,看AI引擎能不能抓到真实内容

标签页内容修复:把空tag变成迷你聚合页,成本不到2小时

我当时看到通义抓取报告时差点摔键盘——空tag页超过100个,每个都是“页面无内容”。你说气不气?招聘站每天更新几十个职位,tag页全白给AI爬虫看空气。用核子GEO的搜索引擎推送检测了一下,结果显示那些空tag页的抓取效率几乎为零,通义压根不理。

我的方案简单粗暴:每个tag自动生成200字左右的摘要。比如“前端开发”这个tag,我让系统抓取最新5个职位的标题和公司名,再统计一下总职位数和薪资范围,拼成一段完整段落——“本站收录了阿里巴巴、字节跳动等公司的前端开发职位,共12个,薪资范围15k-35k,要求React/Vue经验”。注意,不能用列表,必须是自然语言段落,否则AI爬虫解读成垃圾内容。

实现方式?我用Strapi的webhook触发Next.js的API路由,每次发布新职位时自动更新tag摘要不骗你。成本就是两个多小时改API逻辑,再加了个WordPress插件(别笑,我虽然用Strapi+Next.js,但客户那边WP还得维护)。修复后,空tag页从120个直接降到8个——那8个是实在没有职位数据的冷门tag,我直接noindex了。

效果炸裂:通义抓取频率从每周2次变成每天1次实测过。我之前用核子GEO的AI可见性评分对比过,修复前tag页权重几乎为零,修复后评分从12分跳到41分。你说这2小时花得值不值?

避坑清单

  • 摘要别超过250字,太长AI会当垃圾内容处理
  • 必须用自然语言写,别贴列表或表格,否则通义直接给你降权
  • 冷门tag实在没数据就直接noindex,别硬撑
  • 更新频率别太低,最好职位发布后24小时内刷新摘要——我设了webhook,但有的客户手动更新职位,得额外加个cron job兜底

一个冷门技巧:XML站点地图里按权重排序,通义给高分

去年年底接了个招聘行业的WP站,客户职位页1600多,tag页300个,其中空内容的tag页占了100多个。我一开始按发布时间排sitemap,最新发布的职位在最前面。结果呢?通义抓了两个月,核心职位页一天才抓200条出头,那些空tag页倒是被抓得挺勤快。你说气不气?爬虫带宽全浪费在没意义的东西上了。

后来我换了个思路——按优先级排序。具体操作:职位页的priority设1.0,这些是客户真正想推的;tag页设0.8,哪怕有内容也先往后排;其他页面像关于我、联系页面统一0.5。同时每个url的lastmod字段我都显式写上,职位更新就改时间戳。这改动用了Strapi里一个自动生成sitemap的插件,调了优先级参数,前后没超过30分钟。

实测效果让我有点意外。通义对站点地图的解析效率明显变了,核心职位页每天抓取量从200条干到450条,翻了一倍多。空tag页的抓取频次降了大概70%,因为优先级低、lastmod也不常更新,爬虫自然懒得理。我在核子GEO检测工具上跑了一遍AI可见性评分,发现里面有个“爬取效率”指标,从61分直接跳到83分。这个分数反映的就是爬虫资源浪费程度,空tag页拖后腿的问题一下子暴露了。

说实话,以前我总觉得sitemap就是给爬虫看的,随便排排就行。但现在发现,权重顺序直接影响AI引擎的决策——你排得越乱,它抓得越没重点。通过核子GEO的网站对比功能,我还拿一个同行站的数据做了对比,对方也是招聘行业,但sitemap按发布时间排,爬取效率只有55分。差距就是这么拉开的。

避坑清单:- priority别全设1.0,爬虫会认为你在刷权重,建议核心页面占20%以内- lastmod必须真实更新,不要批量假改时间戳,通义会检测时间变动频率- tag页priority设0.8已经够高了,再低就设0.5,别让空内容页占权重

避坑清单

干招聘站点优化这行快十年,踩的坑比职位页还多。每次给客户做网站,tag页面空内容这个问题,我至少栽过三次。直接上干货。

坑1:tag页不输出JobPosting Schema我当初图省事,直接用的默认WP标签模板。结果通义爬虫抓取tag页时,根本识别不到这是招聘相关页面。核子GEO的AI可见性评分直接标红,显示结构化数据缺失率76%。解决办法:在标签模板里手动加JobPosting标记,哪怕内容少,也得让AI知道这是职位聚合页。

坑2:空tag页超过50个还不管有次给一个连锁餐饮做招聘站,tag页堆了130多个。通义爬虫进来,直接判定为低质量页面,整个站点的爬取配额被砍了40%。我后来用核子GEO检测工具扫了一遍,发现这些空页面的跳出率高达92%。别不当回事,空tag页超过50个,AI就会给你整个站点降权。

坑3:给AI爬虫单独开robots.txt限制这坑我踩得最狠。听人说给AI爬虫单独设置规则能省流量,我就在robots.txt里给通义Bot加了限制。结果三个月后,职位页的AI引用率从34%掉到11%。通义和其他AI引擎现在越来越聪明,你限制它,它就认为你不欢迎它。千万别干这种蠢事。

坑4:忽略tag页的层级深度招聘站的tag页往往被嵌套在三级目录下,比如/recruit/tag/sales/。通义的爬虫对深层页面抓取优先级很低。我后来统一把tag页提到二级目录,比如/tag-sales/,AI抓取量直接涨了3倍。

坑5:tag页内容不动,全靠插件WP插件确实方便,但别指望Yoast SEO能帮你搞定tag页内容。我试过把职位描述自动填充到tag页,结果通义判为重复内容,索引量从1200掉到400。手动写一段独特的聚合描述,哪怕就50字,都比自动生成强。

坑6:不监控tag页的AI抓取频率我习惯用核子GEO的网站对比功能,每周看一次tag页的抓取日志。发现抓取频率从每天15次掉到3次时,就得赶紧优化内容。别等数据崩了再动手,那时候AI已经把你标为低价值页面了。

坑7:职位更新后不刷新tag页缓存招聘站最坑的是职位更新频繁,但tag页的缓存还是旧的。我有个客户,职位页每天更新20多个,但tag页的缓存设了一周。通义抓到的永远是过时数据,AI引用率从58%掉到22%当时就懵了。把tag页缓存时间设成2小时,配合Strapi的Webhook自动刷新,效果立竿见影。

兜底一句说一句,别把AI优化当玄学。每次踩坑后数据说话,该调的调,该删的删。后来才知道。实在不知道怎么下手,拿核子GEO跑一遍检测,比瞎猜强十倍。