Hướng dẫn tăng tốc website từ A đến Z


Có một mối lo khá phổ biến của những người sử dụng hosting quốc tế đó là tốc độ trong nước không được tối ưu mặc dù vẫn biết chất lượng cũng như khả năng bảo mật của nó rất tốt.

» Các yếu tố ảnh hưởng đến điểm Google PageSpeed Insights
» Sự khác biệt giữa Minification và Gzipping

Nhưng nếu bạn đang sử dụng WordPress thì không thành vấn đề gì trong bài này mình sẽ hướng dẫn bạn cách tăng tốc blog WordPress đầy đủ từ cơ bản đến nâng cao nhằm giảm tải tối đa cho máy chủ cũng như tiết kiệm thời gian tải trang cho người dùng, đây là yếu tố rất quan trọng để bạn có thể cải thiện pageview, giảm tỷ lệ Bounce Rates trên blog.

Sử dụng bộ nhớ đệm – Cache

Trong các cách tăng tốc blog WordPress thì không thể không kể đến bước này vì nó sẽ giúp bạn giảm đến 70% gánh nặng cho máy chủ cũng như thời gian tải trang. Và nếu bạn đang dùng các host phục vụ tốt cho WordPress như A2Hosting, StableHost, Site5 thì lại càng nên dùng cache vì nó sẽ giúp bạn tiết kiệm tài nguyên hơn.

Trong WordPress, có 2 plugin hỗ trợ tạo cache tốt nhất đó là:

  • WP Super Cache – Plugin tạo cache đơn giản nhưng rất tốt, thích hợp cho những ai đang sử dụng hosting thông thường.
  • W3 Total Cache – Plugin tạo cache miễn phí chuyên nghiệp nhất mọi thời đại, thích hợp cho website WordPress đang chạy trên môi trường máy chủ riêng (VPS/Dedicated Server)

Dĩ nhiên, bạn chỉ nên sử dụng 1 trong 2 plugin.

Sử dụng Minify

Minify nghĩa là kỹ thuật gộp các file CSS và JS riêng lẻ đang có trên website của bạn thành một file lớn để người dùng có thể tải toàn bộ nội dung về chỉ với một truy vấn duy nhất, và bản thân file lớn này sẽ được lưu cache vào trình duyệt của người dùng nên sẽ giúp họ truy cập nhanh hơn ở lần truy cập thứ hai.

Trên WordPress, bạn có thể dùng 3 plugin sau đây:

  • WP Minify
  • Better WordPress Minify

Khi sử dụng Minify, hãy lưu ý rằng website của bạn có thể tải chậm hơn bình thường ở lần tải thứ nhất, và không phải theme nào cũng có thể sử dụng Minify vì trong vài trường hợp, website sẽ bị lỗi vỡ khung khi dùng minify. Lúc này bạn không nên cài nó vào nữa.

Làm nhẹ CSS

Thông thường, mỗi file CSS thường có chứa nhiều các thành phần không quan trọng như note, khoảng trắng, code trùng lặp, thừa ký tự,…v.v..Điều này gây ra trở ngại không nhỏ đến tốc độ của website, vì vậy hãy làm nhẹ tất cả file CSS có trong website của bạn bằng cách sau đây:

Truy cập vào CleanCSS.Com

Copy nội dung của các file CSS có trong website vào ô CSS input, hoặc nhập URL dẫn đến file CSS tại ô CSS form URL.

Làm nhẹ CSS

Ở phần Code Layout bên cạnh các bạn nên thiết lập như sau

 

Sau đó nhấn nút Process CSS bên dưới và bạn sẽ nhận được một code CSS mới, kèm theo đó là nó sẽ cho bạn biết đã được giảm xuống bao nhiêu phần trăm so với kích thước cũ. Bây giờ bạn chỉ việc copy đoạn CSS mới đó vào file ban nãy bạn copy để thay thế là được.

Cứ làm như vậy cho các file CSS khác. Cái này bạn đừng nên đòi hỏi plugin gì cả vì không có plugin nào làm tốt công việc này bằng cách thủ công đâu.

Nếu sau khi nén mà theme bị lỗi, thì bạn lấy đoạn CSS đã được nén bỏ vào lại và chọn Compression (code layout) là Standard.

Nén/giảm dung lượng hình ảnh

 

Nếu blog bạn hay sử dụng nhiều hình ảnh giống như mình thì không thể bỏ qua bước nén hình ảnh này để làm nhẹ blog hơn để tải nhanh hơn. Bạn có thể chọn 2 cách nén là nén trực tiếp trên máy tính và nén bằng plugin.

Về nén trực tiếp trên máy thì bạn có thể dùng phần mềm FILEMinimizer Picture.

Còn muốn nén tự động bằng plugin thì các bạn có thể dùng WP Smush.It,EWWW Image Optimizer. Sau khi cài đặt, mỗi lần upload ảnh lên nó sẽ tự động nén cho bạn. Hoặc có thể sử dụng Bulk Optimize trong phần Media để nén tất cả hình ảnh có trên host.

Nén Gzip – Gzip File Compression

Không cần làm nếu đã dùng WP Super Cache hoặc W3 Total Cache.

Nén Gzip sẽ làm giảm thiểu tối đa thời gian phản hồi bằng cách giảm dung lượng tải về từ giao thức HTTP.  Nó có thể nén các thành phần tĩnh trên website như CSS, Javascript, HTML nhưng trên lý thuyết và 1 số trường hợp, nó có thể làm việc cùng với XML và JSON. Các thành phần khác như hình ảnh, tài liệu PDF..v.v..có thể không cần sử dụng gzip vì bản thân nó đã được nén sẵn.

Tăng tốc WordPress với Gzip

Đối với máy chủ Apache

Nếu bạn dùng host thông thường thì dĩ nhiên host của bạn sẽ thuộc loại Apache Webserver, do vậy bạn sẽ cần chèn đoạn sau vào file .htaccess ngoài thư mục gốc của website.

01
02
03
04
05
# BEGIN GZIP
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
 
# END GZIP

Đối với máy chủ Nginx

Nếu máy chủ của bạn đang sử dụng Nginx Webserver thì chèn đoạn sau vào file cấu hình domain trong NGINX.

01
02
03
04
server {
    gzip on;
    gzip_types text/html text/css application/x-javascript text/plain text/xml image/x-icon;
}

Sử dụng Browse Caching

Không cần làm nếu đã dùng WP Super Cache hoặc W3 Total Cache.

Hãy tưởng tượng như thế này, khi bạn vào một website bất kỳ thì trình duyệt phải bắt buộc tải về tất cả thành phần có trong một website để có thể phân tích và hiển thị nó. Và mỗi lần truy cập trình duyệt đều cần phải làm công việc này, khá mất thời gian nếu bạn thường xuyên vào một website nào đó.

Vậy giải pháp Browse Caching có nghĩa là nó sẽ tạo ra bản bộ nhớ đệm của một website và lưu nó vào máy, kể từ các lần truy cập sau trình duyệt sẽ mang dữ liệu trong bộ nhớ đệm này ra thực thi mà không cần phải tải lại một lần nào nữa.

Đối với máy chủ Apache

Apache sẽ đảm nhận chức năng này với 2 module mod_expires và mod_headers.

Để kích hoạt nó bạn chèn đoạn nội dung sau vào file .htaccess

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# BEGIN Expire headers
    ExpiresActive On
    ExpiresDefault "access plus 5 seconds"
    ExpiresByType image/x-icon "access plus 2592000 seconds"
    ExpiresByType image/jpeg "access plus 2592000 seconds"
    ExpiresByType image/png "access plus 2592000 seconds"
    ExpiresByType image/gif "access plus 2592000 seconds"
    ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
    ExpiresByType text/css "access plus 604800 seconds"
    ExpiresByType text/javascript "access plus 216000 seconds"
    ExpiresByType application/javascript "access plus 216000 seconds"
    ExpiresByType application/x-javascript "access plus 216000 seconds"
    ExpiresByType text/html "access plus 600 seconds"
    ExpiresByType application/xhtml+xml "access plus 600 seconds"
 
# END Expire headers
# BEGIN Cache-Control Headers
    
        Header set Cache-Control "public"
    
    
        Header set Cache-Control "public"
    
    
        Header set Cache-Control "private"
    
    
        Header set Cache-Control "private, must-revalidate"
    
 
# END Cache-Control Headers

Đối với máy chủ Nginx

Chèn đoạn sau vào file cấu hình domain.

01
02
03
location ~* .(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
       expires max; log_not_found off; access_log off;
}

Tiết kiệm dung lượng MySQL Database

Các bạn cũng biết là bây giờ WordPress có thêm tính năng tự động lưu các bản nháp bài viết sau mỗi thời gian nhất định. Điều này có thể rất tiện dụng cho bạn nhưng nó lại làm kích thước cơ sở dữ liệu của bạn phình to ra nếu như các bạn không thường xuyên dọn dẹp nó. Còn nếu bạn lười dọn dẹp thì tắt nó luôn cho lành.

Khai báo đoạn code này trong file wp-config.php

01
define('WP_POST_REVISIONS', false );

Tối ưu database

Trong một thời gian dài, database của bạn sẽ sinh ra một số thành phần rác được lưu vào đó sau mỗi lần thực thi lệnh từ máy chủ. Vì vậy không có gì quý hơn là hãy chủ động dọn dẹp nó sau một thời gian nhất định. Mình thường dọn database khoảng 1 tuần 1 lần. Bạn có thể sử dụng các plugin sau đây để dọn dẹp database:

  • WP Optimize

  • Yoast Optimize DB

Ngoài ra, có một lưu ý là khi bạn cài plugin bất kỳ vào thì nó sẽ tự động sinh ra một cột dữ liệu trong table wp_options, nhưng khi tháo plugin ra thì các cột dữ liệu này vẫn giữ nguyên. Vì vậy mỗi lần tháo plugin, tốt nhất bạn nên dùng thêm plugin WP Options Editor để xóa các cột dữ liệu không còn sử dụng.

Sử dụng CDN – Content Devilery Network

Nếu blog bạn có nhiều hình ảnh, video, bla bla…thì sử dụng CDN là cách để cải thiện tốc độ cũng như giảm tải cho máy chủ tốt nhất. Một số nhà cung cấp CDN trả phí tốt nhất hiện nay là:

  • Amazon CloudFront
  • MaxCDN

Nhưng thông thường các dịch vụ CDN luôn có giá hơi đắt, thích hợp sử dụng trên các blog lớn hoặc website quy mô tầm trung trở lên. Nếu bạn muốn dùng CDN miễn phí, hãy cài đặt CloudFlare vào website của bạn là có ngay CDN miễn phí.

Sử dụng kỹ thuật Async cho Javascript

Async nghĩa là kỹ thuật tải không đồng bộ, tức là các file Javascript sẽ không tải ngay khi trình duyệt vừa mở mà sẽ chỉ bắt đầu tải khi trình duyệt đã tải xong các thành phần khác trong website. Để áp dụng kỹ thuật Async trong website, bạn có thể dùng CloudFlare để tùy chỉnh nếu bạn có đang dùng nó, hoặc bạn xem qua các plugin hỗ trợ Async cho WordPress.

Lời kết

Đó là một số cách để tăng tốc blog WordPress trở nên tối ưu nhất. Bây giờ việc còn lại là kiểm tra tốc độ website, bạn có thể xem qua 6 công cụ kiểm tra tốc độ website uy tín để có đánh giá toàn diện nhất về tốc độ thật sự của website bạn để có thể biết đường mà tối ưu tiếp.

Hy vọng sau bài hướng dẫn này các bạn sẽ có thể tăng tốc website của mình lên tốt hơn.


Nguồn Blog Thachpham.com


Có thể bạn quan tâm
25/04/2015
1077