P2-3 · 服务端渲染与可提取性(SSR & Extractability)

目标:进得来之后,让爬虫读得到正文——别把核心内容藏在 JS / 登录 / 付费墙 / 交互后面。 一句话方法正文进原始 HTML(SSR/预渲染),再用禁 JS + 查看源代码双重验证它确实在那。 机制02-3-RAG与实时检索grounding·02-2-答案生成管线总览(②召回→④抽取) 诊断C3-渲染与内容可提取性 上游准入P2-1-AI爬虫准入排查 下游结构P1-1-answer-first写作与可抽取结构

🎯 TL;DR(30 秒速用)

动作一句话判定标准
① 关键内容 SSR正文服务端渲染/预渲染禁 JS 后正文仍在
② 去 JS 依赖核心信息不靠脚本才出现源码里搜得到正文文本
③ 解锁正文不锁在登录/付费墙/交互后未登录也能读到核心段
④ 干净 HTML语义标签、低噪 DOM正文不被脚本/弹窗淹没
⑤ 图配等价文字信息别只埋在图里关键数据有文字版

只记一条:你(浏览器)看得到 ≠ 爬虫读得到——多数 AI 爬虫不执行 JS,判定以禁 JS / 查看源代码后正文是否还在为准,不是肉眼看着有就行。

🧠 为什么有效(原理层)

机制详见 C3-渲染与内容可提取性·02-3-RAG与实时检索grounding,本页只取结论:

  • 多数爬虫不跑 JS:纯客户端渲染(CSR)的 SPA,原始 HTML 是空壳,正文靠浏览器执行 JS 才填进来——爬虫拿到的就是那个空壳,等于没正文。
  • 读得到才进得了 ④抽取的门:②召回阶段引擎抓的是原始响应;正文不在里面,后面 ④抽取再强的结构(P1-1-answer-first写作与可抽取结构)也无内容可截——读不到 = 抽取归零
  • 实时检索类最敏感03-3-Perplexity·03-2-Google-AIO与AI-Mode 这类边抓边答,当场抓不到正文就当场没有你;不像训练侧还有缓存余地。
  • 登录/付费墙/交互 = 三道隐形门:锁在它们后面的内容,对未持凭据的爬虫等同隐形——和 CSR 空壳是同一类”读不到”

一句话原理:进得来只是第一关,读得到才算正文真正”上桌”;而”读得到”要靠正文进原始 HTML 来兑现,CSR 空壳 / 登录墙都会让它落空。

🛠️ 怎么做(五个核心动作)

  1. 关键内容上 SSR / 预渲染:核心正文用服务端渲染(SSR)或静态生成(SSG/预渲染)产出,确保它在首屏 HTML 响应里就存在,不依赖客户端 JS 注入。
  2. 砍掉 JS 依赖:核心信息不交互也能呈现;把”点击展开 / 无限滚动 / 标签页切换”才出现的关键内容,改为默认就在源码里
  3. 解锁正文:核心结论别全锁在登录 / 付费墙 / 交互后;付费墙站点至少放前置摘要 / 关键段到墙外(取舍见 09-5-媒体与出版)。
  4. 清理 HTML:用语义化标签<article>/<h1-3>/<p>/<ul>),降低弹窗、横幅、脚本噪音占比,让正文在 DOM 里干净可辨
  5. 图配等价文字:图表/数据图里的关键信息,同步落一份文字版(正文或表格),别让事实只活在像素里(接 P1-3-原创研究与专有数据)。

📋 可复制模板(拿走即用)

模板 A · 渲染方式选型(按页型选,别一把梭)

方式正文在原始 HTML?适合页型对 AEO
CSR(纯客户端)❌ 空壳后台/高交互应用⚠️ 正文读不到,避免用于内容页
SSR(服务端渲染)✅ 在动态内容页推荐
SSG(静态生成)✅ 在文档/博客/落地页推荐(最稳)
ISR / 预渲染✅ 在量大且需较新推荐(兼顾新鲜度)

模板 B · 禁 JS 验证(看正文是不是真在原始 HTML)

# 方式一:浏览器关 JS 再访问
# DevTools → Cmd+Shift+P → 输入 "Disable JavaScript" → 刷新
# 正文还在 = SSR/预渲染生效;正文消失/转圈 = CSR 空壳

# 方式二:看原始响应(不经浏览器执行 JS)
curl -s https://你的域名/关键页 | grep -o "正文里的一句独有的话"
# 有输出 = 正文在原始 HTML;无输出 = 没进首屏 HTML,回查渲染方式

模板 C · 查看源代码反查(终判:源码可搜到正文)

# 浏览器:右键 → 查看网页源代码(View Page Source,看的是原始 HTML,不是 Elements 面板)
# Cmd+F 搜你正文里的关键句 →
#   搜得到 = 读得到;搜不到(只在 Elements 里有)= JS 注入的,爬虫读不到
# 注意:Elements 面板是"JS 跑完后的 DOM",会骗你;View Source 才是爬虫看到的

模板 D · 付费墙/登录前置摘要(兼顾商业与可见性)

墙外(爬虫可读):标题 + 2-3 句核心摘要 + 关键数据点(文字版)
墙内(登录/付费):完整正文 / 深度分析 / 下载
→ 既保商业模式,又让引擎读到"足够被引用"的核心 — 取舍见 09-5

✅ 执行清单

  • 禁用 JS 后,关键页正文是否仍然可见
  • 查看网页源代码”(非 Elements 面板)能否搜到正文文本
  • 核心内容是否被登录 / 付费墙拦在外面?
  • 关键内容是否靠”点击展开 / 无限滚动 / 标签切换”才出现?
  • 重要数据是否只存在于图片里(无文字等价)?
  • 实时检索类(Perplexity/AIO)抓取你的关键页,能拿到正文吗?

⚙️ 平台适配

❌ 常见错误 & FAQ

错误

  • 纯 CSR 的 SPA 做内容站,原始 HTML 无正文 → 引擎召回阶段拿到空壳。
  • Elements 面板(JS 跑完的 DOM)当”源码”自检 → 看着有、爬虫读不到。
  • 关键结论锁登录/付费墙后 → 等同隐形。
  • 用”无限滚动 / 点击展开”承载核心内容 → 不交互不出现 = 读不到。

FAQ

  • Google 不是能渲染 JS 吗? Google 传统索引有渲染能力,但实时检索类与多数 AI 爬虫不保证执行 JS;且渲染有预算/时延——正文进原始 HTML 最稳,别赌引擎帮你跑 JS。
  • 已经 SSR 了还是没被读到? 先回查 P2-1-AI爬虫准入排查(是不是卡在准入/CDN),再确认 View Source 真能搜到正文。
  • 全站都要 SSR 吗? 不必。内容页/关键页优先;纯后台/高交互应用按模板 A 选型即可。
  • 付费墙必须拆吗? 不必拆,但核心摘要要放墙外,否则对引擎等同隐形 → 09-5-媒体与出版

🧩 与相邻打法的边界

📌 关于本页(“成熟”级 · 复用 P1-1-answer-first写作与可抽取结构 打法页范式):本页是 P2 技术支柱的第二篇打法,对应 C 簇一票否决的 C3——机器读取生命周期的第二关(读得到):进得来(P2-1-AI爬虫准入排查)→ 读得到正文(本页) → 解析得了(P2-2-Schema部署与校验)。它和 P2-1 一样是 P0 准入硬约束,团队拿它当上线前的”正文真在原始 HTML 吗”体检表

相关