这类问题我又碰上了一次。用 GSC 的索引编制报告导出按路径统计,/news/ 显示 4.2 万条,但 /news/2026/ 和 /news/tag/ 单独看全是 0,报表完全没法用来判断哪个目录出了问题。

第一反应是「带参数的地址被归到最近的目录,实际属于另一个栏目」,验证下来不成立。

把日志和配置对完,能解释这个现象的基本就这几处。导出报表只有前缀匹配,子目录的 URL 被父目录先命中;统计脚本用 startswith 归类,顺序从短到长,长的永远匹配不到;索引状态字段是分页拉的,第二页之后的数据没被合并。

动手时先改成长前缀优先匹配

python idx_group.py export.csv --match longest-prefix

接着按二级目录聚合看分布

awk -F/ '{print "/"$2"/"$3}' urls.txt | sort | uniq -c | sort -rn | head -20

然后抽查几条 URL 的实际归属

curl -s https://www.example.com/news/2026/11/post-1 | grep -o '<title>[^<]*'

剩下的就是把目录维度和 sitemap 分片对齐

grep -c '<loc>' https://www.example.com/sitemap-news.xml

改完先别撤,确认这几项。目录报表里 /news/2026/ 单独显示出 1.6 万条,/news/tag/ 显示 8000 条,父目录数字等于子目录之和,问题目录一眼能看出来。

补一句。按前缀统计目录是最容易出错的一步,尤其是路径层级多、还带参数的站,先约定好归类规则再出报表。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189