SPA 如何进行 SEO

搜索引擎只抓取example.com,不会理会井号,因此也就无法索引内容

#hashbang

Google HashBang 方案 hash-bang (!#)
http://googlewebmastercentral.blogspot.com.au/2009/10/proposal-for-making-ajax-crawlable.html

http://example.com#!1

当Google发现上面这样的URL,就自动抓取另一个网址:

http://example.com/?_escaped_fragment_=1

优点:
缺点:只有 Google 支持,国内,呵呵。
方案:在 Nginx 层,做区分,判断爬虫,重定向到另一个页面(工作量不复杂,但很烦)。

#HTML5 History API

pushState

http://html5doctor.com/history-api/

浏览器支持:

浏览器都支持这个方法:Chrome(26.0+),Firefox(20.0+),IE(10.0+),Safari(5.1+),Opera(12.1+)

AngularJS for $location
https://docs.angularjs.org/guide/$location

#3th Service

https://prerender.io/

Session history management
http://caniuse.com/#search=history

AngularJs学习笔记–Using $location
http://www.cnblogs.com/lcllao/archive/2012/09/30/2709187.html

Angularjs $location html5mode浅析
https://www.zybuluo.com/bornkiller/note/47869

阮一峰:如何让搜索引擎抓取AJAX内容?
http://www.ruanyifeng.com/blog/2013/07/how_to_make_search_engines_find_ajax_content.html

【大拿分享】单页应用(Single Page Application)的搜索引擎优化
http://zhanzhang.baidu.com/college/articleinfo?id=294

prerender-SPA程序的SEO优化策略
http://www.cnblogs.com/whitewolf/p/3464555.html

单页应用SEO浅谈
http://isux.tencent.com/seo-for-single-page-applications.html

从QQ密码修改的小问题回顾下URL Fragment
http://www.cnblogs.com/chyingp/archive/2013/03/31/url-fragment.html

Angular 的 SEO 问题
https://ruby-china.org/topics/15417

http://segmentfault.com/q/1010000000643040