網站收錄

折叠面板、Tab 和轮播里的正文:收錄时算不算頁面内容

頁面正文寫在 Tab、折叠面板或轮播第二屏里,用戶点開才看得到,索引里可能就没有。這篇梳理三種常见實現方式的差別,以及怎么自查和取舍,避免核心内容只存在于交互之後。

網站收錄

折叠面板、Tab 和轮播里的正文:收錄时算不算頁面内容

不少頁面的正文並不直接铺在頁面上:产品參數放在“規格”Tab 里,常见問题折叠起来,图文介绍做成轮播,只有第一屏可见。用戶点一下就能看到,但搜尋引擎那邊,這些文字算不算頁面内容,取决于一個更基础的問题——它有没有出現在抓取时拿到的 HTML 里。

先分清:抓取到的 HTML 和用戶看到的頁面

讨论收錄时,第一步不是判断内容“好不好”,而是確認這段文字是否進入了渲染後的文档。爬虫先取原始 HTML,再执行頁面脚本,得到一份渲染结果,後續的质量评估和索引處理用的是這份结果。所以同样一句“保修两年”,寫在不同位置,命运可能完全不同。

三種常见實現方式的差別

1. 文字本来就在 HTML 里,只是被 CSS 隐藏

折叠面板用 display:none、Tab 的非激活項用 visibility:hidden、轮播把其他几張图放在容器外——這類情况下,文字确實在原始 HTML 中。它通常會進入渲染结果,只是可见性要打折扣。需要注意反過来的一種情况:在頁面里塞一段用戶永遠看不到、只给爬虫看的文字,這属于另一類問题。

2. 点击後才由 JS 插入 DOM

有些组件在首次渲染时只輸出空容器,点击 Tab 或展開按钮时才把内容寫進頁面。這種寫法對用戶没影响,但爬虫不會去点你的按钮。渲染结果里如果没有触發這一步,那段文字就相当于不存在。

3. 依赖接口异步返回

更彻底的情况是内容来自一次接口請求,頁面加载後才填充。這類内容能否被看到,取决于渲染时是否执行了那次請求、請求是否成功、返回是否够快。它在索引里的稳定性明顯弱于直接寫在 HTML 中的文字。

“隐藏内容會不會被降權”要分開看

關于隐藏内容,常见的誤解是把两件事混在一起:一是頁面本来就有的正文,因為交互设計被折叠;二是為了堆词而刻意隐藏、與用戶看到的内容不一致的文本。前者是排版和交互問题,後者才是质量层面的問题。真正需要警惕的是後者。

判断标准可以很简單:這段文字對用戶是“点一下就能看到的内容”,還是“只有爬虫才會看到的内容”。

自查顺序

  1. 在浏览器里查看源代碼,搜尋一個只出現在 Tab 或折叠区域里的關鍵詞。搜不到,說明它不在原始 HTML 中。
  2. 禁用 JavaScript 重新加载頁面,看看正文還剩多少。剩余過少,說明主要内容依赖脚本。
  3. 用抓取測試工具查看渲染後的 HTML,對比原始源碼,確認脚本执行後内容有没有补上。
  4. 分別在移動端和桌面端測試。移動端常把内容折叠得更狠,部分文字可能只在桌面版本輸出。
  5. 检查轮播和列表是否只輸出第一項。只輸出第一張的轮播,後面几張的文案基本等于没有。

内容该放在哪里

  • 核心正文、關键參數、结论性内容尽量直接寫在 HTML 中,交互只负责控制顯示與否,而不是控制内容是否存在。
  • Tab 里的信息如果是用戶决策需要的,尽量在首次渲染时就輸出,隐藏狀態交给 CSS。
  • 轮播不要承载唯一的核心内容,第一張之外的信息,最好在頁面下方以文字形式再出現一次。
  • 頁碼、展開全文、评论区這類内容不必强求,它們的價值本身就低,抓取與否影响有限。
  • 改版或重构组件时,把“内容是否還在 HTML 里”列為驗收項之一,比事後排查省事。

小结

交互形式影响的是用戶怎么看到内容,HTML 里有没有這段文字才影响索引能不能看到。把重要内容放進渲染结果的文档中,是相對可控的一步;至于最终是否收錄、收錄後如何展示,還受頁面整体质量和站点情况影响,没有哪一步能單獨保證结果。