AngularJS和SEO - 单页应用程序中的404错误

Sam*_*eri 5 seo html5 express angularjs single-page-application

我正在使用Express和AngularJS构建一个网站,但我对这项技术还不熟悉,而且我来自旧的普通PHP/HTML/JS.我理解这种新方法的基础知识,但我对SEO的最佳实践感到好奇.

假设我有一个像这样构建的网站:

  • REST ish API与之交互,负责身份验证,会话和提供正确的数据
  • 首页加载并静态提供的单页应用程序,负责使用AngularJS加载内容

这是一个草案:

- /api (dynamic content returns JSON)
  |
  + /login
  + /logout
  + /register
  + /music/:title
  + /music/:title/upvote
  + /user/:name
  + /user/:name/subscribe
  + /tag/:name
  + /search/:query
  + ...
- / (everything is static here)
  |
  + index.html
  + /templates
    |
    + music.html
    + user.html
    + search.html
  + ...
Run Code Online (Sandbox Code Playgroud)

现在,每当用户访问页面时,index.html返回该页面然后继续使用Angular"组合"自己.

因此,如果找不到资源(404 NOT FOUND由API使用JSON),或者.otherwise将调用AngularJS 但是爬虫如何理解它是404(死链接)并在第一页返回时删除链接打开URL是索引,状态代码是200?

手动解决方案可能是在首次需要索引时解析URL,调用API以查看资源是否有效并在必要时抛出错误,但在这种情况下,如果请求的资源有效则会有一个双重打电话给API,这不好.

处理此问题和其他类似SEO相关的最佳实践最先进的是什么?

我已经阅读了大量有关它的文章,但它们都被弃用或基于预渲染(我想避免).

非常感谢你给我的任何帮助和建议.