是否所有搜索机器人都使用转义碎片



我已经构建了一个Angular SPA。我的一些head代码如下所示:

<!--title-->
<title ng-bind="$root.title"></title>
<!--web-->
<meta name="application-name" content="{{$root.site.name}}">
<meta name="description" content="{{$root.page.description}}">
<!--facebook-->
<meta property="og:type" content="website">
<meta property="og:title" content="{{$root.page.title}}">
<meta property="og:url" content="{{$root.site.url}}">
<meta property="og:image" content="{{$root.site.url}}/framework/img/brand/facebook.jpg">
<meta property="og:description" content="{{$root.page.description}}">
<!--twitter-->
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="{{$root.page.title}}">
<meta name="twitter:url" content="{{$root.site.url}}">
<meta name="twitter:image" content="{{$root.site.url}}/framework/img/brand/social.jpg">
<meta name="twitter:description" content="{{$root.page.description}}">
<!--routing-->
<base href="/">
<meta name="fragment" content="!">

出于SEO的目的,我已经将我的应用程序设置为识别带有转义片段?_escaped_fragment_=的请求。当这些请求通过时,它会提供页面的预呈现版本。

每个搜索机器人都使用转义的片段吗?例如,如果我在Facebook上发布SPA页面的链接,它会获取该页面的预渲染版本还是未渲染版本?

Facebook希望能访问该页面,查看片段元标签并了解它是一个ajax应用程序,然后用转义的片段重新访问该页面以接收预呈现的内容。

因此,对可爬网Ajax规范的支持似乎参差不齐。有些搜索机器人支持它,有些则不支持。

  • 谷歌:是的
  • 必应:是的
  • Yandex:是的
  • Facebook(开放式图形阅读机器人):仅适用于hashbang URL
  • Twitter卡机器人:否
  • Google+机器人:是
  • 领英机器人:否

(Robert Dunne在评论中总结了以上内容:http://builtvisible.com/javascript-framework-seo/)

可以在这里找到解释这一点的更详细的帖子:

http://blog.ajaxsnapshots.com/2013/11/googles-crawlable-ajax-specification.html

幸运的是,有一些方法可以检测到不支持CAS的搜索机器人,并强制?escaped_fragment_=进入url,将其引导到包含内容的元标签的快照(预呈现)页面!

可以在此处找到实现此目的的各种配置的描述:https://ajaxsnapshots.com/configGuide

最新更新