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

Javascript 如何从SPA返回HTTP 404状态代码?,javascript,angularjs,html,seo,single-page-application,Javascript,Angularjs,Html,Seo,Single Page Application,我看到了一些像这样的问题,但没有一个是专门解决这个问题的 因此,谷歌是和 我的AngularJS(但可以是任何JS东西)网站正在使用URL来确定API路由。然后执行API调用,然后相应地呈现内容 然而,现在谷歌将该网站标记为“被黑客入侵”,因为每个URL都返回HTTP 200状态码(example.com/get-free-viagra)。很好,但是我怎么退404呢?或者至少告诉谷歌这是一个找不到的页面?他们似乎没有提供这些信息,我很担心搜索引擎优化 我想到了一些想法: 不推荐我当前的设置(我

我看到了一些像这样的问题,但没有一个是专门解决这个问题的

因此,谷歌是和

我的AngularJS(但可以是任何JS东西)网站正在使用URL来确定API路由。然后执行API调用,然后相应地呈现内容

然而,现在谷歌将该网站标记为“被黑客入侵”,因为每个URL都返回HTTP 200状态码(example.com/get-free-viagra)。很好,但是我怎么退404呢?或者至少告诉谷歌这是一个找不到的页面?他们似乎没有提供这些信息,我很担心搜索引擎优化

我想到了一些想法:

  • 不推荐我当前的设置(我使用AWS S3来托管静态网站),而是使用expressJS框,使用中间件执行API调用并在需要时返回404。但是,我不喜欢这种方法,因为它会损害性能(每个前端请求两个API调用)
  • 使用
    window.location
    重定向到正确的404页面。然而,我不确定谷歌是否会遵循它,它已经不鼓励改变URL
  • 在未找到的页面上使用
    rel=“nofollow”
    ,但我觉得这还不够
我现在沮丧地倾向于第一种选择

使用window.location重定向到正确的404页面。然而,我不是 当然,如果谷歌将遵循它,它已经不鼓励改变 URL

你的假设不正确。如果你重定向到一个合适的404页面(或410页面),谷歌会很好。谷歌将跟进此事,并对这些信息感到非常高兴。它想知道虚假的网址,以确保这些网址不会被包括在他们的排名中。他们会喜欢的

作为提醒,虽然这不是执行重定向的首选方式,但谷歌接受并跟踪具有刷新标记且延迟设置为0的页面,因为在某些棘手的情况下,根本没有其他方式执行重定向。这是博客页面(由谷歌拥有)的推荐方法


谷歌紧随其后。

鉴于我因在错误的框中添加文本而被否决,我想我应该留下一条评论。。。你在这个问题上有什么进展吗?我们也有同样的问题,不是真的。我最终按照第一个选项所说的做了。您是否注意到使用该方法时性能下降了?非常轻微,因为两个框都位于AWS的同一区域,我正在做一个HEAD请求,而不是GET,我调整了API,以便只戳数据库以获取记录。解决您问题的另一个可能的解决方案是:从服务器重定向或服务客户端404?如果您重定向到另一个URL,Google如何知道您访问的URL是404?您的后端服务器可以在特定的URL(比如/404.html)下运行用404代码而不是前端应用程序响应