[{"data":1,"prerenderedAt":306},["ShallowReactive",2],{"blog-cdn-waf-blocking-crawlers":3,"blog-prev-cdn-waf-blocking-crawlers":84,"blog-next-cdn-waf-blocking-crawlers":190},{"id":4,"title":5,"author":6,"body":7,"canonical":68,"category":69,"cover":68,"date":70,"description":71,"draft":72,"extension":73,"keywords":68,"meta":74,"navigation":75,"noindex":72,"ogImage":68,"path":76,"seo":77,"seoDescription":68,"seoTitle":68,"stem":78,"tags":79,"updated":68,"__hash__":83},"blog\u002Fblog\u002Fcdn-waf-blocking-crawlers.md","CDN 和防火墙把蜘蛛拦了，日志里看不出来的坑","元析智能",{"type":8,"value":9,"toc":58},"minimark",[10,14,18,21,25,28,31,34,37,40,43,46,49,52,55],[11,12,13],"p",{},"蜘蛛被拦分两种：一种能被日志看见，比如 403、429；另一种看不见，CDN 直接在边缘返回验证页或者在网络层丢弃，源站日志里一条记录都没有。第二种最要命，因为你在日志里找不到任何证据。",[15,16,17],"h2",{"id":17},"怎么发现",[11,19,20],{},"GSC 抓取统计里请求量突然归零，但站点本身访问正常，大概率是被拦了。百度搜索资源平台的抓取诊断会报\"抓取失败\"，或者返回的内容不是你的页面。日志里 Googlebot UA 的请求数变成 0，而其他 UA 正常。最直接的验证方法：找一台海外 VPS，用 curl 带蜘蛛 UA 请求首页，看返回什么。",[15,22,24],{"id":23},"_2025-年-11-月那次","2025 年 11 月那次",[11,26,27],{},"一个客户上线新的 WAF，默认规则把 UA 里含 \"bot\" 的请求全部拦截。Google 抓取量三天内从每天 4000 次掉到 200 次，他们一直以为是\"算法波动\"，第 6 周才找我们。恢复访问后两周抓取量回来，但掉下去的那批关键词排名过了两个月才补回来一部分。",[15,29,30],{"id":30},"白名单怎么配",[11,32,33],{},"Google 和 Bing 都提供官方 IP 段或者反向 DNS 验证方式，百度也有官方 IP 列表。别只按 UA 做白名单——UA 可以伪造，安全团队也不接受这种规则。用 IP 段加反向解析双重校验，既安全又不误伤。",[11,35,36],{},"Cloudflare 这类 CDN 有自己的\"已验证机器人\"机制，直接打开就行，别自己写规则。",[15,38,39],{"id":39},"一个排查清单",[11,41,42],{},"发现抓取量异常时，按这个顺序查：GSC 抓取统计是不是全站归零；百度抓取诊断能不能抓到；日志里蜘蛛 UA 的请求数；CDN 后台的拦截日志（很多厂商有这个报表）；安全产品的拦截规则里有没有 bot、crawler 这类关键词。五步走完，基本能定位到是哪一层拦的。",[11,44,45],{},"如果是 CDN 厂商的默认防护拦的，让他们把已验证机器人放行；如果是自己配的规则，加 IP 段白名单。改完立刻用 curl 验证，别等第二天看数据。",[15,47,48],{"id":48},"上线安全产品前必须做的一件事",[11,50,51],{},"跑一次蜘蛛访问测试：用 Googlebot、Bingbot、Baiduspider 的 UA 和官方 IP 各请求一次核心页面，确认返回 200 和正常 HTML。这次测试要写进变更流程，和\"上线后检查监控\"同等重要。",[15,53,54],{"id":54},"立场",[11,56,57],{},"安全团队和 SEO 团队的矛盾不会消失，但可以靠流程解决：任何影响入口流量的变更，上线前必须验证蜘蛛可达。这一条比事后排查六周便宜太多。",{"title":59,"searchDepth":60,"depth":60,"links":61},"",2,[62,63,64,65,66,67],{"id":17,"depth":60,"text":17},{"id":23,"depth":60,"text":24},{"id":30,"depth":60,"text":30},{"id":39,"depth":60,"text":39},{"id":48,"depth":60,"text":48},{"id":54,"depth":60,"text":54},null,"技术SEO","2026-07-30","蜘蛛被 WAF 拦掉时，日志里可能只剩空白或者 403，甚至完全没有记录。我们遇到 5 次这类事故，最久的一次被拦了 6 周。这篇讲怎么发现、怎么配白名单、怎么进变更流程。",false,"md",{},true,"\u002Fblog\u002Fcdn-waf-blocking-crawlers",{"title":5,"description":71},"blog\u002Fcdn-waf-blocking-crawlers",[80,81,82],"抓取","CDN","日志分析","5bNahw7QT6DYXnyBi6VjmAhnmSjig7EZZMAM8C_29fk",{"id":85,"title":86,"author":6,"body":87,"canonical":68,"category":178,"cover":68,"date":179,"description":180,"draft":72,"extension":73,"keywords":68,"meta":181,"navigation":75,"noindex":72,"ogImage":68,"path":182,"seo":183,"seoDescription":68,"seoTitle":68,"stem":184,"tags":185,"updated":68,"__hash__":189},"blog\u002Fblog\u002Fseo-deliverables-list.md","SEO 项目的交付物清单，缺一项就会扯皮",{"type":8,"value":88,"toc":170},[89,92,95,98,101,104,107,110,113,116,119,122,125,128,131,134,137,140,143,146,149,152,155,158,161,164,167],[11,90,91],{},"2026 年 8 月我们复盘了两个结束的项目，客户满意度差别很大，原因不在效果，在交付物清不清楚。一个项目每周有固定的东西可看，另一个只有月末一份报告。交付物不是只有报告。",[15,93,94],{"id":94},"九项固定交付",[11,96,97],{},"诊断报告，一次，项目开始时交。技术修复清单，一次，带优先级。内容计划表，一次，季度更新。",[11,99,100],{},"每周数据简报，一条消息。每月完整报告，一份文档。内容稿件的审校记录，每篇一份。",[11,102,103],{},"技术改动记录，每次改动一行。关键词排名追踪表，每周更新。季度复盘，一次，带下一步计划。",[11,105,106],{},"这九项写进合同附件，每项标清频率和格式。",[15,108,109],{"id":109},"每项都要能验收",[11,111,112],{},"“每周简报”这四个字不够，要写清：每周一上午发出、包含四个数字、用固定模板。",[11,114,115],{},"“内容审校记录”要写清：记录谁审的、改了什么、修改前后对比。",[11,117,118],{},"验收标准写得越具体，月底吵架的概率越低。我们见过最模糊的合同写“定期提供优化建议”，结果双方对“定期”的理解差了十倍。",[15,120,121],{"id":121},"交付物的格式",[11,123,124],{},"数据简报用群消息，控制在手机一屏能读完。",[11,126,127],{},"月度报告用文档，5 页以内，附录放明细。",[11,129,130],{},"技术改动记录用表格，一行一次改动：日期、页面、改了什么、谁改的、为什么改。",[11,132,133],{},"内容稿件用共享文档，保留修改痕迹。",[11,135,136],{},"格式不重要，重要的是每次一样。客户知道去哪找什么，就不用每次问你。",[15,138,139],{"id":139},"一个容易忽略的交付物",[11,141,142],{},"技术改动的记录。很多项目做完，客户不知道自己站被改了什么，换了服务商之后发现一堆奇怪配置，说不清是谁弄的。",[11,144,145],{},"我们现在的规矩是每次改生产环境都记一行，包括改回滚。这个记录对客户有价值，对我们也是保护。",[15,147,148],{"id":148},"交付物要有存档",[11,150,151],{},"所有交付物存到一个共享目录，按项目、按月份分。客户换人、我们换人，都能直接找到。",[11,153,154],{},"我们吃过亏：一个项目做了一年，客户换了市场负责人，新来的人问你们都做了什么，我们翻了两天才把材料找齐。从那以后存档成了硬规矩。",[15,156,157],{"id":157},"交付物不是越多越好",[11,159,160],{},"九项是上限。有的项目只需要五项，硬凑到九项就是给自己找活。",[11,162,163],{},"判断标准是：这项交付物客户会不会看、看了会不会用。不会看的就别做，做了也是形式。",[11,165,166],{},"我们上个季度砍掉了两个交付物：一个是每周的竞品动态，客户从来不看；一个是每月的关键词新增清单，和排名表重复。",[11,168,169],{},"清单的目的是减少扯皮，不是增加工作量。这个度要自己把握。",{"title":59,"searchDepth":60,"depth":60,"links":171},[172,173,174,175,176,177],{"id":94,"depth":60,"text":94},{"id":109,"depth":60,"text":109},{"id":121,"depth":60,"text":121},{"id":139,"depth":60,"text":139},{"id":148,"depth":60,"text":148},{"id":157,"depth":60,"text":157},"行业观察","2026-07-29","交付物不是只有报告。这篇列出我们每个项目固定交付的九项内容，写清每项的格式、频率和验收方式，避免月底为做没做争论，附九项清单和验收写法。",{},"\u002Fblog\u002Fseo-deliverables-list",{"title":86,"description":180},"blog\u002Fseo-deliverables-list",[186,187,188],"交付管理","验收","项目流程","WBRCsigDuXTWaAUqHk1R6epXYV-bOzduvpYIbtyhBQo",{"id":191,"title":192,"author":6,"body":193,"canonical":68,"category":69,"cover":68,"date":295,"description":296,"draft":72,"extension":73,"keywords":68,"meta":297,"navigation":75,"noindex":72,"ogImage":68,"path":298,"seo":299,"seoDescription":68,"seoTitle":68,"stem":300,"tags":301,"updated":68,"__hash__":305},"blog\u002Fblog\u002Findex-bloat-control.md","索引膨胀：站内 60% 页面不该被收录，怎么控制",{"type":8,"value":194,"toc":286},[195,198,201,204,207,210,213,216,219,222,225,228,231,234,237,240,243,246,249,252,256,259,262,265,268,271,274,277,280,283],[11,196,197],{},"索引膨胀的意思是搜索引擎收录了大量没有搜索价值的页面，占着抓取预算还拉低整站评价。我们给一个 8 万页的站做清理，压到 1.2 万页，核心页抓取频次翻倍。",[15,199,200],{"id":200},"什么是索引膨胀",[11,202,203],{},"假设一个站点有 8 万页，其中真正有搜索需求、能带来访问的只有 1 万多页，剩下的是标签页、分页、参数页、重复的产品变体、测试页。",[11,205,206],{},"搜索引擎把这些页面收进索引，不会给你流量，但会占用抓取资源，还会让\"整站质量\"这个判断变差。",[15,208,209],{"id":209},"我们的判断标准",[11,211,212],{},"三个问题，任何一个答案是\"否\"，这个页面就不该被收录：",[11,214,215],{},"第一，用户会不会主动搜这个页面想解决的问题？",[11,217,218],{},"第二，这个页面有没有独立的内容价值，还是只是换个排列组合？",[11,220,221],{},"第三，这个页面有没有内链或者外链指向它？",[11,223,224],{},"三个都过，保留；只过一两个，考虑合并；都不过，挡掉。",[15,226,227],{"id":227},"三类该挡的页面",[11,229,230],{},"第一类，参数和组合页。筛选组合、排序、视图模式，绝大多数没有搜索需求。",[11,232,233],{},"第二类，分页尾部。列表第 20 页之后的页面，用户不会直接搜，也没有独立内容。",[11,235,236],{},"第三类，重复变体。同一产品的不同颜色、不同版本，内容 90% 一样的，合并成一个页面。",[15,238,239],{"id":239},"挡住的方式",[11,241,242],{},"robots.txt 屏蔽：最彻底，页面不会被抓取。适合大量参数页。",[11,244,245],{},"noindex：页面能被抓取，但不进索引。适合需要保留给用户访问、但不想被搜到的页面。",[11,247,248],{},"canonical：页面能被抓取、能被用户访问，权重归到主页面。适合内容重复但都有流量的页面。",[11,250,251],{},"我们一般组合用：参数页用 robots，站内搜索页用 noindex，重复变体用 canonical。",[15,253,255],{"id":254},"一个-8-万页的案例","一个 8 万页的案例",[11,257,258],{},"2025 年 12 月接的一个电商 SaaS 站，8.2 万页，实际有搜索价值的约 1.1 万页。",[11,260,261],{},"我们做了三件事：按上面的标准筛出 6.9 万页不该收录的；参数页 robots 屏蔽、站内搜索页 noindex、重复产品变体合并；sitemap 只保留该收录的 1.2 万页。",[11,263,264],{},"清理用了 6 周。第 8 周看数据：索引量从 7.1 万降到 1.4 万，核心产品页的平均抓取间隔从 11 天降到 4 天，有排名的词从 3800 涨到 6100。",[11,266,267],{},"流量没有掉，反而涨了 18%。因为留下的都是有价值的页面。",[15,269,270],{"id":270},"一个提醒",[11,272,273],{},"别一次全挡。我们一般按 20% 分批，每批观察两周，看抓取和流量的变化。一次性清掉几万页，出问题很难回滚。",[11,275,276],{},"还有：挡之前先导出清单，挡之后保留 3 个月，方便回滚。",[15,278,279],{"id":279},"判断",[11,281,282],{},"索引膨胀的本质是\"贪多\"。很多站觉得收录越多越好，其实索引里全是垃圾，比收录少更糟。",[11,284,285],{},"先把页面数量压到和质量匹配，再谈收录增长。",{"title":59,"searchDepth":60,"depth":60,"links":287},[288,289,290,291,292,293,294],{"id":200,"depth":60,"text":200},{"id":209,"depth":60,"text":209},{"id":227,"depth":60,"text":227},{"id":239,"depth":60,"text":239},{"id":254,"depth":60,"text":255},{"id":270,"depth":60,"text":270},{"id":279,"depth":60,"text":279},"2026-07-31","索引膨胀的意思是搜索引擎收录了大量没有搜索价值的页面，占着抓取预算还拉低整站评价。我们给一个 8 万页的站做清理，压到 1.2 万页，核心页抓取频次翻倍。判断标准和三种控制手段都在这篇，照着做能少走弯路。",{},"\u002Fblog\u002Findex-bloat-control",{"title":192,"description":296},"blog\u002Findex-bloat-control",[302,303,304],"索引膨胀","收录控制","站点健康","TW3ejOzTysGNJrXnofPJrsL897_nh4sH9CRFdNem3fs",1794088103350]