angularJS web应用SEO

javascript给网站带来丰富的用户体验,越来越多的网站开始应用angularjs/emberjs这类MVC来开发web应用,可以说能够使用native方式来看法的手机app基本都可以使用替代的js框架来开发,这给web开发及web用户带来了前所未有的便利。但是不幸的是,到目前为止,主流的搜索引擎对于javascript的动态内容几乎无法读取,因此你的网站本身内容再丰富,对用户再友好,在google,baidu那里也是一无所知。这,相信对于网站的owner来讲都是一个巨大的问题,谁也不希望自己的网站在搜索引擎那里得不到检索。如何解决这个问题呢?

有一个简单的思路是:googlebot会抓取网页的<noscript>google要看的内容</noscript>,这样我们通过phanmjs这样的headless browser动态serve googlebot以<noscript>所包含的内容是一个workaround。但是在这里要注意google的相关政策:

cloaking refers to the practice of presenting different content of URLs to users and search engines.Serving up different results based on user-agent may cause your site to be perceived as deceptive and removed from googl index

总的来说,你需要给到google和用户基本相同的内容。比如如果用户js功能关闭,那么它也应该看到和googlebot相同的内容。

一些隐身的具体例子:

给google一个html静态文件,而给用户展示一个image或者flash;

给google和给用户以不同的内容;

当你的网站包含一些无法被google crawlable的内容(比如除了flash,js,image外的富媒体),你不能给google以隐藏的内容。因为你应该考虑到那些真正访问你的网站的用户也是无法看到这些内容的。

google的建议是:对那些关闭image功能的用户提供alt text描述image信息,在noscript tag中提供js的文本替代内容(注意:核心的要求就是你对用户及google一视同仁,内容基本一样~!)

ensure that you provide the same content in both elements(for instance, provide the same text in js in the noscript tag)

如果你的网站持续不断地执行:noscript和js部分内容不一致,google将会采取行动。

当googlebot检索一个包含js的网页时,它会index那个网页,但是它并不会follow或者index任何在js中所隐含的链接。使用js本身是合法的web实践。然而,使用js故意欺骗js是不被允许的。例如,placing in different text in js than in a noscript tag violates our webmaster guidelines because it displays different content for users(who see the jsbased text)than for google(which see the noscript-based text)。

Along those lines, it violates the webmaster guidelines to embed a link in js that redirects the user to a different page with the intent to show the user a different page than the search engine sees. When a redirect link is embedded in js, the search engine indexes the original page rather than following the link, whereas users are taken to the redirect target. Like cloaking, this practice is deceptive because it displays different content to users and to googlebot, and can take a visitor somewhere other than where they intended to go.

Note that placement of links within jasvascript is alone not deceptive. When examining js on your site to ensure your site adheres to google guidelines, consider the intent:

Keep in mind that since search engines generally can't access the contents of JavaScript, legitimate links within JavaScript will likely be inaccessible to them (as well as to visitors without Javascript-enabled browsers). You might instead keep links outside of JavaScript or replicate them in a noscript tag. Doorway pages

Doorway pages are typically large sets of poor-quality pages where each page is optimized for a specific keyword or phrase. In many cases, doorway pages are written to rank for a particular phrase and then funnel users to a single destination.

Whether deployed across many domains or established within one domain, doorway pages tend to frustrate users, and are in violation of our Webmaster Guidelines.

Google's aim is to give our users the most valuable and relevant search results. Therefore, we frown on practices that are designed to manipulate search engines and deceive users by directing them to sites other than the ones they selected, and that provide content solely for the benefit of search engines. Google may take action on doorway sites and other sites making use of these deceptive practice, including removing these sites from the Google index.

If your site has been removed from our search results, review our Webmaster Guidelines for more information. Once you've made your changes and are confident that your site no longer violates our guidelines, submit your site for reconsideration.

  • 最好不要使用display: none来隐藏一个h1标签,你可以使用text-indent: -9999px这种模式来隐藏,否则可能会受到处罚;
  • 另外一种方法是默认都是显示的,document.ready()起来后,js直接把需要默认不显示的内容给设置对应css类,这个可能是解决SEO的最佳方案了。

 

posted @ 2015-09-12 10:29  世有因果知因求果  阅读(469)  评论(0编辑  收藏  举报