Angular 4和SEO

tet*_*ato 7 seo node.js express angular

我有一个由Express提供的简单的Angular 4项目.当我尝试使用Googlebot抓取我的网站时,它只显示了一个空白页面(AppRoot的innerHTML).我以为谷歌声称它的机器人支持Angular 4/JS网站?

如果这仍然是问题,使用Angular Universal的服务器端渲染真的是最好的解决方案吗?就像我必须设置另一台服务器端服务器,除了服务于普通客户端呈现应用程序的主服务器之外,还提供服务器端渲染应用程序?如果是的话,我如何告诉googlebot转到服务器端呈现的应用程序的端口和普通的http流量转到客户端呈现的应用程序的端口?抓取器不是http流量吗?

Tom*_*mog 0

该问题不是 Angular4 特有的。任何由 JavaScript 动态生成的数据都会首先显示为空白,然后加载其内容。我假设您正在查看google page speed Insights

要查看谷歌看到的内容:

  1. 注释掉你的外部CSS
  2. 注释掉你的外部js

这将是谷歌的初始视图。之后,谷歌将获取外部文件,运行您的 JavaScript 并渲染页面。Google 页面速度会因获取外部资源之前和之后首屏上方的任何像素变化而受到惩罚。

Angular Universal(或任何服务器端渲染,因为这不是角度问题)将解决该问题。

希望有帮助。