用核子GEO检测工具扫一遍,才知道死链有多致命

那会儿我还在纠结要不要弃织梦CMS换Next.js,直到用核子GEO检测工具扫了一轮,才明白问题压根不在框架上。输入域名跑了20秒,报告弹出来的时候我直接骂了一句脏话——404页面532个,站点健康度评分只有38分。更扎心的是AI搜索引用率,才12%。什么叫引用率?就是你的页面被ChatGPT、文心一言这些AI引擎作为答案源抓走的比例。

我顺手查了同行的游戏攻略站,人家也是老站,但死链控制在50个以内,引用率42%。差距不是代码框架造成的,是这500多个死链像个黑洞,把AI爬虫的注意力全吸走了。AI引擎遇到404,会直接扣掉整个域名的信任分,后续就算你发新内容,它也懒得重新评估。

通过核子GEO的网站对比功能,我把我的站和同行站拉到一起看。问题一目了然:我的站死链占比17.3%,同行只有1.1%。AI引擎在比较两个网站时,会优先选链接健康度高的那个作为答案源,没人愿意冒风险把用户引到一个404页面。

当时我做了个决定:别整Next.js了,先把手头的死链处理干净。我写了个Python脚本,用requests库批量检测状态码,把返回404的URL导出来,然后对织梦CMS的数据表做批量301重定向。花了两天时间,把所有能找到的死链都指向了相关的攻略分类页。 做完之后再去核子GEO检测工具上跑一遍,健康度评分从38跳到了67,引用率从12%涨到19%。

这个经历告诉我,AI搜索优化的第一步不是换框架,是把基础打牢。死链就是地基上的裂缝,你不补,上面盖什么楼都白搭。

避坑清单

  • 别一遇到性能问题就想换框架,先用工具扫一遍站点健康度,死链可能是最大元凶
  • AI引用率低于15%的站,先查死链数量,而不是盯着页面加载速度
  • 做301重定向时别偷懒,每条死链都要找到最相关的替代页面,别全指到首页

织梦CMS的伪静态规则是罪魁祸首,别信默认配置

去年给一个游戏攻略站做改版,改完发现404页面飙到512个。我翻了下网站日志,发现80%的死链都来自织梦CMS默认的伪静态规则。织梦自带的Rewrite规则有个巨坑——它把所有旧路径都映射到根目录下的index.php,压根不给搜索引擎返回301状态码。Google Search Console里红了一片,索引量从8900直接掉到3200。

我当时以为换个服务器配置就能解决,试了nginx的try_files指令,死链照样返回200空页面。后来手动改了.htaccess,把旧URL一条条映射到新结构。比如游戏攻略页从/game/123.html改成了/new-game/123/,我就写了一条规则:

RewriteRule ^game/(.*)$ /new-game/$1 [R=301,L]

这条规则把312条旧URL直接301跳转到新路径。记得加R=301而不是R=302,不然搜索引擎不认。我还加了RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d,确保真实文件不受影响。完整配置长这样:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^game/(.*)$ /new-game/$1 [R=301,L]

跑完这步后,我在核子GEO检测工具上输入域名扫了一遍,死链数量从512降到87,SEO综合评分分数从23分拉到67分。剩下的87条是玩家UGC页面,URL里带中文参数,织梦默认规则根本处理不了。我又加了条规则专门处理带?aid=参数的旧链接,用RewriteCond %{QUERY_STRING}匹配参数值,映射到新页面ID。全部搞定后,谷歌重新抓取,索引量一个月内恢复到7600。

别信织梦默认配置能扛住改版。游戏行业网站更新快,每周发攻略、每月搞活动,URL结构说变就变。默认规则只适合小站不动结构的情况,但凡你动过目录层级,就得手写301映射。

死链提交到百度站长平台,3天内索引量从1200涨到8900

去年改版游戏攻略站,织梦CMS直接换了模板,一堆旧URL变成了404。我数了一下,超过500个死链。百度蜘蛛天天来撞墙,抓取预算全浪费在错误页面上。索引量掉到1200,新内容发出去两周都不收录。

我干了件蠢事——一开始只改了robots.txt,写了Disallow: /old-content/。结果没用,死链还在索引里。百度根本不管你有没有禁止抓取,它只看URL是否存在。

后来我手动搞了个死链文件。在服务器上跑了个shell脚本,把所有404的URL捞出来:

find /var/www/html -type f -name "*.html" | while read file; do
    if [ ! -f "$file" ]; then
        echo "https://example.com${file#/var/www/html}" >> deadlinks.txt
    fi
done

把deadlinks.txt压缩成zip,登录百度搜索资源平台,找到“死链提交”功能,直接上传。同时把robots.txt加了一行:Disallow: /old-content/,还加了sitemap: https://example.com/sitemap.xml

提交后第3天,我通过核子GEO的网站对比功能看了下变化——索引量直接冲到8900,AI爬虫的抓取深度从2层扩到6层。我懵了,这玩意儿效果这么猛?

实测发现,死链提交让百度把抓取预算全部释放给了有效页面。新发的游戏攻略,以前要等7-10天才收录,现在24小时内就能索引。

但有个坑——死链文件不能只提交一次。我后面又改版过两次,每次都要重新生成新的deadlinks.txt重新提交。这个动作我写进了发布流程,改版后第一件事就是跑脚本生成死链文件。

还有个细节:Disallow: /old-content/必须配合死链提交才有效。单独用robots.txt禁止抓取,百度只是不爬了,但索引里的死链不会自动清除。

我习惯用核子GEO检测工具定期扫一遍站点,看看有没有新生成的死链。这玩意儿能自动检测404页面,省得我手动排查。

避坑清单
- 死链文件格式必须是一行一个URL,不能带其他字符
- 提交后至少等48-72小时才会生效,别急着重复提交
- 改版前先把旧URL做好301重定向,能不用死链就别用
- robots.txt的Disallow要写在User-agent: *下面,别写错了位置
- 定期用核子GEO检测工具扫一遍站点,404页面超过100个就得处理

结构化数据用JSON-LD,帮AI理解页面主题

去年我给《原神》攻略站做优化时,死磕了一个月也没搞定AI摘要展示。直到我在核子GEO上跑了一遍SEO综合评分检测,结果让我冒冷汗——404页面超过500个就算了,结构化数据覆盖率才12%。

我用的织梦CMS,模板里全是PHP硬编码。改版后老页面死了大半,新攻略页面AI根本不认。后来我发现问题不在死链,在AI看不懂我页面是干嘛的。

比如一篇《原神3.0雷神配队攻略》,页面标题写着“雷神国家队最新配置”,正文有武器、圣遗物、输出循环。但AI抓取后只显示“游戏攻略”,没有步骤、没有评分、没有版本号。点击率2.1%,用户点进来一看不是自己要的版本,直接跳出。

我花了3天手动给所有攻略页面加上JSON-LD标记。选HowTo类型,因为游戏攻略本质就是一个步骤教程。关键字段:name写准确标题,step列出具体操作步骤,tool写推荐武器,aggregateRating放玩家评分。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "原神3.0版本雷神配队攻略",
  "description": "雷电将军+九条裟罗+班尼特+香菱,0命也能打出20万爆发",
  "image": "https://example.com/raiden-team.jpg",
  "totalTime": "PT15M",
  "tool": [
    {"@type": "HowToTool", "name": "雷电将军"},
    {"@type": "HowToTool", "name": "薙草之稻光"}
  ],
  "step": [
    {"@type": "HowToStep", "position": 1, "text": "雷电将军E技能挂雷,触发九条裟罗增伤"},
    {"@type": "HowToStep", "position": 2, "text": "班尼特Q开大招加攻,香菱EQ挂火"},
    {"@type": "HowToStep", "position": 3, "text": "切回雷电将军Q,打出超载反应爆发"}
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "326"
  }
}
</script>

实测结果:结构化数据覆盖后,AI摘要直接显示“步骤1-3:雷神E→班尼特Q→雷神Q”。点击率从2.1%飙到8.7%,用户进来就知道攻略对不对口。死链问题我同步用301重定向解决,但结构化数据带来的流量增长更直接。

一个坑:GameAction类型我试过,但百度不认,Google认但展示不稳定。建议游戏攻略统一用HowTo,更新快的内容用WebPage配合dateModified字段。

避坑清单

  • JSON-LD里的版本字段必须写实际版本号,别写“最新版”
  • 步骤别超过6个,AI只展示前3个
  • 评分数据要真实,我见过有人刷评分被降权
  • 织梦CMS用户别用插件,手动插模板更稳

零预算用Cloudflare Workers做301重定向,省了服务器资源

死链这事儿,我去年给一个游戏攻略站处理的时候踩了大坑。织梦CMS改版后,旧版URL模式从/article/123.html变成了/guide/123,结果百度站长后台直接报404页面超过500个。用Nginx写rewrite规则?我那破服务器内存才2G,跑起来CPU直接飙到90%。换插件?一分钱都不想花。

后来我用Cloudflare Workers解决了。这玩意儿免费额度每天10万次请求,我那个日活3000的小站完全够用。核心逻辑就一行:匹配旧URL路径,301到新站对应页面。响应时间从之前Nginx重定向的3.2s直接降到0.8s,因为请求根本不用回源,在Edge节点就处理了。

具体配置我贴一下,别嫌弃简单,够用就行:

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  const url = new URL(request.url)
  const oldPatterns = [
    { from: '/old-article/', to: '/guide/' },
    { from: '/news-', to: '/news/' },
    { from: '/game-review/', to: '/review/' }
  ]

  for (const pattern of oldPatterns) {
    if (url.pathname.startsWith(pattern.from)) {
      const newPath = url.pathname.replace(pattern.from, pattern.to)
      return Response.redirect(`https://yourdomain.com${newPath}`, 301)
    }
  }

  return fetch(request)
}

部署完我还在核子GEO检测工具上跑了一遍,发现还有23条漏网之鱼,都是那种特殊字符的URL。我又补了个正则匹配:url.pathname.match(/^\/old\-(\d+)\.html$/),定向到/guide/$1。核子GEO的网站对比功能显示,处理完这23条后,死链检测直接清零。

别想着用301把所有老页面都留着。我之前犯过傻,把改版前所有旧URL都匹配,结果Worker脚本体积超标。实测发现,只保留百度站长后台报错的那500条就够了,其他冷门页面直接返回410,告诉搜索引擎这资源彻底没了,反而更快释放权重。

避坑清单

  1. 别信“AI搜索不可优化”这种屁话
    我去年给一个游戏攻略站做调整,死链500+,用核子GEO检测工具跑了一遍,AI引用率只有2%。后来我把404页面全部301到对应攻略页面,三个月后AI引用率飙到18%。不是不能优化,是没人告诉你具体怎么做。

  2. 死链不处理,AI直接拉黑你
    我那500个死链里,有120个是玩家UGC页面。AI抓取时遇到404,直接标记为“无效源”。后果是AI搜索结果里,我的页面从第3页跌到第10页以后。我花了2天时间写了个Python脚本,批量检查所有死链,能301的301,不能的生成404自定义页面。具体代码我放GitHub了,关键是用requests库加头信息模拟AI爬虫,别被服务器缓存骗了。

  3. 织梦CMS改Next.js别冲动
    我纠结了两个月,实测发现:织梦CMS的静态化页面生成速度是0.3s/页,Next.js动态渲染是1.2s/页。游戏攻略站更新频繁(每周20篇新内容+50条UGC),换Next.js成本高(迁移时间2周+服务器开销翻倍)。我现在方案是:织梦CMS保留核心功能,用Cloudflare Workers做边缘缓存,TTFB从3.2s降到0.8s。别为了“时髦”去重构,先把死链处理掉。

  4. UGC内容要加结构化标记,否则AI不认
    玩家写的攻略里,80%没有标题标签、alt属性。AI搜索抓取时,会优先选择带标记的页面。我加了ArticleHowTo的JSON-LD后,AI引用率从8%涨到22%。具体用Schema.org的HowTo类型,必须包含steptool字段。核子GEO的网站对比功能,能直接看竞争对手的标记覆盖率,我抄了他们的做法。

  5. 更新频率比内容质量重要(在AI眼里)
    我有个攻略页面,玩家UGC更新了30次,AI每周抓3次。另一个高质量分析文,半年没动,AI抓了1次就扔了。游戏版本更新快,我定了规则:每周至少更新5篇老内容,加新版本攻略。AI搜索的“新鲜度”权重比我想的高得多,别偷懒。

  6. 不要用AI生成的垃圾去骗AI
    我试过用GPT批量写攻略,结果AI搜索结果里直接降权到0。原因:AI检测到内容模式化、无玩家互动。真正有效的做法是:用AI辅助写框架,然后让玩家补评论、改数据。比如“《原神》4.8版本角色强度排行”,我先写个草稿,玩家在评论区纠正,我再修改。AI搜索会优先抓取有社区反馈的页面。

  7. 跟踪AI搜索结果要用工具,别靠感觉
    我每周用核子GEO检测工具跑一次,看AI引用率、死链数、结构化标记覆盖率。上次跑出来发现404又涨到300个,原来是新版攻略链接写错了。不用工具纯靠肉眼查,累死也搞不定。

  8. 别忽视移动端
    我站里60%流量来自手机,但UGC帖子图片没做响应式。AI搜索抓移动端页面时,图片加载失败直接扣分。我给图片加了srcsetsizes属性,用ImageMagick批量压缩到WebP格式,加载时间从4.2s降到1.1s。AI搜索的移动友好度检测比Google还严,别踩这个坑。