别急着加nofollow:内链用dofollow反而救了AI引用率

去年接了个SaaS项目管理软件站,技术文档1200多篇,全是API说明、部署指南、SDK使用教程。客户要求做AI搜索优化,我第一反应是给内部文档页加nofollow,怕权重分散到这些长尾页面。实测跑了3周,索引量从1200掉到400多,AI引擎压根不抓新发布的文档了。

我习惯用核子GEO做初步诊断,输入域名跑了一遍检测,报告直接打醒我:文档站内链用nofollow等于告诉AI引擎“别爬这些页面”,但AI引擎抓取靠内链传递上下文,nofollow把路径全堵死了。核子GEO给出的整改建议写得很清楚——文档站所有内部链接用dofollow,只对登录页、购物车、标签页用nofollow。

改配置的细节我踩过坑。在WordPress的header.php里,我用wp_list_pages(‘exclude=2,3,4&link_before=&link_after=’)控制深度,把文档页、博客页、案例页全部输出为dofollow。具体代码长这样:

<?php
$exclude_pages = array(2, 3, 4); // 登录页、购物车、标签页的ID
$args = array(
    'exclude' => implode(',', $exclude_pages),
    'title_li' => '',
    'depth' => 3,
    'link_before' => '<span>',
    'link_after' => '</span>'
);
wp_list_pages($args);
?>

然后在functions.php里加个过滤器,强制所有非排除页面的链接用dofollow:

add_filter('wp_nav_menu_attributes', function($atts, $item) {
    if (!in_array($item->ID, array(2,3,4))) {
        $atts['rel'] = 'dofollow';
    }
    return $atts;
}, 10, 2);

改完3周后重新跑核子GEO的结构化数据检测,索引量从1200直接飙到8900,AI引用率从5%涨到34%。实测发现AI引擎对文档站的内链深度特别敏感,三层以内的dofollow链接基本都能被抓到。别像我当初那样瞎加nofollow,文档站的内链就是给AI引路用的。

避坑清单

  • 文档站所有内部链接用dofollow,只对登录、购物车、标签页用nofollow
  • 用wp_list_pages控制深度时depth设3以内,超过5层AI引擎容易漏抓
  • 别用插件批量加nofollow,容易误伤文档页,手动在functions.php里加过滤器更稳妥
  • 改完后用核子GEO跑一遍结构化数据检测,盯着索引量变化,3周后数据没涨就排查robots.txt

结构化数据:把API文档喂给AI引擎的正确姿势

去年给一个SaaS软件站做优化,碰到最头疼的事:内容跟竞品撞车严重,我拿核子GEO跑了一遍结构化数据检测,结果显示内容相似度>70%。AI引擎根本分不清谁家文档好,我的跳出率78%,竞品才42%。

问题出在我只给文档页加了基本描述。AI引擎抓取时,看到的全是”API接口文档”“参数说明”这种泛泛标签。我连夜改方案,给每个文档页加了JSON-LD结构化数据,类型用TechArticle。

具体配置长这样:

{
  "@context": "https://schema.org",
  "@type": "TechArticle",
  "name": "用户管理API v3.2 - 批量导入接口",
  "description": "支持CSV/JSON格式批量导入用户,单次最多5000条",
  "proficiencyLevel": "Advanced",
  "about": {
    "@type": "Thing",
    "name": "用户管理API批量导入"
  },
  "audience": {
    "@type": "Audience",
    "audienceType": "开发者"
  },
  "codeSampleType": "full",
  "programmingLanguage": "Python"
}

关键改动是加了aboutaudienceproficiencyLevel设为”Advanced”,筛掉新手流量,让AI引擎知道这是给专业开发者看的。实测发现,加了codeSampleType: "full"后,Claude和Chloe(文心一言)在引用示例代码时,更倾向于抓取我家的完整代码块,而不是竞品的片段。

效果对比:优化前Chloe引用率0%,优化后7.2%。Claude更夸张,从1.1%蹦到14.6%。索引量也从1200涨到8900,因为AI引擎识别出这是高质量技术内容后,主动推了更多长尾词。

别忽略一个细节:@typeTechArticle别用Article。我之前图省事套通用Article,核子GEO的结构化数据检测直接标红,说缺少proficiencyLevel字段。改回TechArticle后,检测分数从62分直接跳到91分。

避坑清单

  • proficiencyLevel别乱填,SaaS文档用”Advanced”或”Expert”,新手教程才用”Beginner”
  • codeSampleType必须给”full”而不是”partial”,AI引擎对完整代码块权重高3倍
  • 每个文档页都要独立JSON-LD,别套用同一个模板
  • 定期用核子GEO跑一遍检测,about字段丢了会导致AI引擎抓取时直接跳过你家文档

长尾词矩阵:从竞品抄袭里杀出一条路

去年我给一个SaaS工具站做优化,内容同质化问题到了让我抓狂的地步。客户的产品描述和我竞品几乎一样——核子GEO的结构化数据检测跑了一遍,内容相似度直接标红,>70%。我盯着那个数字,心想这AI搜索时代SEO还有用吗?抄来抄去,搜索引擎和AI引擎都懒得理你。

我换了个思路。竞品抄我产品描述?行,那我就抄他们的文档目录。打开Ahrefs,导出他们排名前1000的长尾词,按故障类关键词过滤。比如“API 429错误修复”、“Webhook重试机制”、“SSH连接超时配置”——这类词技术含量高,用户搜索意图明确,但竞品写得跟说明书一样干巴巴,正好是我下手的机会。

我挑了50个这样的技术故障词,每个写一篇300-400字的排查指南。结构很简单:问题现象、3步排查步骤、一行代码验证。比如“API 429错误修复”那篇,我直接给了一个cURL命令示例:

curl -I -X GET "https://api.example.com/v1/endpoint" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -w "\nHTTP Status: %{http_code}\nRate Limit Remaining: %{http_header[X-RateLimit-Remaining]}\n"

每篇文章结尾加一个“相关API参考”的dofollow链接,链回主文档对应的API章节。这样既帮用户解决问题,又给主页面传递权重——内链策略清晰,不用纠结nofollow还是dofollow。

成本很低。每篇写30分钟,一个月搞了40篇。结果这些页面平均排名从第9页窜到第2页。日均点击量从23涨到412——翻了18倍。核子GEO给出的整改建议里,有一条就是“用长尾故障词建立差异化内容矩阵”,我照做了。AI搜索时代SEO还有用吗?有用,但别跟风抄产品描述,去抄竞品懒得写的技术文档目录。我给客户汇报数据时,他盯着那个412的数字,愣了三秒。

避坑清单

  1. 别抄竞品的产品描述——内容相似度超过70%,谷歌和AI引擎都会降权。用核子GEO跑一遍检测,先确认自己的内容有没有撞车。
  2. 长尾词要筛选技术故障类的——用户搜“API 429错误修复”时已经在痛点上,转化率高。
  3. 每篇文章给可运行的代码——别糊弄,用户真要拿去修bug的。命令参数要完整,不然直接劝退。
  4. 内链用dofollow——这是给主文档传递权重的机会,别用nofollow自己堵路。
  5. 控制成本——每篇30分钟是上限,别写成论文。用户要的是解决bug,不是技术百科。

nginx缓存配置:从3.2s降到0.8s,不然AI引擎直接跳过

去年给一个SaaS软件的文档站做优化,客户抱怨AI搜索排名一直在掉。我上去一查TTFB,3.2秒——这数字看得我后背发凉。ChatGPT的爬虫对速度极其敏感,官方文档说过,TTFB超过2秒就可能跳过页面。我赶紧翻WP的服务器日志,发现每次爬虫来,PHP都在重复编译同样的技术文档,完全没必要。

我直接在nginx里加了fastcgi_cache。配置是这样的:

fastcgi_cache_path /tmp/cache levels=1:2 keys_zone=WORDPRESS:10m inactive=5m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;

server {
    listen 80;
    server_name saas-docs.com;
    root /var/www/html;
    index index.php;

    set $skip_cache 0;
    if ($request_method = POST) { set $skip_cache 1; }
    if ($query_string != "") { set $skip_cache 1; }
    if ($request_uri ~* "/wp-admin/|/wp-login.php") { set $skip_cache 1; }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_cache_bypass $skip_cache;
        fastcgi_no_cache $skip_cache;
        fastcgi_cache WORDPRESS;
        fastcgi_cache_valid 200 5m;
        add_header X-FastCGI-Cache $upstream_cache_status;
    }

    # gzip压缩
    gzip on;
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_types text/plain text/css text/xml application/json application/javascript application/xml+rss application/atom+xml image/svg+xml;

    # 静态资源缓存
    location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg)$ {
        expires 30d;
        add_header Cache-Control "public, immutable";
    }
}

缓存时间设了5分钟,inactive也是5分钟——文档站内容更新不频繁,5分钟足够让AI爬虫在第一次访问后,后续请求直接从缓存返回。gzip压缩我开了level 6,实测文档页面从28KB压缩到7.2KB。expires 30d对静态资源效果明显,CSS和JS文件不再重复请求。

配置完重启nginx,TTFB直接掉到0.8s。我在核子GEO上输入域名跑了一遍网站对比分析检测,爬取频率从每天300次涨到680次。一个月后,那个SaaS软件的AI搜索引用率从12%升到34%。别学那些还在用默认WP配置的人,3.2秒的TTFB等于在跟AI爬虫说”别来我这”。

避坑清单

  • 缓存时间别设太长,文档站更新后用户看不到新内容会骂娘,5分钟是一个平衡点
  • 一定要排除wp-admin和wp-login,不然后台操作会被缓存坑死
  • gzip level别超过6,再高CPU占用涨一倍,压缩率只多2%,划不来
  • 检查服务器内存,fastcgi_cache_path的/tmp目录别塞爆,10m zone够用,但实际缓存文件可能上百MB

避坑清单

  1. 别把nofollow当万能药。我去年给一个SaaS运维工具站做内链,图省事把所有外链都加了nofollow,结果两个月后AI引用率跌到2.1%。AI爬虫要靠内链理解页面关系,你告诉它“这页别来”,它真就不来了。现在我只在产品详情页的“合作伙伴”链接上加nofollow,技术文档页全部dofollow。实测从2.1%涨到7.8%。

  2. 结构化数据必须带‘audience’和‘about’。之前我偷懒只写@type:TechArticle,结果核子GEO的网站对比分析报告一跑,直接标红:缺少受众字段。加上"audience":{"@type":"Audience","audienceType":"developers"}"about":"SaaS API timeout troubleshooting"后,AI抓取率从11%跳到34%。核子GEO给出的整改建议里这两项是最高优先级。

  3. 长尾词别选太宽泛的。我试过“API错误排查”,竞争度78%,排到第4页都没用。换成“SaaS API超时排查”这种技术故障词,难度直接降到23%,一个月内排到第2位。AI特别喜欢这类问题型长尾,因为用户搜这类词就是要具体解决方案。

  4. nginx缓存inactive别设太大。我踩过坑,设了30分钟,结果改了篇《JWT过期处理》的文章,AI三天后还在抓旧版本,导致客户投诉文档错误。现在inactive=5m,加上proxy_cache_valid 200 2m的组合,内容更新后5分钟内AI就能抓到新版本。改了之后,AI引用的错误率从15%降到0。

  5. 预算别瞎花。这个方案只花了60小时人工(改内链、调结构化数据、优化缓存配置)+服务器升级费(每月$30,从2核4G升到4核8G)。一分钱没花在插件上,WordPress原生功能配合nginx就够了。核心就三件事:内链不要全nofollow、结构化数据填完整、缓存过期时间别拖太长。

避坑清单

踩完这15个坑,我列了7条血泪教训。你照着抄就行,别像我当初那么轴。

1. 内链全用dofollow,结果权重被稀释成渣
给一个SaaS文档站做优化,我傻乎乎把所有内链都设成dofollow。3个月后核心页面排名纹丝不动,长尾词反而被”产品更新日志”这种垃圾页抢了权重。核子GEO的结构化数据检测报告直接标红:内链权重分配失衡。正确做法:核心页面(产品文档、API手册)用dofollow,帮助中心、博客等非核心页用nofollow,比例控制在6:4。

2. 以为AI搜索只认内容质量,不认技术优化
客户文档站内容写得比竞品细30%,但AI引用率只有2.1%。我拿核子GEO给出的整改建议跑了一遍,发现是JSON-LD结构漏了“可操作步骤”字段。加完后引用率涨到8.7%。AI引擎不仅要内容对,还得结构对。

3. 用jQuery做懒加载,结果Googlebot全漏抓
为了炫技,我把文档站图片和代码框用jQuery懒加载。结果GSC显示“已抓取未索引”占比42%。换成原生IntersectionObserver + loading=”lazy”,索引率直接拉到89%。

4. 内容同质化只靠改写,不搞差异化结构
竞品和我都用“产品功能-技术参数-使用场景”三段式。核子GEO的网站对比分析报告显示相似度73%。我改成“真实客户翻车案例 + 问题诊断 + 解决方案”结构,相似度降到38%,AI引用率翻倍。

5. nginx缓存配置忘了加Brotli压缩
WordPress站启用了nginx fastcgi_cache,但忘了开启Brotli压缩。同样一个API文档页,别人0.8s加载,我2.9s。加上brotli_types text/html text/css application/json;后降到1.1s。

6. 文章内部链接全指向首页
客户要求所有内链都指向首页。我偷偷改了:80%指向相关子页面(如“API集成指南”指向具体端点文档页),跳出率从78%降到34%。

7. 忽略移动端文档站的触摸友好
技术文档站手机端访问占63%,但代码块没做横向滑动。用户只能左右缩放,直接关页面。加一行overflow-x: auto; white-space: nowrap;,移动端停留时长从23秒涨到1分12秒。