从æˆ'开始知é" SEO è¿™å‡ å¹´èµ·ï¼ŒåŸºæœ¬ä¸Šæ‰€æœ‰çš„ SEO 活动都是基于å‰ç«¯çš„,从header 到 bodyï¼Œä»Žå°æ ‡ç¾åˆ° CSS,从é"¾æŽ¥åˆ°å...³é"®è¯å¯†åº¦ï¼›åˆæœŸç‰›äººä»¬è¯Šæ-一个ç½'ç«™ SEO çš„æ ‡å‡†ä¹Ÿæ˜¯ä»Žå‰ç«¯é¡µé¢ç€æ‰‹ï¼Œä¸è¿‡çš„确也是,从æŽ'åç®-法å‰ç«¯çš„代ç 的确å 了大部分的æ¯"例,但åŽç«¯çš„æœåŠ¡å™¨é€Ÿåº¦ä¼˜åŒ-,也开始æˆä¸ºä¸€ä¸ªè¶Šæ¥è¶Šé‡è¦çš„å› ç´ ï¼Œç‰¹åˆ«æ˜¯ æµè¨€å››èµ·çš„ Google 将会把ç½'站速度作为ç®-法的一部分。
å½"然,æœåС噍那ç§äº‹ä¸è¯¥æ˜¯ä¸€ä¸ª SEOer æˆ-è€... SEMeråº"该去精通的东西,å...¶å®žåªè¦äº†è§£å¹¶æŽŒæ¡å...¶è§„律就å¯ä»¥äº†(推èå¦å¤-一片æ-‡ç« :大型ç½'站架构æ¼"å˜å'ŒçŸ¥è¯†ä½"ç³»);但ä¾ç„¶è¦ç†Ÿæ‚‰ç½'站系统æˆ-è€... CMS çš„åŠ é€Ÿæ‰‹æ®µï¼Œæ£å¦‚å›½å¹³åœ¨ã€Šæ€Žæ ·å½¢æˆä¸€å¥-éžå¸¸ç§'å¦ç³»ç»Ÿçš„SEOæ-¹æ³•》ä¸åˆ†æžçš„
什么措æ-½èƒ½å½±å"ç½'é¡µåŠ è½½é€Ÿåº¦å'¢ï¼Ÿ ç½'ç»œçŽ¯å¢ƒã€æœåŠ¡å™¨ç¡¬ä»¶ã€CMS本身都能影å"ç½'é¡µåŠ è½½é€Ÿåº¦ã€‚ä¼˜åŒ-å...¶ä¸çš„任何一项,都能æå‡ç½'é¡µåŠ è½½é€Ÿåº¦ã€‚é‚£é©¬ä¸Šåˆå¯ä»¥å¾-出:ç½'络环境影å"SEOæµé‡ã€æœåŠ¡å™¨ç¡¬ä»¶å½±å"SEOæµé‡ã€CMS本身的速度影å"SEOæµé‡ã€‚
å½±å"é€Ÿåº¦çš„å› ç´ æœ‰å¾ˆå¤šï¼Œè¿™é‡Œåšä¸€ä¸ªæ±‡æ€»ï¼ˆä¸åŒ...括硬件)
本æ-‡å†...容å‚考Yahoo:Best Practices for Speeding Up Your Web Site å'Œ 高性能ç½'页开å'çš„14æ¡å†›è§„
一ã€å°½å¯èƒ½çš„å‡å°' HTTP 的请求数
è¿™ä¸ªç¬¬ä¸€æ¡æ˜¯æˆ'们大多数SEO所知é"的,æˆ'å†åšä¸€ä¸ªç®€å•çš„æè¿°ï¼šå¤§å¤šæ•°çš„HTTP请求都是å‰ç«¯çš„,ç"¨æˆ·çš„大多数æ-¶é-´éƒ½è¢«ç"¨æ¥ä¸‹è½½å›¾ç‰‡ã€CSSæ ·å¼ è¡¨ã€å„ç§Scriptsã€Flashç‰ç‰ã€‚å½"ç„¶æˆ-许将css,jsæ-‡ä»¶æ‹†åˆ†å¤šä¸ªæ˜¯å› 为cssç»"构,å...±ç"¨ç‰æ-¹é¢çš„考è™'ã€‚é˜¿é‡Œå·´å·´ä¸æ-‡ç«™å½"æ-¶çš„åšæ³•是开å'æ-¶ä¾ 然分开开å',然åŽåœ¨åŽå° 对js,css进行åˆå¹¶ï¼Œè¿™æ ·å¯¹äºŽæµè§ˆå™¨æ¥è¯´ä¾ç„¶æ˜¯ä¸€ä¸ªè¯·æ±‚,但是开å'æ-¶ä»ç„¶èƒ½è¿˜åŽŸæˆå¤šä¸ªï¼Œæ-¹ä¾¿ç®¡ç†å'Œé‡å¤å¼•ç"¨ã€‚yahooç"šè‡³å»ºè®®å°†é¦-页的csså'Œ js ç›´æŽ¥å†™åœ¨é¡µé¢æ-‡ä»¶é‡Œé¢ï¼Œè€Œä¸æ˜¯å¤-部引ç"¨ã€‚å› ä¸ºé¦-页的访é-®é‡å¤ªå¤§äº†ï¼Œè¿™ä¹ˆåšä¹Ÿå¯ä»¥å‡å°'两个请求数。而事实上国å†...的很多é-¨æˆ·éƒ½æ˜¯è¿™ä¹ˆåšçš„。
而css sprites是指åªç"¨å°†é¡µé¢ä¸Šçš„背景图åˆå¹¶æˆä¸€å¼ ,然åŽé€šè¿‡cssçš„background-position属性定义ä¸è¿‡çš„值æ¥å-ä»-的背景。淘å®å'Œé˜¿é‡Œå·´å·´ä¸æ-‡ç«™ç›®å‰éƒ½æ˜¯è¿™æ ·åšçš„。有å...´è¶£çš„å¯ä»¥çœ‹ä¸‹æ·˜å®å'Œé˜¿é‡Œå·´å·´çš„背景图。
http://www.csssprites.com/ 这是个工å...·ç½'站,它å¯ä»¥è‡ªåŠ¨å°†ä½ ä¸Šä¼ çš„å›¾ç‰‡åˆå¹¶å¹¶ç»™å‡ºå¯¹åº"çš„background-positionåæ ‡ã€‚å¹¶å°†ç»"果以pngå'Œgifçš„æ ¼å¼è¾"出。
二ã€ä½¿ç"¨CDN(å†...容分å'ç½'络)Content Delivery Network
之剿›¾ç»é-®è¿‡å¼ 智勇å...¬åå...³äºŽ CDN 是å¦å¯¹ SEO 有影å",在å¾è¯¢äº†æŠ€æœ¯è€æ€»çš„æ„è§ä¹‹åŽï¼Œè¿™ä¸ªå½±å"å...¶å®žå‡ 乎å¯ä»¥å¿½ç•¥çš„,å而是ç"¨æˆ·ç«¯çš„速度ä½"验æå‡äº†ï¼Œå¯¹ç½'站的æ£å'作ç"¨æ›´å¤§ã€‚
CDN åŠ é€ŸçŽ°åœ¨å¾ˆæµè¡Œï¼Œå‡ 乎ç¨å¾®å¤§ä¸€ç‚¹çš„ç½'站都有ç"¨è¿™ä¸ªæœåŠ¡ï¼Œå°±æ˜¯å°†ç½'ç«™çš„é•œåƒæœåŠ¡å¤‡ä»½åˆ°å¤šä¸ªæœåŠ¡å™¨èŠ‚ç‚¹ï¼Œä»Žè€ŒåŠ é€Ÿè¯¥æœåС噍å'¨å›´çš„ç"¨æˆ·è®¿é-®ã€‚
更详细地å†...容大家å¯ä»¥å‚考百度百ç§'上对于CDN的解释
ä¸‰ã€æ·»åŠ Expire/Cache-Control 头
这个规则有两个东西:
- 坹陿€çš„组件:设置为永ä¸è¿‡æœŸï¼›
- 对动æ€çš„组件:设置为一个åˆç†çš„ç¼"å˜æŽ§åˆ¶å¤´æ¥å¸®åŠ©æœ‰æ¡ä»¶çš„相åº".
通过设置Expires header æ¥ç¼"å˜è¿™äº›æ-‡ä»¶ã€‚Expireå...¶å®žå°±æ˜¯é€šè¿‡header报æ-‡æ¥æŒ‡å®šç‰¹å®šç±»åž‹çš„æ-‡ä»¶åœ¨è§ˆå™¨ä¸çš„ç¼"å˜æ-¶é-´ã€‚大多数的图片,flash在å'布åŽéƒ½æ˜¯ä¸éœ€è¦ç»å¸¸ä¿® æ"¹çš„,åšäº†ç¼"å˜ä»¥åŽè¿™æ ·æµè§ˆå™¨ä»¥åŽå°±ä¸éœ€è¦å†ä»ŽæœåŠ¡å™¨ä¸‹è½½è¿™äº›æ-‡ä»¶è€Œæ˜¯è€Œç›´æŽ¥ä»Žç¼"å˜ä¸è¯»å-ï¼Œè¿™æ ·å†æ¬¡è®¿é-®é¡µé¢çš„é€Ÿåº¦ä¼šå¤§å¤§åŠ å¿«ã€‚
一个å...¸åž‹çš„HTTP 1.1åè®®è¿"回的头信æ¯ï¼š
HTTP/1.1 200 OK
Date: Fri, 30 Oct 1998 13:19:41 GMT
Server: Apache/1.3.3 (Unix)
Cache-Control: max-age=3600, must-revalidate
Expires: Fri, 30 Oct 1998 14:19:41 GMT
Last-Modified: Mon, 29 Jun 1998 02:28:12 GMT
ETag: "3e86-410-3596fbbc"
Content-Length: 1040
Content-Type: text/html
å...¶ä¸é€šè¿‡æœåŠ¡å™¨ç«¯è„šæœ¬è®¾ç½®Cache-Controlå'ŒExpireså¯ä»¥å®Œæˆã€‚
如,在phpä¸è®¾ç½®30天åŽè¿‡æœŸï¼š
<!-pHeader("Cache-Control: must-revalidate");$offset = 60 * 60 * 24 * 30;$ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";Header($ExpStr);->
<!-pHeader("Cache-Control: must-revalidate");$offset = 60 * 60 * 24 * 30;$ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";Header($ExpStr);->
在aspä¸è®¾ç½®ç»å¯¹æ-¶é-´è¿‡æœŸï¼š
<% Response.ExpiresAbsolute=#May 31,2010 13:30:15 GMT# %>
也å¯ä»¥é€šè¿‡é...ç½®æœåŠ¡å™¨æœ¬èº«å®Œæˆï¼Œè¿™äº›å¶å°±ä¸æ˜¯å¾ˆæ¸...楚了,å'µå'µã€‚想了解跟多的朋å‹å¯ä»¥å‚考http://www.web-caching.com/
å››ã€Gzip压缩
这个是目å‰åº"ç"¨æœ€å¤šçš„åŠ é€Ÿæ-¹å¼ä¹‹ä¸€ï¼Œä»£ç 也很简å•,gzip的压缩æ¯"例éžå¸¸å¤§ï¼Œä¸€èˆ¬åŽ‹ç¼©çŽ‡ä¸º85%,就是 说æœåŠ¡å™¨ç«¯100K的页é¢å¯ä»¥åŽ‹ç¼©åˆ°25Kå·¦å³å†å'é€åˆ°å®¢æˆ·ç«¯ã€‚é›...虎开å'è€...特别强调, 所有的æ-‡æœ¬å†...容都åº"该被gzip压缩: html (php), js, css, xml, txt。
äº"ã€å°†cssæ"¾åœ¨é¡µé¢æœ€ä¸Šé¢
å...ã€å°†scriptæ"¾åœ¨é¡µé¢æœ€ä¸‹é¢
七ã€é¿å...在CSSä¸ä½¿ç"¨Expressions
css表达是的执行次数是远远多于æˆ'们想象的,往往会严é‡åœ°å½±å"性能。而ä¸",它åªèƒ½åœ¨IE䏿‰§è¡Œã€‚æ‰€ä»¥å› å°½é‡åœ°é¿å...它。这一æ¡ä»¥å‰å€'没想过,个人ç"¨ 这个就是在对ie使ç"¨max-widthå'Œmin-width属性的æ-¶å€™ã€‚大家知é"IEæ˜¯ä¸æ"¯æŒmax-widthå'Œmin-width属性的。有æ-¶å€™çš„ 页é¢ï¼ˆç‰¹åˆ«æ˜¯è‡ªé€‚åº"大å°çš„页é¢ï¼‰ä¸ºäº†èƒ½åœ¨åˆ†è¾¨çއå°åˆ°ä¸€å®šç¨‹åº¦åŽè¿˜èƒ½æ˜¾ç¤ºè¦ç"¨åˆ°è¿™ä¸ªåŠŸèƒ½ï¼Œæ€Žä¹ˆåŠžã€‚å½"æ-¶æˆ'çš„åšæ³•就是利ç"¨expressions:
å...«ã€å¤-ç½®javascriptå'Œcssæ-‡ä»¶
这个地çƒäººéƒ½çŸ¥é"
ä¹ã€å‡å°'DNS查询
在 Internet上域å与IP地å€ä¹‹é-´æ˜¯ä¸€ä¸€å¯¹åº"的,域å(SEMWatch.org)很好记,但计ç®-机ä¸è®¤è¯†ï¼Œè®¡ç®-机之é-´çš„"相认"还è¦è½¬æˆip地å€ã€‚ 在ç½'络 上æ¯å°è®¡ç®-机都对åº"有一个独立的ip地å€ã€‚在域åå'Œip地å€ä¹‹é-´çš„转æ¢å·¥ä½œç§°ä¸ºåŸŸåè§£æžï¼Œä¹Ÿç§°DNS查询。一次DNS的解æžè¿‡ç¨‹ä¼šæ¶ˆè€-20-120毫ç§'çš„ æ-¶é-´,在dns查询ç»"æŸä¹‹å‰ï¼Œæµè§ˆå™¨ä¸ä¼šä¸‹è½½è¯¥åŸŸå下的任何东西。所以å‡å°'dns查询的æ-¶é-´å¯ä»¥åŠ å¿«é¡µé¢çš„åŠ è½½é€Ÿåº¦ã€‚yahooçš„å»ºè®®ä¸€ä¸ªé¡µé¢æ‰€åŒ...å«çš„域 åæ•°å°½é‡æŽ§åˆ¶åœ¨2-4个。这就需è¦å¯¹é¡µé¢æ•´ä½"有一个很好的规åˆ'。
åã€åŽ‹ç¼© JavaScript å'Œ CSS
压缩jså'Œcss的左å³å¾ˆæ˜¾ç„¶ï¼Œå‡å°'页é¢å-节数。容é‡å°é¡µé¢åŠ è½½é€Ÿåº¦è‡ªç„¶ä¹Ÿå°±å¿«ã€‚è€Œä¸"压缩除了å‡å°'ä½"积以å¤-还å¯ä»¥èµ·åˆ°ä¸€å®šçš„ä¿æŠ¤å·¦å³ã€‚
å½"然,压缩带æ¥çš„一个弊端就是代ç çš„å¯è¯»æ€§æ²¡äº†ã€‚相信很多åšå‰ç«¯çš„æœ‹å‹éƒ½é‡åˆ°è¿‡è¿™ä¸ªé-®é¢˜ï¼šçœ‹Google的效果很é...·ï¼Œå¯æ˜¯åŽ»çœ‹ä»-çš„æºä»£ç å´æ˜¯ä¸€å¤§å † 挤在一起的å-符,连函数å都是替æ¢è¿‡çš„,æ±-æ»ï¼è‡ªå·±çš„代ç ä¹Ÿè¿™æ ·å²‚ä¸æ˜¯å¯¹ç»´æŠ¤éžå¸¸ä¸æ-¹ä¾¿ã€‚
å一ã€é›...虎开å'è€...å'Šè¯‰æˆ'们è¦é¿å...é‡å®šå'
301,302é‡å®šå'是普通 SEO 里最常è§çš„,特别是301,对æƒé‡çš„转移å'Œä¿ç•™éžå¸¸æœ‰å¸®åŠ©ï¼Œé™¤éžè¿«ä¸å¾-以,尽é‡å°'ç"¨é‡å®šå'。
å二ã€ç§»é™¤é‡å¤çš„脚本
这点æˆ'想ä¸è¯´ä¹ŸçŸ¥é",ä¸ä»...是从性能上考è™',代ç è§„èŒƒä¸Šçœ‹ä¹Ÿæ˜¯è¿™æ ·ã€‚ä½†æ˜¯ä¸å¾-䏿‰¿è®¤ï¼Œå¾ˆå¤šæ-¶å€™æˆ'ä»¬ä¼šå› ä¸ºå›¾ä¸€æ-¶ä¹‹å¿«è€ŒåŠ ä¸Šä¸€äº›æˆ-许是é‡å¤çš„代ç
å三ã€é...置实ä½"æ ‡ç¾ï¼ˆConfigure ETags)
这点æˆ'ä¹Ÿä¸æ‡‚,å'µå'µã€‚在inforQ上找到一篇解释å¾-æ¯"较详细的说明《使ç"¨ETagså‡å°'Webåº"ç"¨å¸¦å®½å'Œè´Ÿè½½ã€‹ï¼Œæœ‰å...´è¶£çš„åŒå¦å¯ä»¥åŽ»çœ‹çœ‹ã€‚
åå››ã€ä½¿ AJAX ç¼"å˜ (Make Ajax Cacheable )
è®°ä½ï¼Œå³ä½¿AJAX是动æ€äº§ç"Ÿçš„而ä¸"åªå¯¹ä¸€ä¸ªç"¨æˆ·èµ·ä½œç"¨ï¼Œä»-们ä¾ç„¶å¯ä»¥è¢«ç¼"å˜
Even though your Ajax responses are created dynamically, and might only be applicable to a single user, they can still be cached. Doing so will make your Web 2.0 apps faster.
åäº"ã€Flush the Buffer Early
åå...ã€Use GET for AJAX Requests
å七ã€Post-load Components
åå...«ã€Preload Components
åä¹ã€Reduce the Number of DOM Elements
二åã€Split Components Across Domains
二å一ã€Minimize the Number of iframes
框架最好都ä¸è¦ç"¨ã€‚
二å二ã€No 404s
这个å'ŒSEO的相å...³æ¡æ¬¾ä¸ä¸€è‡´ï¼Œå¯ä»¥å¿½è§†å"ˆã€‚
二å三ã€Reduce Cookie Size
å°½å¯èƒ½çš„å§ï¼Œcookies跟踪好了,有å¯èƒ½æ¯"速度更é‡è¦
二åå››ã€Use Cookie-free Domains for Components
二åäº"ã€Minimize DOM Access
二åå...ã€Develop Smart Event Handlers
二å七ã€Choose <link> over @import
二åå...«ã€Avoid Filters
二åä¹ã€Optimize Images
三åã€Optimize CSS Sprites
三å一ã€Don't Scale Images in HTML
三å二ã€Make favicon.ico Small and Cacheable
三å三ã€Keep Components under 25K
三åå››ã€Pack Components into a Multipart Document
三åäº"ã€Avoid Empty Image src
é¿å...空的图片地å€é"¾æŽ¥
- straight HTML
<img src="">
- JavaScript
var img = new Image();
img.src = "";
这两ç§å½¢å¼éƒ½ä¼šå¯¼è‡´åŒæ ·çš„æ•ˆæžœï¼šæµè§ˆå™¨ä¼šå'æœåŠ¡å™¨è¿›è¡Œé¢å¤-请求
三åå...ã€æ²¡äº†
å"Žå"Ÿï¼Œå¤ªå¤šäº†
Link to original post