node.js - Angular 4 和 SEO

标签 node.js angular express seo

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

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

最佳答案

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

要查看 google 看到的内容:

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

这将是谷歌的初始 View 。之后谷歌将获取外部文件,运行您的 javascript 并呈现页面。 Google 页面速度会在获取外部 Assets 之前和之后对折叠上方的任何更改像素进行惩罚。

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

希望对您有所帮助。

关于node.js - Angular 4 和 SEO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44401725/

相关文章:

node.js - 如何使用 Outlook 日历 api 2.0 检索重复序列中的事件?

angular - *ng用于在添加新输入元素时重置所有表单值

node.js - 如何将连接中间件与 Node.js Express 4 一起使用?

javascript - 使用带有 Promise 的 Express.js 端点

javascript - 如何使用 Node 将javascript数组变量添加到mongodb中

node.js - 如何使用 Node ssh2 启动用户交互式 ssh session ?

android - 如果无法处理404,我应该处理吗

Angular 2 @Input 经常被调用

angular2-jwt tokenNotExpired 无法正常工作

node.js - 在 Node 和 Passport 中反序列化用户时没有返回任何内容