网站收录

内容要靠点击、登录、滚动才出现:蜘蛛能读到哪里,收录就停在哪里

页面在浏览器里看着完整,搜不到却常常卡在同一个地方:正文根本没进初始 HTML。本文按折叠、登录、滚动加载、异步渲染几类情况拆开,说明蜘蛛默认不做交互时能拿到什么,并给出把关键内容拉回可抓取范围的处理顺序,附一套从初始源码到日志的排查步骤。

网站收录

内容要靠点击、登录、滚动才出现:蜘蛛能读到哪里,收录就停在哪里

做收录排查时,经常遇到一种情况:页面在浏览器里看是完整的,但一搜就是没有。点开源码再看,主体内容是空的,或者只有一句“请登录后查看”。问题往往不在页面质量,而在于蜘蛛拿到的那份 HTML 里,本来就没有这些内容

蜘蛛拿到的是“没有操作过”的页面

用户看到的页面是交互后的结果:点一下 tab、滑到底部、输入账号、等接口返回。搜索蜘蛛来抓取时,默认不会替你点这些操作。它拿到的通常是初始响应,随后可能执行一部分 JavaScript 来渲染,但渲染是有成本和取舍的,不同引擎、不同页面权重,投入的渲染资源并不一样。

所以判断顺序建议是:先在浏览器里禁用 JavaScript,看看还剩多少内容;再去看初始 HTML 里有没有正文;最后才考虑渲染后能不能出来。这三步能分清是把内容藏在了交互里,还是藏在脚本里。

几种常见的“藏内容”方式

折叠、tab 和手风琴

把一段说明塞进“展开更多”或第二个 tab,用户体验上没问题,但如果展开的内容在初始 HTML 里完全不存在(不是隐藏,是没输出),蜘蛛可能读不到。区别在于:CSS 隐藏(display:none)的内容一般还在源码里,能被看到;由 JavaScript 按需插入的内容,就要看渲染环节的结果。

登录后可见与付费内容

会员内容、后台数据、需要登录才能看的资料,蜘蛛没有账号,能看到的只有登录页。这类站点正常做法是让登录页本身不被索引,内容页不必强行推收录。部分搜索引擎对付费墙内容有专门的标记约定,但那不是通用解法,也不适合当作收录手段来用。

滚动加载与无限下拉

首屏只有几条,往下滑才继续加载。蜘蛛不会滚动,能拿到的通常就是首屏那几条。如果后续内容没有独立 URL、也没有分页链接,那些内容基本等于没有被发现。

异步加载的评论区与推荐位

评论、相关阅读、规格参数靠接口异步填充,速度慢或者被拦截时,正文就成了空壳。这类内容如果对页面有价值,最好在服务端就把第一屏渲染出来。

把内容拉回可抓取的范围

  • 重要的正文服务端直出,不依赖任何用户操作。
  • 折叠内容尽量在 HTML 中存在,用 CSS 控制展示,而不是事后插入。
  • 列表的后续内容给独立 URL 和分页入口,别只靠“加载更多”按钮。
  • 需要登录的内容,明确区分“给用户看的”和“给蜘蛛看的”,不要给蜘蛛返回不同内容来伪装。
  • 用服务器日志确认蜘蛛到底拿到了哪个版本,而不是只看它在浏览器里的样子。

收录停在哪一步,是可以测出来的

  1. 看初始 HTML:正文有没有。
  2. 看渲染后:执行 JS 之后有没有。
  3. 看日志:蜘蛛抓的是哪个 URL 版本,响应码是什么,返回体多大。
  4. 看索引:用站点查询和页面级检查交叉验证,不要只依赖一个数字。
藏起来的内容不等于不能收录,但每增加一层交互门槛,就多一次被漏掉的机会。能直出的内容,就别指望渲染来补。

最后提醒一句:不要为了收录,给蜘蛛和用户返回两套不同的内容。短期可能看起来有点效果,长期的风险比收录慢大得多。