为什么 Google 在索引和缓存 Angular 构建的页面方面存在问题?[已结束]

Why Google has issues with indexing and caching of Angular-built pages? [closed]

提问人:Evgeniy 提问时间:11/10/2023 更新时间:11/10/2023 访问量:48

问:


这个问题似乎不是关于特定的编程问题、软件算法或程序员主要使用的软件工具。如果您认为该问题在另一个 Stack Exchange 站点上是主题,您可以发表评论以解释该问题可能在哪里得到回答。

14天前关闭。

如果我理解正确的话,通常的 HTML 页面和 Angular SPA 之间的区别如下:

  • HTML 页面:在用户从浏览器向服务器发出请求后,服务器会提供一个包含内容的 HTML 页面,
  • Angular SPA:在用户从浏览器向服务器发出请求后,服务器会提供一个具有空 HTML 结构的页面。然后 AJAX 请求启动,服务器提供带有页面内容的 JSON。

Google 在 SPA 索引方面存在什么问题?问题是 JSON 到达的时间比 Googlebot 可以等待的时间晚(~5 秒)吗?

有人可以解释一下这个问题吗?

Angular 缓存 索引 SEO GoogleBot

评论

2赞 Stephen Ostermiller 11/10/2023
我投票决定关闭这个问题,因为它不是一个编程问题,而且它在 Stack Overflow 上是题外话。有关您网站的非编程问题应在网站站长上询问。在这种情况下,问题已经在那里提出并回答了:搜索引擎在抓取时是否执行 JS 渲染?

答:

1赞 Chris Barr 11/10/2023 #1

一般来说,搜索引擎蜘蛛很简单。他们解析页面上的 HTML。如果他们来到 SPA(他们不知道这是 SPA)并且它的内容是空的......他们没有什么可以蜘蛛的。这是一个巨大的过度简化,今天也可能不是 100% 正确。

转到任何 Angular 应用程序并查看源代码(不是实时的 devtools),您会看到(通常)搜索引擎蜘蛛可能会看到的内容。

但是,Angular 对此有一个解决方案!Angular Universal/SSR(服务器端渲染)

https://angular.io/guide/ssr

对于没有外部数据的简单应用程序,您可以预渲染所有路由,以便它们以静态 HTML 页面的形式存在,然后 Angular 将在应用程序水合时将其用作起始状态。

对于更复杂的应用程序,您可以通过 Express 服务器在服务器端渲染 Angular 页面以用于 SEO(和其他)目的。

我有两个简单的 Angular 站点,它们不需要外部数据,并使用 SSR 预渲染所有路由以用于 SEO 目的。https://lyricconverter.net - 去那里查看源代码,你会看到一切都从一开始就在那里(尽管它被压缩了文件大小/速度)