Tăng tốc website WordPress của bạn một cách hiệu quả bằng file .htaccess.
Tốc độ tải website là một phần thiết yếu của SEO. Nếu website của bạn mất quá nhiều thời gian để tải thì nó sẽ bị “xử phạt” bởi các công cụ tìm kiếm. Google thường phạt các website tải chậm bằng cách loại bỏ khoảng 20% lưu lượng tìm kiếm từ Google Search. Các công cụ tìm kiếm khác như Yahoo, Bing cũng làm điều tương tự khi phạt các website tải chậm bằng cách loại bỏ 15 – 20% lưu lượng truy cập từ trang kết quả tìm kiếm. Dưới đây là một số thủ thuật với file .htaccess, có thể giúp bạn cải thiện hiệu suất website một cách nhanh chóng và hiệu quả.
Tham khảo thêm:
- Bảo mật WordPress hiệu quả bằng file .htaccess
- Tổng hợp thủ thuật với file .htaccess trong WordPress
Một số lưu ý quan trọng
- Thủ thuật này chỉ áp dụng cho các web server hỗ trợ file .htaccess, chẳng hạn như Apache, LiteSpeed Enterprise, Open LiteSpeed…
- Các plugin như LiteSpeed Cache, WP Rocket, WP Fastest Cache… thường đã tích hợp sẵn những code này. Do đó, các bạn không cần phải chèn thủ công nữa.
- Bạn phải chèn các đoạn mã vào trong file .htaccess nằm trong thư mục gốc của tên miền (ngang hàng với file
wp-config.php
). - Sao lưu file .htaccess của bạn trước khi tiến hành việc chỉnh sửa để đảm bảo an toàn.
- Nếu bạn không nhìn thấy file .htaccess trong File Manager của cPanel, hãy làm theo bài hướng dẫn “Hiển thị file .htaccess trong cPanel một cách đơn giản“.
Tăng tốc website WordPress với file .htaccess
Sử dụng code dưới đây để cho phép cache dữ liệu lên trình duyệt web đối với các tập tin tĩnh như hình ảnh, CSS, JS… Thời gian cache là 1 năm hoặc 1 tháng tùy theo loại tập tin):
## EXPIRES CACHING ##
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
## EXPIRES CACHING ##
Đoạn code này sẽ giúp nén tất cả các file CSS, JS, HTML… trước khi gửi cho trình duyệt web của khách truy cập bằng tính năng nén gzip. Code chỉ hoạt động nếu module mod_gzip
được kích hoạt trong web server của bạn.
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
Thêm đoạn code sau nếu web server hỗ trợ mod_deflate
thay vì mod_gzip
:
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI
.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI
.(?:exe|t?gz|zip|gz2|sit|rar)$ no-gzip dont-vary
Nếu mod_deflate
không được hỗ trợ trên web server của bạn, hãy sử dụng đoạn code này:
<FilesMatch ".(txt|html|htm|php)">
php_value output_handler ob_gzhandler
</FilesMatch>
Sử dụng các công cụ test tốc độ website như Google PageSpeed Insights hoặc GTmetrix để kiểm tra kết quả. Thật đơn giản phải không nào? Chúc các bạn thành công!
Hãy cho tôi biết liệu những giải pháp trên có giúp giảm thiểu tốc độ tải website WordPress của bạn hay không? Nếu bạn có bất kỳ thủ thuật nào khác với file .htaccess, đừng quên chia sẻ nó với chúng tôi bằng cách sử dụng khung bình luận bên dưới.
Nếu bạn thích bài viết này, hãy theo dõi blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất nhé. Cảm ơn rất nhiều. :)
Nếu trang web không dùng WP thì có dùng được những thủ thuật này ko nhỉ?
Được bạn nhé. Thực ra mấy code này cũng chẳng liên quan gì đến WordPress. :)
hok hiểu gì cả. Nếu là người có EXP(kinh nghiệm) thì chẳng cần truy cập làm gì. người mới như tui mới tìm hiểu mà đọc thế này thì bó tay.
1 2 3 4 ko giải thích dc gì hết. lỡ có làm sai còn bik mình sai chổ nào chứ
1- che cache để làm gì, là sao, sao phải che.
2- nén Gzip là gì, làm sao nhận biết, làm sao bik module Gzip đang hoạt động, này hok hiểu gì luôn
3- mod-deflate là gì. tìm ở đâu. lúc nào nên dùng code nào. băng khuân vãi
4-như cái 3
mình sr bạn nhe mình thật tình ko hiểu. Này nếu bạn chỉ câu lượt visitor vào web thì mình chào thua rùi chứ nội dung hok dc chất lượng
Mấy cái thuật ngữ như cache, gzip… thì bạn dành vài phút gõ Google là ra nhé. Cái này rất nhiều người giải thích rồi. Mình viết rất nhiều bài liên quan đến việc tối ưu tốc độ load cho WordPress, không thể cứ mỗi bài lại ngồi giải thích lại mấy cái thuật ngữ đó được. Cảm ơn bạn đã góp ý.
Cảm ơn bạn. trước giờ mình làm wordpress nó chậm quá có thủ thuật này cũng cải thiện được phần nào
bạn xem website http://sieuthibaoho.net của mình sao mà google nó báo lỗi trùng dữ liệu quá trời. mình sài joomla muốn chuyển qua wordpress quá đi
web hosting server có hỗ trợ mod_deflate là gì nhỉ? host của hawk host có k?
HawkHost thì cài LiteSpeed Cache vào. :P
Cài vào có cần làm những gì bài viết này hướng dẫn k bác?
Không. Phải biết chọn lọc chứ bạn. Đâu phải cái gì cũng nhét hết vào đâu. :P
Thank ban.
Mình làm các kiểu rồi mà vào google speed test thì vẫn báo chậm. Nó bảo do java chặn hiển thị mà trong lúc đó mình đã allow trong robots.txt rồi. Bạn vào xem rồi tư vấn cho mình phát. Thank bạn!
Bạn thử mẫu file robots.txt giống như trong bài viết này xem: https://wpcanban.com/wordpress/thu-thuat-wordpress/mau-file-robots-txt-chuan-cho-blog-wordpress.html :P
Vào webmaster tool thấy google báo lỗi không tìm thấy nội dung vì dụ như cái này http://baohothaison.com/
Mình không hiểu cái %20%E2%80%8E do phần nào sinh ra mà thấy rất nhiều lỗi tương tự như thế này và không biết bạn có thể chỉ mình cách Disallow cái này ở chỗ nào không.
Và vấn đề nữa là site mình là site bán hàng nên việc Disallow mấy cái như sau có ảnh hưởng gì nhiều đến SEO không bạn nhỉ?
Disallow: /search?q=*
Disallow: *?replytocom
Disallow: */attachment/*
1. Site của bạn có sử dụng plugin tạo cache hay bảo mật nào không?
2. Đoạn code đó trong file robots.txt hầu như không ảnh hưởng gì đến site cả. Nhưng tốt nhất, bạn nên bỏ 2 dòng đằng sau đi.
Mh có dùng plugin wp super cache bạn ạ, không biết nó có ảnh hưởng gì không.
Bạn cấu hình theo bài viết này thử xem: https://wpcanban.com/wordpress/thu-thuat-wordpress/huong-dan-cai-dat-va-cau-hinh-plugin-wp-super-cache.html :P
Cảm ơn bạn nhé!
Nếu đã sử dụng wp rocket rồi thì có cần sử dụng thủ thuật này không bạn?
Không bạn nhé. :)
Bạn ơi mình mở file .htaccess rồi nhưng không biết chèn đoạn mã của bạn ở đâu nữa
Nó đây nè
# Do not remove this line or mod_rewrite rules and search engine friendly URLs will stop working
RewriteBase /
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Bạn thêm vào đầu file nhé. :P Tốt nhất bạn nên tham khảo nội dung file .htaccess có trong bài viết này: https://wpcanban.com/wordpress/thu-thuat-wordpress/nhung-viec-ban-can-lam-ngay-sau-khi-cai-dat-wordpress.html
Bạn ơi nhưng phần
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
Và phần
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI
.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI
.(?:exe|t?gz|zip|gz2|sit|rar)$ no-gzip dont-vary
Và
<FilesMatch “.(txt|html|htm|php)”>
php_value output_handler ob_gzhandler
Ta nên để ở đâu vậy bạn?
Đây là file .htaccess của mình
Header append Vary: Accept-Encoding
Header set Connection keep-alive
Header unset ETag
FileETag None
ExpiresActive on
ExpiresDefault “access plus 1 year”
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Bạn tham khảo bài viết trong comment ngay bên trên nhé. Mình đã tổng hợp và tối ưu nó. Bạn chỉ việc copy và thay thế toàn bộ nội dung có trong file .htaccess hiện tại là được. :)
Bạn ơi cho mình mẫu file .htaccess của bạn đi
Mình cho bạn link tham khảo rồi mà. Nội dung file .htaccess của mình giống hệt như trong hướng dẫn đấy. :P
Các thủ thuật để tăng tốc cho WordPress của Bạn rất hay, nhưng hiện nay do đứt cáp quang, nên mình không thể vào trang của mình để post bài mấy ngày nay. Bạn có cách nào giúp đỡ không? Rất cảm ơn
Với blog WordPress.com thì rất khó bạn ạ. Nó phụ thuộc nhiều vào vị trí máy chủ của WordPress.com và hầu như không thể cải thiện được. CloudFlare lại không hỗ trợ subdomain dạng yourdomain.wordrpess.com. Mình sử dụng mạng Viettel và thấy truy cập blog của bạn rất dễ dàng. Bạn có thể thử dùng mạng Viettel hoặc 3G xem sao nhé. :)