【问题标题】:Are pre-rendering or server-side rendering needed for SEO of a React application?React 应用程序的 SEO 是否需要预渲染或服务器端渲染?
【发布时间】:2022-02-10 03:53:17
【问题描述】:

我是一名 Java 开发人员,正在提升自己的技能并学习 React,以便我可以完全使用 React 开发前端应用程序。但是我阅读了几篇文章,其中指出它可能导致与 SEO 相关的问题,但有些文章指出这个问题是历史性的,现在 Google 爬虫足够聪明,可以读取单页应用程序。

是否建议完全使用 React 开发应用程序而不使用其他任何东西?还是我需要实现预渲染或服务器端渲染?

之前我参与过使用 php+vue 开发应用程序的项目,但我不想在我的新应用程序中使用任何其他语言,除了 React。那么有可能吗?

注意:我正计划开发电子商务应用程序,因此 SEO 部分对我来说至关重要。

【问题讨论】:

  • 就我的经验而言,预先呈现内容的页面会对您的 SEO 排名产生合理的影响。我认为搜索引擎假设有些人默认情况下可能会为所有网站禁用 javascript...您使用的是什么后端堆栈?我认为那将是弹簧靴?您是否已经尝试过this
  • 是的@Pieterjan,我正在使用 Spring Boot 作为后端。所以你建议我应该继续进行预渲染?或 GraalVM。根据我的有限知识,我更喜欢预渲染。

标签: seo google-search googlebot


【解决方案1】:

仅当您的应用程序只有静态页面时才能使用预渲染。当您想在应用程序中渲染可变数据(来自数据库)时,您会被绑定到服务器端渲染,这需要服务器上的 NodeJS(这似乎是通过这个 GraalVM 提供的......)。

因此,如果您处于服务器上可以使用 NodeJS 的位置,我肯定会设置服务器端渲染。在 SSR 期间,您可能需要将数据从 Spring Boot 传递到 React。我不知道 Spring Boot 和 React 实际上是如何处理这个问题的。我只有 ASP.NET Core + Angular 的经验。

我很肯定 Spring Boot 和 React 也会有类似的东西,但我无法为您提供帮助。

更新

你(实际上是网络浏览器)无论如何、无论如何、任何时候都在使用客户端渲染。

出于 SEO 目的,您可以启用 1. 服务器端渲染 或 2. 预渲染

服务器端渲染实际上在 NodeJS 中运行您的 javascript 前端,并将结果返回到为它提供服务的后端堆栈(ASP.NET Core / 在您的情况下为 SpringBoot)。为此,您需要在服务器上安装 NodeJS。但是,您可以在 SSR 期间将可变数据(来自数据库)传递到 SPA。

对于预渲染,您需要在您的开发机器上运行npm 命令,该命令会为您的所有页面生成 HTML。这会生成纯 HTML、CSS 和 javascript 文件,您需要将它们上传到非常基本的文件服务器上。因此,您将无法在页面上显示数据库中的信息。

【讨论】:

  • 谢谢@pieterjan,我一定会采纳你的建议的。
  • 如果我在同一个应用程序(即 SSR、CSR 和预渲染)中使用所有这三种方法可以吗?由于我的页面很少是静态的,因此很少有取决于后端 API 响应的页面,以及一些我不需要抓取的页面,因为它们是登录后页面。三个都用会不会太重?
  • 你似乎有点困惑。我已经对 SSR/prerendering 之间的区别进行了说明
猜你喜欢
  • 2021-10-20
  • 2016-08-16
  • 2020-04-10
  • 2019-08-07
  • 2015-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-29
相关资源
最近更新 更多