如果页面建设重点考虑 SEO 友好性、代码简洁度和页面性能,渲染方式不能只看某一个指标。SSR、SSG、CSR、ISR 和混合渲染各有优劣,适合的场景也不同。

简单来说:内容型页面更适合 SSR/SSG,交互型应用可以使用 CSR,既要 SEO 又要交互体验的页面适合混合渲染或渐进增强。 选型时要结合页面类型、更新频率、交互复杂度、团队维护成本和性能目标来判断。

一、常见页面渲染方式

渲染方式 主要特点 SEO 友好性 性能特点 适合场景
CSR 客户端渲染 浏览器加载 JS 后生成内容 较弱 首屏可能慢 后台系统、强交互应用
SSR 服务端渲染 服务端返回完整 HTML 较好 首屏快,但服务端压力高 内容页、详情页、动态页面
SSG 静态生成 构建时生成 HTML 很好 访问速度快 博客、文档、营销页
ISR 增量静态生成 静态页按需更新 很好 兼顾速度和更新 内容量大且持续更新的网站
混合渲染 首屏 HTML + 客户端交互 较好 兼顾首屏和交互 既要 SEO 又要复杂交互的页面

没有一种渲染方式适合所有页面。真正合理的做法,是按页面类型组合使用。

二、从 SEO 角度怎么选

SEO 最关心的是搜索引擎能否快速看到主要内容、标题、链接和结构化信息。

对于需要搜索收录的页面,建议优先保证:

  1. 首屏主要内容在 HTML 中可见。
  2. title、description、canonical 等基础标签完整。
  3. 内链可以被搜索引擎抓取。
  4. 页面状态码正确。
  5. 移动端可访问。
  6. 不依赖复杂 JS 才能看到核心正文。

因此,文章页、产品页、分类页、专题页、文档页通常更适合 SSR、SSG 或 ISR。纯 CSR 如果处理不好,容易出现搜索引擎抓取内容不完整、首屏空白、内链不可见等问题。

三、从性能角度怎么选

页面性能不仅看首屏速度,还要看交互延迟、资源体积和运行成本。

1. SSG 性能通常最好

SSG 页面可以直接从 CDN 返回静态 HTML,速度快、稳定性好、服务器压力低。适合内容稳定的页面。

2. SSR 首屏友好但有服务端成本

SSR 可以让用户和搜索引擎更快看到完整内容,但每次请求都需要服务端渲染,访问量大时要考虑缓存、降级和服务端压力。

3. CSR 适合强交互但首屏要控制

CSR 适合后台系统、配置页面、复杂工具类应用,但如果用于内容页,需要控制 JS 体积并做好骨架屏、预渲染或动态渲染方案。

4. 混合渲染适合综合场景

首屏内容用 SSR/SSG 输出,交互部分由客户端接管,是很多现代网站常用的方案。

四、从代码简洁度和维护成本看

代码简洁不只是文件少,还包括架构清晰、职责明确、构建流程可控、排查问题方便。

一般来说:

  1. 简单内容站用 SSG 更清晰。
  2. 高频更新内容用 SSR 或 ISR 更合适。
  3. 强交互应用用 CSR 维护更直接。
  4. 内容和交互混合页面可采用 SSR/SSG + 局部 hydration。

如果为了追求“全能”而把所有页面都做成复杂混合架构,反而会增加维护成本。

五、推荐选型策略

1. 文章、资讯、博客、文档页

优先选择 SSG 或 ISR。如果内容更新频繁,可以使用 ISR 或定时重新生成。

优势:

  1. SEO 友好。
  2. 首屏速度快。
  3. CDN 缓存效果好。
  4. 运维压力低。

2. 商品页、服务页、落地页

可以选择 SSR、SSG 或 ISR。若价格、库存、活动状态频繁变化,可以使用 SSR 或静态页加动态接口。

3. 后台管理系统和工具应用

可以选择 CSR。此类页面通常不需要搜索引擎收录,更关注交互效率、权限控制和开发效率。

4. 复杂营销页或产品官网

适合混合渲染。核心内容和 SEO 信息由服务端或静态 HTML 输出,动画、表单、筛选、登录状态等由客户端处理。

六、实践建议

如果你同时关注 SEO、代码简洁和性能,可以按以下原则设计:

  1. 可收录内容优先在 HTML 中输出。
  2. 不让核心正文依赖客户端 JS 才出现。
  3. 静态内容优先 SSG/CDN。
  4. 高频动态内容使用 SSR 或 ISR。
  5. 强交互模块局部 hydration。
  6. 控制前端 JS 包体积。
  7. 图片、字体和第三方脚本延迟加载。
  8. 配置 canonical、结构化数据和站点地图。
  9. 用 Lighthouse 和真实用户数据持续验证性能。

七、常见误区

1. 认为 CSR 一定不能做 SEO

CSR 不是绝对不能做 SEO,但需要额外处理预渲染、动态渲染、服务端输出或搜索引擎可抓取性。否则风险更高。

2. 认为 SSR 一定性能最好

SSR 首屏内容友好,但服务端渲染也有成本。如果没有缓存和性能优化,高并发下可能变慢。

3. 所有页面都使用同一种渲染方式

不同页面目标不同。内容页、列表页、后台页、工具页不必强行使用同一方案。

4. 只看技术先进,不看业务需求

渲染方式应该服务业务。SEO 页面优先可索引和性能,应用页面优先交互和状态管理。

总结

重点考虑 SEO 友好性、代码简洁度和页面性能时,推荐按页面类型选择渲染方式:内容页优先 SSG/ISR,动态详情页可用 SSR,强交互应用适合 CSR,复杂页面适合混合渲染。

最稳妥的原则是:让搜索引擎和用户尽快看到核心内容,把复杂交互留给客户端,把静态资源交给 CDN,把动态更新控制在必要范围内。这样既能保证 SEO,也能兼顾性能和维护成本。