我們都希望有人訪問自己的 WordPress 網站的時候,可以飛快的看到文章,但是沒有下面的這幾個基本優化技巧,怎么能實現?
常規的前端性能優化
無論你的網站是基于什么后臺技術實現的,被訪問者訪問的時候,總是會生成常規的 HTML、CSS、JavaScript 等文件發送回客戶端。要想提速你的網站,可以先從前端方面進行優化。
前端的性能優化是一個很深的東西,有很多技巧和方法,但是你可能只是一個站長而并不是專業的前端工程師,所以這里我只總結幾個基礎卻又很有效的前端性能優化技巧:
1、壓縮圖片:圖片的下載在網頁打開的過程中,占用很多時間,而如果對這些圖片進行壓縮或者其他技巧(例如 lazy load)就可以減少這方面的時間。實踐證明,對 jpg 圖片進行 80% 的壓縮,既保證了肉眼看不出質量問題又可以減少一些尺寸,對 png 格式的圖片,可以使用 TinyPNG 來壓縮。
2、合并文件:這里的文件主要是指 CSS、JavaScript 文件,頁面中每多一個 CSS、JavaScript 文件,瀏覽器就會多一個 HTTP 請求,就會多一個等待時間。理想狀態下,最多只有一個 CSS、JavaScript 文件,并且進行壓縮使其文件盡可能小,這方面建議使用 WP Minify 插件。如果有能力的,還可以合并圖標,把一些小圖片合并起來,做成 CSS Sprite。
3、使用 CDN:假如你的服務器在北京,北京本地訪問起來就會超快,但是廣東地區的訪問者可能會由于距離和線路問題感覺很慢。成熟的 CDN 服務商在全國各地都會有服務器,如果你把靜態文件放在上面,廣東地區訪問你的網站,會從廣東附近的服務器上下載文件,而且 CDN 的服務器和寬帶為下載做了優化,速度一般會超過你的服務器,這樣就可以大大的提速了,目前一般建議使用七牛云存儲來加速靜態文件,這里有 WordPress 插件:七牛鏡像存儲 WordPress 插件。
對于普通站長,了解這些就可以了,下面來談談 WordPress 站點上的優化。
為 WordPress 安裝緩存插件
緩存是提升速度非常重要的東西。當你訪問一個網站,進行過緩存優化的,會將一些圖片和 CSS、JS 文件緩存到你的電腦中。當你下一次訪問的時候,瀏覽器發現緩存中的這些文件沒有過期,就立刻從緩存中調用出來,就不再從你服務器上下載了。這樣,就只需要下載 幾KB 你寫的文字就Ok了,當然打開速度就飛快了。
WordPress 緩存,要看你的服務器的支持程度,如果你的服務器已經安裝了內存緩存這些組件,安裝 Memcached 插件是最優化,如果是虛擬主機,建議安裝了 WP Super Cache。
使用 .htaccess 文件進行緩存
上面是通過安裝插件來進行緩存,如果你不想安裝插件,可以使用下面的方法進行緩存。
將下面代碼按照你的需求修改,放在你 WordPress 站點根目錄下面的 .htaccess 文件中即可:
# 緩存有效時間 1 年
<FilesMatch "/.(ico|pdf|flv)$">
Header set Cache-Control "max-age=29030400, public"
# 緩存有效時間 1 周
<FilesMatch "/.(jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public"
# 緩存有效時間 2 天
<FilesMatch "/.(xml|txt|css|js)$">
Header set Cache-Control "max-age=172800, proxy-revalidate"
# 緩存有效時間 1 分鐘
<FilesMatch "/.(html|htm|php)$">
Header set Cache-Control "max-age=60, private, proxy-revalidate"
注意,緩存雖然很好用,但是并非緩存時間越長越好。有些靜態的文件,很長時間都不會改變其內容,就可以設置時間長一些。有些動態的文件,經常修改的,就需要設置時間短一些。曾經有個好友的博客一個月沒有更新了,問了他一下才知道是緩存設置錯了,結果導致打開的時候還是很久之前的內容。
減少數據庫查詢
動態網站肯定要對數據庫進行一些查詢,而每次查詢,都要建立一個數據庫連接,然后等待數據庫返回數據并輸出。這個過程就要浪費時間。WordPress 上面有很多不必要的查詢和用不到的功能,去掉這些可以提速。
可以使用下面這段代碼來查看一下你的 WordPress 建立了多少查詢,你可以把它復制到主題目錄下面的 functions.php 文件中,就可以在底部看到相關信息:
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;
}
至于如何進行這塊的優化,在我愛水煮魚中有很多關閉無用功能的技巧,你可以按照自己的需求來搜索一下。
找個靠譜的主機
找個靠譜的主機才是最有效的。做最好的優化,結果放在了一臺經常抽風、寬帶就跟電話線似的服務器上,肯定打開也非常慢。選擇主機又是一塊很復雜龐大的內容。如果預算充足,可以選擇 Media Temple 這類主機,一般用戶建議使用 Bluehost 虛擬主機即可。
新聞熱點
疑難解答