如何使Angularjs应用程序可以爬行

Aja*_*wal 12 angularjs

我正在使用Angular.js构建单页面应用程序,我的问题是如何使应用程序可抓取,因为在客户端使用ng-view处理路由,而服务器只返回简单的头文件.

网站链接:http://india-elections.in/

Har*_*rev 5

我所知道的唯一可行解决方案是AngularJS团队核心文档网站所使用的解决方案.

  • 首先,他们使用URL的HTML5历史记录和使用hashbang的后备.带有hashbang的网址会让Google _escaped_fragment_在查询字符串中对其进行抓取.
  • 然后他们在后端使用AngularJS字符串插值和指令来呈现模板,因为当用户加载页面并且AngularJS解析它时它们将在DOM中.
  • 他们将其传递给Google,因此他们在搜索索引中的内容与用户浏览器中的内容相同(因此这不是隐藏真实内容).

AngularJS Google小组的核心开发人员提到了这一点.[1] [2] [3]

另外,我认为他们正在使用PhantomJS和NodeJS来解析页面.

[1] https://groups.google.com/d/msg/angular/yClOeqR5DGc/4YXGx9z8EpAJ

[2] https://groups.google.com/d/msg/angular/EGwg49uAmMI/j-kj9nytT-IJ

[3] https://groups.google.com/d/msg/angular/EGwg49uAmMI/j-kj9nytT-IJ


Aja*_*wal 5

我使用以上所有点在我的网站中实施了抓取,并在下面链接 https://developers.google.com/webmasters/ajax-crawling/

http://www.yearofmoo.com/2012/11/angularjs-and-seo.html

http://india-elections.in

使用PhantomJs创建静态模板