[{"data":1,"prerenderedAt":305},["ShallowReactive",2],{"blog-breadcrumb-jsonld-position-errors":3,"blog-prev-breadcrumb-jsonld-position-errors":97,"blog-next-breadcrumb-jsonld-position-errors":197},{"id":4,"title":5,"author":6,"body":7,"canonical":81,"category":82,"cover":81,"date":83,"description":84,"draft":85,"extension":86,"keywords":81,"meta":87,"navigation":88,"noindex":85,"ogImage":81,"path":89,"seo":90,"seoDescription":81,"seoTitle":81,"stem":91,"tags":92,"updated":81,"__hash__":96},"blog\u002Fblog\u002Fbreadcrumb-jsonld-position-errors.md","BreadcrumbList 标了没生效，九成是层级写错","元析智能",{"type":8,"value":9,"toc":70},"minimark",[10,14,19,22,25,29,32,36,39,43,46,49,52,55,58,61,64,67],[11,12,13],"p",{},"BreadcrumbList 的报错，九成不是 JSON 语法，是层级和页面对不上。校验工具能指出错在哪一行，但改起来得回到模板。",[15,16,18],"h2",{"id":17},"坑一position-不连续","坑一：position 不连续",[11,20,21],{},"position 必须从 1 开始连续编号。模板里按数组索引写，遇到缺一级的页面就会出现 1、3、4，整条标记失效。正确做法是按面包屑的实际层级动态生成 position，别写死。",[11,23,24],{},"我们给客户做结构化数据审计时，第一件事是把全站的 BreadcrumbList 抽出来，用脚本比对每条 item 的 URL 和页面上真实存在的链接。这一步能捞出一半的问题，比等 GSC 报告快得多。",[15,26,28],{"id":27},"坑二name-和页面可见文字不一致","坑二：name 和页面可见文字不一致",[11,30,31],{},"item 里的 name 要和页面上面包屑显示的文字一字不差，URL 要和链接的 href 一致。常见错法：页面上写\"文档中心\"，标记里写\"Docs\"；或者 URL 末尾带斜杠、标记里不带，导致 Google 选不到对应页面。",[15,33,35],{"id":34},"坑三最后一级","坑三：最后一级",[11,37,38],{},"最后一级通常是当前页，可以不写链接，但 name 要保留。有些模板直接从数组里 pop 掉最后一项，结果只剩两级，层级关系错乱。正确做法是保留完整路径，最后一项的 item 可以省略 URL。",[15,40,42],{"id":41},"_2026-年-1-月那次修复","2026 年 1 月那次修复",[11,44,45],{},"一个 4000 页的文档站，GSC 报 1200 条\"缺少字段 item\"。查下来是模板里最后一级用当前页变量渲染，某些页面的变量为空。改模板后两周报错清零，搜索结果里开始出现带路径的展示样式。",[11,47,48],{},"这件事的价值不在展示样式，在于那 1200 个页面的层级关系终于被正确理解，内链和归档页的权重传递顺了一截。",[15,50,51],{"id":51},"怎么验证",[11,53,54],{},"Rich Results Test 跑单页看具体字段；GSC 的\"增强功能 > 面包屑\"看全站报错总数和示例 URL；Screaming Frog 用自定义提取抓 JSON-LD 里的字段做批量比对。三个一起用，通常两天能清完。",[15,56,57],{"id":57},"一个容易忽略的场景",[11,59,60],{},"多语言站的目录层不一样，比如中文是 \u002Fzh\u002Fdocs\u002Fapi，英文是 \u002Fen\u002Fdocs\u002Fapi，但面包屑的层级名称要跟着语言翻译。有些站模板写死了中文的\"产品\"\"文档\"，英文页面也显示中文，用户看不懂，name 和页面文字也对不上。这类问题在 GSC 里会以\"名称不匹配\"的警告出现。",[11,62,63],{},"我们一般把每一级的名称做成语言包，模板按当前语言取，一次改完全站生效。",[15,65,66],{"id":66},"立场",[11,68,69],{},"结构化数据要和页面可见内容同时上线。只有 JSON-LD 没有可见面包屑，属于违规；只有面包屑没有标记，少一个展示机会。两件事一起做，成本多不了半小时。",{"title":71,"searchDepth":72,"depth":72,"links":73},"",2,[74,75,76,77,78,79,80],{"id":17,"depth":72,"text":18},{"id":27,"depth":72,"text":28},{"id":34,"depth":72,"text":35},{"id":41,"depth":72,"text":42},{"id":51,"depth":72,"text":51},{"id":57,"depth":72,"text":57},{"id":66,"depth":72,"text":66},null,"技术SEO","2026-04-18","面包屑结构化数据报错通常不在语法，在层级。我们用 2026 年 1 月一个 4000 页文档站的修复过程，讲清 position 连续性、item 对齐、最后一级这三个坑。",false,"md",{},true,"\u002Fblog\u002Fbreadcrumb-jsonld-position-errors",{"title":5,"description":84},"blog\u002Fbreadcrumb-jsonld-position-errors",[93,94,95],"结构化数据","面包屑","JSON-LD","OCyWkXp9Ctvh_qCIckp19K7ii851ypEoyD5P4hnsRrM",{"id":98,"title":99,"author":6,"body":100,"canonical":81,"category":185,"cover":81,"date":186,"description":187,"draft":85,"extension":86,"keywords":81,"meta":188,"navigation":88,"noindex":85,"ogImage":81,"path":189,"seo":190,"seoDescription":81,"seoTitle":81,"stem":191,"tags":192,"updated":81,"__hash__":196},"blog\u002Fblog\u002Fmonthly-report-what-failed.md","月报里最该写的，是这个月没做成什么，为什么",{"type":8,"value":101,"toc":177},[102,105,108,111,114,117,120,123,126,129,132,135,138,141,144,147,150,153,156,159,162,165,168,171,174],[11,103,104],{},"2026 年 4 月一个客户续约时说，他决定续约不是因为数据涨了多少，是因为我们的月报里有一条“这个月有一件事没做成，原因是你们的开发排期排不进去”。他说那一刻觉得我们没在糊弄他。",[15,106,107],{"id":107},"月报的默认写法有问题",[11,109,110],{},"大多数月报是成果清单：做了多少篇内容、修了多少技术问题、拿到了多少外链。数字摆满一页，读起来很热闹。",[11,112,113],{},"问题是客户心里有三个疑问，成果清单一个都答不了：为什么效果还没起来、你们遇到了什么阻碍、我需要做什么。",[11,115,116],{},"这三个问题不回答，客户只能自己猜。猜的结果通常是“你们没干活”。",[15,118,119],{"id":119},"我们固定留一页写没做成的事",[11,121,122],{},"这一页有三块：没做成的事、原因、需要客户配合的动作。",[11,124,125],{},"比如：原计划上线 8 篇内容，实际上线 5 篇。原因是我们等产品文档更新，晚了 10 天。需要客户配合的是指定一个文档负责人，每周同步一次更新。",[11,127,128],{},"再比如：核心产品页的加载速度没优化到位，因为开发团队这个季度的排期被新功能占满。需要客户配合的，是在下个季度排期里给技术 SEO 留 8 个小时。",[11,130,131],{},"写这一页最难的是承认自己慢。但客户看到的不是慢，是透明。",[15,133,134],{"id":134},"为什么这一页重要",[11,136,137],{},"第一，它把“效果没起来”这个模糊感受变成具体问题。客户知道卡在哪，就不会往“你们不行”上想。",[11,139,140],{},"第二，它把责任分清楚。该我们做的、该客户做的、该第三方做的，各归各位。",[11,142,143],{},"第三，它让下个月的沟通有连续性。上个月说的障碍，这个月有没有解决，一眼能看到。",[15,145,146],{"id":146},"一个具体的写法",[11,148,149],{},"我们不用“部分完成”“稳步推进”这种词。直接写数量和日期：计划 8 篇，完成 5 篇，3 篇卡在等文档，预计 5 月 20 日前补上。",[11,151,152],{},"原因写一句，不辩解。需要客户配合的动作写清楚：谁、做什么、什么时候。",[11,154,155],{},"这三行写不出来，说明这个月的项目其实没推进，只是看起来很忙。",[15,157,158],{"id":158},"数据不好时怎么说",[11,160,161],{},"效果不好的月份，这一页要加一段。写清数据为什么没起来：是收录慢、是算法调整，还是承接页转化差。别用市场波动这种词。",[11,163,164],{},"客户能接受坏消息，不能接受模糊。你给出一个具体原因和一个下一步，他就知道钱还在被认真对待。",[15,166,167],{"id":167},"客户怎么看这一页",[11,169,170],{},"我们统计过，月报发出去之后，客户回复最多的就是这一页。有人回“文档我来盯”，有人回“技术排期我去协调”。",[11,172,173],{},"反过来，只写成果的月报，客户基本不回。不回不是满意，是没什么可说的。",[11,175,176],{},"把没做成的事写清楚，比多写三页漂亮图表有用。",{"title":71,"searchDepth":72,"depth":72,"links":178},[179,180,181,182,183,184],{"id":107,"depth":72,"text":107},{"id":119,"depth":72,"text":119},{"id":134,"depth":72,"text":134},{"id":146,"depth":72,"text":146},{"id":158,"depth":72,"text":158},{"id":167,"depth":72,"text":167},"行业观察","2026-04-17","客户流失很少因为数字难看，多半因为不知道你在干嘛、卡在哪。我们的月报固定留一页写没做成的事、原因和需要客户配合的动作，附一份可直接套用的写法。",{},"\u002Fblog\u002Fmonthly-report-what-failed",{"title":99,"description":187},"blog\u002Fmonthly-report-what-failed",[193,194,195],"月报","客户沟通","项目管理","4eIXr1LDfdBRiOzXWd7y6MJJM9xviCZHpEChCj_VBSM",{"id":198,"title":199,"author":6,"body":200,"canonical":81,"category":293,"cover":81,"date":294,"description":295,"draft":85,"extension":86,"keywords":81,"meta":296,"navigation":88,"noindex":85,"ogImage":81,"path":297,"seo":298,"seoDescription":81,"seoTitle":81,"stem":299,"tags":300,"updated":81,"__hash__":304},"blog\u002Fblog\u002Fscenario-keyword-matrix.md","场景词矩阵：行业乘角色乘流程，一张表挖出 300 个词",{"type":8,"value":201,"toc":283},[202,205,208,211,214,217,220,223,226,229,232,235,238,241,244,247,250,253,256,259,262,265,268,271,274,277,280],[11,203,204],{},"场景词比品类词好打，问题是没人知道从哪挖。我们用一张三列表来生成：行业、角色、流程。三列交叉，一次能出 300 个候选词，筛完能进排期的 40 个左右。",[15,206,207],{"id":207},"三列怎么填",[11,209,210],{},"行业列写你的客户所在行业，8 到 12 个。角色列写用这个产品的人，4 到 6 个，比如运维、开发、采购、财务。流程列写这个角色用产品做的事，6 到 8 个。",[11,212,213],{},"三列相乘，理论上就是几百种组合。不用全填，先填最有把握的两列交叉。",[15,215,216],{"id":216},"一个具体例子",[11,218,219],{},"做日志分析工具的，行业填电商、金融、游戏、SaaS。角色填运维、后端开发、SRE。流程填排障、容量规划、审计、告警配置。",[11,221,222],{},"“电商 运维 排障”就变成一个词：电商大促期间怎么排查接口超时。这就是场景词。",[15,224,225],{"id":225},"生成之后要筛",[11,227,228],{},"第一筛：这个词有人搜吗。用搜索后台和工具过一遍，零曝光的先放一边。",[11,230,231],{},"第二筛：我们有没有素材。没有真实客户场景的，写出来还是空的。",[11,233,234],{},"第三筛：竞品写过吗。写过的看能不能换角度，没写过的优先。",[15,236,237],{"id":237},"为什么场景词更好打",[11,239,240],{},"品类词的前十是官网、媒体、点评站，新页面很难挤进去。场景词的前十常常只有两三个像样的结果，一篇讲透的页面就能排上去。",[11,242,243],{},"2025 年我们给一个客户做了 40 个场景词，12 个月内 22 个进了前三页，品类词一个都没进。",[15,245,246],{"id":246},"一张表的维护",[11,248,249],{},"行业和角色变了就更新，流程列每季度补一次。客户签了新行业，第一件事是往矩阵里加一列。",[11,251,252],{},"这张表比关键词工具导出的表好用，因为它自带语境，写的时候不用再想“这篇谁来读”。",[15,254,255],{"id":255},"一个提醒",[15,257,258],{"id":258},"谁来一起填这张表",[11,260,261],{},"别一个人填。让销售填行业和角色，让技术支持填流程，让市场的人补客户原话。",[11,263,264],{},"我们 2026 年 2 月做过一次，三拨人各填一列，交叉出来的词比一个人拍脑袋多出两倍，而且更接近真实问法。",[15,266,267],{"id":267},"多久更新一次",[11,269,270],{},"半年一次就够。行业和角色的变化慢，流程列跟着产品迭代走。",[11,272,273],{},"更新的标准是：新签了三个同行业客户，就加一列；产品上线了新模块，就补一行。",[11,275,276],{},"矩阵生成的词不要直接当标题。组合词往往很生硬，要改成人话。比如“SaaS 财务 对账”要写成“SaaS 公司财务怎么每月对账”，读起来才正常。",[11,278,279],{},"一个词能不能写，还要看它有没有对应的客户场景可以引用。写不出来的场景，先别排进计划。",[11,281,282],{},"矩阵的价值不是生成词，是把“写什么”和“谁在什么情况下会搜”绑在一起。绑不上，就还是空的。",{"title":71,"searchDepth":72,"depth":72,"links":284},[285,286,287,288,289,290,291,292],{"id":207,"depth":72,"text":207},{"id":216,"depth":72,"text":216},{"id":225,"depth":72,"text":225},{"id":237,"depth":72,"text":237},{"id":246,"depth":72,"text":246},{"id":255,"depth":72,"text":255},{"id":258,"depth":72,"text":258},{"id":267,"depth":72,"text":267},"SEO","2026-04-19","场景词比品类词好打，但没人知道从哪挖。我们用一张三列表：行业、角色、流程，交叉组合出 300 个候选词，筛完剩 40 个进排期。",{},"\u002Fblog\u002Fscenario-keyword-matrix",{"title":199,"description":295},"blog\u002Fscenario-keyword-matrix",[301,302,303],"场景词","关键词矩阵","选题","j0BG51CIzcVmIpUWv16xdjyP0c4CLtwqrdBTETlrGs4",1794088106671]