网站收录

折叠面板与“展开全文”里的内容:收录核对先看它落在哪一层 HTML

折叠面板、Tab 切换和“展开全文”里的文字,在收录上表现常常不一致。本文按内容所处的层级——初始 HTML、脚本渲染、懒加载——给出核对顺序:先看抓取到的 HTML 里有没有这段文字,再看有没有可访问的独立 URL,最后再谈收录。核心正文别全放进需要点击才出现的位置。

网站收录

折叠面板与“展开全文”里的内容:收录核对先看它落在哪一层 HTML

很多站点会遇到这种情况:页面上明明是同一块内容,有的词能搜到,有的词搜不到。排查关键词、密度、内链一圈之后,问题常常出在一个更基础的地方——那段文字在被抓取的那个版本里,到底存不存在。

尤其是折叠面板、Tab 切换、“展开全文”这类交互,用户点一下就能看到,爬虫可不一定有点的机会。下面按内容所处的层级,给一个可操作的核对顺序。

先分清三种“看不见”

第一种:在 HTML 里,只是被 CSS 隐藏

折叠面板默认收起、Tab 只显示第一个标签页,这些内容往往已经写在初始 HTML 中,靠 display:none、高度为 0、或者移出可视区域来藏起来。从抓取角度看,文字是在的。

第二种:初始 HTML 里没有,交互后才由 JS 插入

点击“展开”时才去请求接口,再把结果拼进页面。这种情况下,抓取到的 HTML 里就是空的,能否被看到取决于抓取时是否执行脚本,以及执行后内容是否稳定出现。

第三种:需要滚动或点击“加载更多”才追加

懒加载列表、评论区翻页、长文的分段加载,初始只给第一屏。后面的内容既没有被抓取,也没有一个独立的 URL 可以单独访问。

核对顺序:从初始 HTML 开始

  1. 拿到抓取版本。用“查看网页源代码”看初始 HTML,或用抓取工具、搜索引擎提供的 URL 检查功能查看实际抓到的 HTML,而不是只看浏览器里渲染好的页面。
  2. 在初始 HTML 里搜关键词。直接搜折叠区域里的一段独有文字。搜不到,说明它不在这一层。
  3. 对比渲染后的 DOM。如果初始 HTML 没有、渲染后有,说明内容依赖脚本。此时再确认脚本是否被屏蔽、是否必须由用户点击才触发。
  4. 看有没有独立 URL。“展开全文”如果只是前端动画,那只有一个 URL;如果实际跳到另一页,就要确认那个页面的状态码、canonical 与 robots 设置,别让正文被指向一个不被收录的地址。
  5. 区分移动端和桌面端。两套模板的折叠逻辑经常不一样,某一端把正文藏在脚本里,另一端的核对结果就不能直接照搬。

几个容易踩的坑

  • 用 display:none 塞词。隐藏内容用于堆砌关键词属于老套路,风险远大于收益,和正常的折叠导航、FAQ 不是一回事。
  • 折叠部分与正文高度重复。同一段话在摘要、折叠区、正文各出现一次,容易制造近似重复,对收录没有帮助。
  • 把核心内容全放在“展开”之后。首屏只剩一句引导语和按钮,抓取到的页面主体非常薄,这类页面很难被当作有独立价值的页面。
  • 以为藏起来就等于没影响。抓取到是事实,是否参与排名是另一回事,两者不要混为一谈。

一个简单的判断标准

假设一个用户不点击、不滚动、不执行脚本,只拿到初始 HTML,他能不能读到这个页面的核心信息?

如果答案是否定的,那么这段内容的收录就处于不稳定状态,今天进索引,明天可能就掉了。与其事后反复查收录,不如在设计阶段就把内容分层定清楚:核心正文、关键参数、主要结论放在可抓取的 HTML 里;FAQ、次要参数、操作步骤可以折叠;纯装饰性的、依赖交互的动态内容,就不必指望它承担收录任务。

需要提醒的是,把内容放对层级只是提升被正确抓取和判断的机会,具体是否收录、以什么形式呈现,仍由搜索引擎根据页面整体质量决定,没有必然结果。