WordPress cơ bản – Bai 23: Hướng dẫn tăng tốc WordPress từ A đến Z

Tăng tốc WordPress
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. 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. Bạn có thể thấy đối với các dịch vụ hosting chất lượng như Justhost, Hostgator, Sitegroundđều tích hợp sẵn plugin WP Super Cache sau khi bạn cài đặt blog thông qua công cụ cài đặt nhanh.
Nếu bạn sử dụng VPS, Dedicated Server thì cache lại càng trở nên quan trọng hơn bao giờ hết.

Sử dụng Minify

Minify là công nghệ nén cache và làm nhẹ các thành phần CSS và Javascript trên website. Thông thường một website chúng ta có rất nhiều file CSS và Javascript khác nhau nhưng với công nghệ này nó sẽ nén tất cả lại thành 1 file duy nhất, sau đó sẽ loại bỏ các khoảng trắng, note để tập tin đó trở nên nhẹ hơn. Sau khi làm nhẹ xong, Minify sẽ làm một công việc quan trọng khác đó là tạo một bản lưu cache trên host để giảm thiểu tối đa truy vấn gửi đến máy chủ để thực thi các tập tin CSS hay Javascript đó.
Trên WordPress, bạn có thể dùng 3 plugin sau đây:
Khi sử dụng Minify, bạn cũng nên hạn chế sử dụng các plugin chứa nhiều Javascript trên blog vì có một vài plugin Javascript sẽ bị xung đột với Minify.

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
Làm nhẹ CSSSau đó 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 code CSS gốc sau đó nén lại với Compression (code layout) là Standard.

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

Nén dữ liệuNế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

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

Kích hoạt gzip bằng htaccess

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

mod_pagespeed là một Apache module được phát triển bởi Google nhằm hỗ trợ nén trang. Hiện tại có một vài nhà cung cấp như Dreamhost, Godaddy đã áp dụng module này vào máy chủ của họ để tối ưu hóa nhanh hơn. Nếu hosting của bạn đang sử dụng chưa kích hoạt sẵn module này thì bạn cần phải kích hoạt thủ công bằng cách thêm nội dung sau vào file .htaccess ở thư mục gốc.
    ModPagespeed on  
    # using commands,filters etc
Nhưng đáng buồn là không phải shared hosting nào cũng hỗ trợ mod_pagespeedmodule. Nếu host bạn không hỗ trợ nó thì có thể dùng mod_deflate để thay thế (Apache 1.3.x sử dụng mod_gzip nhưng từ Apache 2.x trở đi thì nó sử dụng mod_deflate để thay thế).
<ifModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
   </ifModule>

Đố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 nginx.conf
server {  
    gzip on;  
    gzip_types text/html text/css application/x-javascript text/plain text/xml image/x-icon;  
}

Nén gzip bằng file header.php

Nếu hosting của bạn không hỗ trợ cả mod_pagespeed  mod_deflate lẫn mod_gzipthì có thể sử dụng PHP để thực hiện nén gzip. Cách này áp dụng cho cả Apache và Nginx. Chèn code sau vào file header.php
<?php  
if ( substr_count( $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip' ) ) {  
    ob_start( "ob_gzhandler" );  
}  
else {  
    ob_start();  
}  
?>

Sử dụng Browse Caching

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  mod_headers.
Để kích hoạt nó bạn chèn đoạn nội dung sau vào file .htaccess
# BEGIN Expire headers  
<ifModule mod_expires.c>  
    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"  
</ifModule>  
# END Expire headers  
# BEGIN Cache-Control Headers  
<ifModule mod_headers.c>  
    <filesMatch "\.(ico|jpe?g|png|gif|swf)$">  
        Header set Cache-Control "public"  
    </filesMatch>  
    <filesMatch "\.(css)$">  
        Header set Cache-Control "public"  
    </filesMatch>  
    <filesMatch "\.(js)$">  
        Header set Cache-Control "private"  
    </filesMatch>  
    <filesMatch "\.(x?html?|php)$">  
        Header set Cache-Control "private, must-revalidate"  
    </filesMatch>  
</ifModule>  
# END Cache-Control Headers

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

Chèn nội dung sau vào file config của nginx
location ~* \.(jpg|png|gif|jpeg|css|js)$ {  
    expires max;  
}

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
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:
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 Clean Options để 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.
Ngoài MaxCDN ra thì còn có một số nhà cung cấp sau:
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.
Đó 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. Các bạn có thể dùng một số công cụ miễn phí dưới đây để kiểm tra tốc độ website.
Hy vọng sau bài hướng dẫn này các bạn sẽ có thể tăng tốc blog WordPress của mình lên tốt hơn.

0 comments:

Post a Comment

More

Search This Blog