WordPress版本越靠后,越來越強(qiáng)大,當(dāng)然也越來越臃腫,如何讓W(xué)ordPress運(yùn)行的更加流暢,讓別人很快地打開你的站點頁面至關(guān)重要。在前面的文章中:加速WordPress:將Gravatar頭像緩存到本地,我們提到了其中的頭像優(yōu)化,那么今天將帶來更多的優(yōu)化方法。
優(yōu)化方法一大堆,無非是通過以下幾點:
常規(guī)的前端性能優(yōu)化
無論你的網(wǎng)站是基于什么后臺技術(shù)實現(xiàn)的,被訪問者訪問的時候,總是會生成常規(guī)的 HTML、CSS、JavaScript 等文件發(fā)送回客戶端。要想提速你的網(wǎng)站,可以先從前端方面進(jìn)行優(yōu)化。
前端的性能優(yōu)化是一個很深的東西,有很多技巧和方法,但是你可能只是一個站長而并不是專業(yè)的前端工程師,所以這里我只總結(jié)幾個基礎(chǔ)卻又很有效的前端性能優(yōu)化技巧:
壓縮圖片:圖片的下載在網(wǎng)頁打開的過程中,占用很多時間,而如果對這些圖片進(jìn)行壓縮或者其他技巧(例如 lazy load)就可以減少這方面的時間。實踐證明,對 jpg 圖片進(jìn)行 80% 的壓縮,既保證了肉眼看不出質(zhì)量問題又可以減少一些尺寸,對 png 格式的圖片,可以使用TinyPNG 來壓縮。
合并文件:這里的文件主要是指 CSS、JavaScript 文件,頁面中每多一個 CSS、JavaScript 文件,瀏覽器就會多一個 HTTP 請求,就會多一個等待時間。理想狀態(tài)下,最多只有一個 CSS、JavaScript 文件,并且進(jìn)行壓縮使其文件盡可能小,這方面建議使用 WP Minify 插件。如果有能力的,還可以合并圖標(biāo),把一些小圖片合并起來,做成 CSS Sprite。
使用 CDN:假如你的服務(wù)器在北京,北京本地訪問起來就會超快,但是廣東地區(qū)的訪問者可能會由于距離和線路問題感覺很慢。成熟的 CDN 服務(wù)商在全國各地都會有服務(wù)器,如果你把靜態(tài)文件放在上面,廣東地區(qū)訪問你的網(wǎng)站,會從廣東附近的服務(wù)器上下載文件,而且 CDN 的服務(wù)器和寬帶為下載做了優(yōu)化,速度一般會超過你的服務(wù)器,這樣就可以大大的提速了,目前一般建議使用七牛云存儲來加速靜態(tài)文件,這里有 WordPress 插件:七牛鏡像存儲 WordPress 插件。WordPress主題站是使用的又拍云儲存,詳見站點底部信息。
對于普通站長,了解這些就可以了,下面來談?wù)?WordPress 站點上的優(yōu)化。
為 WordPress 安裝緩存插件
緩存是提升速度非常重要的東西。當(dāng)你訪問一個網(wǎng)站,進(jìn)行過緩存優(yōu)化的,會將一些圖片和 CSS、JS 文件緩存到你的電腦中。當(dāng)你下一次訪問的時候,瀏覽器發(fā)現(xiàn)緩存中的這些文件沒有過期,就立刻從緩存中調(diào)用出來,就不再從你服務(wù)器上下載了。這樣,就只需要 下載 幾KB 你寫的文字就Ok了,當(dāng)然打開速度就飛快了。
WordPress 緩存,要看你的服務(wù)器的支持程度,如果你的服務(wù)器已經(jīng)安裝了內(nèi)存緩存這些組件,安裝 Memcached 插件是最優(yōu)化,如果是虛擬主機(jī),建議安裝了 WP Super Cache。
使用 .htaccess 文件進(jìn)行緩存
面是通過安裝插件來進(jìn)行緩存,如果你不想安裝插件,可以使用下面的方法進(jìn)行緩存。
將下面代碼按照你的需求修改,放在你 WordPress 站點根目錄下面的 .htaccess 文件中即可:
# 緩存有效時間 1 年Header set Cache-Control "max-age=29030400, public"# 緩存有效時間 1 周Header set Cache-Control "max-age=604800, public"# 緩存有效時間 2 天Header set Cache-Control "max-age=172800, proxy-revalidate"# 緩存有效時間 1 分鐘Header set Cache-Control "max-age=60, private, proxy-revalidate"
上面代碼做了簡單的注釋,緩存時間主要靠下面的 max-age 參數(shù),是以秒作為單位的,緩存時間上面的參數(shù)是要緩存的文件類型。
注意,緩存雖然很好用,但是并非緩存時間越長越好。有些靜態(tài)的文件,很長時間都不會改變其內(nèi)容,就可以設(shè)置時間長一些。有些動態(tài)的文件,經(jīng)常修 改的,就需要設(shè)置時間短一些。曾經(jīng)有個好友的博客一個月沒有更新了,問了他一下才知道是緩存設(shè)置錯了,結(jié)果導(dǎo)致打開的時候還是很久之前的內(nèi)容。
減少數(shù)據(jù)庫查詢
動態(tài)網(wǎng)站肯定要對數(shù)據(jù)庫進(jìn)行一些查詢,而每次查詢,都要建立一個數(shù)據(jù)庫連接,然后等待數(shù)據(jù)庫返回數(shù)據(jù)并輸出。這個過程就要浪費(fèi)時間。WordPress 上面有很多不必要的查詢和用不到的功能,去掉這些可以提速。
可以使用下面這段代碼來查看一下你的 WordPress 建立了多少查詢,你可以把它復(fù)制到主題目錄下面的 functions.php 文件中,就可以在底部看到相關(guān)信息:
add_action( 'wp_footer', 'wpjam_page_speed' ); function wpjam_page_speed() { date_default_timezone_set( get_option( 'timezone_string' ) ); $content = '[ ' . date( 'Y-m-d H:i:s T' ) . ' ] '; $content .= '頁面生成時間 '; $content .= timer_stop( $display = 0, $precision = 2 ); $content .= ' 查詢 '; $content .= get_num_queries(); $content .= ' 次'; if( ! current_user_can( 'administrator' ) ) $content = ""; echo $content; }
至于如何進(jìn)行這塊的優(yōu)化,在我愛水煮魚中有很多關(guān)閉無用功能的技巧,你可以按照自己的需求來搜索一下。
找個靠譜的主機(jī)
當(dāng)然,最重要的也就是找個靠譜的主機(jī)了,首先是推薦備案選擇國內(nèi)主機(jī),貌似備案也不是多難,只是過程等待時間略長了點。
更多信息請查看IT技術(shù)專欄