web开发性能优化---SEO优化篇
一、清理垃圾代码
清理垃圾代码是指删除页面中的冗余代码,可以删除80%的冗余代码。
垃圾代码主要指那些删除了也不会对页面有任何影响的非必要代码。 最常见的垃圾代码,空格 空格字符是网页中最常见的垃圾代码。但并不是指标签,而是有代码编辑环境下敲击空格所产生的符号,每个空格相当一个字符,那么也就是说,一个页面,空格就占页面体积的15%,100K的页面,有15K是空格字符。 空格字符最常出现 在代码的开始和结束处,还有就是空行中。 这些都是容易产生垃圾代码的地方。消除这样的垃圾代码的方法就是选中代码然后按shift+tab键左对齐。
二、HTML标签
A:HTML标签转换
HTML标签的转换主要是指使用短标签替换在网页中有同样效果的长标签,例如<b>与<strony>两者都是对字体加粗但是<strong>却比<b>多了5个字符。如果一个页面出现上百个加粗标签。就会产生不少的冗余代码。 解决方法是:在制作html页面的时候,进行优化的选择使用的标签。
B:头部标签
<title>网站标题</title> 标题设置
<meta name="keywords" content="网站关键字,多个关键字用分隔符分开,如 |" /> 关键子设置,考虑密度
<meta name="description" content="对网站的描述" /> 网站描述设置,考虑密度
C:表格,ur 等容器形式的标签
浏览器编译器遇到一个标签时,就开始寻找它的结束标签,直到它匹配上,才能显示它的内容, 所以当表,ur等容器形式的标签嵌套很多时,打开页面就会特别慢,这样就降低了用户体验了。解决方法:在编写html的时候:尽量使一个一个容器独立,如果要嵌套的时候,一定要使其清楚、简介。
D:图片ait标签
<img src="图片地址" alt="图片关键字"/> alt一定要写
E:合理 target="_blank"
合理而不频繁使用target="_blank" 是能够在一定程度上位网站带来回旋流量和点击。同时,在细节上使用 target="_blank" ,可以增强网站整体用户体验。
三、CSS优化
A:CSS调用 有3种方式
1、直接在页面的<head>和</head>之间写css样式,如果内容少则影响不大,否则大大增加页面的体积,还占用了顶部的重要位置。
2、直接在html标签上面定义css 样式,增加页面的代码量。
3、引用外部css文件,这三种方式中,最利于seo优化的是3也就是 引用css文件
B:使用Reset但并非全局Reset
不同浏览器元素的默认属性有所不同,使用Reset可重置浏览器元素的一些默认属性,以达到浏览器的兼容。但需要注意的是,请不要使用全局Reset, *{margin:0;padding:0;} 这不仅仅因为它是缓慢和低效率的方法,而且还会导致一些不必要的元素也重置了外边距和内边距。
/** 清除内外边距 **/
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, /* structural elements 结构元素 */ dl, dt, dd, ul, ol, li, pre,form, fieldset, legend, button, input,
textarea, th, td, img{ border:medium none; margin: 0; padding: 0; }
/** 设置默认字体 **/
body,button, input, select, textarea { font: 12px ‘宋体’; }
h1, h2, h3, h4, h5, h6 { font-size: 100%; }
em{font-style:normal;}
/** 重置列表元素 **/
ul, ol { list-style: none; }
/** 重置超链接元素 **/
a { text-decoration: none; color:#333;}
a:hover { text-decoration: underline; color:#F40; }
/** 重置图片元素 **/
img{ border:0px;}
/** 重置表格元素 **/
table { border-collapse: collapse; border-spacing: 0; }
C: 良好的命名习惯
无疑乱七八糟或者无语义命名的代码,谁看了都会抓狂。如<h1>My name is <span class=”red blod”>Wiky</span></h1> 问题在于如果你需要把所有原本红色的字体改成蓝色,那修改后就样式就会变成, red{color:bule;} 这样的命名就会很让人费解。同样的命名为leftBar的侧边栏如果需要修改成右侧边栏也会很麻烦。
所以,请不要使用元素的特性,颜色,位置,大小等,来命名一个class或id。您可以选择意义的命名如,#navigation{…},.sidebar{…},.postwrap{…} 这样,无论你如何修改定义这些class或id的样式,都不影响它跟HTML元素间的联系。
另外还有一种情况,一些固定的样式,定义后就不会修改的了,那你命名时就不用担忧刚刚说的那种情况,如:
- .alignleft{float:left;margin-right:20px;}
- .alignright{float:right;text-align:right;margin-left:20px;}
- .clear{clear:both;text-indent:-9999px;}
.alignleft{float:left;margin-right:20px;}
.alignright{float:right;text-align:right;margin-left:20px;}
.clear{clear:both;text-indent:-9999px;}
如果需要把这个段落由原先的左对齐修改为右对齐,那么只需要修改它的className就为alignright就可以了。
D:代码缩写 CSS代码缩写可以提高你写代码的速度,精简你的代码量。
在CSS里面有不少可以缩写的属性,包括margin,padding,border ,font,background和颜色值等,如果您学会了代码缩写,可写成代码:
- li{ font:1.2em/1.4emArial,Helvetica,sans-serif;padding:5px0
10px5px; }
li{ font: 1.2em/1.4em Arial, Helvetica, sans-serif; padding:5px 0 10px 5px; }
E:利用CSS继承 如果页面中父元素的多个子元素使用相同的样式,那最好把他们相同的样式定义在其父元素上,让它们继承这些CSS样式。这样你可以很好的维护你的代码,并且还可以减少代码量。那么本来这样的代码,
- #container li{font-family:Georgia, serif; }
- #container p{
font-family:Georgia, serif; } - #container h1{font-family:Georgia, serif; }
#container li{ font-family:Georgia, serif; }
#container p{ font-family:Georgia, serif; }
#container h1{font-family:Georgia, serif; }
可以写成:
- #container{font-family:Georgia,serif; }
#container{font-family:Georgia,serif; }
F:使用多重选择器
你可以合并多个CSS选择器为一个,如果他们有共同的样式的话。这样做不但代码简洁且可为你节省时间和空间。
如, h1, h2, h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
G: 适当的代码注释
代码注释可以让别人更容易读懂你的代码且合理的组织代码注释,可使得结构更加清晰。
H:使用外部样式表
这个原则始终是一个很好的设计实践。不单可以更易于维护修改,更重要的是使用外部文件可以提高页面速度,因为CSS文件都能在浏览器中产生缓存。内置在HTML文档中的CSS则会在每次请求中随HTML文档重新下载。
I:避免使用CSS表达式
表达式的问题就在于它的计算频率要比我们想象的多。不仅仅是在页面显示和缩放时,就是在页面滚动、乃至移动鼠标时都会要重新计算一次。给CSS表达式增加一个计数器可以跟踪表达式的计算频率。在页面中随便移动鼠标都可以轻松达到10000次以上的计算量。
J:代码压缩
当你决定把网站项目部署到网络上,那你就要考虑对CSS进行压缩,出去注释和空格,以使得网页加载得更快。压缩您的代码,可以采用一些工具,如YUI Compressor,利用它可精简CSS代码减少文件大小以获得更高的加载速度。
四、JS调用
JS的2种调用方式
A:直接写在页面,巨量的JS代码放到页面不但增加页面的体积,而且还会占用首页这样重量级位置。从而使得页面中相对重要的位置不能优先向搜索引擎展示
B:引用JS文件,引用外部地址的JS会影响打开网页的速度。
五、Url重写
把动态页面.aspx .jsp .php重新成.html,让搜索引擎更容易识别;
本文为个人经实际工作经验和收集总结整理,写得不到之处请给出宝贵意见,谢谢。
本人新浪微博:http://weibo.com/i/1741159542
web开发性能优化---SEO优化篇的更多相关文章
- ASP.NET Core Web开发学习笔记-1介绍篇
ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...
- 提升 Web开发性能的 10 个技巧
随着网络的高速发展,网络性能的持续提高成为能否在芸芸App中脱颖而出的关键.高度联结的世界意味着用户对网络体验提出了更严苛的要求.假如你的网站不能做到快速响应,又或你的App存在延迟,用户很快就会移情 ...
- 提高 Web开发性能的 10 个方法
随着网络的高速发展,网络性能的持续提高成为能否在芸芸App中脱颖而出的关键.高度联结的世界意味着用户对网络体验提出了更严苛的要求.假如你的网站不能做到快速响应,又或你的App存在延迟,用户很快就会移情 ...
- Web开发环境搭建 Eclipse-Java EE 篇
Web开发环境搭建 Eclipse-Java EE 篇 [原创内容,转载注名出处] 1. 下载和安装 1.1 下载JDK 在Java官方网站下载最新版本的 Java SE: http://www.o ...
- 记录一下Web开发环境搭建 Eclipse-Java EE 篇
转自https://www.cnblogs.com/yangyxd/articles/5615965.html Web开发环境搭建 Eclipse-Java EE 篇 [原创内容,转载注名出处] 1. ...
- 前端开发如何做好SEO优化的工作
前端开发工程师不仅需要要跟视觉设计师.交互式设计师配合,完美还原设计图稿,编写兼容各大浏览器.加载速度快.用户体验好的页面.现在还需要跟SEO人员配合,调整页面的代码结构和标签. 一些成熟的平台,在开 ...
- 大话SEO网站优化|SEO优化入门技术详解
网络营销 网络营销是借助一切被目标用户认可的网络应用服务平台开展的引导用户关注的行为或活动,目的是促进产品在线销售及扩大品牌影响力. web1.0时代有搜索引擎营销.BBS营销.邮件营销.病毒式营销. ...
- WEB开发性能优化--核心定义介绍篇(1)
推荐理由 随着 互联网的蓬勃发展,并且伴随着产品功能的越来越复杂,对于技术人员来说最大的挑战就是如何在保证业务快速发展的同时,也可保证不断复杂的业务对用户体验的影响,其中对用户来说最重要的体验指标是如 ...
- web开发性能优化---数据库篇
1. 查询出的数据量过大(可以采用多次查询,其他的方法降低数据量),尽量采取分页查询数据 2.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 3.返回了不必要的行和列 用OR的字句可以分解成 ...
随机推荐
- git指令总结
在学习flask之前,先汇总一下Git的指令. mkdir filedir 创建文件夹filedir cd filedir 进入文件夹 pwd 显示当前工作目录 git init 初始化git仓库 g ...
- Matplotlib快速入门笔记
我正以Python作为突破口,入门机器学习相关知识.出于机器学习实践过程中的需要,快速了解了一下matplotlib绘图库.下图是我学习过程中整理的一些概念. 本文将以该图为线索梳理相关概念. 简介 ...
- loadrunner调用jar包方法
环境 win7(32位)/winXP+loadrunner11+JDK 1.6(一定要配置JAVA环境变量) 1.Eclipse中创建com.medivh包 package com.medivh; p ...
- jQuery源码逐行分析学习02(第一部分:jQuery的一些变量和函数)
第一次尝试使用Office Word,方便程度大大超过网页在线编辑,不过初次使用,一些内容不甚熟悉,望各位大神见谅~ 在上次的文章中,把整个jQuery的结构进行了梳理,得到了整个jQuery的简化结 ...
- AnnotationUtils
/** * 查询类中符合指定annotation的属性信息 * @param objCls 实体类 * @param annCls 注解类 * @return HashMap<实体属性名, An ...
- mac攻略(3) -- brew使用
[http://www.cnblogs.com/redirect/p/6131642.html] 1.介绍 brew是一个软件包管理工具,类似于centos下的yum或者ubuntu下的apt-get ...
- 跟面向对象卯上了,看看ES6的“类”
上回我们说到ES5的面向对象,以及被大家公认的最佳的寄生组合式继承.时代在进步,在ES6中对于面向对象这个大boss理所应当地进行了一次大改,从原先那种比较长的写法转变为"小清新" ...
- Mock拦截ajax请求
//mock拦截ajax请求 ,生成随机数据Mock.mock('./servlet/UserServlet?method=getUser',{ 'list|1-5':[{ 'username':'@ ...
- Tomcat启动出现:Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SpringMvc]]解决办法
严重: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component ...
- Centos下_MysqL5.7在使用mysqldump命令备份数据库报错:mysqldump: [Warning] Using a password on the command line interface can be insecure.
在阿里云服务器增加一个shell脚本定时备份数据库脚本执行任务时,测试性的执行了备份命令,如下 [root@iZ2ze503xw2q1fftv5rhboZ mysql_bak]# /usr/local ...