網站收錄

藏在登入和点击之後的内容,搜尋引擎能看到多少

用戶点開就能看到的正文,爬虫不一定讀得到。登入墙、彈窗遮罩、点击展開和加载更多,都會让搜尋引擎拿到一份内容更少的版本,進而影响頁面的收錄與主题判断。本文梳理常见的遮挡方式、自查步骤和調整思路,帮助你把關键内容放到爬虫能触達的位置。

網站收錄

藏在登入和点击之後的内容,搜尋引擎能看到多少

同一篇文章,用戶打開能看到全文,搜尋引擎抓到的却可能是半頁空白。這種差异通常不是技術故障,而是内容被挡在了交互之後。登入、彈窗、点击展開,這些對用戶体驗友好的设計,恰好是爬虫過不去的地方。

爬虫看到的版本,是没有交互的那一版

搜尋引擎抓取一個 URL 时,拿到的是服務器返回的 HTML,再加上一段有限時間的渲染。它不會登入,不會点按钮,不會關彈窗,也不會在頁面上停留几秒等你操作。所以那些需要用戶做点什么才會出現的内容,在抓取视角里往往是不存在的。

這不等于頁面一定收錄不了,但它會让頁面的内容量、主题相關性都低于你的预期。最终决定收錄與否的,還是爬虫實际拿到的那份内容。

三種最常见的遮挡方式

登入墙和付費墙

把正文放在登入後才能訪問的路径下,爬虫基本只能看到一個登入表單或者一段简介。整站大范围這么做,能被收錄的有效頁面會明顯减少。

比較務實的做法是:把文章标题、開头一两段、目錄或摘要留在公開可訪問的 HTML 里,只把完整正文放在登入之後。這样頁面至少有一個明确的主题和可判断的内容量。

彈窗、Cookie 提示和遮罩层

用戶第一次訪問时彈出的订阅框、地区選擇框、同意條款横條,如果盖住了首屏正文,並且在渲染快照生成时仍然存在,爬虫看到的就是這一层遮罩。移動端的整屏彈窗尤其容易出問题。

点击展開、折叠面板和加载更多

标簽頁里只渲染目前選中的那一栏、常见問题預設折叠、列表只顯示十條剩下的靠点击加载,都是很常见的實現。如果内容是点击之後才由 JavaScript 請求回来的,没被点開的部分就不會出現在渲染结果里。

一個折中的办法是:折叠面板里的文本仍然寫在 HTML 中,只用 CSS 控制顯示與隐藏。這样虽然用戶需要点击才能看到,但内容本身存在于源碼里,被讀到的概率高得多。

為什么這件事直接影响收錄结果

  • 内容變薄:爬虫拿到的正文可能只有几百字甚至更少,頁面容易被判断為信息量不足。
  • 主题判断偏移:真正有價值的部分没被抓到,頁面在索引里對應的主题可能變成彈窗文案或導航文字。
  • 多版本並存:同一份内容既有带登入參數的地址,又有公開地址,容易形成重复,索引里留下哪一個並不由你决定。
  • 更新不生效:你改的是登入後的正文,爬虫每次看到的還是那份舊快照,索引自然跟着不動。

自查:怎么知道爬虫看到了什么

  1. 用浏览器的無痕模式打開頁面,不做任何点击,看首屏能看到多少正文。這大致就是爬虫的第一印象。
  2. 禁用 JavaScript 再打開一次。如果正文几乎消失,說明依赖前端渲染,需要確認服務端是否有兜底輸出。
  3. 用搜尋引擎提供的 URL 检查類工具查看渲染後的 HTML,重点看正文是否出現在里面。
  4. 查看抓取日誌中该 URL 的返回字节數,和用戶實际看到的頁面体积對比,差距過大通常意味着内容是後加载的。
  5. 检查登入、彈窗相關的參數是否出現在被收錄的 URL 中,避免同一内容生成多條索引记錄。

處理时的几個原則

  • 關键内容預設可见:标题、正文主体、必要說明尽量直接由服務端輸出,不依赖点击或滚動触發。
  • 遮罩別压首屏:彈窗尽量延後出現,或至少不要覆盖正文区域。
  • 分頁内容给獨立地址:靠加载更多拼接的長列表,考虑给每一頁一個可抓取的 URL。
  • 付費墙留一個公開入口:摘要頁可收錄,完整内容留在登入後,两者用規范标簽理清關系。
  • 別把收錄問题變成隐藏問题:為了塞内容而用隐藏层堆關鍵詞是另一回事,這里说的只是正常排版的折叠與切換。
判断标准很简單:把頁面当成一個從不点击、從不登入的訪客,他能讀到什么,搜尋引擎大致也就讀到什么。收錄問题的排查,很多时候從這里開始就够了。