使用 SPA 且没有服务器端计算时,如何正确处理 404 HTTP 错误?

雅法蛋糕

我目前正在我的一个网站项目中使用Vue.js。

返回此 Vue.js SPA 的服务器将无法进行计算或检查,并且只会提供在浏览器中运行 SPA 所需的静态资源,所有计算都将在浏览器中进行。

出于 SEO 的目的,我想确保正确处理错误页面。目前,每个 URL 都返回一个200 OK并服务于 SPA,这可能会混淆搜索引擎对于实际上应该是无效的页面。如果我无法更改服务器提供的响应,那么告诉用户和搜索引擎该页面无效的正确方法是什么?

对于上下文,SPA 将从另一个域上的 API 获取数据。

我查看了其他类似的问题,但他们通常推荐服务器端检查、专用 404 页面重定向或软 404 页面。服务器端检查和专用 404 页面将是不可能的,而且我已经读到搜索引擎不喜欢软 404 页面

有什么合适的方法可以解决这个问题吗?

我看过这篇文章,但它已经很老了,只建议一个无索引标签,这仍然使页面在搜索引擎眼中有效,只是不可索引。

最大值

您不能在没有任何服务器端计算/渲染的情况下返回 404 错误,因为找不到资源/页面这一事实依赖于某些仅在您的情况下在客户端执行的逻辑。因此,您唯一的选择如下:

  • 如果未找到资源,将用户重定向到预定义的 404 页面(返回正确的 HTTP 状态)

  • 将代理内部无效的路径列入黑名单,或将有效路径列入白名单,并代理到所有其他路径上的 404 页面

  • 使用您的有效页面/路线手动创建站点地图

如果您的项目增长或您有动态路由,这些选项都不是最佳选择,但这些都是客户端渲染的限制。因此,我认为您的问题没有很好的答案,因为这是众所周知的客户端渲染限制,也是关心 SEO 的项目更喜欢服务器端渲染的主要原因之一。

从 SEO 的角度来看:只要您将所有有效页面添加到站点地图,并且不链接(锚标记)到任何其他页面上的无效页面,搜索引擎爬虫将永远不会抓取或索引这些页面。

但是,如果您真的很关心 SEO 并且有一个动态应用程序,其中包含无法手动添加到站点地图的成百上千个动态链接,我建议您切换到像 Nuxt.js 或 Next.js 这样的生产框架,因为它们提供您正在寻找的内容以及许多其他开箱即用的 SEO 功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Nginx服务器处理VueJS SPA中的404错误请求

如何从SPA返回HTTP 404状态代码?

http 处理 404 错误

在Kotlin中使用HTTP客户端时如何正确处理错误?

尝试使用 eclipse juno 服务器运行 struts2 时,出现 HTTP 状态 404 错误

Angular 2 HTTP获取处理404错误

PUT或GET时的Django HTTP 404错误

角度 $http 404 错误

如何在Golang中使用http.FileServer处理GAE上的404错误

颤抖如何处理HTTP服务器端验证错误

我在使用abp.io框架时收到Http错误404

使用HttpModule重写URL时,路径中出现HTTP 404或非法字符错误

使用 `genius` 包获取歌词时出现 `Not Found (HTTP 404)` 错误

使用Angular Material处理服务器端错误

如何在错误的API网址上返回404?(ASP.NET Core + SPA)

CodenameOne-如何使用Terse REST API捕获HTTP 404错误

如何使用 react-query 和 formik 处理服务器端错误?

MVC 6路由,SPA后备+ 404错误页面

使用Codeigniter的Apache服务器上的错误404

Java HTTP 错误 404 - 码头

如何在使用 spring boot 的 REST Web 服务中的 GET 请求期间修复“HTTP-404”错误

如何使用 djangofilterbackend 显示 http 404?

返回的正确HTTP错误代码是404 vs 412?

WCF 休息服务 http 到 https 错误 404

访问 solr admin 时出现 HTTP 错误 404

启动pdfbox时未发现HTTP错误404:

如何使用CodeIgniter解决404错误?

/docs 中所有页面上的简短 HTTP 404 错误

当对Kenneth French Data Library使用pandas导入功能时,Python pandas HTTPError:“ HTTP错误404:未找到”