😋 我让爬虫终于看到了我的网站,后端同事说"这也行?"(上):SEO 与渲染模式

写在前面:今天学了一个让我"惊掉下巴"的知识------Next.js 。以前我们做前端,SPA 单页应用体验虽好,但在搜索引擎眼里就是个"透明人"------爬虫顺着 URL 爬进来,看到的只有一个空的 #root 节点,扭头就走。老师说,Next.js 把 React 组件搬到了服务器端渲染(SSR),SEO 好得离谱,很多 AI 产品的官网都在用它!这期内容比较多,我拆成上下两篇:上篇 先把"为什么"讲透------SEO、CSR/SSR、GEO;下篇再来"怎么做"------App Router、服务端/客户端组件、Todos 全栈 demo。准备好了吗?开讲!


一、SEO:前端网站的"生死线"

1.1 SPA 的好处:体验天花板

老师说:

"体验很好,组件时在前端挂载(useEffect去异步请求数据),不需要刷新页面。前端路由的支持,让页面切换效果快、好。"

SPA(单页应用)的优点,放在用户端看确实是天花板:

优势 说明
体验好 组件在前端挂载,用 useEffect 异步请求数据,不刷新页面
切换快 前端路由支持,页面切换效果又快又好
像原生 App SPA 抄的原生 APP 体验,做得和 APP 一模一样

1.2 SPA 的短板:爬虫眼里的"透明人"

但是!老师说了一句扎心的大实话:

"根本就不是为了SEO,不是用浏览器搜索引擎(baidu,google)推荐打开" "SEO 非常差,没有SEO #root 节点"

为什么?因为 SPA 的 HTML 长这样:

html 复制代码
<div id="root"></div>
<script src="main.js"></script>

爬虫顺着 URL 爬进来,#root 是空的,内容全靠 main.js 在浏览器里"现炒"出来。爬虫不点单,它只看橱窗------橱窗是空的,它就走人了。

1.3 移动端时代:20% 原生,80% SPA

那为什么前端还这么爱用 SPA?因为移动端时代的逻辑变了:

老师说:

"移动端时代(超级App ,20% 原生, 80% 都是SPA)" "App 里80%页面使用spa 做的,原生的要写两套,WebView 组件,用于显示网页,前端来做" "html 只需要写一次,不需要写两套。"

微信、抖音这种超级 App,20% 是原生页面(要写 Android、iOS 两套),80% 都是 SPA(一个 HTML 通吃)。但 PC 时代不一样:

"pc时代是流量的入口 SEO就是命"

在 PC 时代,流量入口是搜索引擎,SEO 就是命。老牌内容站(掘金、CSDN)的流量基本都是 SEO 带来的。所以主流的 SPA 开发之外,就需要 Next.js 这种全栈 SEO 友好的框架。


二、SEO 的基本做法:三层

那 SEO 到底怎么做?老师说就三层:

"第一层 你是谁? title 做什么的? description 有什么价值提供 keywords" "第二层 做内容 用户来的原因" "第三层 ssr 服务器端渲染"

第一层,把门脸装修好:

html 复制代码
<title>我的网站</title>
<meta name="description" content="这是一个描述" />
<meta name="keywords" content="这是一个关键词" />

第二层,做内容------用户凭什么来?得有真东西。

第三层,SSR 服务端渲染------这才是根治:

"/post/:id 一个页面 千万篇 ssr 整站被seo 收录的内容给你的加权"

内容型网站一篇篇文章被收录,SEO 加权越来越多,这就是老牌内容站(掘金、CSDN)活下来的底层逻辑。


三、CSR 和 SSR:组件到底在哪里渲染

3.1 CSR:客户端渲染

SPA 的模式是 CSR(Client Side Rendering,客户端渲染):

环节 谁在干活
Server 前端项目所在的服务器,只返回 index.html
Client 用户浏览器,运行 main.jsApp.jsxTodos.jsx 渲染页面

爬虫通过 URL 爬取的时候,看到的只有 #root + script,内容在客户端才生成------SEO 自然为零。

3.2 SSR:服务端渲染

Next.js 的杀手锏是 SSR(Server Side Rendering,服务端渲染):

"jsx + todos(数据) = 服务端UI html"

React 组件其实可以在后端运行------只要组件不做事件监听、不用 useEffect,它就是一个函数 + 模板,可以在 Node 环境里编译成 HTML 字符串。服务器返回的就是带内容的完整 HTML,爬虫直接能读。

3.3 前后端分离 vs 全栈

以前做 Java 全栈,前后端是分离的:server, 3000 端口,/todos 是后端路由,controller 处理请求,去 mysql 查数据,返回 JSON 数组。前端拿到 JSON 自己渲染。

而全栈项目不一样:/todos 这个 URL 返回的直接就是 React 组件编译过后的 HTML 。CSR 和 SSR 的根本区别就是------组件到底在哪里渲染

CSR SSR
渲染地点 客户端(浏览器) 服务端(Node)
爬虫看到 #root 完整 HTML
代表 纯 SPA Next.js

四、GEO:生成式引擎优化

SEO 还没玩明白,新词又来了:GEO(Generative Engine Optimization,生成式引擎优化)

老师说:

"用户入口:豆包" "生成的时候,带上我们的内容,购买链接"

现在的用户入口变了,很多人不搜百度,直接问豆包这种 AI。AI 生成回答的时候,会把相关的内容和购买链接带上。而且:

"AI超厉害,OPC 产品多如牛毛,AI Agent 产品站点,SEO去推广"

AI 产品多如牛毛,官网还得靠 SEO 推广。所以不仅搜索引擎爬虫要伺候,AI 生成引擎也得讨好。


写在最后(上篇)

今天把"为什么"讲透了:SPA 体验虽好但 SEO 是短板;SEO 三层做法里最狠的是 SSR------把 React 组件搬到服务器渲染,爬虫就能读到完整内容;现在还得伺候 GEO,连豆包这种 AI 入口都要能搜到你。

下一篇(下篇)我们来看"怎么做"create-next-app 一条命令创建全栈项目、App Router 约定大于一切、layout.tsx / page.tsx / route.ts 怎么组织,还会手把手跑通一个 Todos 全栈 demo。

下次面试官问你:"SPA 有什么短板?CSR 和 SSR 有什么区别?"

你可以淡定地说:

"SPA 是客户端渲染(CSR),组件在前端挂载,用 useEffect 异步请求数据,体验好、切换快,但 HTML 里只有一个空的 #root 节点,爬虫抓不到内容,SEO 很差。SSR 是服务端渲染,React 组件在服务器上编译成 HTML 再返回,只要组件不做事件监听、不用 useEffect,它就能在 Node 环境里渲染成字符串,爬虫能直接读到完整内容。PC 时代流量入口是搜索引擎,SEO 就是命,所以主流的 SPA 之外还需要 Next.js 这种全栈 SEO 友好的框架。现在还有 GEO------生成式引擎优化,连豆包这种 AI 入口都要能搜到你的内容。"

然后看着面试官满意的表情,心里默念:这波,又稳了。


本文所有代码示例均来自课堂学习资料,真实可运行。

相关推荐
feixing_fx1 小时前
告别枯燥字体:Web 字体加载策略与 font-display 最佳实践
前端·css·前端框架·交互·css3
Liora_Yvonne2 小时前
不懂后端,只会 TypeScript,想独立做完整项目?这套全栈底座就是给前端准备的
前端·后端·全栈
前端Hardy2 小时前
GitHub 爆火!236K+ Star!一套 Skills 让 AI 按工程师方式写代码
前端·后端
烬羽2 小时前
AI Coding 全流程实战:从需求到上线,我用 AI 开发了一个 NPM 包
前端·react.js·ai编程
前进的程序员2 小时前
Codex破局:前端组件秒级生成|提速React/Vue开发,可复用提示词+实战调试经验
前端·vue.js·react.js·codex
前端snow2 小时前
ai agent ---output汇总
前端
4311媒体网2 小时前
帝国CMS网站自定义搭建技巧
服务器·开发语言·前端
JunjunZ2 小时前
Vue 3 文件预览的通用设计与实现
前端·vue.js
CappuccinoRose2 小时前
ES6+ 核心语法糖
前端·es6·解构·可选链·空值合并