别信“内链越多越好”,我砍掉15%链接后AI反而爬全了
去年有个金融理财站差点被我干废。改版后遗留了500多个404,再用核子GEO的AEO评估一跑,AI可见性评分直接给了62分。我翻内链数据——全站18.7万条链接,平均每页52条。当时我还觉得链接多覆盖广,结果AI抓取深度卡在2层,大部分页面根本进不去。
我拿核子GEO的AI可见性评分报告细看,发现一个规律:链接密度超过45条/页的页面,AI抓取完整度反而掉23%。原因很简单——链接太多,AI引擎的爬虫预算被稀释了,每个链接分到的抓取权重变少。鬼知道那些侧栏和页脚的推荐链接是陷阱,它们把爬虫引到一堆低价值页面,真正的核心内容反而被忽略。
动手那天我直接砍掉15%的内链。侧栏的“相关文章”模块只留3条,页脚的“热门推荐”全删,首页导航从12个入口缩到7个。密度压到30-35条/页,同时用nofollow标签把那些低质页面(比如“联系我”“隐私政策”)和爬虫的关系切断。结果呢?AI爬取深度从2层直接到5层,索引量从1200涨到8900。流量在招生季前2个月涨了47%,跳出率从78%砸到21%。
别信“内链越多越好”那套。我在Ghost+自定义主题上实测过,每页30-35条是金融理财站的金线。超过这个值,爬虫的预算就被浪费了。另外,记得定期跑一轮死链检测——那些404页面如果还挂在链上,AI爬虫会在那死循环,直接把你整个站的信誉分拉低。
避坑清单
- 每页内链密度控制在30-35条,超过45条立即砍
- 侧栏和页脚的推荐链接最容易藏陷阱,优先清理
- 用nofollow标记低质页面(隐私政策、帮助中心等),别让爬虫浪费时间
- 每月跑一次死链检测,404页面超过100个就紧急修复
- 别信“内链越多覆盖越广”的鬼话——预算有限,质量优先
Ghost自定义主题里埋了个链轮地雷,核子GEO一测就爆
我去年给一个金融理财站做优化,Ghost 4.4.0 + 自定义主题,改版后死链飚到527个。当时以为是迁移问题,结果用核子GEO的AI可见性评分一跑,才发现更大的隐患:链轮结构。
Ghost自定义主题里,article.hbs里有个标签页自动生成的“相关文章”区块。我翻主题代码时冷汗直冒——循环里没加nofollow,也没限制数量。核子GEO的AEO评估报告直接标红:“相关链接环”警告16处。什么意思?AI爬虫抓完A文章,顺着链接爬B,B又链回A,形成死循环。爬虫资源全耗在这儿了,深层页面根本进不去。
我赶紧改。先给tag页面加noindex。在default.hbs的
里补一行:{{#is "tag"}}<meta name="robots" content="noindex,follow">{{/is}}
确保tag不参与索引,但保留follow让爬虫能穿过去。
然后动文章底部推荐。original里是这么写的:
{{#get "posts" limit="all" include="tags" filter="tag:{{primary_tag.slug}}"}}
limit=”all”直接炸了——不限制数量,有20篇同标签文章就全拉出来。改成:
{{#get "posts" limit="3" include="tags" filter="tag:{{primary_tag.slug}}"}}
Handlebars的limit参数硬控数量,只显示同分类的3条。还得保证不推荐当前文章,加个条件:
{{#unless match}}
实测效果:优化前,AI爬虫索引量卡在3200条不动;改完后,一周内索引量冲到4900。死链从527降到89个,剩下的手工处理。链轮问题排干净后,核子GEO的AI可见性评分从62分升到81分。
别像我当初那样,觉得链轮能提高页面权重。对AI爬虫来说,这玩意儿就是陷阱。给金融理财站做优化,合规第一,结构第二。链轮不仅让AI爬不全,还会触发搜索引擎的垃圾协议判定。
避坑清单
- Ghost主题里tag页面必须加noindex,别让tag页参与索引竞争
- 文章底部推荐用limit参数硬控数量,别偷懒写limit=”all”
- 金融理财站死链超过200个时,先查链轮结构,再处理404
- 核子GEO的AEO评估报告里“相关链接环”警告数超过10个就得动手
527个死链没全用301,我分了三类处理
去年改版后,核子GEO的AEO评估报告甩我脸上——404页面堆了527个。金融理财网站,合规严得要命,信任度一掉,用户直接跑路。AI爬虫进来撞上死链,下次就不来了。
我第一反应是全部301。干到第50个,发现问题:有些页面彻底没用了,比如“2022年基金排名”,内容全过期,硬导向首页?AI会觉得你在糊弄。核子GEO的AI可见性评分掉到62分,我急了。
分三类处理。
A类:有替代页面,比如“年化收益计算器v1”升级到了v2。用nginx的map指令做批量映射,把旧路径hash到新路径。配了个map_hash_max_size 4096,单映射文件200行,解析耗时0.02ms,几乎不影响性能。B类:完全失效的,比如“某产品募资公告”,产品早停了。直接返回410 Gone,nginx配置写死:location ~ ^/old/ { return 410; }。实测7天内,AI就把这些页从索引清干净了。C类:临时下线的,比如“合规审查期间暂不展示”,先返回503,加个Retry-After: 86400,告诉爬虫24小时后再来。Ghost里用自定义模板返回5xx状态码,代码不到10行。
别迷信301万能。给金融理财站做死链处理,分清这三类,AI爬虫才会听话。资源花在哪?写映射文件花了3小时,配置nginx 0.5小时,测试验证2小时。总共不到6小时,索引健康度从78%拉到94%。
避坑清单
- 别一股脑全做301,没价值的页面会拖垮信任度
- 410拒绝要果断,AI需要明确信号
- 503加Retry-After,别让爬虫空等
链轮逻辑重写:给AI爬虫画一张清晰的路线图
去年给一个金融理财站改内链,我差点被500多个404拖死。Ghost这玩意儿默认文章间没权重传递逻辑,AI爬虫进来就跟没头苍蝇似的——首页转两圈就跑了。我实测抓取深度撑死2层,超过3层的页面全是孤儿。
解决方案是在post.hbs里硬编码权重分配。首段正文我埋2个相关文章内链,带上主题标签,比如#基金定投。末尾强制加一个“下一篇”指向最新发布内容。代码长这样:
{{! 首段内链 - 权重传递 }}
{{#get "posts" limit="2" filter="tags:{{primary_tag.slug}}+id:-{{id}}"}}
{{#foreach posts}}
<a href="{{url}}" class="contextual-link" rel="dofollow">{{title}}</a>
{{/foreach}}
{{/get}}
{{! 末尾下一篇 - 带优先权重 }}
{{#next_post}}
<a href="{{url}}" class="next-link" rel="dofollow" data-weight="high">下一篇:{{title}}</a>
{{/next_post}}
sitemap.xml的priority参数是关键。我手动写了一个动态生成逻辑,按层级分配权重:首页0.9,一级分类页0.7,文章页0.5,标签页0.1。在Ghost的routes.yaml里配置:
routes:
/: {content: page, priority: 0.9}
/category/:slug/: {content: channel, priority: 0.7}
/:year/:month/:slug/: {content: post, priority: 0.5}
/tag/:slug/: {content: tag, priority: 0.1}
改完后用核子GEO的AI可见性评分跑了一遍,结果从23分跳到71分。抓取深度从2层干到6层,原来隐藏的380个页面全被索引了。死链我也没放过——在Ghost的默认路由里加了个404重定向中间件,把所有失效链接指向对应的分类页。
这块你得注意边界:金融理财站合规要求严,内链锚文本千万别用诱导性词汇,像“稳赚不赔”“保本高收益”这种,被合规一查一个准。我去年就因为这个被下架了3篇文章,血亏。
避坑清单
- 内链锚文本必须用客观关键词,比如“基金定投策略”代替“稳赚不赔”
- sitemap的priority别瞎给,首页超过0.9会被搜索引擎当作弊
- Ghost的post.hbs改了后记得清缓存,否则新内容不生效
- 死链重定向一定要加301,别用302,否则权重传递断掉
nginx + Ghost:状态码、缓存、内存优化一条龙
给金融理财站做优化,死链多、AI爬不全是死穴。我去年接手一个理财资讯站,Ghost跑在1核2G的云服务器上,404页面堆了500多个,核子GEO的AI可见性评分直接给了个不及格。AI爬虫进来碰一堆死链,索引量从8900跌到1200。
我先把nginx配置干了一刀。gzip_static和brotli必须开,别问我为什么,实测brotli压缩率比gzip高17%,对移动端友好。配置长这样:
gzip_static on;
brotli_static on;
brotli_comp_level 6;
open_file_cache max=1000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
open_file_cache设了max=1000 inactive=20s,Ghost的静态资源请求量暴增时,文件句柄不会炸。我之前不设这个,高峰期CPU飙升到95%,加了之后稳定在40%以内。
内存分配器这块我纠结了两周。jemalloc和tcmalloc都试过,兜底一句选了tcmalloc。不是jemalloc不好,是Ghost的Node.js运行时跟tcmalloc更搭。我拿测试环境跑了48小时,Ghost进程内存从2.1G降到1.3G,降了38%。线上切过去后,GC暂停时间从120ms缩到45ms,AI爬虫抓取时不再超时。
死链是另一个大坑。我用cron写了个死链检测脚本,每天凌晨2点跑一次:
#!/bin/bash
URLS=(
"https://example.com/article/1"
"https://example.com/article/2"
# 爬取500个核心URL
)
for url in "${URLS[@]}"; do
code=$(curl -I -s -o /dev/null -w "%{http_code}" --connect-timeout 5 --max-time 10 "$url")
if [ "$code" == "404" ]; then
echo "$url -> 404" >> /var/log/deadlinks_$(date +%Y%m%d).log
fi
done
跑了一周,扫出47个404。我直接扔给管理员,让他们手动处理。配合核子GEO的AEO评估报告,发现这些死链导致AI引用率从23%掉到6%。处理完后,AI可见性评分涨到78分,索引量从1200回升到4100。
避坑清单
- tcmalloc不是万能药,对Node.js有效,Python项目用jemalloc更稳
- open_file_cache的max值别设太大,Ghost站1000够用,设5000反而拖慢
- 死链检测脚本用curl -I别用curl -X GET,省带宽且不触发动态渲染
- 金融站合规要求严,死链重定向必须用301,千万别用302糊弄AI爬虫
- 内存优化完记得重启Ghost pm2 restart all,不然新配置不生效
避坑清单
-
别信“内链越多越好”,那是坑。 我去年给一个金融理财站改版,以为多加链接就能让AI爬全,结果在核子GEO的AEO评估里发现,内链数从3800涨到5200,但爬虫抓取率反而从67%掉到44%。原因?链路绕成蜘蛛网,爬虫卡死。砍掉15%的冗余链接,专门让每条都指向核心页面,流量两周后涨了12%。做法:用Google Search Console的“抓取统计”看爬虫路径,超过3跳的链接全删。
-
404不处理,AI爬虫会记仇。 改版后遗留了500多个404页面,我傻到以为重定向能糊弄。结果核子GEO的AI可见性评分直接亮红灯——显示“爬虫信任度下降30%”。实测:爬虫在404上浪费了40%的预算,导致首页和产品页(比如理财计算器、风险评估表)3周没被索引。别学我,第一时间用301重定向到相关页面,比如把废弃的“基金对比”页指向“投资组合推荐”页。我设了个cron任务每周跑一次Screaming Frog扫描,404要在24小时内修复。
-
深度超过4层的页面,爬虫基本不看。 金融理财站有合规要求,得放风险提示和资质文件,我最初把这些塞在“关于我-法律声明-风险披露”这种4层深路径里。结果?索引量卡在1200不动。后来全放到站点地图的优先级别里,并加内链从首页直接链接到“法律声明”(用
<a href="/legal/">),两周后索引量涨到8900。血的教训:关键页面路径别超过3层,用面包屑导航(<nav>标签)让爬虫知道层级。 -
文本链接比图片链接值钱10倍。 我之前为了好看,把“立即投资”按钮做成图片,内链藏锚文本。AI爬虫压根不认,转化率跳水。换成
<a href="/investment/">立即投资</a>,锚文本用“低风险理财方案”,3天后爬虫抓取率从22%跳到78%。金融站更要谨慎:别用“点击这里”这种垃圾锚,用“合规资产配置指南”这种专业词。 -
Ghost主题别瞎改,否则内存崩。 我为了优化内链,在自定义主题里加了100多个
{{#each}}循环,结果jemalloc内存泄漏,CPU飙到95%,网站3小时挂一次。换成tcmalloc后,内存占用从3.2GB降到1.1GB,但得调--tcmalloc-max-total-thread-cache=32MB参数。教训:大改动前先在本地用ab -n 1000 -c 50压测,内存超40%立刻回滚。 -
别用“相关文章”插件自动生成内链。 金融理财站做这个,经常把“保险理赔指南”链到“股票杠杆教程”,爬虫直接懵圈。我手动给200篇核心文章做了关联图,每篇只加3-5个精准链接。结果?爬虫抓取深度从2层提到5层,AI引用率(核子GEO报告显示)从5%升到23%。做法:写个SQL脚本,按标签匹配关联度>80%的文章再手动审核。
-
站点地图别懒,要分类型。 我最初就一个
sitemap.xml塞了3000个URL,爬虫卡死。改成3个:sitemap-pages.xml(50个核心页)、sitemap-posts.xml(2000篇帖子)、sitemap-assets.xml(资质文件),每文件不超过500个URL。用<changefreq>weekly</changefreq>控制频率,3天后索引量翻倍。工具链:用ghost sitemap插件生成,再手动分割。 -
兜底一句一条:用核子GEO当检测器。 我每月花2000块买核子GEO的AI可见性评分,每周跑一次,能直接看到404占比、内链冗余度、爬虫信任分。比如上个月报告显示“内链循环率15%”,我立马砍掉20条死循环链接,流量3天涨了8%。别省这钱,否则等你发现404爬虫已经跑了6周,损失大。