很多站点把内容交给 JavaScript 渲染,用户在浏览器里看着正常,但蜘蛛拿到的初始 HTML 里可能只有几行框架代码。这种情况不一定会让页面完全不被抓取,却会让内容、链接和更新信号难以被稳定识别。与其等问题出现再排查,不如把渲染方式和首屏内容纳入常规自查。
为什么蜘蛛可能看到“空壳”
搜索引擎抓取通常先取回服务器返回的原始 HTML,再决定是否执行页面脚本。如果正文、内链、分页入口都写在脚本里,而脚本又依赖接口返回数据,那么抓取过程就可能出现几种情况:脚本没有执行、接口被 robots.txt 拦住、数据返回超时,或者执行后只渲染出部分内容。结果就是页面在抓取视角下显得空白或残缺。
这不等于页面一定不会出现在搜索结果里,但内容不完整会直接影响后续判断。对运营者来说,重点是让关键信息在原始 HTML 中就可见。
自查清单
1. 查看不带脚本的原始 HTML
用浏览器查看网页源代码,或者用抓取工具模拟蜘蛛请求,关闭 JavaScript 后再看返回内容。关注三件事:正文是否出现、主要导航和内链是否是真正的 a 标签、分页或栏目入口是否存在。
2. 检查内链是否依赖点击事件
- 栏目入口是否写成 onclick 跳转,而不是可抓取的链接;
- “加载更多”是否可以退化为普通分页链接;
- 移动端菜单在原始 HTML 中是否有对应链接。
3. 客户端路由与入口地址
单页应用常用前端路由切换页面,地址栏变化但服务器只返回同一个 HTML 文件。如果每个栏目或内容页没有独立、可访问的 URL,蜘蛛就很难把它们当作不同页面处理。可以检查前端路由是否支持直接输入地址访问,并返回对应内容。
4. 懒加载与折叠内容
图片懒加载一般不影响主要判断,但如果正文段落、表格、评价或列表也等到滚动才加载,抓取时就可能只拿到一部分。折叠区域如果只写在脚本里,同样容易被忽略。关键内容尽量放在默认可见的 HTML 中。
5. 接口是否被规则挡住
有些站点为了减少无效抓取,会在 robots.txt 里屏蔽接口路径,但页面内容恰恰由这些接口提供。检查被屏蔽的路径里,是否包含渲染正文所必需的请求。如果有,需要重新评估规则范围。
处理思路与取舍
- 优先让正文、标题、主要内链在原始 HTML 中呈现,交互效果可以后续叠加;
- 对确实依赖脚本的页面,考虑服务端渲染或预渲染,至少保证返回内容完整;
- 分页、筛选、加载更多提供可点击的地址,避免只依赖按钮事件;
- 定期抽查重要栏目和内容页的抓取视角,而不是只看用户视角。
渲染方式不必追求复杂,关键是让内容有稳定的获取路径。蜘蛛能读到什么,很大程度上取决于服务器返回的第一份 HTML。把这部分整理清楚,再谈内容更新和栏目运营,往往会顺利很多。
提醒:不同搜索引擎对脚本执行的支持程度不同,以上自查只能帮助减少信息缺失,不能保证收录结果。建议结合服务器日志和抓取工具的实际返回内容来判断。