一 、網站定位
在建設一個網站之前,我們首先要做的就是一個網站清晰的定位,會帶來轉化率相對較高的客戶群體,我們建站的目的就是為了營銷,只有集中來做某一件事,才會更好的展現我們的網站,這樣網站內容建設相當也會比較簡單(具體可查看馬海祥博客《網站整體規劃過程中的SEO定位和SEO優化策略》的相關介紹)。
在做SEO優化的同時,我們首先就要先確認網站優化的最終SEO目標,有了一個明確的目標才能更好的安排具體的工作。
這個目標可以是長期的、具有戰略意義的,也可以是短期的,但不管是短期還是長期,我們的目標設定一定要可以實現的前提下,不要設定一個根本無法完成的目標出來,然後將目標分解到具體的每月、每周、每日的階段目標。
針對目標人群是各個社會層次的人員,對於計算機網路的應用相對不一致,明確網站的訪問人群,要在互聯網上推廣,就得對病種治療的品牌推廣、效果推廣、真人真事口碑宣傳推廣,自然優化的效果會比競價好些(對於企業的網站,我曾在馬海祥博客《如何根據企業受眾群體做好企業網站SEO定位》的一文也詳細的跟大家講過,有興趣的朋友可以看下)。
二、競爭對手分析
孫子兵法有雲:「知己知彼,放能百戰殆」,在著手優化之前,要先去了解客戶的產品和服務,以及研究競爭對手網站情況(具體可查看馬海祥博客《如何利用SEO的思維模式來分析競爭對手》的相關介紹)。
對於網站的目標群體和服務可以通過網站或直接和客戶溝通去了解,對於競爭對手的分析,馬海祥也重點寫了以下幾個要點:
1、基本數據:網站年齡、收錄量、收錄率、快照新鮮度。
2、站內優化:TITLE的設計、描述的書寫、強調文本、段落標題(H1、H2之類的)、URL處理、鏈接深度、Nofollow的使用、目錄頁和內容頁的優化等等。
3、外部數據:外鏈數量和質量、全站外鏈、首頁外鏈、品牌知名度。
馬海祥建議各位站長或SEO人員可以通過這幾個方面的內容來建立數據模型,將每一項詳細記錄下來,寫進方案中。
三、目標群體分析,確定網站關鍵詞
分析和了解病人的群體,網站的目標用戶是屬於哪一類,不同的網站性質所需要的目標用戶是不同的,馬海祥建議大家要做精準的客戶營銷,不為SEO而去SEO。
在確定好用戶群體後開始研究和分析客戶網站的關鍵詞,選擇關鍵詞的原則是以網站的用戶為導向,從用戶的角度去分析他們會通過什麼關鍵詞去搜索網站的產品和服務,同時還要和客戶溝通,確定網站的關鍵詞,客戶網站的核心關鍵詞不一定要熱門但是要精準(具體可查看馬海祥博客《新網站該如何精準定位關鍵詞》的相關介紹)!
對於分析關鍵詞的方法,馬海祥建議大家可從以下幾點來入手:
1、研究競爭對手的網站關鍵詞。
2、關鍵詞挖掘工具:這里特別推薦網路後台關鍵詞查詢工具和愛站網關鍵詞推薦挖掘工具。
3、搜索引擎下拉框和相關搜索。
4、問答平台長尾關鍵詞挖掘。
四、制定網站SEO優化
對於如何制定網站的SEO優化策略,這里,馬海祥就從站內優化和站外優化2個方面來為大家簡單的介紹一下:
1、站內優化
一般來說,初期的網站都會有不合理之處,需要根據SEO優化的要點對網站進行修改,這里,馬海祥就簡單的介紹以下幾個要點:
(1)、站內結構優化
網站的結構要清晰,布局要合理,拒絕冗雜的代碼,拒絕大量的JS腳本和FLASH動畫,影響網站的打開速度,欄目設置要清晰易見,讓訪客瀏覽起來清晰明了(具體可查看馬海祥博客《如何做好網站內鏈SEO優化》的相關介紹)。
(2)、站內鏈接
對於網站的鏈接及內鏈方面,需要做到是:
a、動態站修改成靜態或者偽靜態(需要技術支持)
b、控制文章內部鏈接數量,
c、鏈接對象的相關性要高,
d、給重要的網頁相對多的鏈接,
e、URL統一,使用絕對路徑,做好301重新定向。
這樣做的好處就是:方便頁面間的瀏覽,提高搜索引擎爬行效率,主題集中使該主題中的關鍵詞具有排名優勢。
(3)、SEO細節優化
對於一個專業的SEO人員來說,馬海祥建議你還要多注意一些SEO優化細節(具體可查看馬海祥博客《站內SEO最容易忽略的一些優化細節》的相關介紹),比如:
a、標題的寫法,圖片的ALT標簽。
b、合理布局關鍵詞和關鍵詞密度(標題、標簽、描述文本中),描述設置。
c、長尾關鍵詞記錄單。
d、次導航,定向錨文本,內頁第一次出現的錨文本加黑。
e、做好頁面內容的相關性,堅持原創文章內容更新。
(4)、對競爭對手的關鍵詞進行分析
a、看網站內鏈和外鏈,外鏈是否強大,內鏈文章是否做好錨文本。
b、看關鍵詞在標題的位置,是否在首頁並重復出現,網站是否在圍繞這個詞在做。
c、看競爭對手首頁的外鏈。
d、關鍵詞分布的位置,URL的鏈接(是主域名還是內頁在做)。
e、看網站規模,域名的年齡、收錄量、更新機制。
(5)、增加網站地圖,做好404錯誤頁面
當蜘蛛進入網站後,網站地圖就當是一個好的向導,蜘蛛很容易進入網站的各個角落,所以,我們要根據SEO優化的需求建立一個合理的網站地圖。
另外就是404錯誤跳轉頁面,關於301重定向文件和404頁面,有很多的人會不做,也有一些站長做的並不是404返回代碼(具體可查看馬海祥博客《你真的懂404頁面設置嗎》的相關介紹),其實,這兩個頁面還是很重要的,一個提示作用。
2、站外優化
對於網站的站外SEO優化,主要就是通過外鏈建設的,主要途徑有:友情鏈接、博客評論(留言)、論壇簽名(發帖)、問答平台、網路、分類信息推廣。
在此,馬海祥也跟大家分享一些我經常做外鏈建設的方法及平台:
(1)、博客評論(留言)自建博客——新浪、搜狐、天涯、網易、網路空間、和訊。
(2)、論壇簽名、發帖帶些關鍵詞和鏈接——行業相關論壇、站長論壇
(3)、通過分類信息推廣——58同城、趕集網、百姓網、今題網、易登網、列表網、百業網、久久信息網、城市分類信息網、中華企業錄、馬可波羅、機電之家等。
(4)、網路——網路、搜搜網路、互動網路
(5)、問答——網路知道、雅虎知識堂、天涯問答、搜搜問問、奇虎回答、新浪愛問知識人以及貼吧)
(6)、重視品牌與信息的傳播(發布網站軟文和相關招聘信息等)。
(7)、在文章中適當將相關關鍵詞指向權威網站,提高網站在搜索引擎中的信任度。
另外,馬海祥提醒各位站長或SEO優化人員,在做網站外鏈建設的時候,也有一些注意事項要特別留意的,比如:
(1)、鏈接文字中包含關鍵詞,注意關鍵詞的多樣化。
(2)、盡量與相關性較高的網站交換,對方PR值要比自己網站大,對方導出的鏈接越少越好。
(3)、注意外鏈錨文本的多樣性(具體可查看馬海祥博客《網站外鏈建設的重點在於平台分散和外鏈質量》的相關介紹)。
五、網站人員配備
一般來說,一個普通網站需要配備的人員是:網站編輯2名、外鏈專員1人。
1、網站編輯的職責
進行網站文章原創、偽原創內容的編輯,對新聞事件、博客、微博等編輯原創文章、故事,獲取網站的信息並更改編寫。
馬海祥提醒各位站長,要注重網站內容發布頻率,定時更新網站欄目的內容,每天保證定量10篇以上的文章更新。
2、外鏈專員的職責
主要進行站外論壇、博客、微博、事件等的推廣,每天按量發布更新內容,保證與主網站內容事件的更新頻率,並對發布的內容進行跟蹤維護,統計分析發布的效果,尋找網站外鏈互換合作,並統計網站訪問流量、關鍵詞數據分析,定期整改存在的網站問題,同時收集訪客信息進行統計分析。
六、網站效果監控和分析
待網站運營一段時間後,作為一個專業的SEO優化人員,需要做的就是對網站的SEO優化效果進行分析和評估(具體可查看馬海祥博客《如何分析並評估網站的SEO效果》的相關介紹),效果的監控可以讓我們很清楚地了解到這一次的SEO工作的投資回報率,有哪些需要改進的等等。
1、統計網站訪問數據,分析來訪客資源信息,分析總結增加流量的途徑。
2、對於投放的關鍵詞進行統計分析,總計不同時間、空間上的關鍵詞熱度,同時對於本站關鍵詞有效果的不斷進行分析改進,特別是在有活動事件影響的同時。
統計數據的分析包括分析流量統計系統和伺服器日誌,通過這些數據的分析,同樣可以了解到整個SEO計劃產生的效益,其中包括客戶轉化率、哪些關鍵詞轉化率高、新的關鍵詞選擇等等。。希望我的回答能夠幫助您,還望採納。
Ⅱ 電腦網速有什麼優化的方法
現在我們計算機時代,網速成為工作效率的一個重要條件,那麼對於網路有什麼方法可以優化提高速度呢?下面就由我跟大家分享電腦網速優化提高上網速度的方法吧,希望對大家有所幫助~
電腦網速優化提高上網速度的方法
1、首先按組合鍵win+r打開運行窗口,輸入regedit並按回車調出注冊表編輯器,
2、在注冊表編輯器窗口中,依次展開路徑“HKEY_LOCAL_
servicesTcpipParameters”,然後在其右側找到DefaultTTL項並雙擊將其打開,
5、最後找到EnablePMTUBHDetect並雙擊打開,其數值數據更改為0,按確定保存設置,
總結:完成上述設置之後,重新啟動計算機即可,好了,以上便是電腦網速優化的具體操作方法,有需要的朋友不妨按照上述步驟進行嘗試。
參考閱讀:
第一步:挑一款好用的路由器
提高網速的第一步——挑選好用的路由器,好吧,這還是要花點小錢的。ISP運營商會給你一個默認的無線無路由,也許你也可能在黑色星期五大促銷那天花30美元買了一個,不過僅僅依靠這些還不足以充分挖掘你的網速。花點錢買一款好用的路由器吧,對於網速的提升非常明顯。
挑路由要選擇自帶數據包優先順序和Qos功能的產品,可以讓你選擇哪些應用和哪台電腦享用帶寬,也可以做相應限制。舉例子,白天上網你不肯定不太希望P2P下載軟體佔用全部帶寬(很多下載軟體已經可以做到控制帶寬)。
裝機愛好者可以嘗試刷一下Tomato USB或者DD-WRT這類路由器固件。如果你購買的路由器允許刷固件,你可以嘗試著刷以上固件,這樣你不必去商店花大筆錢也能享受QoS等新功能。也有路由器公司乾脆出售預裝DDWRT的路由設備。
第二步:合理設置路由可以大幅提升網速
換個DNS伺服器對路由器也很有幫助,試著用一下Gibson Research DNS工具條,這個工具可以實時顯示與你的主機響應速度最快的DNS伺服器。如果你知道怎麼進入路由器的管理界面,你就可以輸入工具條給出的最佳DNS伺服器地址,這樣設置後連接速度將大幅提升。
有個叫Squid的免費又好用的緩存代理伺服器——無需Linux系統就可以使用。感謝Acme Consulting團隊讓我們用上了Windows版的Squid。
如果需要同時連接的設備不是很多,老牌的WinGate也很好用。這款免費軟體可以支持三個設備同時接入,但是界面友好度不如Squid。
說了那麼多,為什麼要用緩存代理伺服器呢?因為這樣做可以提高某些經常訪問的頁面的載入速度,同時所有接入設備的連接速度都可以提高。
第三步:檢查你的瀏覽器
現在該看看你用的瀏覽器了。目前主流瀏覽器的更新版都比去年的老版速度更快,那麼哪款瀏覽器在低帶寬接入的表現最佳呢?沒有瀏覽器能滿足你所有要求,所以你最好還是親自試試,然後再決定。
老美人Opera最為人稱道的Off-road模式讓用戶可以在不良網速下體驗良好的連接速度。這個模式的工作原理是當你發出一個鏈接請求,Opear的遠程代理伺服器會對網頁進行壓縮和優化。代價是圖片質量下降,網頁元素可能顯示不完全。不過這個功能對速度至上的用戶而言還是值得做出犧牲的。
現在火熱的Chrome瀏覽器也自帶載入特性可以保障瀏覽的順暢體驗。不過Chrome的做法是預先判斷你會點擊的內容進行預下載,這樣給你造成點擊鏈接速度提高的感覺。而且判斷准確率還不錯,這已經不是什麼新聞,因為Chrome的母親,搜索老大Google對Chrome用戶的瀏覽習慣太熟悉不過了。
IE11也綁定了相似的預判預讀技術,對絕大多數主流網站,IE11和Chrome的載入速度不相上下。
你覺得你想自己搞定?那麼試試火狐吧。火狐的擴展應用非常多,而且你可以通過about:config測試喜歡用的功能開關,選項多到你看不過來(只是記得要記住你改的是哪些選項)。這些自定義選項和擴展工具都可以幫助你提高網速。
或許你可以試著換一款好用的下載軟體。如果經常下載大文件,你應該選擇一款可以指定計劃任務的軟體。除了國人熟知的迅雷、快車和旋風,Free Download Manager也是不錯的選擇,同樣的推薦還有JDownloader。
更多提升瀏覽速度的高級技巧,例如VPS,確實可以大幅提高載入速度,而且租用費用也比你想像的便宜。
Ⅲ 如何進行網站性能優化
一、前端優化
網站性能優化是一個很綜合的話題,涉及到伺服器的配置和網站前後端程序等各個方面,我只是從實際經歷出發,分享一下自己所嘗試過的網站性能優化方法。之所以在標題上掛一個web2.0,是因為本文更偏重於中小網站的性能優化,我所使用的系統也是典型web2.0的LAMP架構。
首先講講前端的優化,用戶訪問網頁的等待時間,有80%是發生在瀏覽器前端,特別是頁面和頁面中各種元素(圖片、CSS、Javascript、 flash…)的下載之上。因此在很多情況下,相對於把大量的時間花在艱苦而繁雜的程序改進上,前端的優化往往能起到事半功倍的作用。雅虎最近將內部使用的性能測試工具yslow向第三方公開,並發布了著名的網站性能優化的十三條規則,建議你下載並安裝yslow,並作為測評網站優化效果的工具。下面我挑其中特別有價值的具體說明一下優化的方法:
對於第一次訪問您網站,尚未在瀏覽器cache中緩存您網站內容的用戶,我們可以做的事情包括:
1)減少一個型做咐頁面訪問所產生的http連接次數
對於第一次訪問你網站的用戶,頁面所產生的http連接次數是影響性能的一個關鍵瓶頸。
對策:
- 盡量簡潔的頁面設計,最大程度減少圖片的使用,通過放棄一些不必要的頁面特效來減少javascript的使用。
- 使用一些優化技巧,比如利用圖片的背景位移減少圖片的個數;image map技術;使用Inline images將css圖片捆綁到網頁中。
- 盡量合並js和css文件,減少獨立文件個數。
2) 使用gzip壓縮網頁內容
使用gzip來壓縮網頁中的靜態內容,能夠顯著減少用戶訪問網頁時的等待時間(據說可達到60%)。主流的web伺服器都支持或提供gzip壓縮,如果使用apache伺服器,只需要在配置文件中開啟 mod_gzip(apache1.x)或mod_deflate(apache2.x)即可。凡是靜態的頁面,使用gzip壓縮都能夠顯著提高伺服器效率並減少帶寬支出,注意圖片內容本身已經是壓縮格式了,務必不要再進行壓縮。
3)將CSS放在頁面頂端,JS文件放在頁面底端
CSS的引用要放在html的頭部header中,JS文件引用盡量放在頁面底端標簽的後面,主要的思路是讓核心的頁面內容盡早顯示出來。不過要注意,一些大量使用js的頁面,可能有一些js文件放在底端會引起一些難以預料的問題,根據實際情況適當運用即可。
4)使JS文件內容最小化
具體來說就是使用一些javascript壓縮工具對js腳本卜純進行壓縮,去除其中的空白字元、注釋,最小化變數名等。在使用gzip壓縮的基礎上,對js內容的壓縮能夠將性能再提高5%。
5)盡量減少外部腳本的使用,減少DNS查詢時間
不要在網頁中引用太多的外部腳本,首先,一次dns的解析過程會消耗20-120毫秒的時間;其次,如果在頁面中引用太多的外部文件(如各種廣告、聯盟等代碼),可能會因為外部文件的響應速度而將你的網站拖得很慢。如果不得不用,那麼就盡量將這些腳本放在頁腳吧。不過有一點需要提及,就是瀏覽器一般只能並行處理同一域名下的兩個請求,而對於不同子的域名則不受此限制,因此適當將本站靜態內容(css,js)放在其他的子域名下(如 static.xxx.com)會有利於提高瀏覽器並行下載網頁內容的能力。
對於您網站的經常性訪問用戶,主要的優化思路就是最大限度利用用戶瀏覽器的cache來減少伺服器的開銷。
1)在header中添加過期時間(Expires Header)
在header中給靜態內容添加一個較長的過期時間,這樣可以使用戶今後訪問只讀取緩存中的文件,而不會與伺服器產生任何的交互。不過這樣做也存在一些問題,當圖片、CSS和js文件更新時,用戶如果不刷新瀏覽器,就無法獲得此更胡備新。這樣,我們在對圖片、css和js文件修改時,必須要進行重命名,才能保證用戶訪問到最新的內容。這可能會給開發造成不小的麻煩,因為這些文件可能被站點中的許多文件所引用。flickr提出的解決辦法是通過url rewrite使不同版本號的URL事實上指向同一個文件,這是一個聰明的辦法,因為url級別的操作效率是很高的,可以給開發過程提供不少便利。
要理解為什麼這樣做,必須要了解瀏覽器訪問url時的工作機制:
a. 第一次訪問url時,用戶從伺服器段獲取頁面內容,並把相關的文件(images,css,js…)放在高速緩存中,也會把文件頭中的expired time,last modified, ETags等相關信息也一同保留下來。
b. 用戶重復訪問url時,瀏覽器首先看高速緩存中是否有本站同名的文件,如果有,則檢查文件的過期時間;如果尚未過期,則直接從緩存中讀取文件,不再訪問伺服器。
c. 如果緩存中文件的過期時間不存在或已超出,則瀏覽器會訪問伺服器獲取文件的頭信息,檢查last modifed和ETags等信息,如果發現本地緩存中的文件在上次訪問後沒被修改,則使用本地緩存中的文件;如果修改過,則從伺服器上獲取最新版本。
我的經驗,如果可能,盡量遵循此原則給靜態文件添加過期時間,這樣可以大幅度減少用戶對伺服器資源的重復訪問。
2)將css和js文件放在獨立外部文件中引用
將css和js文件放在獨立文件中,這樣它們會被單獨緩存起來,在訪問其他頁面時可以從瀏覽器的高速緩存中直接讀取。一些網站的首頁可能是例外的,這些首頁的自身瀏覽可能並不大,但卻是用戶訪問網站的第一印象以及導向到其他頁面的起點,也可能這些頁面本身使用了大量的ajax局部刷新及技術,這時可以將 css和js文件直接寫在頁面中。
3)去掉重復的腳本
在IE中,包含重復的js腳本會導致瀏覽器的緩存不被使用,仔細檢查一下你的程序,去掉重復引用的腳本應該不是一件很難的事情。
4)避免重定向的發生
除了在header中人為的重定向之外,網頁重定向常在不經意間發生,被重定向的內容將不會使用瀏覽器的緩存。比如用戶在訪問,伺服器會通過301轉向到/,在後面加了一個「/」。如果伺服器的配置不好,這也會給伺服器帶來額外的負擔。通過配置apache的 alias或使用mod_rewrite模塊等方法,可以避免不必要的重定向。
還有一些,比如使用CDN分發機制、避免CSS表達式等、避免使用ETags等,因為不太常用,這里就不再贅述了。
做完了上述的優化,可以試著用yslow測試一下網頁的性能評分,一般都可以達到70分以上了。
當然,除了瀏覽器前端和靜態內容的優化之外,還有針對程序腳本、伺服器、資料庫、負載的優化,這些更深層次的優化方法對技術有更高的要求。本文的後半部分將重點探討後端的優化。
二、後端優化
上次寫完web2.0網站前端優化篇之後,一直想寫寫後端優化的方法,今天終於有時間將思路整理了出來。
前端優化可以避免我們造成無謂的伺服器和帶寬資源浪費,但隨著網站訪問量的增加,僅靠前端優化已經不能解決所有問題了,後端軟體處理並行請求的能力、程序運 行的效率、硬體性能以及系統的可擴展性,將成為影響網站性能和穩定的關鍵瓶頸所在。優化系統和程序的性能可以從以下的方面來入手:
1)apache、mysql等軟體的配置的優化
盡管apache和mysql等軟體在安裝後使用的默認設置足以使你的網站運行起來,但是通過調整mysql和apache的一些系統參數,還是可以追求更高的效率和穩定性。這個領域中有很多專業的文章和論壇(比如: ),要想掌握也需要進行深入的研究和實踐,這里就不重點討論了。
2)應用程序環境加速
這里僅以我最常應用的php開發環境為例,有一些工具軟體可以通過優化PHP運行環境來達到提速的目的,其基本原理大致是將PHP代碼預編譯並緩存起來,而不需要改變任何代碼,所以比較簡單,可以將php的運行效率提升50%以上。比較常用的php加速工具有:APC( http: //pecl.php.net/package-info.php?package=APC)、Turck MMCache( )、php accelebrator(),還有收費的Zend Performance Suite
3)將靜態內容和動態內容分開處理
apache是一個功能完善但比較龐大的web server,它的資源佔用基本上和同時運行的進程數呈正比,對伺服器內存的消耗比較大,處理並行任務的效率也一般。在一些情況下,我們可以用比較輕量級的web server來host靜態的圖片、樣式表和javascript文件,這樣可以大大提升靜態文件的處理速度,還可以減少對內存佔用。我使用的web server是來自俄羅斯的nginx,其他選擇方案還包括lighttpd和thttpd等。
4)基於反向代理的前端訪問負載均衡
當一台前端伺服器不足以應付用戶訪問時,通過前端機實現web訪問的負載均衡是最快速可行的方案。通過apache的mod_proxy可以實現基於反向代理的負載均衡,這里推薦使用nginx做代理伺服器,處理速度較apache更快一些。
5)應用緩存技術提高資料庫效能,文件緩存和分布式緩存
資料庫訪問處理並發訪問的能力是很多網站應用的關鍵瓶頸,在想到使用主從結構和多farm的方式構建伺服器集群之前,首先應該確保充分使用了資料庫查詢的緩存。一些資料庫類型(如mysql的innoDB)自身內置對緩存的支持,此外,還可以利用程序方法將常用的查詢通過文件或內存緩存起來。比如通過 php中的ob_start和文件讀寫函數可以很方便的實現文件形式的緩存,而如果你擁有多台伺服器,可以通過memcache技術通過分布式共享內存來對資料庫查詢進行緩存,不僅效率高而且擴展性好,memcache技術在livejournal和Craigslist.org等知名網站應用中都得到了檢驗。
6)伺服器運行狀態的檢測,找到影響性能的瓶頸所在
系統優化沒有一勞永逸的方法,需要通過檢測伺服器的運行狀態來及時發現影響性能的瓶頸,以及可能存在的潛在問題,因為網站的性能,永遠取決於木桶中的短板。可以編寫一些腳本來檢測web服務的運行,也有一些開源的軟體也提供了很好的功能
7)良好的擴展架構是穩定和性能的基礎
一些技巧和竅門可以幫你度過眼前的難關,但要想使網站具備應付大規模訪問的能力,則需要從系統架構上進行徹底的規劃,好在很多前人無私的把他們架構
網站的經驗分享給我們,使我們可以少走甚多彎路。我最近讀到的兩篇有啟發的文章:
- 從LiveJournal後台發展看大規模網站性能優化方法
- Myspace的六次重構
最後不得不提到程序編碼和資料庫結構對性能的影響,一系列糟糕的循環語句,一個不合理的查詢語句、一張設計不佳的數據表或索引表,都足以會使應用程序運行的速度成倍的降低。培養全局思考的能力,養成良好的編程習慣,並對資料庫運行機制有所了解,是提高編程質量的基礎。
Ⅳ 前端開發,頁面優化,性能優化有哪些方面
感覺前端的性能確實是很重要的,我談談我在實際項目中的應用。前端的應用主要從以下幾個方面進行優化:
1.減少http請求
HTTP協議是無狀態的應用層協議,意味著每次HTTP請求都需要建立通信鏈路、進行數據傳輸,而在伺服器端,每個HTTP都需要啟動獨立的線程去處理。這些通信和服務的開銷都很昂貴,減少HTTP請求的數目可有效提高訪問性能。減少HTTP的主要手段是合並CSS、合並JavaScript、合並圖片。將瀏覽器一次訪問需要的JavaScript、CSS合並成一個文件,這樣瀏覽器就只需要一次請求。圖片也可以合並,多張圖片合並成一張,如果每張圖片都有不同的超鏈接,可通過CSS偏移響應滑鼠點擊操作,構造不同的URL。
2.使用瀏覽器緩存
對一個網站而言,CSS、JavaScript、Logo、圖標這些靜態資源文件更新的頻率都比較低,而這些文件又幾乎是每次HTTP請求都需要的,如果將這些文件緩存在瀏覽器中,可以極好地改善性能。通過設置HTTP頭中Cache-Control和Expires的屬性,可設定瀏覽器緩存,緩存時間可以是數天,甚至是幾個月。在某些時候,靜態資源文件變化需要及時應用到客戶端瀏覽器,這種情況,可通過改變文件名實現,即更新JavaScript文件並不是更新JavaScript文件內容,而是生成一個新的JS文件並更新HTML文件中的引用。使用瀏覽器緩存策略的網站在更新靜態資源時,應採用批量更新的方法,比如需要更新10個圖標文件,不宜把10個文件一次全部更新,而是應一個文件一個文件逐步更新,並有一定的間隔時間,以免用戶瀏覽器突然大量緩存失效,集中更新緩存,造成伺服器負載驟增、網路堵塞的情況。
3.啟用壓縮
在伺服器端對文件進行壓縮,在瀏覽器端對文件解壓縮,可有效減少通信傳輸的數據量。文本文件的壓縮效率可達80%以上,因此HTML、CSS、JavaScript文件啟用GZip壓縮可達到較好的效果宴襪。但是壓縮對伺服器和瀏覽器產生一定的壓力,在通信帶寬良好,而伺服器資源不足的情況下要權衡考慮。
4.CSS放在頁面最上面、JavaScript放在頁面最下面
瀏覽器會在下載完全部CSS之後才對整個頁面進行渲染,因此最好的做法是將CSS放在頁面最上面,讓瀏覽器盡快下載CSS。JavaScript則相反,瀏覽器在載入JavaScript後立即執行,有可能會阻塞整個頁面,造成頁面顯示緩慢,因此JavaScript最好放在頁面最下面。但如果頁面解析時就需要用到JavaScript,這時放在底閉祥坦部就不合適了。
5.減少Cookie傳輸
Cookie在每次響應請求中,如果太大勢必會影響性能,所以沒必要網cookie放的就不放,針對性的選擇放入cookie的數據。
總之,優化轎桐的方法還很多,我感觸最深的是第4項,有些js文件大引用如果放到最前面對性能損耗很大。
Ⅳ 如何提高網頁運行性能
從編碼方面
一、 緩存
緩存是ASP.NET中提高性能的重要手段,緩存一般遵循以下原則:
1) 在頁面中將靜態內容與動態內容分割開來
考慮將動態內容作成用戶控制項
2) 緩存合理的數據
一般應當緩存應用程序集的數據、多個用戶共同使用的數據、靜態數據、生成數據需要很大開銷的動態數據、DataSet以及自定義對象等。不要緩存資料庫連接對象、DataReader。
3) 選擇適當的方式
如可以使用頁面緩存指令,API等。
二、 視圖狀態
視圖狀態放在頁面中名為_VIEWSTATE的表單隱藏域裡面,隨頁面一起被發送到客戶端,在用戶提交頁態手面時,又被提交到伺服器。
1) 如果不需要視圖狀態,則禁用
視圖狀態默認是允許的,如果頁面不進行PostBack,如果不處理伺服器控制項的事件,如果伺服器控制項的數據每次都需要重新計算等
2) 盡量減少視圖狀態中存放的對象
三、 關於頁面處理(減少頁面生成的時間和過程)
1) 應盡量減少頁面文件的大小
2) 通過檢測Page.IsPostBack減少代碼執行的數量
3) 禁止使用Debug=「true」,減少頁面生成過程中生成額外的調試信息
4) 使用Server.Transfer而不使用Response.Redirect,減少伺服器和客戶端間的往返
5) 盡量使用客戶端驗證,減少伺服器和客戶端間的往返
6) 在適當的場合使用伺服器控制項
7) 盡量避免嵌套的伺服器控制項
四、 避免使用Page.DataBind和DataBinder.Eval
五、 關於Application對象和Session對象
1) 使用靜態屬性存儲數據而不使用Application對象,在Application對象里存儲只讀類型的數據都將回提高性能
2) 盡量使用InProc模式的Session,這個模式是最快的
3) 在Session里存儲基本類型的數據減少序列化的所消耗的資源
4) 如果不用Session變數,使用EnvableViewState=「false」禁用
5) 如果不修改Session變數的值,盡量使用ReadOnly屬性設置
六、 關於字元串操作
1) 盡量使用Response.Write將結果廳猛輸出到瀏覽器,這種方法是最快的。不要將字元串連接在一起一次輸出。
2) 在字元串短並且少的情況下可以使用String.Concat方法,而在字元串長度未知,並且字元串大的情況下,使用StringBuilder對象
3) 不要使用strVar==「」來判斷字元串是否為「」,這樣它會創建額外的字元串,請使用strVar==String.Empty代替或者使扮閉橋用strVar.Length==0來判斷
4) 請使用String.Compare方法進行字元串的比較
七、 關於數據訪問
1) 盡量使用存儲過程返回數據,不要直接在代碼中進行查詢
2) 在資料庫中只返回有用的數據結果,不要選擇不使用的數據欄位
3) 進行使用DataReader進行數據綁定,DataReader是單向只讀的
4) 盡量一次返回多個數據集而不是每個記錄集分別打開一次資料庫連接進行查詢
5) 盡量晚的打開資料庫,盡量早的關閉資料庫
6) 使用連接池提高性能
7) 使用ExecuteNonQuery方法執行不返回數據的操作,使用ExecuteScalar方法返回單個結果的操作,使用CommandBehavior.Sequentialaccess返回二進制數據或者大數據
8) 如果多次相同的查詢,請使用Command.Prepare方法
9) 使用GetOrdinal方法預先得到索引值,使用索引值比使用字元串的列名查詢數據效率更高
八、 關於代碼優化
1) 在解析基本數據類型時,使用Try方法如果解析失敗,會拋出異常,使用TryParse方法則只執行Else下的語句。
2) 使用AppendAllText、WriteAllBytes等方法讀寫文件內容可以優化性能
3) 將循環判定條件放在for語句外
4) 避免在循環里創建對象
5) 盡量減少裝箱的次數
6) 不要使用例外控製程序的流程
7) 在循環中不要使用不變的對象屬性或者欄位
8) 使用for循環代替foreach循環遍歷結合內容
9) 數組是所有集合中最快的,如果沒有特殊需要,盡量使用數組代替集合
10) 了解各個集合類型的特性,選擇合適的類型
11) 使用泛型避免減少裝箱、拆箱
大型網站,比如門戶網站。在面對大量用戶訪問、高並發請求方面,基本的解決方案集中在這樣幾個環節:使用高性能的伺服器、高性能的資料庫、高效率的編程語言、還有高性能的Web容器。但是除了這幾個方面,還沒法根本解決大型網站面臨的高負載和高並發問題。
上面提供的幾個解決思路在一定程度上也意味著更大的投入,並且這樣的解決思路具備瓶頸,沒有很好的擴展性,下面我從低成本、高性能和高擴張性的角度來說說我的一些經驗。
HTML靜態化
其實大家都知道,效率最高、消耗最小的就是純靜態化的html頁面,所以我們盡可能使我們的網站上的頁面採用靜態頁面來實現,這個最簡單的方法其實也是最有效的方法。但是對於大量內容並且頻繁更新的網站,我們無法全部手動去挨個實現,於是出現了我們常見的信息發布系統CMS,像我們常訪問的各個門戶站點的新聞頻道,甚至他們的其他頻道,都是通過信息發布系統來管理和實現的,信息發布系統可以實現最簡單的信息錄入自動生成靜態頁面,還能具備頻道管理、許可權管理、自動抓取等功能,對於一個大型網站來說,擁有一套高效、可管理的CMS是必不可少的。
除了門戶和信息發布類型的網站,對於交互性要求很高的社區類型網站來說,盡可能的靜態化也是提高性能的必要手段,將社區內的帖子、文章進行實時的靜態化,有更新的時候再重新靜態化也是大量使用的策略,像Mop的大雜燴就是使用了這樣的策略,網易社區等也是如此。
同時,html靜態化也是某些緩存策略使用的手段,對於系統中頻繁使用資料庫查詢但是內容更新很小的應用,可以考慮使用html靜態化來實現,比如論壇中論壇的公用設置信息,這些信息目前的主流論壇都可以進行後台管理並且存儲再資料庫中,這些信息其實大量被前台程序調用,但是更新頻率很小,可以考慮將這部分內容進行後台更新的時候進行靜態化,這樣避免了大量的資料庫訪問請求。
圖片伺服器分離
大家知道,對於Web伺服器來說,不管是Apache、IIS還是其他容器,圖片是最消耗資源的,於是我們有必要將圖片與頁面進行分離,這是基本上大型網站都會採用的策略,他們都有獨立的圖片伺服器,甚至很多台圖片伺服器。這樣的架構可以降低提供頁面訪問請求的伺服器系統壓力,並且可以保證系統不會因為圖片問題而崩潰,在應用伺服器和圖片伺服器上,可以進行不同的配置優化,比如apache在配置ContentType的時候可以盡量少支持,盡可能少的LoadMole,保證更高的系統消耗和執行效率。
資料庫集群和庫表散列
大型網站都有復雜的應用,這些應用必須使用資料庫,那麼在面對大量訪問的時候,資料庫的瓶頸很快就能顯現出來,這時一台資料庫將很快無法滿足應用,於是我們需要使用資料庫集群或者庫表散列。
在資料庫集群方面,很多資料庫都有自己的解決方案,Oracle、Sybase等都有很好的方案,常用的MySQL提供的Master/Slave也是類似的方案,您使用了什麼樣的DB,就參考相應的解決方案來實施即可。
上面提到的資料庫集群由於在架構、成本、擴張性方面都會受到所採用DB類型的限制,於是我們需要從應用程序的角度來考慮改善系統架構,庫表散列是常用並且最有效的解決方案。我們在應用程序中安裝業務和應用或者功能模塊將資料庫進行分離,不同的模塊對應不同的資料庫或者表,再按照一定的策略對某個頁面或者功能進行更小的資料庫散列,比如用戶表,按照用戶ID進行表散列,這樣就能夠低成本的提升系統的性能並且有很好的擴展性。sohu的論壇就是採用了這樣的架構,將論壇的用戶、設置、帖子等信息進行資料庫分離,然後對帖子、用戶按照板塊和ID進行散列資料庫和表,最終可以在配置文件中進行簡單的配置便能讓系統隨時增加一台低成本的資料庫進來補充系統性能。
緩存
緩存一詞搞技術的都接觸過,很多地方用到緩存。網站架構和網站開發中的緩存也是非常重要。這里先講述最基本的兩種緩存。高級和分布式的緩存在後面講述。
架構方面的緩存,對Apache比較熟悉的人都能知道Apache提供了自己的緩存模塊,也可以使用外加的Squid模塊進行緩存,這兩種方式均可以有效的提高Apache的訪問響應能力。
網站程序開發方面的緩存,Linux上提供的Memory Cache是常用的緩存介面,可以在web開發中使用,比如用Java開發的時候就可以調用MemoryCache對一些數據進行緩存和通訊共享,一些大型社區使用了這樣的架構。另外,在使用web語言開發的時候,各種語言基本都有自己的緩存模塊和方法,PHP有Pear的Cache模塊,Java就更多了,.net不是很熟悉,相信也肯定有。
鏡像
鏡像是大型網站常採用的提高性能和數據安全性的方式,鏡像的技術可以解決不同網路接入商和地域帶來的用戶訪問速度差異,比如ChinaNet和ENet之間的差異就促使了很多網站在教育網內搭建鏡像站點,數據進行定時更新或者實時更新。在鏡像的細節技術方面,這里不闡述太深,有很多專業的現成的解決架構和產品可選。也有廉價的通過軟體實現的思路,比如Linux上的rsync等工具。
負載均衡
負載均衡將是大型網站解決高負荷訪問和大量並發請求採用的終極解決辦法。
負載均衡技術發展了多年,有很多專業的服務提供商和產品可以選擇,其中有兩個架構可以參考。
硬體四層交換
第四層交換使用第三層和第四層信息包的報頭信息,根據應用區間識別業務流,將整個區間段的業務流分配到合適的應用伺服器進行處理。第四層交換功能就象是虛 IP,指向物理伺服器。它傳輸的業務服從的協議多種多樣,有HTTP、FTP、NFS、Telnet或其他協議。這些業務在物理伺服器基礎上,需要復雜的載量平衡演算法。在IP世界,業務類型由終端TCP或UDP埠地址來決定,在第四層交換中的應用區間則由源端和終端IP地址、TCP和UDP埠共同決定。
在硬體四層交換產品領域,有一些知名的產品可以選擇,比如Alteon、F5等,這些產品很昂貴,但是物有所值,能夠提供非常優秀的性能和很靈活的管理能力。Yahoo中國當初接近2000台伺服器使用了三四台Alteon就搞定了。
軟體四層交換
大家知道了硬體四層交換機的原理後,基於OSI模型來實現的軟體四層交換也就應運而生,這樣的解決方案實現的原理一致,不過性能稍差。但是滿足一定量的壓力還是游刃有餘的,有人說軟體實現方式其實更靈活,處理能力完全看你配置的熟悉能力。
軟體四層交換我們可以使用Linux上常用的LVS來解決,LVS就是Linux Virtual Server,他提供了基於心跳線heartbeat的實時災難應對解決方案,提高系統的魯棒性,同時可供了靈活的虛擬VIP配置和管理功能,可以同時滿足多種應用需求,這對於分布式的系統來說必不可少。
一個典型的使用負載均衡的策略就是,在軟體或者硬體四層交換的基礎上搭建squid集群,這種思路在很多大型網站包括搜索引擎上被採用,這樣的架構低成本、高性能還有很強的擴張性,隨時往架構裡面增減節點都非常容易。這樣的架構我准備空了專門詳細整理一下和大家探討。
Internet的規模每一百天就會增長一倍,客戶希望獲得7天24小時的不間斷可用性及較快的系統反應時間,而不願屢次看到某個站點"Server Too Busy"及頻繁的系統故障。
網路的各個核心部分隨著業務量的提高、訪問量和數據流量的快速增長,其處理能力和計算強度也相應增大,使得單一設備 根本無法承擔。在此情況下,如果扔掉現有設備去做大量的硬體升級,這樣將造成現有資源的浪費,而且如果再面臨下一次業務量的提升,這又將導致再一次硬體升級的高額成本投入,甚至性能再卓越的設備也不能滿足當前業務量的需求。於是,負載均衡機制應運而生。
負載均衡(Load Balance)建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴展網路設備和伺服器的帶寬、增加吞吐量、加強網路數據處理能力、提高網路的靈活性和可用性。
負載均衡有兩方面的含義:首先,大量的並發訪問或數據流量分擔到多台節點設備上分別處理,減少用戶等待響應的時間;其次,單個重負載的運算分擔到多台節點設備上做並行處理,每個節點設備處理結束後,將結果匯總,返回給用戶,系統處理能力得到大幅度提高。
負載均衡技術主要應用:
DNS負載均衡 最早的負載均衡技術是通過DNS來實現的,在DNS中為多個地址配置同一個名字,因而查詢這個名字的客戶機將得到其中一個地址,從而使得不同的客戶訪問不同的伺服器,達到負載均衡的目的。DNS負載均衡是一種簡單而有效的方法,但是它不能區分伺服器的差異,也不能反映伺服器的當前運行狀態。
代理伺服器負載均衡使用代理伺服器,可以將請求轉發給內部的伺服器,使用這種加速模式顯然可以提升靜態網頁的訪問速度。然而,也可以考慮這樣一種技術,使用代理伺服器將請求均勻轉發給多台伺服器,從而達到負載均衡的目的。
地址轉換網關負載均衡 支持負載均衡的地址轉換網關,可以將一個外部IP地址映射為多個內部IP地址,對每次TCP連接請求動態使用其中一個內部地址,達到負載均衡的目的。
協議內部支持負載均衡 除了這三種負載均衡方式之外,有的協議內部支持與負載均衡相關的功能,例如HTTP協議中的重定向能力等,HTTP運行於TCP連接的最高層。
NAT負載均衡 NAT(Network Address Translation 網路地址轉換)簡單地說就是將一個IP地址轉換為另一個IP地址,一般用於未經注冊的內部地址與合法的、已獲注冊的Internet IP地址間進行轉換。適用於解決Internet IP地址緊張、不想讓網路外部知道內部網路結構等的場合下。
反向代理負載均衡 普通代理方式是代理內部網路用戶訪問internet上伺服器的連接請求,客戶端必須指定代理伺服器,並將本來要直接發送到internet上伺服器的連接請求發送給代理伺服器處理。反向代理(Reverse Proxy)方式是指以代理伺服器來接受internet上的連接請求,然後將請求轉發給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet上請求連接的客戶端,此時代理伺服器對外就表現為一個伺服器。反向代理負載均衡技術是把將來自internet上的連接請求以反向代理的方式動態地轉發給內部網路上的多台伺服器進行處理,從而達到負載均衡的目的。
混合型負載均衡在有些大型網路,由於多個伺服器群內硬體設備、各自的規模、提供的服務等的差異,我們可以考慮給每個伺服器群採用最合適的負載均衡方 式,然後又在這多個伺服器群間再一次負載均衡或群集起來以一個整體向外界提供服務(即把這多個伺服器群當做一個新的伺服器群),從而達到最佳的性能。我們將這種方式稱之為混合型負載均衡。此種方式有時也用於單台均衡設備的性能不能滿足大量連接請求的情況下。
對於大型網站來說,前面提到的每個方法可能都會被同時使用到,我這里介紹得比較淺顯,具體實現過程中很多細節還需要大家慢慢熟悉和體會,有時一個很小的squid參數或者apache參數設置,對於系統性能的影響就會很大,希望大家一起討論,達到拋磚引玉之效。
Ⅵ seo優化的幾個方法和步驟
針對很多網友在詢問關於SEO優化的各種問題,今天我做一個統一的回復,為大家清晰的解答。
什麼是SEO優化:
「SEO」又叫「SEO優化」也叫「搜索引擎優化」,主要是利用類似於網路搜索引擎的規則進行相關信息的排名靠前。比如優化網站靠前、優化新聞信息靠前、優化問答靠前等。現在我們講的SEO優化基本上說的就是在網路搜索引擎中進行優化。
SEO優化需要掌握哪些知識:
我們需要掌握的知識比較多,首先要掌握搜索引擎(比如網路)的相關規則,如資訊端規則、網頁端規則、知道端規則等。並且還要了解一些基礎知識:網站權重、內鏈、高質量外鏈等。如果我們是要優化官網的話,還要基礎了解網站代碼的原創度、網站的關鍵詞、描述信息以及網站圖片的ALT等。當然,在實際優化中會遇到很多問題,我們需要靈活運用。
SEO優化找哪家公司合作:
現在很多網路營銷公司都有優化的服務,當然優化的能力都是不一樣的,所以價格也是不一樣的。但是我們要知道在「優化」的行業,有「白帽」和「黑帽」手法的說法。「白帽」就是正規的優化,收到搜索引擎的喜好;而「黑帽」優化是受搜索引擎打擊的,嚴重的情況會直接被搜索引擎K。所以我們最好是自己要掌握一些seo的技術和技巧,這樣就不會在合作中被騙。
SEO學習的方式有哪些:
想要學習SEO可以根據專業的SEO教學的網站學習,也可以報名參加相關的培訓班或課程,採用線上和線下的學習。當然你也可以直接參考「像揭秘魔術一樣解密網路營銷」的由「互聯網技術客」撰寫的《網路營銷推廣技術、技巧深度解密》文檔里的內容進行學習,總之學習的途徑和方式還是比較多的。總的來說,一個新人想要學好SEO其實並不是一件很難的事。
最後真心的希望大家在網路營銷的道路上越走越遠,越走越好!!!