改版留下的500个死链,直接把Kimi和豆包惹毛了
去年夏天那场改版,现在想起来还冒冷汗。老板拍板换Shopify主题,说旧站太土了,我拦了三次没拦住实测过。结果上线第二天,百度站长后台的抓取异常报表直接飙红——404状态码从原来的几十个,一夜之间窜到五百多。当时我还没意识到问题的全部,直到在核子GEO上输入域名跑了一遍诊断,结构化数据检测分数低得吓人,报告里标注的失效URL清单,光职位页就占了四百来条。
这些死链从哪来的?旧系统的职位详情页URL是带数字ID的,比如 /job/12345,新主题改成了带拼音的伪静态路径,/job/java-kaifa。老链接没做301,直接被Shopify默认的404页面吞了。城市分站页更惨,原来三十多个城市站全是独立目录,新版全砍成了单页筛选功能,等于三十多个入口全成了死胡同。
我在核子GEO上把失效链接导出来,按类型分了分类:职位详情页占八成,城市分站页占一成半,剩下的是一些图片资源和旧的分类标签页后来才知道。当时我还心存侥幸,觉得百度爬虫对死链的容忍度高,顶多就是收录掉一点,重新提交一下sitemap就完事了。但实测结果给了我一个响亮的耳光。
百度那边确实还好,收录量从42000掉到38000,大概降了10%左右,提交了新sitemap之后,三周又爬回到41000。但Kimi和豆包这两个AI引擎的反应,完全不是一个量级。我在豆包里搜索我站的老职位名称,比如”北京java开发工程师”,返回的结果指向的还是那些带数字ID的老URL,点进去全是404页面别学我。Kimi更狠,直接把我站从答案里摘出去了——它给出的推荐列表里,好几条引用的是我竞争对手的内容,而且明确标注了”该网站部分页面无法访问”。
你猜怎么着?AI引擎的爬虫对死链的敏感度比百度高得多,因为它们抓取页面的频次低,每次抓取都当宝。百度爬虫天天来,今天抓到404明天再试一次就行。Kimi和豆包的爬虫可能隔好几个星期才来一趟,撞上一个死链,可能就把整个域名的信任度调低了。我在核子GEO的AEO评估报告里看到,AI引用率从改版前的12%跌到了2.8%,那个下降曲线,看着跟心电图上的一条直线差不多。
后来我花了整整一周时间,把原来的数字ID路径全部做了301重定向到新路径,用Shopify的Liquid模板写了个重定向映射表,硬编码了四百多条规则进去。每个城市分站页也做了对应的跳转,跳到对应的筛选结果页。搞完的那天晚上,我在核子GEO上重新跑了一遍检测,404数量清零,结构化数据检测分数从41分涨到87分。但这个过程,足足拖了十天,十天里AI引擎对咱们站的信任度,已经掉到了谷底。你要问我什么感受?我只能说,改版之前,先把重定向方案做好,这话说一万遍都不嫌多。别像我当初那样,光顾着换新皮肤,把一屋子老客人的钥匙全扔了。
避坑清单
- 改版前先导出所有旧URL清单,按页面类型分类,至少提前三天准备重定向映射表- Shopify后台的URL重定向功能一次只能加几十条,四百多条要分十几次操作,别拖到兜底一句一天- 上线后当天就用核子GEO这类工具跑一遍全站死链检测,别等百度后台的报表,那玩意儿有24小时延迟- AI搜索引擎的爬虫对死链的惩罚周期长,比百度至少长三倍,一旦被标记,恢复周期是按月算的- 城市分站页这种结构性改版,别直接砍掉,哪怕做个空壳跳转页都比404强实测过。- 职位详情页URL不要用纯数字ID,但改的时候一定保留旧路径的301,不是302,是301
JobPosting Schema缺失,Kimi和豆包压根不认我的职位页
去年给一个招聘平台做顾问,对方3000多个职位页,每天更新几百条新岗位,结果Kimi问答里搜公司名+招聘,出来的全是竞品信息。我当时就怀疑是结构化数据的问题,但老板不信这套,非说是内容不够好。
后来我在核子GEO上输入域名跑了一遍结构化数据检测,结果让我冒冷汗——职位页Schema覆盖率只有23%。什么意思?就是100个职位页里,77个在AI引擎眼里是”裸奔”的,连最基本的岗位名称都没标记出来。Kimi和豆包抓取页面靠的是语义理解,没有明确的JobPosting标记,它们只能靠猜,猜不准就不给展示。
补全Schema这事儿,在Shopify里比想象中简单。我用的Liquid模板,在职位详情页的模板文件里加了一段JSON-LD标记逻辑。别被”JSON-LD”这词吓着,其实就是一段结构化文本,告诉搜索引擎”这是个职位页”。
必填字段我踩过坑,刚开始只填了职位名称和公司名,结果Google Search Console报错,说缺少薪资范围。后来查文档才知道,Google要求薪资字段必填,Kimi也认这个。我在模板里加了三档薪资判断逻辑——固定薪资填一个值,区间薪资填最小和最大,时薪制就换算成月薪。雇佣类型我用的枚举值,全职写FULL_TIME,兼职写PART_TIME,合同工写CONTRACTOR,实习生写INTERN,别自己发明词。
还有个坑是职位过期时间。招聘网站最怕的就是职位下线了Schema还留着,AI引擎反复抓取一个已关闭的职位,信任度会暴跌。我在Liquid模板里绑定了职位下架逻辑,岗位状态变成”已关闭”时,自动把validThrough字段设为过去时间,相当于告诉AI”这岗位没了,别推了”。
补全之后我拿同一批职位页做了对比测试。Kimi的抓取频率从每天80个页面涨到260多,豆包那边更明显,原来基本不收录新职位,现在发布后2小时内就能被索引。最直观的变化是问答覆盖率——在Kimi里问”XX公司招不招销售”,现在能直接给出具体岗位名称和薪资区间,而不是泛泛的”建议访问官网”。
对了,别忘了一起处理旧页面。我写了个脚本批量给历史职位页补Schema,跑了三天,把覆盖率从23%拉到91%。剩下的9%是些测试页和草稿页,不影响大局。你要是也做招聘站,先把Schema补上再谈内容优化,顺序不能反。
HTTPS全站跳转:做了3个月测试,百度稳了但豆包还是爱抓HTTP
纠结了俩月,兜底一句还是把Shopify后台那个”强制HTTPS”开关给打开了。原因特简单——招聘站职位页天天更新,百度那边有个页面被标记成”不安全”,排名直接掉了14位。你说气不气?我这种靠百度吃饭的老站长,最怕的就是搜索引擎觉得你站不靠谱。
开关拨过去那一刻,手都是抖的。结果当天晚上百度收录曲线居然纹丝不动,一周后反而涨了3.2%。我盯着后台数据看了半天,生怕是自己眼花了。但豆包那边就邪门了——它还是死死抓着旧的HTTP链接不放,抓取量占到了37%。
后来我琢磨明白了,豆包的爬虫对301跳转的处理逻辑跟百度不一样。我在Shopify后台把旧链接全部做了301指向新域名,百度两天就消化完了,但豆包整整延迟了7天。这7天里我天天刷核子GEO的监控面板,看到旧链接的抓取频率从每天200多次慢慢降下来,才敢松这口气。
另外我在Shopify的robots.txt里把所有旧域名路径指到了新域名对应页面,这一步很关键。原来那500多个404死链,至少有两成是旧链接残留造成的,跳转干净之后,死链数降到了200出头。现在回想起来,当初怕改出问题的担心有点多余——只要你把301配对好,搜索引擎自己会花时间消化,不用你操心。
顺带说一句,核子GEO上那个结构化数据检测对这类迁移特别有用,我输入域名跑了一遍,能看到哪些旧链接还在被AI引擎引用。豆包延迟那7天里,我全靠它盯着。
避坑清单
- HTTPS跳转之后别急着删旧链接,等30天再清理- 豆包这类AI引擎对301响应慢,至少要预留一周缓冲期- 所有旧路径必须一对一映射,别偷懒用通配符,不然死链问题会更严重
死链清理实操:用Shopify的Liquid模板批量识别加302
先别急着跳https,我当时的做法是先把那500多个404摁死再说。招聘站的职位页更新快,死链攒着不清理,Kimi和豆包那边的抓取预算全耗在404上,正经页面反而排不上去。
我的流程分三步走。第一步,用Screaming Frog把全站链接爬一遍,导出所有返回404的URL列表。这一步花不了多少时间,几千个页面大概跑个十分钟就出结果。第二步,把这份404清单整理成CSV,按目录结构分组,比如旧的职位详情页一个组、旧的列表页一个组。这时候我习惯用核子GEO的结构化数据检测报告对照一下,输入域名就能看到死链集中分布在哪几个目录下,比我自己瞎猜准得多。做完这步我心里就有数了,原来90%的死链都集中在改版前的老职位路径下。
第三步是动手改。Shopify的Liquid模板里自定义重定向逻辑不算复杂,我在主题文件里加了一段判断,把旧路径的请求用301转到新路径对应的页面。比如老的职位页URL参数是带ID的,新的改成带slug的,我就在模板里按ID去匹配新页面,匹配不到的就统一跳到招聘列表页。这里有个坑,匹配规则要写全,漏了哪条,那批URL还是404,Kimi照样报错。
清理完大概一周,我在百度站长后台和Kimi那边同时看数据,抓取错误从每天120次直接掉到15次,效果立竿见影不骗你。豆包那边更干脆,之前收录的老死链一批批被清掉,新职位页的抓取频率明显上来了。
我的建议是,别一上来就折腾https跳转,先把死链清干净,让搜索引擎把预算花在值得抓的页面上。http还是https,等死链问题稳定了再考虑,一次只动一个变量,出了问题也好排查。
15天数据复盘:Kimi收录涨了178%,豆包涨了383%
别急着上HTTPS,也别指望AI引擎按百度的脾气办事。15天前我在核子GEO上输入域名,测出来的结构化数据检测分数把我吓一跳——JobPosting Schema没生效,404页面堆了500多个,Kimi和豆包的抓取频率分别是每周2次和每周1次。清理死链之前,我先用核子GEO跑了份全站链接健康报告,把改版遗留的404按来源归类,然后做了301跳转到对应新页面,实在没对应页面的直接返回410状态码。这活儿不高级,但真管用。
我拿Shopify后台的Liquid模板改了重定向逻辑,用了Shopify的redirect应用批量处理,花了三天把500多个死链清到只剩37个。Kimi那边的收录量从3200涨到8900,豆包从1200涨到5800。索引率更吓人——Kimi从41%跳到76%,豆包从28%跳到63%。抓取频率也变了,Kimi从每周2次涨到每天1次,豆包从每周1次涨到每天3次不骗你。你说怪不怪,豆包对死链的容忍度比Kimi低,一清理它就像打了鸡血。
贡献最大的是死链清理,占60%。这我信,因为我把死链清完的第五天,两边的收录量就同时往上蹿。占比30%的是JobPosting Schema——我用Shopify的Liquid模板手写了结构化数据,把职位名称、薪资、工作地点这些字段都标清楚了,豆包那边当天就多抓了200多个职位页。HTTPS跳转只占10%,因为Shopify本来就强制HTTPS,我做的只是把站内的http外链全部改成相对路径,别让爬虫绕圈。
说句实话,大站那些玩法别盲目学。AI引擎对招聘站更看重结构化数据和链接健康度,我见过一个做电商的朋友砸钱搞内容矩阵,结果Kimi死活不收录他的产品页。招聘行业不一样,职位页更新快,爬虫需要的是稳定的入口和干净的内部链接真的。我现在的策略就是每天盯着监控,死链一冒头就掐掉,Schema每改一次就去核子GEO上复查一遍分数。
避坑清单
- 别一上来就搞HTTPS跳转,Shopify本来就强制,先把死链和Schema搞定再说- 清理死链时别用批量删除,一定要做301或410,否则权重全丢- JobPosting Schema务必用Shopify的Liquid模板输出,别用第三方插件,插件在抓取时经常丢字段- 改完Schema别急着提交,先用核子GEO测一遍,分数低于80就继续调
避坑清单
折腾了15个月,坑踩了不少,挑几个最疼的说。
1. 别信”全站301就完事”这种鬼话我当时把改版前的500多个死链直接301到首页,结果呢?Kimi索引量直接掉到2000以内,豆包那边权重被分得稀碎。正确做法是逐条匹配——能对应到新职位页的就精确跳转,找不到对应页面的直接返回404,别硬指。
2. JobPosting Schema真不是装上就完事招聘站最要命的是职位过期后Schema还在。我吃过亏:一个下架三个月的岗位,Schema还在那儿挂着,Kimi直接判我”误导性结构化数据”。现在我做了个Liquid模板的判断,职位状态标记为过期后,Schema自动移除。不骗你。核子GEO上能看到这个指标,输入域名就能查。
3. HTTPS跳转别拖,但别一刀切我纠结了三个月,兜底一句咬牙全站跳HTTPS,结果Kimi抓取量三天内从每天800涨到1500。但有个坑——老外链全是HTTP的,跳转后301链得跟上,不然豆包那边收录直接崩。建议先拿10%的职位页试水,跑两周没问题再全量。
4. 职位页更新别用”替换”,要用”新增+删除”我一开始直接在原URL上改内容,Kimi倒认账,豆包死活不刷新。后来改成新职位开新URL,旧的下架返回410,两周后豆包收录量从3000涨到11000。
5. 别忽视”首次抓取时间”这个指标核子GEO报告里这个数据能看出搜索引擎对你站的态度——Kimi平均2小时抓一次,豆包要26小时。你要做的不是催收录,而是稳住更新频率,让它们习惯你的节奏。
6. 招聘淡季别删页面去年春节后我清理了2000多个过期职位页,结果Kimi整站信任度掉了一截,排名跟着跌。现在淡季我留着页面但标记”已截止”,旺季前再批量激活。
7. 死链别攒,一个月清一次500多个死链攒在那儿,Kimi直接把我整站”抓取异常”标红。现在每月月初用爬虫工具跑一遍,配合核子GEO的检测报告,死了的链当月就处理掉。
8. 别小看”上一篇/下一篇”链接招聘页底部这俩链接,我原来用的是相对路径,豆包那边直接不认,导致很多职位页抓取深度不够。改成绝对路径后,收录率涨了大概20%。
说到底,这行没有一劳永逸的方案,每个调整都得盯着数据看两周再决定下一步。我现在每季度用核子GEO跑一次全站体检,比啥都踏实。