把入口页做成空壳,通常指页面返回 200,但 HTML 源码里几乎没有正文,也没有可点的链接,链接靠 JavaScript 渲染或异步接口再插入。很多蜘蛛池和站点运营者会问:这种情况下,搜索蜘蛛还能不能顺着入口页发现目标 URL?答案不是简单的能或不能,而要看你把目标链接放在了哪一层。
先分清“抓取”和“渲染”
搜索蜘蛛请求一个 URL 时,第一步拿到的是服务器返回的 HTML。它先在 HTML 里找 a href 这类链接。如果链接不在原始 HTML 中,而在 JS 执行后才出现,那就进入“渲染”环节。渲染需要额外资源、计算和时间,不同搜索引擎、不同站点权重、不同抓取压力下,处理方式并不一样。所以空壳页面不是一定无法发现链接,而是发现概率和速度会变得不稳定。
空壳页面常见的三种情况
1. HTML 里完全没有链接
源码中只有空容器和一段 JS,链接由前端路由生成。搜索蜘蛛如果只解析原始 HTML,就看不到任何目标 URL;如果它愿意渲染,也要等 JS 请求接口并成功返回后,才可能看到链接。
2. HTML 里有链接,但被 CSS 或 JS 隐藏
有些页面为了用户体验,把链接放在折叠菜单、弹窗或懒加载区域。只要链接出现在 HTML 源码里,通常仍可能被发现;但隐藏、混淆或点击后才生成的内容,不能指望搜索蜘蛛像用户一样操作。
3. HTML 里有占位链接,真正目标靠跳转
比如先输出一个空 href,再由 JS 改成目标地址。搜索蜘蛛可能记录到空链接或占位链接,而不是你真正想让它发现的 URL。
搜索蜘蛛可能怎么处理
- 只抓 HTML,不渲染:看不到目标链接,入口页对 URL 发现几乎没有帮助。
- 先抓 HTML,再排队渲染:可能延迟数小时到数天,甚至因为资源不足被跳过。
- 渲染成功:能看到 JS 插入的链接,但也要看链接是否可点击、是否被 nofollow、是否被 robots.txt 允许。
- 渲染失败:接口超时、跨域报错、JS 报错,都会让目标链接消失。
怎么判断入口页是不是空壳
- 用浏览器查看网页源代码,不要用审查元素。搜索蜘蛛先看到的是源代码。
- 禁用 JavaScript 后再打开入口页,看目标链接是否还存在。
- 用 curl 或抓取工具请求入口页,检查返回的 HTML 中是否包含目标 URL。
- 查看服务器日志,确认搜索蜘蛛是否请求了入口页,以及是否继续请求了目标 URL。
- 对比入口页 HTML 体积和正文占比,只有框架没有链接的页面要警惕。
更稳妥的做法
- 把关键链接放在服务端渲染的 HTML 中,至少保证首屏有可解析的 a href。
- 如果使用前端框架,考虑 SSR、SSG 或预渲染,让原始 HTML 就包含目标 URL。
- 入口页和 sitemap 配合使用,sitemap 适合提交一批 URL,入口页适合做链接发现,两者分工不同。
- 提交 URL 是辅助手段,不能替代可抓取链接;提交后也要看日志确认是否真的被抓取。
- 控制入口页链接数量和质量,避免大量重复、无关联链接稀释发现效果。
- 检查 robots.txt、nofollow、X-Robots-Tag 等设置,别让已经出现的链接在抓取前被拦掉。
常见误区
误区一:页面返回 200 就等于入口页有效。状态码只说明请求成功,不代表链接被发现。
误区二:搜索蜘蛛一定会执行 JS。渲染是额外步骤,有成本和条件,不是所有页面都会走完。
误区三:只要放了链接就会很快被抓。抓取还受站点权重、抓取配额、页面质量和服务器响应速度影响。
把入口页当作“给搜索蜘蛛看的目录”,目录本身要能被读取,里面的条目才有机会被继续访问。空壳页面不是不能用,但要清楚它把发现链接的风险推给了渲染环节。
总结
入口页是空壳时,搜索蜘蛛能否发现目标 URL,关键看链接是否出现在初始 HTML 中。能服务端输出就别只依赖 JS;能用 sitemap 和主动提交做补充就别把入口页当成唯一通道。最后用日志验证抓取路径,比猜测更可靠。