面包屑标记里 position 从 0 开始递增,测试工具提示必须从 1 开始,整条路径在结果里不显示。

真正麻烦的地方在于,几个原因的现象几乎一样。循环下标被直接当成了 position;手动写死的第一项漏加一;主题和插件各输出一套,编号重复。

上来先看实际输出的编号

curl -s https://www.example.com/post/ | grep -o '"position":[0-9]*'

接着改成从 1 开始

echo '<meta itemprop="position" content="'.($i+1).'">';

只保留一套面包屑

curl -s https://www.example.com/post/ | grep -c 'BreadcrumbList'

校验层级顺序

curl -s https://www.example.com/post/ | grep -o '"position":[0-9]*' | sort -u

改之前先确认了最近有没有人动过配置,避免白查一遍。

这次没动代码,只在配置和运行环境上找原因。

隔了一天再看,现象没变,说明不是偶发。

那几天正好在做别的变更,先把时间线对齐才敢动手。

排查用的命令都是临时敲的,没有写成脚本,事后才整理。

恢复的判定其实很直接。测试工具提示消失,编号连续且从 1 开始,搜索结果里的路径层级正常显示。

这里还有个坑。编号断档也会被判错,中间项被条件隐藏时得重新排序。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189