`
Ryee
  • 浏览: 281727 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

搜索引擎优化入门:前端性能优化

阅读更多
一、为什么要做前端页面的优化?
搜索引擎优化总体来说会涉及两个层面的问题,1、爬虫效率  2、引擎爬虫带回去的索引页面内容。这两个方面相关联的恰恰都与前端页面有关。

首先要明确一点:网站是给人用的,用户体验第一位。前端开发工程师是将产品和后端开发的技术做衔接,做到人机交互的视觉表达(浏览器中)。

在兼容用户体验的前提下…… …… ……
才可进一步提升前端页面对搜索引擎的友好设计,有好设计的目标就是上面提到的两点:1、爬虫效率  2、抓取内容

常见的问题:
1、 爬虫爬行的页面有非常多的链接,实质性内容很少,这一点有些像网址站(当然如果你就是网址站是可以容忍的)
2、 页面中非常多的JS 应用代码
3、 程序员养成了很好的注释习惯,有很多注释写在页面中
4、 每个人的习惯不同,多人写的页面DOM元素数量很多包罗万象
5、 头部请求量很大
6、 页面体积庞大
7、 巨量的图片嵌在页面中又是甚至普通用户访问起来都很慢的响应
8、 为了好看,我们把很多内容都用图片处理了用户看着色彩绚丽引人入胜
9、 我们还用了一两种叫做iframe和Ajax的技术
问题还不止这些,这仅仅是常见的而且还有很多已然广泛存在问题……

解决这些优化问题的目的是什么?
你要对搜索引擎优化就要让引擎的爬虫更好、更快的遍历你的网站,并且让爬虫带走你想要给他的内容,来满足这些内容在搜索引擎结果页面的排名表现。

爬虫的主要动作,1、沿着<a>标签的足迹去遍历网站  2、拿走html代码中的文本内容 来给页面建立查询索引。




到这里你知道我们要做前端优化的意义了,那么怎样解决掉上面提到的常见问题呢?
不要着急,你可以参考这部分了
二、Yahoo团队经验:网站性能优化的34条黄金法则

1.Minimize HTTP Requests 减少HTTP请求

  图片、css、script、flash等等这些都会增加http请求数,减少这些元素的数量就能减少响应时间。把多个JS、CSS在可能的情况下写进一个文件,页面里直接写入图片也是不好的做法,应该写进CSS里,利用CSS sprites将小图拼合后利用background来定位。

2.Use a Content Delivery Network 利用CDN技术

  CDN确实是好东西,不过服务器提供商的这项服务一般是要收费的,我以前买的国内空间是有这个的但是我当时根本不知道啥用,现在没了。。。

3.Add an Expires or a Cache-Control Header 设置头文件过期或者静态缓存

  浏览器会用缓存来减少http请求数来加快页面加载的时间,如果页面头部加一个很长的过期时间,浏览器就会一直缓存页面里的元素。不过这样如果页面里的东西变动的话就要改名字了,否则用户是不会主动刷新,看自己衡量了~这项可以通过修改.htaccess文件来实现。

4.Gzip Components Gzip压缩

  Gzip格式是一种很普遍的压缩技术,几乎所有的浏览器都有解压Gzip格式的能力,而且它可以压缩的比例非常大,一般压缩率为85%。压缩没压缩,可以到这里做下测试。

5.Put Stylesheets at the Top 把CSS放顶部

  让浏览者能尽早的看到网站的完整样式。

6.Put Scripts at the Bottom 把JS放底部

  网站呈现完毕后再进行功能设置,当然这些JS要在你的加载过程中不影响内容表现。

7.Avoid CSS Expressions 避免CSS Expressions

  CSS表达式很可怕,这个只被IE支持的东西执行时候的运算量非常大,你移动一下鼠标它都要进行重计算的,但有时候为了做浏览器的兼容必须要用到这个||| IE6去死去死!~

8.Make JavaScript and CSS External 将JS和CSS外链

  前面讲到了缓存这个事情,一些较为公用的JS和CSS,我们可以使用外链的形式,譬如我就是从Google外链来的Jquery文件,如果我的浏览者在浏览别的使用了这个外链文件的网站时已经下载并缓存了这个文件,那么他在浏览我的网站的时候就不需要再进行下载了!~

9.Reduce DNS Lookups 减少DNS查找

  貌似是要减少网站从外部调用资源,我的Google分析和picasa的外链图片都算在里面了。

10.Minify JavaScript and CSS 减小JS和CSS的体积

  写JS和CSS都是有技巧的,用最少的代码实现同样的功能,减少空白,增强逻辑性,用缩写方式等等,当然也有不少工具也能够帮你实现这一点。

11. Avoid Redirects 避免重定向

  再写入链接时,虽然”www.yueseo.com”和”www.yueseo.com/”仅有一个最后的”/”只差,但是结果是不同的,服务器需要花时间把前者重定向为后者然后进行跳转,这个要自己注意,也可以在Apache里用Alias或者mod_rewrite或者DirectorySlash解决。

12. Remove Duplicate Scripts 删除重复脚本

  重复调用的代码浏览器并不会识别忽略,而是会再次运算一遍,这当然是大大的浪费。

13. Configure ETags 配置ETags

  搞不清楚咋回事,总之我是在. htaccess里把它删除了。

14. Make Ajax Cacheable 缓存Ajax

  Ajax是实时响应的,在浏览器接收到新的数据前,旧的数据被缓存,这样能够更好的提高效率。

15. Flush the Buffer Early 尽早的释放缓冲

  当用户进行页面请求时,服务器端需要花费200到500毫秒时间来拼合HTML,将写在head与body之间,释放缓冲,这样可以将文件头先发送出去,然后再发送文件内容,提高效率。

16. Use GET for AJAX Requests 用GET方式进行AJAX请求

  Get方法和服务器只有一次交互(发送数据),而Post要两次(发送头部再发送数据)。

17. Post-load Components 延迟加载组件

  最先加载必须的组件进行页面初始化,然后再加载其他,YUI Image Loader是很好的例子。

18. Preload components 预加载组件

  提前加载以后可能用到的东西,和延迟加载并不冲突,它的目的是为后续请求提供更快的响应,参见Google首页上的CSS sprites应用。

19. Reduce the Number of DOM Elements 减少DOM元素数量

  复杂的页面结构意味着更长的下载及响应时间,更合理更高效的使用标签来架构页面,是好的前端的必备条件。

20. Split Components Across Domains 跨域分离组件

  页面组件多个来源可以增大你的平行下载量,但注意不要过多,超过2-4个域名会引起上面说到的DNS查找浪费。

21. Minimize the Number of iframes 减少iframe数量

  需要更有效的利用ifames。

  iframe优点:有利于下载缓慢的广告等第三方内容,安全沙箱,并行下载脚本

  iframe缺点:即使为空也会有较大资源消耗,会阻止页面的onload,非语义

22. No 404s 不要出现404页面

  站点本身里(非搜索结果)出现404页面,无意义的404页面会影响用户体验并且会消耗服务器资源。

23. Reduce Cookie Size 减小Cookie

  Cookie在服务器及浏览器之间的通过文件头进行交换,尽可能减小Cookie体积,设置合理的过期时间,能够很好的提高效率。

24. Use Cookie-free Domains for Components 对组件使用无Cookie的域名

  对静态组件的Cookie读取是一种浪费,使用另一个无Cookie的域名来存放你的静态组件式一个好方法,或者也可以在Cookie中只存放带www的域名。

25. Minimize DOM Access 减少DOM的访问次数

  JS访问DOM是很慢的,尽量不要用JS来设置页面布局。

26. Develop Smart Event Handlers 开发灵活的事件处理句柄

  DOM树上过多的元素被加入事件句柄的话,反应效率肯定会低,YUI事件工具有一个onAvailable方法可以帮助你灵活的设置DOM事件句柄
27. Choose < link >over @import 使用< link >而非@import

  在IE中使用@import就和在页面底部用< link >一样,我们前面说要把< link >放顶部的。

28. Avoid Filters 避免过滤器的使用

  如果需要Alpha透明,不要使用AlphaImageLoader,它效率低下而且只对IE6及以下的版本适用,用PNG8图片。如果你非要使用,加上_filter以免影响IE7+用户。

29. Optimize Images 优化图片

  将你的GIF转为PNG8会是个减小体积的好办法,另外有很多方法处理你的JPG及PNG图片以达到优化效果。

30. Optimize CSS Sprites 优化CSS Sprites

  在CSS Sprites中竖直并尽量紧凑的排列图片,尽量将颜色相似的图片排在一起,会减小图片本身的大小及提高页面图片显示速度。

31. Don’t Scale Images in HTML 不要在HTML中缩放图片

  图片要用多大的就用多大的,1000X1000的图片被width=”100″height=”100″以后,本身的KB数是不会减少的。

32. Make favicon. ico Small and Cacheable 缩小favicon. ico的大小并缓存它

  站点的浏览器ICO应该不是经常换吧,那就长时间的缓存它,并且最好控制在1K以下。

33. Keep Components under 25K 保证组件在25K以下

  iPhone不能缓存25K以上的组件,并且这还是要在被压缩前。

34. Pack Components into a Multipart Document 将组件打包进一个多部分的文档中

  就好像在邮件中加入附件一样,一个HTTP请求就够了,但是这一技术需要确保你的代理支持,iPhone就不支持。


其他常见提问:
1、 百度的爬虫每天什么时候来?
2、 爬虫从哪里进来?
3、 网站的性能对爬虫的影响有那么严重吗?


这些问题我们将在下节来讲解“爬虫和URL的关系”

上一节:解读搜索引擎(预处理)
下一节:爬虫和URL的关系
  • 大小: 33.9 KB
分享到:
评论

相关推荐

    开篇:知识体系与小册格局(1).md

    6. 前端性能优化:核心内容聚焦于前端性能优化,包括网络请求、DNS解析、TCP握手等环节的性能提升。 标签所涉及的知识点: 1. 性能优化:涵盖前端性能优化的各个方面,包括但不限于代码优化、资源压缩、缓存策略等...

    Web前端攻城狮培养计划-前端零基础入门

    理解HTML5的新特性,如语义化元素,将有助于提高网页的可访问性和搜索引擎优化。 2. **CSS(层叠样式表)**:CSS用于控制网页的外观和布局。学习选择器的使用,如何设置颜色、字体、布局,以及CSS3的新特性,如媒体...

    e-Search.Net搜索引擎试用版

    综上所述,e-Search.Net搜索引擎试用版是一个重要的技术试水工具,它让开发者有机会在实际环境中体验并优化一个基于ASP.NET的搜索引擎,以便在未来项目中做出明智的选择。试用版提供的文件不仅包括技术文档和代码...

    自己动手写搜索引擎

    这一节通过一个快速入门的项目让读者能够在短时间内构建出一个简单的搜索引擎原型。项目分为三个阶段: 1. **准备工作环境**:选择合适的开发环境和工具。 2. **编写代码**:实现基本的网络爬取、索引建立及查询...

    使用WPRESTAPI和Vuejs构建的Wordpress入门主题针对SEO性能和易开发性进行了优化

    在本项目中,我们利用了WordPress的WP REST API与前端框架Vue.js,构建了一个高度优化的入门主题,旨在提升SEO(搜索引擎优化)性能、增强页面加载速度以及简化开发流程。以下将详细介绍这些关键知识点。 首先,**...

    自己动手写搜索引擎光盘源码 第一章

    最后,性能优化也是搜索引擎开发中的重要环节。这可能涉及到多线程爬取、内存管理和数据库优化等技术,以确保系统在处理大规模数据时仍然能保持高效运行。 综上所述,这份源码提供了学习搜索引擎从抓取到检索全过程...

    2020前端入门开发规范手册.pdf

    - 使用语义化的HTML标签可以增强页面的可读性和可访问性,同时也便于搜索引擎优化(SEO)。常见的语义化标签包括`&lt;article&gt;`、`&lt;section&gt;`、`&lt;header&gt;`、`&lt;footer&gt;`等。 3. **HEAD部分** - 在`&lt;head&gt;`标签中,...

    搜索引擎原理,技术与系统

    《搜索引擎:原理、技术与系统》一书全面覆盖了搜索引擎的关键技术和实现方法,既适合初学者入门学习,也适用于高级研究人员深入探索。通过本书的学习,读者不仅能掌握搜索引擎的基本原理,还能了解如何设计和实现一...

    我的职业是前端工程师.pdf

    这包括了解服务端渲染、前端性能优化、前后端分离的设计原则等高级话题。 #### 二、前端技术选型 - **选择合适的前端语言**: - **JavaScript**:作为前端的核心语言,其版本不断更新,ES6+引入了许多新特性,...

    前端技术ajax入门

    - **搜索引擎优化挑战**:由于AJAX依赖于JavaScript,搜索引擎可能会难以抓取动态生成的内容。 - **调试困难**:调试AJAX应用程序可能比传统网页更复杂。 - **安全性问题**:增加了跨站脚本攻击等安全风险。 #### ...

    深入探讨ASP.NET MVC架构及其SEO优化

    内容概要:本文详细介绍了ASP.NET MVC架构的各种核心特性和实现技巧,涵盖MVC的基础入门知识、如何在ASP.NET MVC中有效管理JavaScript测试、错误处理、路由机制提升站点的搜索引擎优化(SEO),以及如何应对多重内容的...

    fronty:面向前端Web开发人员的新型工作搜索引擎的原型

    它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署! 有关更多信息,请参见关于的部分。 npm run eject 注意:这是单向操作。 ...

    前端开发入门教程.docx

    遵循Web标准有诸多好处,包括提高可访问性、优化搜索引擎优化(SEO)、降低流量成本、便于维护以及提升页面加载速度。Web标准分为三个核心方面:结构、表现和行为。结构负责网页的内容逻辑,相当于网页的骨架;表现...

    编写高质量代码(WEB 前端)

    - **学习性能优化和SEO基础知识**:提高网站的加载速度,优化搜索引擎排名。 - **使用辅助工具**:利用各种工具提高开发效率。 - **掌握理论知识**:如代码的可维护性、组件的易用性、浏览器分级支持等。 #### 五、...

    个人搜索引擎开发的三种高亮显示的方法小结

    在个人搜索引擎的开发过程中,高亮显示是一种提升用户体验的关键技术,它能帮助用户快速定位到搜索结果中的关键词,使得信息的查找更为直观高效。本文将详细介绍三种常用的高亮显示方法,这些方法基于Lucene框架,...

    Mycat从入门到精通之MycatEye.pptx

    - **MySQL 优化**:自动调整 MySQL 的关键参数以提高性能。 - **Schema 优化**:通过分离逻辑表和优化读写分离策略来提升效率。 - **SQL 优化**:对高频 SQL 进行优化处理,改善低效 SQL 的执行,并推荐索引优化方案...

    JavaScript从入门到精通的源代码

    - SEO优化:让JavaScript驱动的网站对搜索引擎友好。 10. **错误处理与调试** - 错误对象与try...catch:捕获和处理运行时错误。 - console工具:利用浏览器内置的开发者工具进行代码调试。 通过深入学习和实践...

    网站客户端开发案例

    9. SEO(搜索引擎优化):优化网页以便于搜索引擎抓取和理解,是提升网站可见性的关键。了解关键词、元标签、URL结构和网站结构对SEO的影响。 10. 实践项目:理论知识的学习需要通过实际项目来巩固。201403010768...

Global site tag (gtag.js) - Google Analytics