先看现象。改版把顶部导航改成汉堡菜单,二级栏目收进折叠面板,靠 JS 展开。上线两周后日志里二级栏目的抓取量少了四成,这些页面在搜索里的展现同步下滑。
原因不止一个,得分开看。折叠面板里的链接默认不在 HTML 里输出。少数情况下是JS 展开后才插入 a 标签 蜘蛛不执行交互。
还有一种情况,二级页只剩 sitemap 一个入口。
另外,面包屑没有覆盖到二级栏目。
先用蜘蛛 UA 数导航里的链接
curl -s -A 'Baiduspider' https://www.example.com/ | grep -o 'href="/cat/[^"]*"' | sort -u | wc -l
折叠面板的链接照样输出到 HTML
<nav class="mobile-menu" hidden><a href="/cat/nginx/">nginx</a></nav>
补一个页脚栏目索引
wp_nav_menu(['theme_location' => 'footer_sitemap']);
剩下的就是统计二级栏目的抓取量
grep -c '/cat/' access.log
这台环境是别人交接的,不少默认值被动过,只能一项项核。
同事提醒我看一下最近一次发布,时间点确实对得上。
恢复的判定其实很直接。蜘蛛拿到的导航里能看到全部二级栏目,抓取量在两周内回到改版前水平。
折叠可以用 CSS 和 hidden 属性做,链接本身必须留在 HTML 里。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。
