很多站長在浏览器里看頁面一切正常,标题、正文、連結都在,但搜尋引擎蜘蛛拿到的 HTML 里可能只有一行加载脚本,剩下全是空的。頁面能不能被抓到内容,很大程度上取决于前端用什么方式把内容渲染出来。這個环节不需要复杂工具就能自查,但拖久了會让整站的收錄表現越来越钝。
為什么渲染方式會影响抓取
蜘蛛抓取頁面时,第一步拿到的是服務器返回的原始 HTML。如果正文、連結是通過 JavaScript 在浏览器端拼接出来的,蜘蛛就必须額外执行脚本才能看到内容。虽然主流搜尋引擎都具备渲染能力,但渲染是有成本的:它要排進队列,占用額外的抓取预算,還可能因為脚本报错、接口超时、登入態缺失而只渲染出空白頁面。
结果就是:用戶看到的和蜘蛛看到的是两個版本。更麻烦的是,這種差异通常不會报错,日誌里頁面還是 200 狀態碼,看不出問题。
常见渲染方案與各自的注意点
纯客戶端渲染(CSR)
HTML 骨架加一段 JS,内容靠接口返回後動態插入。這類頁面在日誌里很常见,但蜘蛛首次抓取时基本只能看到空容器。如果整站栏目頁、詳情頁都是這種方式,抓取效率會明顯下降。建议至少让标题、正文、主要内鏈出現在原始 HTML 中。
服務端渲染(SSR)
HTML 由服務端拼好後返回,蜘蛛拿到即完整。要注意的是缓存策略:如果 SSR 结果被缓存過久,蜘蛛可能抓到改動前的版本。另外要確認渲染失敗时有降級方案,而不是返回空白頁。
静態生成(SSG)
构建期生成 HTML,對蜘蛛最友好,加载也快。代價是内容更新需要重新构建。适合更新频率不高的栏目,比如關于、帮助文档、专题頁。更新频繁的列表頁要谨慎,別让蜘蛛抓到一份很久没重新生成的頁面。
混合與增量渲染
首屏服務端渲染、次要模块客戶端补充,是目前比較常见的折中。自查时要分清哪些内容必须第一次就出現在 HTML 里,哪些可以後續加载。核心正文、标题、主要導航、面包屑建议放在首屏 HTML,推荐位、评论、相關阅讀可以晚一点。
自查清單
- 用“查看網頁源代碼”而不是開發者工具,確認标题、正文、内鏈是否出現在原始 HTML 中。
- 關閉 JavaScript 後再打開頁面,看是否還剩可讀的内容。
- 用抓取工具或 curl 請求一次,和浏览器渲染後的结果做對比。
- 检查主要栏目頁、詳情頁、分頁是否属于同一渲染方式,避免部分頁面漏掉。
- 確認接口超时或报错时,頁面是否還返回有意义的内容和狀態碼。
- 检查渲染依赖的接口是否被 robots.txt 或鉴權拦截,導致蜘蛛拿不到資料。
驗證與排查顺序
- 先選一個流量最大、收錄最差的栏目頁做样本。
- 抓取原始 HTML,记錄标题、正文词數、内鏈數量。
- 與浏览器渲染後的頁面做對照,列出差异項。
- 查看服務器日誌,確認蜘蛛抓的是完整頁還是空壳。
- 定位到具体是模板問题、接口問题還是缓存問题。
- 改完後重新抓取同一 URL,對比差异是否消失。
不要一次性把整站渲染方式全換掉。先在一個栏目驗證,確認蜘蛛拿到的 HTML 稳定包含正文和内鏈,再逐步推廣。
几個容易被忽略的细节
一是分頁和篩選頁面。這類頁面往往由參數驱動,客戶端渲染时更容易出現“同一套骨架、内容全靠接口”的情况,蜘蛛容易在空列表里反复抓取。二是懒加载图片和内容。懒加载本身没問题,但如果首屏内容也依赖滚動或点击才加载,蜘蛛可能永遠触發不到。三是接口返回的错誤頁。当接口返回 404 或空數组时,前端如果直接渲染成“無資料”的正常頁面,就形成了软 404。
把這些点补齐,蜘蛛能稳定看到的頁面内容越多,後續的收錄判断才有可靠的基础。渲染方式不是一次性配置,模板改動、框架升級、接口調整之後都需要重新抽查一遍。