[{"data":1,"prerenderedAt":313},["ShallowReactive",2],{"blog-nofollow-attributes-2026":3,"blog-prev-nofollow-attributes-2026":126,"blog-next-nofollow-attributes-2026":201},{"id":4,"title":5,"author":6,"body":7,"canonical":110,"category":111,"cover":110,"date":112,"description":113,"draft":114,"extension":115,"keywords":110,"meta":116,"navigation":117,"noindex":114,"ogImage":110,"path":118,"seo":119,"seoDescription":110,"seoTitle":110,"stem":120,"tags":121,"updated":110,"__hash__":125},"blog\u002Fblog\u002Fnofollow-attributes-2026.md","nofollow 还有用吗：2026 年链接属性的正确用法","元析智能",{"type":8,"value":9,"toc":99},"minimark",[10,14,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96],[11,12,13],"p",{},"这三个链接属性被讨论了很多年，2026 年的实际作用已经很有限。我们的建议是：只在该用的地方用，别指望它们解决权重问题，也别把它们当惩罚工具。",[15,16,17],"h2",{"id":17},"三个属性的本意",[11,19,20],{},"nofollow：告诉搜索引擎\"这个链接不是我推荐的，别把权重传过去\"。",[11,22,23],{},"sponsored：标明是赞助或广告链接。",[11,25,26],{},"ugc：标明是用户生成内容里的链接，比如论坛、评论区。",[11,28,29],{},"2019 年 Google 把后两个当成\"提示\"而不是\"指令\"，nofollow 本身也从指令弱化成了提示。",[15,31,32],{"id":32},"现在还有没有用",[11,34,35],{},"有帮助，但没有想象中重要。",[11,37,38],{},"对内的作用：nofollow 可以用来控制抓取路径，减少蜘蛛进入无价值页面的次数。这个作用还在。",[11,40,41],{},"对外的作用：Google 会综合判断链接的可信度，不只看属性。一个 nofollow 链接如果被大量真实用户点击，它仍然可能被当成推荐信号。",[11,43,44],{},"百度的处理更简单：nofollow 基本会被尊重，但判断维度没那么多。",[15,46,47],{"id":47},"软件站最常误用的两处",[11,49,50],{},"第一处，把站内所有\"不重要\"的链接都加 nofollow。导航、页脚、侧边栏全 nofollow，结果蜘蛛的路径被切断，深层页面反而更难被发现。",[11,52,53],{},"我们的建议：站内链接尽量不加 nofollow，用 robots 或者 noindex 控制页面收录，别用 nofollow 切断路径。",[11,55,56],{},"第二处，给外链加 nofollow 表示\"我们没买链接\"。这没用。搜索引擎判断买卖链接看的是模式和来源，不是属性。加了 nofollow 的付费链接一样可能被识别。",[15,58,59],{"id":59},"我们的做法",[11,61,62],{},"站内：不加 nofollow。链接就是链接，路径要通畅。",[11,64,65],{},"友情链接和合作伙伴链接：如果是真实互链，正常链接；如果是付费或者交换，加 sponsored。",[11,67,68],{},"用户生成内容：评论区、论坛的链接加 ugc，这是规范用法。",[11,70,71],{},"广告位：加 sponsored，这个没有争议。",[15,73,74],{"id":74},"一个判断",[11,76,77],{},"链接属性是\"声明\"，不是\"开关\"。加不加，搜索引擎都会自己判断。",[11,79,80],{},"把精力从\"属性怎么配\"移到\"链接来源靠不靠谱\"，收益大得多。",[15,82,83],{"id":83},"一个反例",[11,85,86],{},"2026 年 2 月我们看过一个站，把页脚所有链接都加了 nofollow，包括产品、定价、文档这些核心页面。",[11,88,89],{},"他们的理由是\"页脚链接不算推荐\"。结果蜘蛛从首页进去，只能顺着导航爬到十几个页面，文档和博客基本发现不了。收录量两个月掉了 40%。",[11,91,92],{},"把 nofollow 去掉之后，三周恢复正常。这件事说明：站内链接不是\"推荐\"，是\"路径\"，别拿它当权重开关。",[15,94,95],{"id":95},"一句判断",[11,97,98],{},"2026 年做链接，重点在质量，不在属性。属性配得再标准，来源是垃圾站，一样没用。",{"title":100,"searchDepth":101,"depth":101,"links":102},"",2,[103,104,105,106,107,108,109],{"id":17,"depth":101,"text":17},{"id":32,"depth":101,"text":32},{"id":47,"depth":101,"text":47},{"id":59,"depth":101,"text":59},{"id":74,"depth":101,"text":74},{"id":83,"depth":101,"text":83},{"id":95,"depth":101,"text":95},null,"技术SEO","2026-09-19","这三个链接属性被讨论了很多年，2026 年的实际作用已经很有限。我们的建议是：只在该用的地方用，别指望它们解决权重问题，也别把它们当惩罚工具。软件站最常误用的两处和正确用法都在这篇，用错地方反而伤抓取。",false,"md",{},true,"\u002Fblog\u002Fnofollow-attributes-2026",{"title":5,"description":113},"blog\u002Fnofollow-attributes-2026",[122,123,124],"链接属性","nofollow","外链","wl0-pXb1iUX3qBx8b5sm7lwIVBfAjxNqD-AVKUtk6m0",{"id":127,"title":128,"author":6,"body":129,"canonical":110,"category":111,"cover":110,"date":190,"description":191,"draft":114,"extension":115,"keywords":110,"meta":192,"navigation":117,"noindex":114,"ogImage":110,"path":193,"seo":194,"seoDescription":110,"seoTitle":110,"stem":195,"tags":196,"updated":110,"__hash__":200},"blog\u002Fblog\u002Findex-bloat-cleanup.md","索引膨胀：收录 8 万页只有 3000 页有流量",{"type":8,"value":130,"toc":181},[131,134,137,140,143,146,149,152,155,157,160,163,166,169,172,175,178],[11,132,133],{},"索引膨胀是低质页面被大量收录，稀释抓取预算和站点整体质量。判断标准不是收录了多少页，是有展示的页面占比。2026 年 5 月一个客户站 8.2 万页收录，有展示的只有 3100 页，占比 3.8%。",[15,135,136],{"id":136},"那些页面从哪来",[11,138,139],{},"参数筛选页、标签页、分页、用户生成的公开页、空壳页。这个站最夸张的是用户生成页：每人注册后自动生成一个公开主页，1.8 万个页面里 90% 只有名字和头像。搜索引擎全收了。",[15,141,142],{"id":142},"怎么判断哪些该清",[11,144,145],{},"第一步，导出 GSC 里有展示的页面，做成白名单。第二步，剩下的按目录归类，每类算三个数：页面数、有展示数、平均点击。第三步，每类判断有没有独立价值。没有价值的直接 noindex 或 410。",[11,147,148],{},"清的时候别一刀切。用户主页有 10% 是有内容的，先把有价值的挑出来，剩下的才处理。这批挑出来的页面后来成了他们的案例展示区，流量还不错。",[15,150,151],{"id":151},"清理结果",[11,153,154],{},"索引从 8.2 万降到 2.1 万，抓取预算集中到核心页。三个月后核心页收录率 92%，自然点击涨 27%。最有意思的是，清理后新发布的页面收录速度快了，从平均 12 天降到 4 天。",[15,156,83],{"id":83},[11,158,159],{},"有个站听说索引膨胀，直接把 4 万个页面全 410 了，包括一批有流量的标签页。结果自然流量一个月掉了 18%。清理之前一定要先导白名单，别用\"看起来没用\"来猜。",[15,161,162],{"id":162},"判断指标",[11,164,165],{},"有展示页面占比，健康线我们定在 20% 以上。抓取日志里核心页的请求占比，低于 50% 就说明预算被垃圾页吃了。索引数和有效页数的比例，超过 3 倍就该查。",[15,167,168],{"id":168},"清理的具体操作",[11,170,171],{},"低价值目录先用 noindex 观察一个月，别直接 410。noindex 可逆，410 不可逆，效果要等搜索引擎重新抓一遍才看得出来。观察期里看 GSC 收录数是否下降、核心页抓取量是否上升。",[11,173,174],{},"确认没问题后，再对确定永不恢复的页面返回 410。用户生成页这种，先把入口关掉，再处理存量，不然清了又长。",[15,176,177],{"id":177},"立场",[11,179,180],{},"别在报告里只报收录数。收录 8 万页、3.8% 有展示，这不是资产，是负债——它让搜索引擎觉得你的站大部分内容不值得看。删掉比补内容快，先做减法。",{"title":100,"searchDepth":101,"depth":101,"links":182},[183,184,185,186,187,188,189],{"id":136,"depth":101,"text":136},{"id":142,"depth":101,"text":142},{"id":151,"depth":101,"text":151},{"id":83,"depth":101,"text":83},{"id":162,"depth":101,"text":162},{"id":168,"depth":101,"text":168},{"id":177,"depth":101,"text":177},"2026-09-18","收录多不等于好。我们给一个 8 万页索引的站做诊断，只有 3.8% 的页面有过展示。这篇讲索引膨胀怎么形成、怎么判断哪些该清，以及清理后流量为什么反而涨。",{},"\u002Fblog\u002Findex-bloat-cleanup",{"title":128,"description":191},"blog\u002Findex-bloat-cleanup",[197,198,199],"索引诊断","收录","抓取预算","pQIybd6z_u8R4Ne52Kg6G7Tf6vq7528r2wjeBn9ye2E",{"id":202,"title":203,"author":6,"body":204,"canonical":110,"category":111,"cover":110,"date":302,"description":303,"draft":114,"extension":115,"keywords":110,"meta":304,"navigation":117,"noindex":114,"ogImage":110,"path":305,"seo":306,"seoDescription":110,"seoTitle":110,"stem":307,"tags":308,"updated":110,"__hash__":312},"blog\u002Fblog\u002Fperformance-budget.md","给页面定性能预算，超过就拦住不让上线",{"type":8,"value":205,"toc":293},[206,209,212,215,218,221,224,227,230,233,236,239,242,245,248,251,254,257,260,263,266,269,272,275,278,281,284,287,290],[11,207,208],{},"2026 年 9 月我们给一个客户的官网加性能预算，第一次跑 CI 就拦下了两个提交：一个把 JS 包从 680KB 顶到 1.1MB，另一个加了四张大图。没有预算，这两件事在评审时都不会被发现。",[15,210,211],{"id":211},"为什么需要预算",[11,213,214],{},"性能是慢慢变差的。每次加一个脚本、一张图、一个统计工具，单独看都合理，加起来就超标了。",[11,216,217],{},"等到用户抱怨或者指标掉出合格线，已经很难回溯是哪个提交造成的。",[11,219,220],{},"预算就是在每次提交时设一道线，超过就得说清理由。",[15,222,223],{"id":223},"定哪四个数",[11,225,226],{},"第一个，首屏 JS 体积。我们的默认线是 300KB，压缩后。软件官网通常够用。",[11,228,229],{},"第二个，首屏图片总量。默认 500KB，超过就要换格式或者裁尺寸。",[11,231,232],{},"第三个，请求数。首屏不超过 40 个请求，超过多半是图标、字体、统计拆得太碎。",[11,234,235],{},"第四个，三个核心指标的实验室值。LCP 2.5 秒、INP 200 毫秒、CLS 0.1。",[15,237,238],{"id":238},"怎么落地",[11,240,241],{},"CI 里跑 Lighthouse CI，对核心页面测三次，取中位数，和预算比。",[11,243,244],{},"PR 里自动贴对比，说明哪个指标超了、超了多少。超过就阻塞合并，或者要求负责人写明原因。",[11,246,247],{},"我们通常给两个页面设门禁：首页和核心产品页。这两个页面决定了大部分流量和转化。",[15,249,250],{"id":250},"超了怎么办",[11,252,253],{},"先看是真超标还是误报。Lighthouse 波动大，一次超标可以重跑确认。",[11,255,256],{},"真超标就两条路：改回提交，或者调预算。调预算要有人批，而且要在 PR 里留下记录。",[11,258,259],{},"我们的规矩是预算每季度可以调一次，平时只降不升。",[15,261,262],{"id":262},"怎么跟不写代码的人解释",[11,264,265],{},"预算这个说法对业务方不直观。我们换个说法：这个页面在手机上打开不能超过三秒，超过就要改。",[11,267,268],{},"然后把目标和预算数字对应起来，让对方知道 300KB 的 JS 大概对应多少秒。",[11,270,271],{},"有了这个换算，评审时说这个库加进来会让首屏慢半秒，比说超过预算了有效得多。",[15,273,274],{"id":274},"一个真实的变化",[11,276,277],{},"2026 年 5 月预算上线前，这个站的 JS 从一年前的 400KB 涨到 1.2MB，没人说得清怎么涨的。",[11,279,280],{},"上了预算之后三个月，包体回落到 700KB 左右。不是做了大重构，是每次提交都被迫想一下这个依赖值不值。",[15,282,283],{"id":283},"一个态度",[11,285,286],{},"性能预算的本质是流程，不是技术。它把性能从上线后才发现的问题，变成提交前就要面对的问题。",[11,288,289],{},"没有流程，优化就是一阵风。做完一次冲进合格线，半年后又回到原点。",[11,291,292],{},"设定预算这件事，一个下午就能做完。真正难的是坚持执行，尤其是业务方催着上线的时候。",{"title":100,"searchDepth":101,"depth":101,"links":294},[295,296,297,298,299,300,301],{"id":211,"depth":101,"text":211},{"id":223,"depth":101,"text":223},{"id":238,"depth":101,"text":238},{"id":250,"depth":101,"text":250},{"id":262,"depth":101,"text":262},{"id":274,"depth":101,"text":274},{"id":283,"depth":101,"text":283},"2026-09-20","没有预算的站，JS 只会一年比一年多。这篇写预算定哪四个数、怎么在 CI 里落地、超了怎么办，以及我们给软件官网的默认阈值，一个下午就能配上。",{},"\u002Fblog\u002Fperformance-budget",{"title":203,"description":303},"blog\u002Fperformance-budget",[309,310,311],"性能预算","前端工程","上线流程","UpePvQ3lvxowIQfMYlLg8RJ7ZrOvB8KjVdtHb44P5qI",1794088101643]