文档章节

SEO初级优化--HTML、CSS、JS

spademan
 spademan
发布于 2013/08/08 09:23
字数 2148
阅读 74
收藏 1

一、清理垃圾代码。

清理垃圾代码是指删除页面中的冗余代码,可以删除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="图片关键字"/>

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;} 这不仅仅因为它是缓慢和低效率的方法,而且还会导致一些不必要的元素也重置了外边距和内边距。在此建议参考YUI Reset和Eric Meyer的做法:

  1. /** 清除内外边距 **/
  2. body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, /* structural elements 结构元素 */ dl, dt, dd, ul, ol, li, pre,form, fieldset, legend, button, input,
  3. textarea, th, td, img{ border:medium none; margin: 0; padding: 0; }
  4. /** 设置默认字体 **/
  5. body,button, input, select, textarea { font: 12px ‘宋体’; }
  6. h1, h2, h3, h4, h5, h6 { font-size: 100%; }
  7. em{font-style:normal;}
  8. /** 重置列表元素 **/
  9. ul, ol { list-style: none; }
  10. /** 重置超链接元素 **/
  11. a { text-decoration: none; color:#333;}
  12. a:hover { text-decoration: underline; color:#F40; }
  13. /** 重置图片元素 **/
  14. img{ border:0px;}
  15. /** 重置表格元素 **/
  16. table { border-collapse: collapse; border-spacing: 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.4em Arial, Helvetica, sans-serif; padding:5px 0 10px 5px; }
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会影响打开网页的速度。

本文转载自:http://blog.csdn.net/liushuwei0224/article/details/8609851

spademan
粉丝 8
博文 92
码字总数 39247
作品 0
广州
前端工程师
私信 提问
10个技巧助您提高网站访问速度

1、如果可能的话,延迟加载一些内容 可以使用Ajax来按需加载部分内容。比如一个相册,可以在用户浏览页面时先出缩略图,当用户点击了,然后异步请求原图并展示,这样用户如果只需要看几张图片...

lovedreamland
2011/02/24
0
0
React 服务器端渲染和客户端渲染效果对比

React 服务器端渲染和客户端渲染效果对比 最近在学习 React 的服务端渲染,于是使用 Express+React 写了一个 Demo,用于对比和客户端渲染的差异。github 地址 先看一下效果吧: 1、访问 服务...

yhlben
2018/12/14
0
0
好的 web 开发人员应该知道的 10 件事

我喜欢在web开发中对不同技术的运用。作为一个好的web开发人员你必须让自己处在不断的学习过程中,因为有很多重要的技术随时都在发生着变化。 这里列出了每一个好的web开发人员都具备的10项技...

Yogoo
2013/01/09
8.8K
93
PHP职业规划

PHP职业规划 初级PHP程序员 需要掌握知识点: HTML 熟练 CSS 熟练 Javascript 基础 jQuery 基础 SQL 基础 PHP 熟练 职业要求 能够独立进行网页制作与排版 能够制作简单的前端效果 或 将前端效...

染墨青衿
2014/12/22
4
0
性能是全新的 SEO

作为一个前端工程师,那不仅仅就是公开地处理那些漂亮的html5, css3 和javascript特效。小而重要的一部分工作就是要让项目朝着代码稳定和代码标准方向进展。设计、信息结构以及后台限制都会成...

oschina
2013/11/14
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

IPv4如何转换为IPv6?

导读 ipv6已经逐渐在应用,现在已经有很多的运营商支持ipv6,前天我们也发布了如何让电脑使用ipv6地址?有很多朋友在问?ipv6有什么作用,它的表示方式是什么,今天我们来一起来详细了解下ipv...

问题终结者
4分钟前
0
0
SpringBoot2.0高级案例(05):整合 Swagger2 ,构建接口管理界面

一、Swagger2简介 1、Swagger2优点 整合到Spring Boot中,构建强大RESTful API文档。省去接口文档管理工作,修改代码,自动更新,Swagger2也提供了强大的页面测试功能来调试RESTful API。 2、...

知了一笑
16分钟前
2
0
关于观察者模式总结

观察者模式(发布订阅模式):在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖他的对象都会收到通知,并自动更新。 使用场景:当一个对象状态改变同时需要改变其他对象,且...

cherryboy
22分钟前
0
0
Gradle Sync太慢?你需要使用阿里云仓库服务的代理仓库地址代替jcenter()、maven

在天朝使用jcenter、mavenCentral及google三个远程仓库,Gradle Sync会很慢,goole仓库甚至需要科学上网才能访问。为了加快Gradle Sync速度,一招教你优先用 阿里云仓库服务 的仓库作为下载源...

丁佳辉
34分钟前
2
0
maven打包后运行提示“没有主清单属性”的解决办法

在项目的pom.xml文件里添加如下内容: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>m......

shatian
37分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部