angularjs的seo

用angularjs写一个SAP,最头疼就是seo, 即搜索引擎无法索引angularjs的网站,如果你的网站不能被搜到,那看起来就像你的网站从来没有存在过一样。

当google索引你的网站

google爬取angularjs网站的时候,因为angularjs没执行, html中angularjs的markup没有被替换为响应的数据, 所以当google索引你网站的页面的时候,它看到的是这样

1
<h1> -  - </h1>

或者可能是这样

1
<h1></h1>


而你希望被爬到的是这样

<h1>Awesome App -User Profile - Fred James</h1>

目前基本上有两种方案来解决这个问题

  1. 需要在server-side写一些代码,判断当googlebot访问你的网站的时候返回一个你网站的javascript-free version,也就是静态html页. 但这样做的麻烦显而易见,就是需要做额外的判断,破坏了服务端的代码的结构,对静态页的维护也增加了运营成本
  2. 现在网上关于angularjs使用的比较多的方案就是利用PhantomJS, 接下来就详细说下这个方案

这个方法不适用于百度,因为根据百度给站长的建议中的表述,百度爬虫无法爬取javascript中内容

google对于基于javascript的SPA网站有一个解决方案,这里简单概括下要点:

aa

See the Pen jqJGk by yaoyi (@yaoyi) on CodePen

JS Bin

Written with StackEdit.