網站收錄

内容要靠点击、登入、滚動才出現:蜘蛛能讀到哪里,收錄就停在哪里

頁面在浏览器里看着完整,搜不到却常常卡在同一個地方:正文根本没進初始 HTML。本文按折叠、登入、滚動加载、异步渲染几類情况拆開,說明蜘蛛預設不做交互时能拿到什么,並给出把關键内容拉回可抓取范围的處理顺序,附一套從初始源碼到日誌的排查步骤。

網站收錄

内容要靠点击、登入、滚動才出現:蜘蛛能讀到哪里,收錄就停在哪里

做收錄排查时,经常遇到一種情况:頁面在浏览器里看是完整的,但一搜就是没有。点開源碼再看,主体内容是空的,或者只有一句“請登入後查看”。問题往往不在頁面质量,而在于蜘蛛拿到的那份 HTML 里,本来就没有這些内容

蜘蛛拿到的是“没有操作過”的頁面

用戶看到的頁面是交互後的结果:点一下 tab、滑到底部、輸入帳號、等接口返回。搜尋蜘蛛来抓取时,預設不會替你点這些操作。它拿到的通常是初始响應,随後可能执行一部分 JavaScript 来渲染,但渲染是有成本和取舍的,不同引擎、不同頁面權重,投入的渲染资源並不一样。

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

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

折叠、tab 和手風琴

把一段說明塞進“展開更多”或第二個 tab,用戶体驗上没問题,但如果展開的内容在初始 HTML 里完全不存在(不是隐藏,是没輸出),蜘蛛可能讀不到。区別在于:CSS 隐藏(display:none)的内容一般還在源碼里,能被看到;由 JavaScript 按需插入的内容,就要看渲染环节的结果。

登入後可见與付費内容

會員内容、後台資料、需要登入才能看的资料,蜘蛛没有帳號,能看到的只有登入頁。這類站点正常做法是让登入頁本身不被索引,内容頁不必强行推收錄。部分搜尋引擎對付費墙内容有专门的标记约定,但那不是通用解法,也不适合当作收錄手段来用。

滚動加载與無限下拉

首屏只有几條,往下滑才繼續加载。蜘蛛不會滚動,能拿到的通常就是首屏那几條。如果後續内容没有獨立 URL、也没有分頁連結,那些内容基本等于没有被發現。

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

评论、相關阅讀、規格參數靠接口异步填充,速度慢或者被拦截时,正文就成了空壳。這類内容如果對頁面有價值,最好在服務端就把第一屏渲染出来。

把内容拉回可抓取的范围

  • 重要的正文服務端直出,不依赖任何用戶操作。
  • 折叠内容尽量在 HTML 中存在,用 CSS 控制展示,而不是事後插入。
  • 列表的後續内容给獨立 URL 和分頁入口,別只靠“加载更多”按钮。
  • 需要登入的内容,明确区分“给用戶看的”和“给蜘蛛看的”,不要给蜘蛛返回不同内容来伪装。
  • 用服務器日誌確認蜘蛛到底拿到了哪個版本,而不是只看它在浏览器里的样子。

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

  1. 看初始 HTML:正文有没有。
  2. 看渲染後:执行 JS 之後有没有。
  3. 看日誌:蜘蛛抓的是哪個 URL 版本,响應碼是什么,返回体多大。
  4. 看索引:用站点查询和頁面級检查交叉驗證,不要只依赖一個數字。
藏起来的内容不等于不能收錄,但每增加一层交互门槛,就多一次被漏掉的机會。能直出的内容,就別指望渲染来补。

最後提醒一句:不要為了收錄,给蜘蛛和用戶返回两套不同的内容。短期可能看起来有点效果,長期的風險比收錄慢大得多。