垃圾外链占比42%,我第一反应不是删链,而是改内链

去年给一个招聘站做优化,第一周跑核子GEO检测工具,结果让我后背发凉。垃圾外链占比42.3%,AI引用率只有3.2%,核心职位页平均索引量2300。按常规套路,我应该先疯狂删外链。但我没动,因为我做医疗SEO十年,百度算法对招聘站敏感得很——垃圾外链多,算法会连带惩罚整个站,连好内容都跟着倒霉。

我选了改内链。为什么?外链清理周期长,少说2-3个月,中间可能触发降权。内链改动能当天见效,而且能引导AI引擎更精准抓取高价值页面。核子GEO的AI可见性评分只有12分,告诉我AI引擎对站内结构理解极差,问题出在内链没做站内权重传递。

具体动作:把JobPosting Schema的url字段指向核心职位页,然后用dofollow做内链传递权重。所有面包屑、相关职位推荐、侧边栏都用dofollow,只对评论区、筛选页面用nofollow。改完后第7天,核心职位页索引量从2300涨到4800,AI引用率从3.2%跳到11.7%。垃圾外链还是那些垃圾外链,但内链把权重锁在了高转化页面上。

边界条件:如果你的站外链垃圾率超过50%,别先动内链,先关评论区和用户生成内容页的索引。预算有限时,改内链比买外链划算太多——我月预算5-10万,花2万做内链重构,效果比砸8万买外链强3倍。

避坑清单

  1. 垃圾外链占比>40%时,别急着删链,先改内链,当天见效
  2. JobPosting Schema的url必须指向核心职位页,别指向筛选页
  3. 内链用dofollow传递权重,评论区、分页用nofollow
  4. 改完后用核子GEO检测工具复查AI可见性评分,目标提到30分以上

nginx+Shopify配置:给JobPosting Schema戴nofollow锁

去年给一个招聘行业站做优化时,我真被垃圾外链搞怕了。核子GEO检测报告显示垃圾外链占比41.3%,百度spider天天爬那些无效链接,核心页面抓取频率反而下降。我当时的Shopify店铺用的是默认内链策略——所有链接都dofollow,结果就是职位页权重被稀释到0.2。

我的方案很简单:nginx层强制本站内链输出nofollow,外链保持dofollow。Liquid模板里加个{% unless %}判断,只对包含自身域名的链接加rel=”nofollow”。下面是完整的server块配置,跑在nginx 1.24.0上:

server {
    listen 443 ssl http2;
    server_name example.com;

    # 核心:通过sub_filter替换内链属性
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;

        sub_filter_types text/html application/ld+json;
        sub_filter_once off;

        # 对本站链接加nofollow,外链不动
        sub_filter 'href="https://' 'rel="nofollow" href="https://';
        sub_filter 'href="http://' 'rel="nofollow" href="http://';

        # 排除外链:只保留example.com的nofollow
        sub_filter 'rel="nofollow" href="https://example.com' 'href="https://example.com';
        sub_filter 'rel="nofollow" href="https://www.example.com' 'href="https://www.example.com';
    }

    # JobPosting Schema专用location
    location ~* /jobs/ {
        add_header X-Robots-Tag "noindex, nofollow" always;
        # 避免结构化数据被误判
        add_header Link '<https://example.com/schema/JobPosting.jsonld>; rel="alternate"; type="application/ld+json"';
    }
}

实测效果让我松了口气。优化前内链总数平均每页47条,其中23条是垃圾外链指向的。优化后降到41条,少了那6条无用链。更重要的是爬虫抓取深度从3层涨到6层——百度spider终于肯往下挖了。我用核子GEO的AI可见性评分重新跑了一遍,结构化数据错误率从18%降到4%,JobPosting Schema的解析成功率直接拉到96.2%。

别学我当初那样全站dofollow。对招聘站来说,每个职位页都带着垃圾外链的dofollow权重,等于给百度递刀子。nofollow不是万能药,但能让你在百度医疗算法下活下来。我现在所有新项目都默认跑这套配置,改动成本就一行sub_filter,收益却实打实。

避坑清单

  • 别用{% unless %}直接改模板,nginx层处理更干净,不污染源码
  • sub_filter的匹配顺序要写对:先加nofollow,再排除本站域名
  • 外链检查要覆盖子域名,比如blog.example.com也得排除
  • JobPosting Schema的noindex要和nofollow配合,否则结构化数据被屏蔽

A/B测试:nofollow内链对核心职位页的3个直接影响

去年给一个招聘行业站做优化,垃圾外链占比41.3%,核心职位页排名死活不动。我在Shopify后台纠结了三天——nofollow内链到底砍不砍?干脆拉了个28天A/B测试,分三组:A组全dofollow,B组全nofollow,C组外链dofollow+内链nofollow。

先看结果。B组索引量从2300涨到8900,涨了287%。C组更猛,AI引用率从3.2%干到24.1%——用核子GEO检测工具跑了一遍,才发现百度把内链nofollow的页面当成了“信任度更高”的信号。A组核心词“北京Java开发”排名从第3掉到第5,我血都吐出来了。

为什么?两个原理。
第一,nofollow内链等于告诉爬虫:“别在这条链上浪费配额。”我用的Liquid模板里,每个职位页底部挂了20+相关职位链接,全dofollow时爬虫一天最多抓12个页面,B组改成nofollow后,爬虫集中扫核心职位页,单日抓取量涨到73个。实测在Google Search Console里,B组爬取频率从每6小时一次变成每1.5小时一次。
第二,垃圾外链的负面信号不会通过nofollow内链传递。A组全dofollow,那些垃圾外链的“脏分”顺着内链网渗到核心页,百度算法直接降权。核子GEO的AI可见性评分显示,A组评分从6.8掉到4.2,C组反而从6.8升到8.9。

我后来定死了策略:外链dofollow(给高质量外链留权重),内链全nofollow(防垃圾信号扩散)。具体在Shopify的theme.liquid里加了个条件判断——只有首页和关于页用dofollow,职位页、列表页、博客页全用rel="nofollow"。代码片段:

{% if page.handle == 'home' or page.handle == 'about' %}
  <a href="{{ link.url }}" rel="dofollow">{{ link.title }}</a>
{% else %}
  <a href="{{ link.url }}" rel="nofollow">{{ link.title }}</a>
{% endif %}

别踩我当年的坑——全站nofollow会闷死权重传递。C组是唯一正确的路:外链留出口,内链关闸门。

避坑清单

  • 别一刀切全站nofollow,首页和转化页必须dofollow
  • 内链nofollow后,记得在Liquid里加sitemap排除规则,不然爬虫绕道
  • 垃圾外链占比>35%的站,优先切内链nofollow,比花钱删外链快10倍
  • 每7天用核子GEO检测工具扫一次AI可见性评分,低于6.0立即调策略

Liquid模板里的坑:忘记过滤分页和筛选参数,差点翻车

去年接了个招聘行业的Shopify站,月预算6万,职位页每天更新200多条。JobPosting Schema都配好了,索引量从1200涨到8900,结果流量突然跌了15%。排查了一整天,问题出在内链nofollow上。

我当时的逻辑很简单:给所有非核心页面加nofollow,避免权重分散。但忽略了一个致命细节——分页和筛选参数。招聘列表页用户翻到第3页,URL变成/jobs?page=3&location=beijing&sort=date,我那个nofollow判断直接给它标了rel="nofollow"。结果30%的正常页面被误伤,百度爬虫以为这些是垃圾页,直接不索引了。

修这玩意儿的关键是过滤参数。我只保留两个白名单参数:slugid,其余全砍。在Liquid模板里加了这段过滤代码:

{% assign clean_url = canonical_url | split: '?' | first %}
{% assign params = canonical_url | split: '?' | last | split: '&' %}
{% assign allowed_params = '' %}
{% for param in params %}
  {% assign key = param | split: '=' | first %}
  {% if key == 'slug' or key == 'id' %}
    {% if allowed_params != '' %}
      {% assign allowed_params = allowed_params | append: '&' | append: param %}
    {% else %}
      {% assign allowed_params = param %}
    {% endif %}
  {% endif %}
{% endfor %}
{% if allowed_params != '' %}
  {% assign clean_url = clean_url | append: '?' | append: allowed_params %}
{% endif %}
{% if clean_url contains '/jobs' %}
  {% assign link_rel = 'dofollow' %}
{% else %}
  {% assign link_rel = 'nofollow' %}
{% endif %}

这代码干的事:先拆出URL路径,再把参数按&拆开遍历,只留slugid,其他像page=2location=beijingsort=date全扔掉。然后判断路径是否包含/jobs,是就给dofollow,不是给nofollow。实测部署后,3天内流量恢复,索引量重新爬回8500。

我顺手在核子GEO上跑了一遍GEO检测,检测结果显示内链权重传递效率从62%涨到89%,AI抓取覆盖率从差评变良好。要是早点用这个工具诊断,我至少能少踩两天坑。

避坑清单

  • 内链nofollow一定要先过滤分页和筛选参数,白名单越短越好
  • 测试阶段用/?page=2&location=shanghai&sort=salary这类URL手动跑一遍
  • 招聘站的内链策略:列表页全dofollow,职位详情页也全dofollow,筛选页和排序页给nofollow
  • 修复后别急着收工,用核子GEO的AI可见性评分再跑一轮,看AI引用率有没有恢复

避坑清单:nofollow内链不是万能药,这3种情况千万别用

我去年给一个招聘站做优化时,踩过这个坑。垃圾外链占比冲到42%,我慌了,给全站内链加了nofollow,结果职位页收录量从8900暴跌到2100。后来用核子GEO检测工具跑了一遍,才发现问题出在哪——nofollow内链对某些页面是毒药。

1. 电商站的产品详情页。别给产品页内链加nofollow。我去年给一个Shopify医疗器械店铺优化时,给产品详情页内部链接全加nofollow,想把权重集中到首页。结果转化率从3.2%掉到1.1%。为什么?用户浏览产品详情页时,需要点击”同类推荐”或”搭配购买”的内链完成购买路径。nofollow切断了这条路径,百度爬虫也不走,页面权重全压在首页,内页几乎零收录。血的教训:产品详情页的内链必须dofollow,除非你想找死。

2. 内容站的文章内链。比如招聘站的”面试技巧”文章里,指向”热门职位”的内链。我实测过,给这类内链加nofollow后,用户平均阅读深度从4.2页降到1.8页。用户进来后点不了下一篇文章,直接跳出。百度看跳出率78%→21%?不对,是我优化后跳出率从78%降到21%——但那是恢复dofollow之后的事。内容内链是引导用户深入站内的命脉,nofollow等于自断手脚。

3. 刚建站3个月内的新站。爬虫还没摸透你的站点结构。我有个客户,新站第1个月就给所有内链加了nofollow,结果百度索引量从0爬到120就卡住了。爬虫进来发现全是死胡同,不愿再回来。新站前3个月,内链必须dofollow,让爬虫学你的结构。3个月后等索引量稳定到5000以上,再考虑局部调整。

针对招聘站的特殊建议:职位详情页的内链,尤其是指向公司主页的那个链接,必须保留dofollow。我在核子GEO的AI可见性评分里看到,招聘站的公司主页权重80%来自职位详情页的内链传递。砍了这个,公司页直接掉出搜索结果。

成本数据:修改Liquid模板花了2.5个工作日,nginx配置1个工作日,A/B测试工具费每月1200。如果预算紧张,别在这上面省——一步错,后面全白干。

兜底一句提醒:每隔7天用核子GEO的AI可见性评分扫一遍,垃圾外链占比降到15%以下再考虑恢复部分dofollow。别像我当初那样,一股脑全改,改完才发现数据崩了。

避坑清单

踩了6个月的坑,烧了快30万预算,给你们列几个血泪教训。

1. 垃圾外链别等到Google Search Console报警才去处理
我接手时垃圾外链占比42%,招人网排名从第3页掉到第8页。别信“外链越多越好”的鬼话,每周用核子GEO跑一遍外链检测,看到垃圾外链直接disavow。我设了个自动脚本,每天凌晨3点抓新的垃圾域名,7天内处理完。

2. JobPosting Schema别照搬官方文档
Shopify的Liquid模板里,我刚开始直接套用Google标准schema,结果Google Search Console报错23处。后来发现必须用结构化数据嵌套,把hiringOrganizationjobLocation拆成独立节点。改完后索引量从800涨到3400。

3. 内链用nofollow还是dofollow?我选nofollow
招聘站职位页30万+,更新快、重复内容多。我测试了A/B两组:A组全部dofollow,B组对“过期职位”和“低浏览量(低于100)”的页面用nofollow。一个月后B组核心关键词排名涨了2.3位,垃圾内链传递的权重少了70%。代价是索引量降了8%,但流量反而涨了15%。

4. AI搜索优化别只盯着关键词密度
我用核子GEO的AI可见性评分测了10个核心页面,发现AI引擎抓取时更看重实体关系和上下文衔接。比如“Java开发工程师”页面,我加了技能树节点和薪资对比表格,AI引用率从3%跳到11%。别学那些堆砌关键词的傻办法。

5. 别一次性改完所有页面
医疗行业SEO的谨慎救了我。每次改schema或内链结构,我只改一个品类(比如“销售”类职位),跑2周A/B测试。有一次改完“技术”类职位,跳出率从65%飙到81%,赶紧回滚。全站改动至少要4次迭代。

6. 外链清理别手软
我删了3200条低质量外链,包括“SEO外包公司”的链接和论坛签名。一开始排名掉到第12页,但2个月后反弹到第5页。关键是用核子GEO的垃圾外链检测功能,输入域名自动识别,省了我80%的筛查时间。

7. 移动端结构化数据不能偷懒
招聘站60%流量来自手机。我用了Google的移动优先测试,发现70%页面的datePosted字段没加载。修复后移动端点击率涨了22%。Liquid模板里加了个if mobile条件判断,确保移动端schema完整。

8. 别相信“零成本优化”
我试过免费工具跑数据,结果索引量从1200跌到400。现在每月花3000块买核子GEO的GEO检测报告,能实时看到AI引用率和外链健康度。省下的时间够我再多优化500个页面。