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的最佳方案了。
angularJS web应用SEO的更多相关文章
- AngularJs + Web API 页面开发(一)
AngularJS这个JS框架是个神马东东我也不太清楚,我也是初学者~~ AngularJS适用于single page App,单页面程序都是局部刷新的,这一点和Ajax有第一的区别,因为使用Aja ...
- 《Node.js+MongoDB+AngularJS Web开发》读书笔记及联想
总体介绍 <Node.js+MongoDB+AngularJS Web开发>,于2015年6月出版,是一本翻译过来的书,原书名为<Node.js,MongoDB and Angula ...
- Angularjs web应用
构建兼容浏览器的Angularjs web应用 背景 随着mvvm逐渐成熟,现在使用jQuery构建web应用已经显得过时了,而且使用jQuery需要编写更多的代码去控制dom的取值.赋值.绑定事件等 ...
- 25个超有用的 AngularJS Web 开发工具
AngularJS是为了克服HTML在构建应用上的不足而设计的.HTML是一门很好的为静态文本展示设计的声明式语言,改善了JavaScript. 下面我要说的就是25个超有用的AngularJS工具, ...
- 构建兼容浏览器的Angularjs web应用
背景 随着mvvm逐渐成熟,现在使用jQuery构建web应用已经显得过时了,而且使用jQuery需要编写更多的代码去控制dom的取值.赋值.绑定事件等,而mvv从底层实现了对以上操作的支持,让程序员 ...
- AngularJS Best Practices: SEO
Google can execute AJAX & JavaScript for indexing, you can read the below link for more detailed ...
- [Angularjs]asp.net mvc+angularjs+web api单页应用
写在前面 最近的工作一直在弄一些h5的单页应用,然后嵌入到app的webview中.之前一直在用angularjs+html+ashx的一套东西.实在是玩腻了.然后就尝试通过asp.net mvc的方 ...
- web的seo
摘要:搜索引擎优化是一种具有很高技术性的活动,也是一种营销功能,必须将它作为营销活动处理.SEO从业者必须理解公司的服务.产品.总体业务战略.竞争形势.品牌.未来网站开发目标和相关的业务构成. SEO ...
- [Angularjs]asp.net mvc+angularjs+web api单页应用之CRUD操作
写在前面 前篇文章整理了angularjs学习目录,有园子里的朋友问我要这方面的demo,周末也没什么事,就在之前的单页应用的demo上面添加了增删改查的操作.代码比较简单,这里只列举比较重要的代码片 ...
随机推荐
- 利用URL Scheme打开APP并传递数据
https://blog.csdn.net/u013517637/article/details/55251421 利用外部链接打开APP并传递一些附带信息是现在很多APP都有的功能,我在这把这部分的 ...
- Ubuntu 16.04安装SecureCRT替代XShell
XShell应该是最强大的,在Ubuntu下只有SecureCRT能实现跨平台(Linux/Windows/Mac),并且可以实现Tab的功能等.当然,还有其它的类似PuTTY这些.Windows下建 ...
- 算法导论学习笔记1---排序算法(平台:gcc 4.6.7)
平台:Ubuntu 12.04/gcc 4.6.7 插入排序 #include<vector> #include <algorithm> #include<iostrea ...
- Robot Framework自动化测试四(分层思想)
谈到Robot Framework 分层的思想,就不得不提“关键字驱动”. 关键字驱动: 通过调用的关键字不同,从而引起测试结果的不同. 在上一节的selenium API 中所介绍的方法其实就是关 ...
- JUnit快速入门
一.一个简单的Junit测试流程: 1.在项目中导入junit-4.7.jar包, 方法:右击项目,选择Build Path->Configure Build Path->Librarie ...
- ambari-server启动出现Caused by: java.lang.RuntimeException:java.lang.ClassNotFoundEception:com.mysql.jdbc.Driver问题解决办法(图文详解)
不多说,直接上干货! 问题详解 启动ambari-server出现 Caused by: java.lang.RuntimeException:java.lang.ClassNotFoundEcept ...
- Git学习系列之集中式版本控制系统vs分布式版本控制系统
不多说,直接上干货! Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢? 先说集中式版本控制系统,版本库是集中存放在中央 ...
- MyBatis逆向工程详细教程
1 导入逆向工程到eclipse中 2 修改配置文件 注意修改以下几点: 修改要生成的数据库表 pojo文件所在包路径 Mapper所在的包路径 配置文件如下: <?xml version=&q ...
- Error opening zip file or JAR manifest missing的解决方法
错误描述: MyEclipse中启动Tomcat(debug)的时候就出现Error starting Tomcat : A configuration error occured during st ...
- Windows下SVN回滚到旧版本(TortoiseSVN)
当发现新提交的代码有问题,然后想将某个旧的版本作为最新的版本时,可以使用回滚, 操作步骤如下: 1. 签出(CheckOut)最新版本的代码到电脑中(不能做任何修改) 2. 执行TortoiseSVN ...