不少企业做官网时越做越顺手:选了 React、Vue 或者 Next.js,页面切换丝滑、动效漂亮,技术团队也乐于维护。可等到去搜索引擎和答案引擎里查自己的内容,发现该被引用的段落一条都没出现,文章像从没写过。问题往往不在写得好不好,而在正文根本没进初始 HTML——它躺在脚本里,等浏览器跑完才"注水"上来,而真正来取你内容的人,并不跑脚本。
一、"好看"和"能被引"是两件事
用前端框架搭站,服务端吐回浏览器的通常是一份 HTML 骨架:几个 <div>、<span>,加上一长串 JS 文件引用。正文文字、产品介绍、案例详情,全靠脚本在用户本地执行后才填进这些空盒子。人在浏览器里看到的是完整页面,但如果你按 F12 看"查看网页源代码",body 里大概率空荡荡。
这本身不是错。问题在于:你衡量"页面有没有内容",用的是带脚本的人类视角;而决定你能不能被引用、能不能进答案区的,是那些不跑脚本、只抓初始 HTML 的程序。两者看到的,根本不是同一个页面。
二、哪些"读者"不跑脚本,却要搬你的话
第一类是传统爬虫。百度、Google 确实能执行一部分 JavaScript,但预算有限、深度有限。一个重度依赖前端渲染的站,常常只被抓到骨架或部分文本,正文里最该被引的那段反而漏掉。
第二类更关键:各类答案引擎的取数程序。它们为速度和成本考虑,大多只拉初始 HTML,甚至只浅浅渲染一下就走。你那篇写透了行业痛点的长文,在它眼里就是一排空 <div>——没有字,自然无从引用,引用位就落到对手那篇老老实实输出纯 HTML 的站上。
很多人安慰自己"主流引擎都支持 JS",但支持不等于优先、不等于完整、不等于把你当引用源。对靠内容获客的企业来说,这点差距就是有没有生意的差距。
三、三步把正文搬回初始 HTML
1. 改服务端渲染或静态生成。 别让正文只在浏览器里生成。用 Next.js 的 SSR/SSG、Nuxt 的 SSR,或 Astro、普通 PHP/HTML 输出,把正文直接写进服务端返回的 HTML。这样无论谁来抓,初始文档里就有完整可读的文字,不依赖任何脚本。
2. 关键内容别只藏在组件状态和异步接口里。 首屏可见的介绍、卖点、价格区间、案例结论,写死进 HTML 文本节点;数据接口只用来做增强,不用来"从无到有"生成正文。想要页面可读性稳,正文就得在第一次返回时就存在。
3. 给动态区块做无脚本兜底。 标签页、折叠块、弹层这些交互,初始 HTML 里至少保留文本节点,别等点击才由 JS 插入。骨架屏、loading 占位更不能长期占着首屏——那是空壳的另一种形式。
四、上线前用这一招自查
不必装复杂工具。发布任何重点页之前,做三件小事:
- 浏览器里"查看源代码",确认 body 内含有可读正文,而不是满屏标签。
- 用命令行
curl拉首页 HTML,搜你文章里的核心词,看能不能搜到。搜不到,说明正文不在初始文档里。 - 关掉 JavaScript 再打开页面(或借文本模式浏览器),确认还有字。没字,就等于把内容藏起来了。
把这三条当成发布门禁:正文不在初始 HTML,就不算上线。很多站改起来并不难,先把一两个高价值页改成服务端渲染,引用情况往往几周内就变。
五、三个最容易翻车的点
- 只测浏览器,不测抓取快照。 技术同学本地一看页面正常,就以为万事大吉,从没用无脚本视角验证过。
- 首屏交给骨架屏占着。 spinner、占位图一时爽,抓取程序拿到的是空,用户也未必等得到。
- 用纯 SPA 做内容站。 官网、博客、知识库这类靠文字获客的页面,本就不该是纯客户端渲染;交互花活留给后台系统,前台内容老老实实输出 HTML。
想认真做内容获客、甚至考虑找一家geo优化公司搭体系的团队,第一步就该问清楚:我的正文,到底在不在初始 HTML 里?这一句话,能筛掉一大半看起来先进、实际没法被引用的方案。
结尾小动作
今天不用大改。挑一篇你最想被引的页面,用 curl 和它"查看源代码"对一下:正文在不在?不在,就把它排进本周改服务端渲染的清单。内容写得好只是前提,让取内容的人"看得见"、让页面真正可被引用,才是闭环。