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的字句可以分解成 ...
随机推荐
- 在高并发、高负载的情况下,如何给表添加字段并设置DEFAULT值?
在高并发.高负载的情况下,如何给表添加字段并设置DEFAULT值? 在Oracle 12c之前,当Oracle表数据量上亿时,对表执行“ALTER TABLE XXX ADD COLUMN_XX VA ...
- Linux 虚拟机忘记root密码
Linux 虚拟机忘记root密码可以按照下面的步骤重新设置密码: 1.在grub界面,也就是有press any key的那个界面,按下任意键 2.键入e,出现三行文字,按上下键选择kernel那一 ...
- 洛谷 [P1020] 导弹拦截 (N*logN)
首先此一眼就能看出来是一个非常基础的最长不下降子序列(LIS),其朴素的 N^2做法很简单,但如何将其优化成为N*logN? 我们不妨换一个思路,维护一个f数组,f[x]表示长度为x的LIS的最大的最 ...
- django-rest-framework之请求与响应
前言:在上一篇文章,已经实现了访问指定URL就返回了指定的数据,这也体现了RESTful API的一个理念,每一个URL代表着一个资源.当然我们还知道RESTful API的另一个特性就是,发送不同的 ...
- 使用Python的requests库进行接口测试——session对象的妙用
from:http://blog.csdn.net/liuchunming033/article/details/48131051 在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有 ...
- 四、正则表达式re模块
什么是正则表达式 正则表达式,又称规则表达式,通常被用来检索.替换那些符合某个模式(规则)的文本. 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一 ...
- spring使用中问题汇总
1.配置文件找不到beans元素:可能是xsd与spring版本不一致,导致无法效验: 解决方案:将applicationContext.xml中xsd文件定义的版本改为spring jar包中定义的 ...
- php读取文件内容的三种方法
<?php //**************第一种读取方式***************************** 代码如下: header("content-type:text/h ...
- Linux中的 awk查找日志中的相关记录
假设要在 api.log.201707201830 文件中,(此文件的多个字段数据以不可见字符^A(键盘上按下Ctrl+V+A)分隔),要输出第70个字段: awk -F '^A' '{print $ ...
- Mac 系统安装 oh my zsh
先来张图感受一下: 安装oh my zsh: 1.克隆这个项目到本地(前提是你得有装git) git clone git://github.com/robbyrussell/oh-my-zsh.git ...