0

我有我的 Angular 4+ webapp,它在不同的路线上有不同的标题。所有组件都通过 Angular 代码加载,因此,一切都是 javascript,除了根组件之外没有太多 HTML。因此,谷歌无法抓取任何链接。搜索引擎优化受到了打击。我想知道如果我添加页眉和页脚 HTML 代码并将其默认标记为隐藏,谷歌和其他社交网站是否能够抓取我的页面。

我知道我们可以使用 Angular Universal 并使用服务器端渲染,但是对于临时修复,上述解决方案是否可行?此外,除了从服务器到客户端的额外字节传输之外,它还有什么缺点吗?

这个问题不是重复的,因为它指的是 angular 2+ 版本。大多数答案都是 angularjs。

4

2 回答 2

1

谷歌能够抓取有角度的网站。如果您的意思是给定一个页面,它不会抓取其他链接的页面,那可能是因为您指向其他页面的链接不是正确的锚点(<a ...>)。您可以提供站点地图以确保 Google 可以看到您的所有页面。

然后,在每个页面上,您需要确保设置正确的标题和元数据

您可以使用 Angular 的 meta 和TitleService( https://angular.io/guide/set-document-title ) 在您登陆页面时设置标题

 this.titleService.setTitle( "Page-specific title" )

和 Angular 的Meta服务(https://angular.io/api/platform-b​​rowser /Meta )

this.meta.updateTag({ name: 'description', content: 'My page-specific description' });

但他们最好的解决方案仍然是角度通用的

于 2018-03-14T08:19:05.650 回答
0

两件事情。首先,不管你没有 HTML,谷歌机器人无论如何都能够解析你的网站(他们的问题是其他机器人可能没有)。

如果您正确使用 Angular 而没有以奇怪的方式(奇怪 = jQuery 或类似方式)操作 DOM,那么您不使用setInterval或者setTimeout您只使用了 Angular 方法,您应该会发现将您的应用程序作为 Angular Universal 运行时有任何问题。

在使用任何 hack 之前先尝试 Angular Universal,因为在 Angular 中实现 SSR 功能很容易(https://angular.io/guide/universal

祝你好运!

于 2018-03-14T07:30:00.557 回答