[{"data":1,"prerenderedAt":329},["ShallowReactive",2],{"blog-algorithm-update-client-letter":3,"blog-prev-algorithm-update-client-letter":106,"blog-next-algorithm-update-client-letter":200},{"id":4,"title":5,"author":6,"body":7,"canonical":90,"category":91,"cover":90,"date":92,"description":93,"draft":94,"extension":95,"keywords":90,"meta":96,"navigation":97,"noindex":94,"ogImage":90,"path":98,"seo":99,"seoDescription":90,"seoTitle":90,"stem":100,"tags":101,"updated":90,"__hash__":105},"blog\u002Fblog\u002Falgorithm-update-client-letter.md","算法更新那周，我们给客户发一封什么信","元析智能",{"type":8,"value":9,"toc":81},"minimark",[10,14,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78],[11,12,13],"p",{},"2026 年 10 月初有好几个站的数据同时出现波动，我们的项目群里当天就有人问是不是算法更新了。这种时候客户最需要的不是解释，是知道你在看、你在做什么。我们固定会发一封信，但不在第一天发。",[15,16,17],"h2",{"id":17},"先判断是不是算法更新",[11,19,20],{},"三个信号：多个不相关的站同时波动；波动集中在内容型页面而不是技术型页面；GSC 里没有安全或手动操作消息。",[11,22,23],{},"反过来，如果只有一个站波动，先查技术。部署记录、日志、robots、canonical，这四样排一遍，能排除掉大部分“假算法更新”。",[11,25,26],{},"时间点也要对。算法更新通常有官方的确认或者行业里大量讨论，如果你只是自己一个站掉，大概率不是。",[15,28,29],{"id":29},"什么时候发信",[11,31,32],{},"第一天不发。第一天的数据往往还没稳定，发出去容易自己打脸。",[11,34,35],{},"第三到第五天发。这时候趋势大致清楚，能说清掉了多少、哪些页面受影响。",[11,37,38],{},"发之前先自己看一遍数据，至少要能回答两个问题：掉了多少、集中在哪些页面。答不上来就先别发。",[15,40,41],{"id":41},"信里写五段",[11,43,44],{},"第一段，事实。过去五天自然搜索点击从多少掉到多少，涉及哪些页面类型。",[11,46,47],{},"第二段，我们查了什么。排除技术原因，确认没有手动操作，对比了同行业的其他站。",[11,49,50],{},"第三段，我们在做什么。正在观察、正在整理受影响页面的清单、正在复盘内容质量。",[11,52,53],{},"第四段，建议客户不要做什么。不要急着改标题、不要批量删页面、不要加外链。这三件事在波动期做，只会让判断更难。",[11,55,56],{},"第五段，下次同步时间。给一个具体日期，比如下周三，别写“有进展会及时同步”。",[15,58,59],{"id":59},"三句不能说的话",[11,61,62],{},"第一句，确定是某某算法更新。除非官方确认，否则不要下断言，说错了后面很难圆。",[11,64,65],{},"第二句，两周内会恢复。恢复时间没人能保证，承诺了就是给自己挖坑。",[11,67,68],{},"第三句，这是行业普遍现象，跟我们无关。哪怕是真的，这句话听起来就是在推责任。",[15,70,71],{"id":71},"之后的四周做什么",[11,73,74],{},"第一周观察，记录每天的数据。第二周整理受影响页面清单，按流量损失排序。第三周做内容质量复盘，看这些页面有没有共同问题。第四周出调整计划。",[11,76,77],{},"大部分算法波动会在四到六周内稳定。稳定之后再看要不要动内容，比在波动期乱改有效。",[11,79,80],{},"信的作用不是安抚，是让客户知道过程可控。这一点比结论重要。",{"title":82,"searchDepth":83,"depth":83,"links":84},"",2,[85,86,87,88,89],{"id":17,"depth":83,"text":17},{"id":29,"depth":83,"text":29},{"id":41,"depth":83,"text":41},{"id":59,"depth":83,"text":59},{"id":71,"depth":83,"text":71},null,"SEO","2026-10-15","波动第一天别发信，第三到第五天再发。这篇写怎么判断是不是算法更新、信里写哪五段、哪三句话绝对不能出现，以及之后的四周做什么。",false,"md",{},true,"\u002Fblog\u002Falgorithm-update-client-letter",{"title":5,"description":93},"blog\u002Falgorithm-update-client-letter",[102,103,104],"算法更新","客户沟通","预期管理","2GNeB9f4boWSy_F_HgGOOWgTqCCOVRv0YscBjbJcAfg",{"id":107,"title":108,"author":6,"body":109,"canonical":90,"category":91,"cover":90,"date":189,"description":190,"draft":94,"extension":95,"keywords":90,"meta":191,"navigation":97,"noindex":94,"ogImage":90,"path":192,"seo":193,"seoDescription":90,"seoTitle":90,"stem":194,"tags":195,"updated":90,"__hash__":199},"blog\u002Fblog\u002Fkeyword-density-obsolete.md","关键词密度这个指标，2026 年可以彻底扔了",{"type":8,"value":110,"toc":181},[111,114,117,120,123,126,129,132,135,138,141,144,147,150,153,156,159,162,166,169,172,175,178],[11,112,113],{},"关键词密度是 2010 年代的指标。我们做过测试：同一篇文章密度从 0.8% 提到 2.3%，排名没有任何变化，反而影响可读性。这个指标可以彻底扔了。",[15,115,116],{"id":116},"我们做过的测试",[11,118,119],{},"2025 年 12 月，我们拿一个客户站的 10 篇文章做对照。5 篇原样，5 篇把主关键词密度从 0.8% 左右提到 2.3%，其他不变。",[11,121,122],{},"观察 8 周：两组文章的平均排名差异在 0.6 名以内，属于正常波动。内容可读性评分，改过的 5 篇都下降了。",[11,124,125],{},"结论很直接：提高密度没有收益，还有副作用。",[15,127,128],{"id":128},"为什么这个指标过时了",[11,130,131],{},"关键词密度是搜索引擎还不懂语义时代的产物。那时候算法靠词频判断主题，堆得多的排得高。",[11,133,134],{},"现在的算法能理解同义词、上下文和意图。一篇讲\"API 限流\"的文章，自然会用到\"rate limit\"\"429 错误\"\"配额\"这些词，不需要刻意重复主关键词。",[11,136,137],{},"刻意堆密度反而会被识别为低质内容的信号——读起来不自然，信息密度低。",[15,139,140],{"id":140},"工具为什么还显示它",[11,142,143],{},"因为用户想看。很多 SEO 工具的关键词密度功能是历史遗留，产品经理不敢删，删了用户觉得功能少了。",[11,145,146],{},"工具厂商也知道这个指标没用，但它成本低、界面直观，留着能增加可信感。这是产品逻辑，不是技术逻辑。",[15,148,149],{"id":149},"现在该看什么",[11,151,152],{},"第一，主题覆盖。文章有没有把用户关心的相关问题讲全。我们一般按\"用户还会问什么\"列 5 到 8 个问题，每个都答。",[11,154,155],{},"第二，信息增益。文章里有没有别人没有的内容，实测、数据、案例、判断。",[11,157,158],{},"第三，可读性。句子长短有没有变化，段落有没有节奏，读完累不累。",[11,160,161],{},"第四，内链和结构。读者能不能顺着文章找到下一步要看的页面。",[15,163,165],{"id":164},"一个替代指标主题覆盖度","一个替代指标：主题覆盖度",[11,167,168],{},"如果一定要一个可量化的指标，我们看\"主题覆盖度\"：一篇文章有没有把用户关于这个话题最常问的 5 到 8 个问题都答到。",[11,170,171],{},"做法很简单：先搜目标词，看下拉框、相关搜索、以及前三名页面的小标题，列出一组问题，再看自己的文章覆盖了几个。",[11,173,174],{},"覆盖 80% 以上，这篇内容的主题完整度就够了。这个指标和排名的相关性，比关键词密度高得多。",[15,176,177],{"id":177},"一句判断",[11,179,180],{},"SEO 工具是辅助，不是标准。任何指标，先问一句\"它和排名有因果关系吗\"，没有的话，别为它改内容。这句话我们贴在内容团队的墙上，每次评审都拿出来对一遍。",{"title":82,"searchDepth":83,"depth":83,"links":182},[183,184,185,186,187,188],{"id":116,"depth":83,"text":116},{"id":128,"depth":83,"text":128},{"id":140,"depth":83,"text":140},{"id":149,"depth":83,"text":149},{"id":164,"depth":83,"text":165},{"id":177,"depth":83,"text":177},"2026-10-14","关键词密度是 2010 年代的指标。我们做过测试：同一篇文章密度从 0.8% 提到 2.3%，排名没有任何变化，反而影响可读性。现在该看什么、工具为什么还显示它，这篇讲清楚。我们拿 10 篇文章做了对照，结论很干净，覆盖 80% 以上就够了。",{},"\u002Fblog\u002Fkeyword-density-obsolete",{"title":108,"description":190},"blog\u002Fkeyword-density-obsolete",[196,197,198],"关键词密度","内容质量","排名因素","i6Sws1qsKKEhx1WlFejYlxphjSy0cNPsYuPNWgOTaK4",{"id":201,"title":202,"author":6,"body":203,"canonical":90,"category":317,"cover":90,"date":318,"description":319,"draft":94,"extension":95,"keywords":90,"meta":320,"navigation":97,"noindex":94,"ogImage":90,"path":321,"seo":322,"seoDescription":90,"seoTitle":90,"stem":323,"tags":324,"updated":90,"__hash__":328},"blog\u002Fblog\u002Fhttp-header-seo.md","HTTP 头也能做 SEO：X-Robots-Tag 与 Link 头的三个用法和坑",{"type":8,"value":204,"toc":308},[205,208,211,214,217,220,224,232,235,238,242,249,252,255,259,265,268,271,278,281,284,287,290,293,296,299,302,305],[11,206,207],{},"页面里的 meta 标签不是唯一入口，HTTP 头也能控制索引、传 canonical、声明多语言。X-Robots-Tag 和 Link 头用得对，能解决一批页面里改不了的问题。",[15,209,210],{"id":210},"头信息能干什么",[11,212,213],{},"2025 年 12 月我们在一个客户站上用过一次：整站 3000 多个 PDF 文件没法改页面标签，只能靠头信息统一控制，这是头信息最典型的场景。",[11,215,216],{},"三个常见用途：控制页面索引和抓取、声明 canonical、声明 hreflang。",[11,218,219],{},"好处是不用改页面 HTML，服务器层就能统一配置。坏处是不直观，出了问题不好查。",[15,221,223],{"id":222},"x-robots-tag-的三个用法","X-Robots-Tag 的三个用法",[11,225,226,227,231],{},"第一，给非 HTML 文件加 noindex。PDF、图片、JS 文件没法写 meta 标签，只能靠头。我们给一个客户的 PDF 白皮书加了 ",[228,229,230],"code",{},"X-Robots-Tag: noindex","，索引里的 PDF 数量从 3000 降到 200。",[11,233,234],{},"第二，给整类路径统一加规则。比如测试环境、预览环境、下载目录，用服务器配置统一加 noindex，比逐个页面改可靠。",[11,236,237],{},"第三，给特定爬虫设规则。可以指定 UA，比如对某个爬虫单独加 nofollow。",[15,239,241],{"id":240},"link-头canonical-和-hreflang","Link 头：canonical 和 hreflang",[11,243,244,245,248],{},"HTTP 头里可以写 ",[228,246,247],{},"Link: \u003Chttps:\u002F\u002Fexample.com\u002Fpage>; rel=\"canonical\"","，效果和页面里的 canonical 标签一样。",[11,250,251],{},"hreflang 也可以放在头里，适合那些页面 HTML 不好改的站。",[11,253,254],{},"但注意：头里的 Link 和页面里的标签同时存在时，要保证指向一致，冲突了搜索引擎可能两个都不认。",[15,256,258],{"id":257},"一个坑多个头指令冲突","一个坑：多个头指令冲突",[11,260,261,262,264],{},"我们见过一个客户，服务器统一加了 ",[228,263,230],{},"，页面里又写了 canonical 指向主页面。两个指令一个说\"别收录\"，一个说\"收这个\"，搜索引擎会按 noindex 处理，canonical 白写。",[11,266,267],{},"还有一种：CDN 缓存了旧的 X-Robots-Tag，页面改了但头没变，索引状态一直不更新。",[15,269,270],{"id":270},"怎么查",[11,272,273,274,277],{},"用 curl 看响应头是最直接的：",[228,275,276],{},"curl -I https:\u002F\u002Fexample.com\u002Fpage","。",[11,279,280],{},"重点看三个：有没有 X-Robots-Tag、有没有 Link 头、有没有和页面标签冲突。",[11,282,283],{},"批量查的话，用爬虫工具导出响应头列，或者写脚本跑一遍核心页面。",[15,285,286],{"id":286},"一个建议",[11,288,289],{},"头信息适合做\"批量、统一\"的规则，不适合做单页的精细控制。单页控制还是用 meta 标签，直观、好排查。",[11,291,292],{},"用头信息之前，先想清楚会不会和页面标签冲突。冲突是这类问题最常见的来源。",[15,294,295],{"id":295},"判断",[11,297,298],{},"这套东西我们一般只在页面标签改不了的场景用，不主动扩大使用范围。头信息最大的问题是不可见：你在页面源代码里看不到它，出问题要查服务器和 CDN。",[11,300,301],{},"还有一个小提醒：头信息改完要清 CDN 缓存。我们踩过这个坑，服务器配置改了，CDN 还返回旧头，查了一天才发现。",[11,303,304],{},"HTTP 头是技术 SEO 的进阶工具，用得好能解决一批麻烦，用不好会制造更难查的问题。",[11,306,307],{},"如果你不确定，先用 curl 看一遍现状，再决定动不动。",{"title":82,"searchDepth":83,"depth":83,"links":309},[310,311,312,313,314,315,316],{"id":210,"depth":83,"text":210},{"id":222,"depth":83,"text":223},{"id":240,"depth":83,"text":241},{"id":257,"depth":83,"text":258},{"id":270,"depth":83,"text":270},{"id":286,"depth":83,"text":286},{"id":295,"depth":83,"text":295},"技术SEO","2026-10-16","页面里的 meta 标签不是唯一入口，HTTP 头也能控制索引、传 canonical、声明多语言。X-Robots-Tag 和 Link 头用得对，能解决一批页面里改不了的问题；用错会互相冲突。用法、冲突场景和查法都在这篇，最后附了一个判断标准和两个踩过的坑。",{},"\u002Fblog\u002Fhttp-header-seo",{"title":202,"description":319},"blog\u002Fhttp-header-seo",[325,326,327],"HTTP头","X-Robots-Tag","canonical","3oD2Y3p6i3poEeQZjX07PY1EHzr0QA3QJrrsoqaKmEw",1794088100762]