先看现象。改版把二级栏目收进 hover 下拉,HTML 里确实有链接,但被 CSS 设成 display:none 且要 mouseenter 才展开,改版后二级栏目页的抓取量一个月掉了八成。

真正麻烦的地方在于,几个原因的现象几乎一样。display:none 的链接权重被大幅削弱,蜘蛛很少跟进。也可能是二级菜单由 JS 拼 DOM,源码里没有 a 标签。

另外,移动端和桌面用两套菜单,移动那份没有链接。

第一件事是看源码里二级菜单有没有 a 标签

curl -s https://www.example.com/ | grep -c 'sub-menu'

再往下确认 CSS 是否把整块藏起来

curl -s https://www.example.com/ | grep -o 'display:none' | wc -l

定位触发展开的脚本

grep -rn 'mouseenter' themes/js/ --include=*.js | head

手上没有现成的复现脚本,就照着线上请求手工拼了一个。

恢复的判定其实很直接。改成点击展开后,二级栏目的抓取量三周内回到改版前七成,日志里入口页请求变多。

补一句。hover 菜单对用户顺手,对蜘蛛就是隐藏链接,重要栏目至少要在页脚或侧栏留一份可见入口。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189