一、清理垃圾代码

清理垃圾代码是指删除页面中的冗余代码,可以删除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元素间的联系。

另外还有一种情况,一些固定的样式,定义后就不会修改的了,那你命名时就不用担忧刚刚说的那种情况,如:

  1. .alignleft{float:left;margin-right:20px;}
  2. .alignright{float:right;text-align:right;margin-left:20px;}
  3. .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和颜色值等,如果您学会了代码缩写,可写成代码:

  1. 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样式。这样你可以很好的维护你的代码,并且还可以减少代码量。那么本来这样的代码,

  1. #container li{font-family:Georgia, serif; }
  2. #container p{
    font-family:Georgia, serif; }
  3. #container h1{font-family:Georgia, serif; }
#container li{ font-family:Georgia, serif; }
#container p{ font-family:Georgia, serif; }
#container h1{font-family:Georgia, serif; }

可以写成:

  1. #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优化篇的更多相关文章

  1. ASP.NET Core Web开发学习笔记-1介绍篇

    ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...

  2. 提升 Web开发性能的 10 个技巧

    随着网络的高速发展,网络性能的持续提高成为能否在芸芸App中脱颖而出的关键.高度联结的世界意味着用户对网络体验提出了更严苛的要求.假如你的网站不能做到快速响应,又或你的App存在延迟,用户很快就会移情 ...

  3. 提高 Web开发性能的 10 个方法

    随着网络的高速发展,网络性能的持续提高成为能否在芸芸App中脱颖而出的关键.高度联结的世界意味着用户对网络体验提出了更严苛的要求.假如你的网站不能做到快速响应,又或你的App存在延迟,用户很快就会移情 ...

  4. Web开发环境搭建 Eclipse-Java EE 篇

    Web开发环境搭建 Eclipse-Java EE 篇 [原创内容,转载注名出处] 1. 下载和安装 1.1 下载JDK 在Java官方网站下载最新版本的 Java SE:  http://www.o ...

  5. 记录一下Web开发环境搭建 Eclipse-Java EE 篇

    转自https://www.cnblogs.com/yangyxd/articles/5615965.html Web开发环境搭建 Eclipse-Java EE 篇 [原创内容,转载注名出处] 1. ...

  6. 前端开发如何做好SEO优化的工作

    前端开发工程师不仅需要要跟视觉设计师.交互式设计师配合,完美还原设计图稿,编写兼容各大浏览器.加载速度快.用户体验好的页面.现在还需要跟SEO人员配合,调整页面的代码结构和标签. 一些成熟的平台,在开 ...

  7. 大话SEO网站优化|SEO优化入门技术详解

    网络营销 网络营销是借助一切被目标用户认可的网络应用服务平台开展的引导用户关注的行为或活动,目的是促进产品在线销售及扩大品牌影响力. web1.0时代有搜索引擎营销.BBS营销.邮件营销.病毒式营销. ...

  8. WEB开发性能优化--核心定义介绍篇(1)

    推荐理由 随着 互联网的蓬勃发展,并且伴随着产品功能的越来越复杂,对于技术人员来说最大的挑战就是如何在保证业务快速发展的同时,也可保证不断复杂的业务对用户体验的影响,其中对用户来说最重要的体验指标是如 ...

  9. web开发性能优化---数据库篇

    1. 查询出的数据量过大(可以采用多次查询,其他的方法降低数据量),尽量采取分页查询数据 2.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 3.返回了不必要的行和列 用OR的字句可以分解成 ...

随机推荐

  1. spring boot + vue + element-ui全栈开发入门——前端列表页面开发

     一.页面 1.布局 假设,我们要开发一个会员列表的页面. 首先,添加vue页面文件“src\pages\Member.vue” 参照文档http://element.eleme.io/#/zh-CN ...

  2. 关于dom4j解析xml

    一:相关jar包 dom4j-1.6.1.jar 二:用例xml文件 三:解析 注:可能有的小白不知道如果获取节点,so,you can: for (Iterator<Element> i ...

  3. SpringMVC源码情操陶冶-AnnotationDrivenBeanDefinitionParser注解解析器

    mvc:annotation-driven节点的解析器,是springmvc的核心解析器 官方注释 Open Declaration org.springframework.web.servlet.c ...

  4. RandomAccess接口的使用

    RandomAccess在类Collections的shuffle()方法中的使用:(jdk源码如下) /** * Randomly permute the specified list using ...

  5. 从UUID想到的

    1.UUID的定义 通用唯一标识符(UUID)被设计成一个在时间和空间上都独一无二的数字,常被用作唯一性标识. UUID是一个由5位十六进制数的字符串表示的128比特数字,其格式为 aaaaaaaa- ...

  6. POJ [P2289] Jamie's Contact Groups

    二分+二分图多重匹配 辣鸡ACM式读入 对于这种奇葩的读入方法,还是老老实实的用scanf吧 #include <iostream> #include <cstdio> #in ...

  7. bzoj 4870: [Shoi2017]组合数问题 [矩阵乘法优化dp]

    4870: [Shoi2017]组合数问题 题意:求 \[ \sum_{i=0}^{n-1} \binom{nk}{ik+r} \mod p \] \(n \le 10^9, 0\le r < ...

  8. BZOJ 4555: [Tjoi2016&Heoi2016]求和 [分治FFT 组合计数 | 多项式求逆]

    4555: [Tjoi2016&Heoi2016]求和 题意:求\[ \sum_{i=0}^n \sum_{j=0}^i S(i,j)\cdot 2^j\cdot j! \\ S是第二类斯特林 ...

  9. [测试]java IO写入文件效率——几种方法比较

    各类写入方法 /** *1 按字节写入 FileOutputStream * * @param count 写入循环次数 * @param str 写入字符串 */ public void outpu ...

  10. 优雅使用 illuminate/database 包中的 Collection

    优雅使用 illuminate/database 包中的 Collection 或许你很抵抗使用 Laravel , 但是你没有理由不喜欢使用 illuminate/database.这是一个 ORM ...