问题出现得很突然,日志倒是留得挺全。移动版为了精简页面,把参数表、参考资料和作者简介整块设为 display:none,桌面端能看到的内容移动端完全消失,百度判定移动版内容缺失。

刚开始盯着「CSS 里用 visibility:hidden,同样不计入内容」,折腾了半个多小时,排掉了。

真正麻烦的地方在于,几个原因的现象几乎一样。隐藏块不是交互折叠,而是永久不显示。另一种情况是模板按设备判断,移动端直接不输出这些模块。

另外,蜘蛛拿到的移动版 HTML 里这些节点根本不存在。

先对比两版页面的节点数量

curl -s -A "Mozilla/5.0 (iPhone)" https://www.example.com/post-1024/ | findstr /c:"<table" | measure -Line

再往下确认隐藏模块的样式

curl -s https://www.example.com/css/mobile.css | findstr /i "display:none"

移动端也输出完整内容

echo '<section class="refs">参考资料</section>';

末了用折叠组件替代永久隐藏

curl -s -A "Mozilla/5.0 (iPhone)" https://www.example.com/post-1024/ | findstr /i "details"

怎么算真的好了,看的是同一批现象。移动端补回完整模块后,两版内容差异消失,移动收录在两周内追平桌面。

隐藏内容和折叠内容是两回事,前者对蜘蛛等于不存在,后者至少还在 HTML 里。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189