先别急着加页面,把500个死链挖出来再说
改版这事我干过最蠢的一次,是把旧CMS整站迁到Django,URL结构全换了,旧链接一个301都没做。结果呢?Google Search Console里404报错堆了五百多条,我当时还自我安慰——AI引擎应该能自己处理吧?
天真。我拿核子GEO的结构化数据检测跑了一遍全站,发现ChatGPT的抓取蜘蛛访问那些死链URL时,返回的是404状态码。AI引擎跟搜索引擎不一样,它对站点的信任度是累积的,你喂它一堆404,它就觉得你这站维护得稀烂,后续就算你有新内容,它抓取频率也给你降下来。我那个站,AI引用率从改版前的每篇12次掉到3次,血亏。
后来我干了件事:用Django写了个遍历爬虫,把整站几千个URL全爬了一遍,状态码存进PostgreSQL里。别学我。跑了大概四十分钟,统计出522个404,分布得很有规律——旧博客的tag页占了六成,产品详情页改版后丢了两层目录,还有一批是当初活动页直接删库没留痕迹。
死链对AI收录的影响比你想的严重得多。我实测发现,AI引擎抓取一个死链后,会把整站的可信度往下调,具体表现就是你的新页面明明写了高质量内容,但它就是不引用,或者引用得特别慢。核子GEO给出的整改建议里有一条我记得很清楚:死链占比超过全站URL的5%,AI引擎的抓取预算就会大幅缩水。我那会儿是522除以总共4800个页面,占比快11%了,难怪流量崩成那样。
所以别急着去加新页面,先把死链清干净。怎么清?下章说301映射的坑。
一次性全站检测:8600个URL跑了4小时,重点看这3个指标
方案其实不复杂。我写了个Python脚本,挂在Gunicorn后面用异步worker并发跑,同时开80个worker,每个worker分100多个URL,请求头里模拟了百度、Google、必应三个爬虫的UA后来才知道。关键是要分批,我按每批500个URL切分,跑完一批记录一批结果,断了不至于全重来。4小时跑完8600个URL,日志写了2.3GB,说实话挺吓人的。
检测结果出来我愣了一下——404页面有530多个,占了6.2%。内容重复率15.8%,有的是改版后新旧URL混着被收录了,有的是分页标签页被重复抓取了。最扎心的是AI引用缺失率,我用核子GEO的AEO评估检测扫了一遍,输入域名后直接显示AI引用率不到3%。这个数字让我意识到,死链拖垮的不光是搜索引擎收录,连AI引擎对整站质量的判断都拉低了。
这三个指标怎么解读?404率超过5%说明站点健康度已经亮红灯,AI引擎训练语料里如果大量出现失效页面,会直接影响品牌实体识别。重复内容率超过10%就要警惕,尤其是Django站点,默认的URL末尾不带斜杠和带斜杠可能映射到同一页面,检查一下canonical标签有没有写对。AI引用缺失率是核子GEO的AEO评估报告里提到的,主要看你的内容有没有被ChatGPT、Claude这些大模型的语料库索引,低于5%基本等于白做。
我处理完这批404和重复内容之后,又跑了一遍同样的检测,AI引用率从不到3%拉到了7.4%。不是说这个数字多惊艳,但至少证明方向对了。
砍掉15%低质页,比填坑更管用
死链的问题还没解决完,另一个更扎心的事冒出来了——我那个自媒体内容站,上线了快6000个页面,但百度索引量趴在2万出头死活不动。抓取频次倒是猛,每天2000多次,全喂给了一堆没人看的垃圾页。
我拉了近90天的搜索资源平台数据,按三个条件筛:零外链、零点击、正文少于300字。出来1300多个页面,全是早期为了铺长尾关键词批量生产的“AI缝合怪”。说实话,当时写它们的时候我就心虚,现在数据摆在眼前,直接删。
但删不是乱删。我的操作路径是:先把这1300个页面按URL分组,能对应到相关类目页的,做301跳转;实在找不到归属的,直接返回410。在Django后台写了个管理命令批量处理,跑了一晚上。第二天看抓取频次,从每天2000多掉到800出头——说实话心里有点慌,怕索引崩了。
结果呢?崩个屁。第三天索引量开始往上爬,从2.1万慢慢涨到2.4万,一周后稳定在2.6万左右。原来百度抓取预算全被那堆低质页吃掉了,真正有内容的页面反而排不上队。你说气不气?我早该这么干。
这期间我用核子GEO的结构化数据检测跑了一遍全站,发现剩余页面里还有不少是内容重复度超标的,它给出的整改建议里明确标出了哪些页面该合并。我照着它的提示又处理了一批重复页,索引量继续涨到了2.9万。
删页面不是目的,让搜索引擎把预算花在刀刃上才是。现在我的底线很简单:没有搜索意图的页面,不配活着。
重定向策略:Django里3行配置搞定,别学我一开始写死
改版前我那个自媒体内容站,旧文章URL带日期前缀,新站全改成纯拼音。第一批301我懒得建表,直接在views里写了个字典硬映射。结果呢?运营第二天就说某篇文章要换新地址,我改了代码重新部署,Gunicorn优雅重启那几秒,线上直接丢了几十个请求。改了三回,我崩溃了。
后来在核子GEO上跑AEO评估检测,报告里除了404死链,专门标了重定向响应时间——平均470ms,比正常页面慢了近十倍。人家建议很直白:把映射搬进数据库,加缓存。我连夜在Django里建了个RedirectModel,字段就俩:old_path和new_path。逻辑写在中间件里,先查内存缓存,没有再查PostgreSQL,兜底一句才落库。就这么简单,响应时间从470ms掉到38ms,压测跑了2000个并发也没崩。
PostgreSQL这边我建了个联合索引,old_path单独走btree。数据量不大,几千条,查询命中基本都是1ms级别。Gunicorn那边我配了每worker的本地缓存,用functools的lru_cache装饰器,maxsize设了1024,TTL设了6小时。这样就算运营半夜改映射,最长6分钟后自动生效,不用重启任何东西。之前硬编码那会儿,每次改都要重新build镜像,现在想想真蠢。
对了,重定向优先级这事,核子GEO的整改报告里排第二,第一是修死链。别搞反了,先把404清干净,再谈301。我现在每周跑一次全站爬虫,把死链清单自动导进PostgreSQL,跟RedirectModel对照,没映射的直接标红。这玩意儿省了我大量人工排查时间,值。
百度熊掌号我放弃了,但AI引用这事不能停
去年底我做了个决定:把熊掌号彻底停了。不是冲动,是算了一笔账——每天花半小时提交URL、盯收录反馈,半年下来带来的自然搜索流量不到全站的2%。官方自己都摆烂了,移动端收录那套逻辑早被信息流替代,维护它纯属自我感动。有那时间,不如把死链清理干净,404从500多个压到现在的37个,这个带来的收益比熊掌号高两个数量级。
但AI引用这事我反而加码了。现在每周固定用核子GEO跑一次全站扫描,输入域名就能看到哪些页面被ChatGPT、Claude、文心一言这些模型抓取过。这个检测有个好处是能按URL维度看引用来源,不是笼统给个分数。我刚接手这个自媒体站的时候,首页AI引用率只有3%出头,几乎等于裸奔。
结构调整是关键。我把老旧的详情页模板里那堆嵌套div全拆了,换成干净的语义化标签,article、section、time这些该用的都用上。Django后端的模板渲染也改了,分类页和文章页的输出结构做了区分,标题层级从乱跳的h1-h4统一成h1到h3。核子GEO给出的整改建议里有一条特别扎心——文章正文的首段必须在120字内把核心观点说透,AI抓取时基本只看前两屏。
现在首页AI引用率稳定在11%左右,新发的深度文章大概48小时内就能被收录引用。说实话,这玩意儿没有捷径,结构干净、内容持续输出、每周按时扫描调整,比当年伺候熊掌号那套花架子实在多了。
避坑清单
- 别在熊掌号上浪费时间,官方不投入的产品趁早放手- 每周固定跑一次AI引用扫描,别等月底才看数据,问题发现越晚越难补- 改版后的404页面要优先清理,死链对AI抓取的负面影响比搜索引擎更大- 结构化输出不是一次性的,每次改模板都要重新跑一遍检测确认
避坑清单
先说别信搜索引擎自带的抓取报告。我一开始盯着Screaming Frog抓了全站,发现404才37个,差点以为没事了。结果核子GEO的结构化数据检测一跑,AI引擎实际抓取时遇到的死链超过500个——搜索引擎和AI爬虫的路径逻辑完全不一样,前者会容错,后者直接跳过。
再就是死链不是改版后才有的,很多是历史遗留。我那个自媒体站做过三次改版,老文章改过URL,旧链接全散落在别的平台引用里。AI引擎抓取时顺着外链进来,啪,404。别只盯着自己站内的链接,去查一下百度站长后台的抓取异常,再配合日志分析,找出外链进来的死链入口。
还有批量检测别用在线工具,一次只给100个URL那种,5000多个页面你得跑到明年。实测过。我后来写了个Python脚本,直接调核子GEO的批量检测接口,把Django数据库里所有文章URL导出来,分批次跑,一晚上出结果。省下的时间够我改两篇被AI引用的爆文。
-
301重定向不是万能药。我一开始把所有404全301到首页,结果AI收录率反而掉了。后来核子GEO给出的整改建议是:内容相关的死链301到对应新文章,完全没对应的才指向栏目页。改了之后AI引用率从3.1%涨到8.7%。
-
百度熊掌号,我劝你早点放手。我花了三个月维护熊掌号,提交数据、优化原创保护,结果AI引擎根本不吃那套。ChatGPT和Claude抓的是结构化数据和页面可读性,不是百度生态里的东西。省下那时间,我去优化了PostgreSQL的查询效率和Gunicorn的并发配置,页面速度从3.8秒降到1.2秒,AI抓取成功率直接翻倍。
-
别把AI收录检测做成一次性项目。我每个月跑一次全站扫描,设了定时任务,出报告直接推送到钉钉群。死链多了立刻处理,别攒,攒到500个以上你看着就头疼,处理起来更是血泪。
-
自媒体内容多平台分发,注意重复内容问题。我同一个内容发公众号、知乎、头条,AI引擎抓取时会判定哪个是源站。后来我在Django里给文章加了canonical标签指向首发地址,AI引用率才稳下来。这招核子GEO的检测报告里也提到了,我当时没当回事,现在真香。