網站收錄

JS 渲染的頁面:收錄卡在哪一步,怎么驗證

越来越多站点用前端框架渲染内容,頁面源碼里看不到正文,收錄也變得不稳定。本文把抓取、渲染、索引三步拆開,說明 JS 頁面常见的卡点、自查方法和改善顺序,帮助判断問题出在抓取、渲染還是索引阶段。

網站收錄

JS 渲染的頁面:收錄卡在哪一步,怎么驗證

用前端框架做的站点,经常遇到一個現象:頁面在浏览器里看完全正常,但搜尋结果的收錄情况不理想,快照里甚至只有框架外壳。這时候先別急着归因于“搜尋引擎不喜欢 JS”,更常见的情况是,抓取、渲染、索引這三步里,有一步没有走完。

抓取、渲染、索引是三件事

搜尋引擎處理一個 URL,大致會经歷:抓取初始 HTML、执行頁面中的 JavaScript 完成渲染、再把渲染後的内容送入索引。初始 HTML 里没有正文,並不等于一定不能被收錄,但意味着後續必须依赖渲染成功。

如果渲染环节失敗、超时,或者被 robots 規則挡住,最终進入索引的可能只是空壳。此时在工具里看到的“已抓取”,並不等于“已收錄”。

常见卡点:内容在不在初始 HTML 里

  • 接口資料依赖:正文通過前端請求接口後填充,初始 HTML 為空。渲染队列如果没执行或执行失敗,索引里就没有内容。
  • 渲染超时:頁面脚本過多、接口响應慢,渲染器可能在内容出現前就結束了。
  • JS/CSS 被屏蔽:robots.txt 誤屏蔽了脚本或样式资源,渲染無法正常完成。
  • 路由寫法:使用 hash 路由、前端跳轉,或者連結不是标准 a 标簽,蜘蛛可能發現不了新 URL。
  • 懒加载未触發:图片、正文在滚動後才加载,而渲染器不一定模拟滚動。
  • noscript 為空:没有给禁用 JS 的环境留下任何可讀内容。

怎么自查:看渲染後的 HTML,而不是只看源碼

判断問题在哪一步,可以用几個動作交叉驗證:

  1. 用 URL 检查工具查看“已渲染的 HTML”,和浏览器右键源碼對比,看正文是否出現。
  2. 查看服務器日誌里,Googlebot 是否抓取了 JS 和 CSS 文件;如果完全没有,渲染大概率不完整。
  3. 在 Search Console 中看该 URL 的抓取與索引狀態,区分“已發現”“已抓取”“已编入索引”。
  4. 如果頁面在索引里但快照空白,優先怀疑渲染失敗或内容在交互後才出現。
抓取和收錄不是一回事:抓到了不等于渲染成功,渲染成功也不等于一定進入索引,但前两步不通,後面基本無從谈起。

改善顺序:先兜底,再優化渲染

如果確認關键内容依赖 JS,可以按下面的顺序處理:

  • 首屏内容服務端輸出:标题、正文、主要連結尽量在初始 HTML 中就有,SSR、预渲染或静態化都可以作為兜底。
  • 保證脚本可抓取:检查 robots.txt 和 meta 規則,不要让 JS、CSS 资源被誤挡。
  • 連結用真實 URL:站内導航和列表使用标准連結,避免只有点击事件没有 href。
  • 减少不必要的渲染依赖:重要内容不要等到用戶交互後才出現。
  • 提交站点地图:帮助發現 URL,但不要把它当成收錄保證。

JS 渲染本身不是問题,問题在于把收錄完全押在渲染成功上。先让關键内容在初始 HTML 中可见,再逐步優化渲染和交互,收錄的稳定性通常會好很多。最後提醒一句:本文讲的是收錄路径,不承诺任何頁面一定被收錄或获得排名,具体仍需以實际抓取和索引狀態為准。