【问题标题】:Will Googlebot correctly handle <link rel="canonical" ref="{{url}}>" for angularjs pageGooglebot 是否会正确处理 angularjs 页面的 <link rel="canonical" ref="{{url}}>"
【发布时间】:2015-05-02 01:48:26
【问题描述】:

在 angularjs 页面中使用&lt;link rel="canonical" ref="{{canonical_url}}" /&gt; 是否安全,或者是否有更好的处理方式?

Google 现在可以自动抓取和呈现 javascript,这对于 angularjs 网站来说非常有用。但是,我担心 Googlebot 在决定规范页面时可能不会等待呈现,而且我不想让 Googlebot 认为所有页面都是“url”来搞砸我们的网站。

使用 Google 的网站管理员工具,我可以看到 Google 的爬虫可以很好地呈现页面,但我不确定如何判断它是如何处理规范标签的。其他读取意味着如果 Googlebot 看到它已处理的另一个页面的规范标签,它会停止读取/呈现页面。

【问题讨论】:

  • 我不太确定 Googlebot 是否会执行 JavaScript 代码。根据我的经验,网站管理员工具会显示渲染页面,并执行 JS,但实际上,Googlebot 并不实际执行 JavaScript,而是索引所有角度表达式。对 Google 感到羞耻。
  • @JB Nizet:我可以看到在 Google sn-ps 中编入索引的内容,如果它不执行 javascript,这些内容是不可能的,所以至少其中一些对我来说是有效的。

标签: angularjs web-crawler canonical-link


【解决方案1】:

正如@JB Nizet 所提到的,正如我所见证的那样,Google 截至 2015 年 9 月 25 日执行 JS,在网站管理员中正确呈现它,但更像是“用于演示”。谷歌仍然没有可靠地执行大规模生产链接(有时根本没有,有时很好)。

所以我们仍然必须使用 prerender.io(这非常好)。但注意:使用带有 phantomjs2 的那个,phantomjs1 不擅长解析/读取 Angular 应用程序。

重要的事情:它们确实支持 httpCode,以及您所有的双花括号。

祝你好运!

资料来源:我为我们的 Angular 平台设置 SEO 的痛苦日子

【讨论】:

    【解决方案2】:

    Google 将在没有任何静态 html 快照的情况下呈现和索引纯 SPA。

    但是:我有一个项目要切换到 https。通常我不使用 301 重定向,而只是在规范标签中添加 https。在这个网站上,谷歌尚未识别出这种变化。

    在另一个项目上的同一时间,使用相同代码但包含 html 快照的相同转换到 https: google 已识别出对 https 的更改,并且正确的版本在搜索结果中。

    我编写了我自己的指令来获得带有规范标签的漂亮 seo 标头。最好使用您的页面头标记作为指令调用。 https://github.com/w11k/w11k-angular-seo-header

    如果您想预渲染您的网站,请不要使用像预渲染这样的白痴服务,而只需在构建过程中添加一个任务。使用 Grunt/Gulp 进行设置大约需要 15 分钟......一次!

    【讨论】:

    • 如果我的网站有数十万个页面,这些页面是动态生成的。 (用户个人资料页面,他们添加的帖子等。)我们如何仍然避免像 prerender 这样的“愚蠢”服务,或者设置我们自己的 phantomjs 服务器。
    猜你喜欢
    • 2019-11-09
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    • 2017-02-16
    • 2015-09-18
    相关资源
    最近更新 更多