[{"data":1,"prerenderedAt":299},["ShallowReactive",2],{"blog-cloud-tutorial-content-seo":3,"blog-prev-cloud-tutorial-content-seo":93,"blog-next-cloud-tutorial-content-seo":202},{"id":4,"title":5,"author":6,"body":7,"canonical":77,"category":78,"cover":77,"date":79,"description":80,"draft":81,"extension":82,"keywords":77,"meta":83,"navigation":84,"noindex":81,"ogImage":77,"path":85,"seo":86,"seoDescription":77,"seoTitle":77,"stem":87,"tags":88,"updated":77,"__hash__":92},"blog\u002Fblog\u002Fcloud-tutorial-content-seo.md","云厂商的教程页，是最大的自然流量入口","元析智能",{"type":8,"value":9,"toc":69},"minimark",[10,14,18,21,24,27,30,33,36,39,45,48,51,54,57,60,63,66],[11,12,13],"p",{},"云服务的自然流量，大头不是产品页，是教程页。2025 年 3 月到 2026 年 3 月，我们给一个云厂商建了 60 个教程页，累计带来 11 万自然访问，是产品页组合的 4 倍多。这些页面的搜索词是“怎么在 XX 上部署 YY”这种组合。",[15,16,17],"h2",{"id":17},"词怎么挖",[11,19,20],{},"两个维度交叉：任务（部署、迁移、监控、备份、扩缩容）和技术栈（Django、Next.js、Kafka、Postgres、Redis、K8s）。每个交叉点一个页面，标题写成“在 XX 上部署 Django 应用：从零到可访问”。",[11,22,23],{},"这类词的搜索者不一定是你的用户，他在解决问题，顺手就用了你的云。这也是云厂商内容营销的底层逻辑：先帮人把事做成，再谈转化。",[15,25,26],{"id":26},"教程页的质量线",[11,28,29],{},"第一，能跑通。我们要求每篇教程在发布前由一个没参与写作的工程师照着做一遍，跑不通就退回。这条听起来基础，但大部分云教程做不到，步骤漏了、版本过时、权限没提。",[11,31,32],{},"第二，给完整代码。不要“省略部分代码”，工程师最烦这个。仓库链接加页面内代码块，两样都给。",[11,34,35],{},"第三，写清成本。部署完要花多少钱，给个区间。用户会算账，你不写他去别处查。",[11,37,38],{},"第四，写清清理步骤。教程跑完要能删干净，不然用户被扣费会来投诉。这条是我们踩过坑加上的，有个客户因为教程没写清理，收了十几封账单投诉。",[11,40,41],{},[42,43,44],"strong",{},"教程和文档不是一回事",[11,46,47],{},"文档写给已经在用的人，教程写给刚决定试的人。这个区别决定了两边的写法：文档要查得到，教程要跟着做完。我们见过把文档章节直接当教程发的，用户在第一步就卡住，因为文档默认你已经有账号、有权限、有网络配置。",[11,49,50],{},"教程要假设读者什么都没有，从注册开始。多写这一句，完成率会不一样。",[15,52,53],{"id":53},"更新机制",[11,55,56],{},"教程最大的敌人是过期。我们定的规则：每季度扫一遍高流量教程，核对版本号、控制台路径、命令参数。控制台改版是最常见的失效率，比命令变化还频繁。",[11,58,59],{},"页面里标“最后验证时间”，别标“最后更新时间”。前者是承诺，后者只是编辑动作。",[15,61,62],{"id":62},"转化怎么放",[11,64,65],{},"教程页的转化入口放在两个位置：跑通之后（“想长期跑？看托管方案”）和成本段落之后（“按这个配置，每月大约 XX”）。别在开头放注册弹窗，工程师会直接关掉。",[11,67,68],{},"这类内容的转化率不高，通常在 1% 到 3%，但基数大，而且来的人技术能力强，很多是团队里的决策影响者。",{"title":70,"searchDepth":71,"depth":71,"links":72},"",2,[73,74,75,76],{"id":17,"depth":71,"text":17},{"id":26,"depth":71,"text":26},{"id":53,"depth":71,"text":53},{"id":62,"depth":71,"text":62},null,"内容运营","2026-07-27","“怎么在 XX 上部署 YY”这类教程，搜索量比产品词大得多。我们按“任务 + 技术栈”建了 60 个教程页，一年带来 11 万自然访问。",false,"md",{},true,"\u002Fblog\u002Fcloud-tutorial-content-seo",{"title":5,"description":80},"blog\u002Fcloud-tutorial-content-seo",[89,90,91],"云服务","教程内容","长尾流量","GXY3aYsK7i0oYi6-fEJ3QuLXDxQDT1OKyrKs6Le0nhs",{"id":94,"title":95,"author":6,"body":96,"canonical":77,"category":190,"cover":77,"date":191,"description":192,"draft":81,"extension":82,"keywords":77,"meta":193,"navigation":84,"noindex":81,"ogImage":77,"path":194,"seo":195,"seoDescription":77,"seoTitle":77,"stem":196,"tags":197,"updated":77,"__hash__":201},"blog\u002Fblog\u002Fgithub-issue-response-trust.md","开源项目的 issue 响应速度，是品牌的信任信号",{"type":8,"value":97,"toc":181},[98,101,105,108,111,114,117,120,123,126,129,132,135,139,142,145,148,151,154,157,160,163,166,169,172,175,178],[11,99,100],{},"2026 年 8 月一个开发者工具客户问，为什么官网做得挺好，试用转化还是低。我们让他打开自己的 GitHub issue 列表，最新一条没人回复，已经挂了四十天。",[15,102,104],{"id":103},"开发者会翻-issue","开发者会翻 issue",[11,106,107],{},"技术选型的时候，开发者不只看文档和官网，一定会点进 GitHub 看三件事：最近提交时间、issue 有没有人回、release 节奏。",[11,109,110],{},"一个 issue 挂一个月没人理，传递的信息是这项目可能没人维护了。这个判断比任何官网文案都直接。",[15,112,113],{"id":113},"响应速度的影响",[11,115,116],{},"它不影响搜索引擎排名，但影响转化和口碑。",[11,118,119],{},"我们观察过几个开源项目，issue 平均响应在一天以内的，star 增长速度明显快，因为用户觉得提问题有人管。",[11,121,122],{},"响应慢的项目，用户问一次没人回就走了，不会写差评，但你永远不知道流失了多少人。",[15,124,125],{"id":125},"模板和标签怎么设",[11,127,128],{},"建三到四个 issue 模板：bug 报告、功能请求、使用问题、文档问题。模板里要求填版本号、运行环境、复现步骤。",[11,130,131],{},"标签用固定几种：待确认、已复现、计划中、已修复、无法复现。用户看到自己的问题被分类，感受完全不同。",[11,133,134],{},"再设一条自动回复，告诉用户多久会有人看。哪怕只是\"我们会在两个工作日内回复\"，也比没有强。",[15,136,138],{"id":137},"issue-里的问题就是内容","issue 里的问题就是内容",[11,140,141],{},"用户提的问题，是最真实的需求清单。",[11,143,144],{},"同一个问题被问三次以上，就该写一篇文档或者博客。写完之后在 issue 里回复链接，然后关掉。",[11,146,147],{},"我们的做法是每月整理一次高频问题，攒成一篇\"常见问题\"或者教程，比凭感觉写选题准。",[15,149,150],{"id":150},"一个观察",[11,152,153],{},"开源项目的品牌信任，很大程度上建立在公开记录上。",[11,155,156],{},"issue、commit、release、贡献者列表，这些都能被查到，也都能被引用。写得认真，别人引用的时候就有料。",[11,158,159],{},"反过来，项目很久没更新、issue 只开不关，官网再漂亮也补不回来。",[15,161,162],{"id":162},"两个可以量化的指标",[11,164,165],{},"第一个，首次响应时间的中位数。我们给客户定的目标是两个工作日以内。",[11,167,168],{},"第二个，issue 关闭率。开了不关的列表，看起来像没人管。每月清理一次，把已解决的关掉。",[11,170,171],{},"这两个数不用对外公布，但它决定了开发者点进你的仓库时，眼里看到的是一个活项目还是一堆没回的问题。",[15,173,174],{"id":174},"一个态度",[11,176,177],{},"开源项目的运营，一半在代码，一半在公开记录。",[11,179,180],{},"维护 issue 列表花不了多少时间，每天二十分钟就够。但它对转化的影响，可能比改十版落地页都大。",{"title":70,"searchDepth":71,"depth":71,"links":182},[183,184,185,186,187,188,189],{"id":103,"depth":71,"text":104},{"id":113,"depth":71,"text":113},{"id":125,"depth":71,"text":125},{"id":137,"depth":71,"text":138},{"id":150,"depth":71,"text":150},{"id":162,"depth":71,"text":162},{"id":174,"depth":71,"text":174},"行业观察","2026-07-26","开发者会翻你的 issue 列表判断项目活不活。这篇写响应速度怎么影响选型、模板和标签怎么设、issue 里的问题怎么变成内容。",{},"\u002Fblog\u002Fgithub-issue-response-trust",{"title":95,"description":192},"blog\u002Fgithub-issue-response-trust",[198,199,200],"开源","信任信号","开发者工具","W0aWQHxcgFKX0WomWFr0gKTMtjhFQ0UdwvpMNjgUvsk",{"id":203,"title":204,"author":6,"body":205,"canonical":77,"category":287,"cover":77,"date":288,"description":289,"draft":81,"extension":82,"keywords":77,"meta":290,"navigation":84,"noindex":81,"ogImage":77,"path":291,"seo":292,"seoDescription":77,"seoTitle":77,"stem":293,"tags":294,"updated":77,"__hash__":298},"blog\u002Fblog\u002Fbaidu-crawl-diagnosis-errors.md","百度抓取诊断报 403 和 503，我们怎么查源站",{"type":8,"value":206,"toc":278},[207,210,213,216,219,222,226,229,232,235,239,242,245,248,251,254,257,260,263,266,269,272,275],[11,208,209],{},"抓取诊断报 403 或 503，九成不是百度的问题，是源站的防火墙、CDN 或 UA 拦截把蜘蛛挡了。2025 年到现在我们处理过 20 多次这类问题，原因就三种。",[15,211,212],{"id":212},"先确认是不是真的被挡",[11,214,215],{},"抓取诊断会给出状态码和抓取时间。403 是拒绝访问，503 是服务不可用。",[11,217,218],{},"两件事要确认：一是你自己用浏览器访问同一个 URL 是否正常；二是换个时间再诊断一次，排除偶发。",[11,220,221],{},"如果浏览器正常、诊断稳定报错，基本就是蜘蛛被针对性拦截了。",[15,223,225],{"id":224},"_403-的三种原因","403 的三种原因",[11,227,228],{},"第一，CDN 或 WAF 的安全策略。很多云厂商的默认规则会拦截\"非浏览器 UA\"，百度蜘蛛的 UA 里有 Baiduspider 字样，被当成爬虫挡掉。",[11,230,231],{},"第二，服务器的 UA 黑白名单。运维为了防采集，配了只允许常见浏览器 UA，把搜索引擎也挡了。",[11,233,234],{},"第三，IP 段被封。站点被恶意爬过之后，运维封了一批 IP，误伤了百度蜘蛛的出口 IP。",[15,236,238],{"id":237},"_503-的两种原因","503 的两种原因",[11,240,241],{},"第一，源站负载高。蜘蛛来的时候正好赶上资源紧张，返回 503。这类问题通常伴随偶发，抓取诊断多试几次能复现。",[11,243,244],{},"第二，限流配置。Nginx 或云防火墙的限流规则太严，蜘蛛的并发请求触发了限流。",[15,246,247],{"id":247},"怎么验证",[11,249,250],{},"我们一般做三步。第一步，用 curl 带上百度蜘蛛的 UA 请求页面，看返回码。第二步，反查请求来源 IP 是否属于百度，百度蜘蛛的 IP 可以通过 DNS 反查确认。第三步，看服务器访问日志里百度蜘蛛的请求量和状态码分布。",[11,252,253],{},"三步做完，问题基本定位。我们最近一次排查，日志里百度蜘蛛的 403 占 78%，原因就是 CDN 的 UA 规则。",[15,255,256],{"id":256},"修复",[11,258,259],{},"CDN 和 WAF 加白名单，放行百度蜘蛛的 UA 和 IP 段；服务器 UA 规则里加搜索引擎的 UA；限流规则给蜘蛛单独放宽。",[11,261,262],{},"改完在抓取诊断里重新抓一次，确认状态码 200。再观察一周抓取频次有没有恢复。",[15,264,265],{"id":265},"一个反复出现的坑",[11,267,268],{},"换 CDN 之后忘了同步白名单，是我们遇到最多的情况。今年 3 月一个客户迁移 CDN，迁移当晚百度蜘蛛就被挡了，抓取诊断全报 403，三天后才发现。",[11,270,271],{},"这类问题的特点是：站点访问正常、Google 也正常（Google 的爬虫 IP 段被新 CDN 默认放行），只有百度有问题。所以盯抓取诊断，比盯总流量更早发现问题。",[15,273,274],{"id":274},"一句判断",[11,276,277],{},"这类问题最冤的地方在于：站点本身没问题，内容也没问题，就是被自己的安全配置挡在门外。上线新站或者换 CDN 之后，第一件事应该是跑一次抓取诊断。",{"title":70,"searchDepth":71,"depth":71,"links":279},[280,281,282,283,284,285,286],{"id":212,"depth":71,"text":212},{"id":224,"depth":71,"text":225},{"id":237,"depth":71,"text":238},{"id":247,"depth":71,"text":247},{"id":256,"depth":71,"text":256},{"id":265,"depth":71,"text":265},{"id":274,"depth":71,"text":274},"技术SEO","2026-07-28","抓取诊断报 403 或 503，九成不是百度的问题，是源站的防火墙、CDN 或 UA 拦截把蜘蛛挡了。我们处理过 20 多次这类问题，我们处理过 20 多次这类问题，验证方法、三种常见原因和修复动作都在这篇，也写了一个反复出现的坑。",{},"\u002Fblog\u002Fbaidu-crawl-diagnosis-errors",{"title":204,"description":289},"blog\u002Fbaidu-crawl-diagnosis-errors",[295,296,297],"抓取诊断","百度蜘蛛","服务器配置","1pGDtS726_J6ZzmleXPsT2QRcXXBAVXBNK823jlftRg",1794088103417]