事情本身不复杂,线索都在日志里。站点每篇文章底部都有「返回首页」和 logo 链接,导航也全指向首页,日志统计内链里七成落在根路径,栏目页平均只拿到两次入链。

原因不止一个,得分开看。模板把 logo 和标题都包了首页链接,每页重复出现。另一种情况是相关推荐按发布时间取最新,永远推首页那几篇。

还有一种情况,栏目页只在导航出现一次,没有其他入口。

上来先统计各路径的入链数量

grep -o 'href="https://www.example.com/[^"]*"' page.html | sort | uniq -c | sort -rn | head

然后把文章标题链接改指当前栏目

curl -s https://www.example.com/p/1024 | grep -c 'href="/category/

相关推荐按同栏目取文

get_posts(array('category__in' => $cats, 'numberposts' => 6));

复核栏目页的抓取占比

awk '{print $7}' access.log | grep -c '^/category/'

恢复的判定其实很直接。调整后栏目页入链从两次涨到十余次,一个月内栏目页收录补齐,正文页的抓取深度也降了一层。

这里还有个坑。内链分布不用刻意平均,但首页吃掉七成肯定是模板问题,先把重复的 logo 链接收一收。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189