Thứ Ba, 16 tháng 4, 2013

Code giúp tăng tốc độ load website tối ưu tốt cho seo

Bài viết này với mục tiêu chia sẻ code tăng tốc độ load nhằm tối ưu hóa website tốt hơn. Một trong những yếu tố góp phần google index nhanh website của bạn.giúp 1 phần lớn tối ưu cho website của bạn.

Về ý tưởng tăng tốc độ load website, mình xin mô tả là đoạn code này dựa trên yếu tố trình duyệt là chủ yếu. Nội dung website khi đã load 1 lần rồi, thì nó sẽ lưu lại dữ liệu là các tập tin javascript, hình ảnh (gif, png, jpg), css,... Ngoài việc lưu lại các tập tin này, thì nó sẽ còn gia tăng chỉ số expires của các tập tin, giúp nó lưu vào trình duyệt lâu hơn.

Bạn cần tạo 3 tập tin sau:
.htaccess (với nội dung):

ExpiresActive on
ExpiresDefault "access plus 1 months"
ExpiresByType image/jpg "access plus 1 months"
ExpiresByType image/gif "access plus 1 months"
ExpiresByType image/jpeg "access plus 1 months"
ExpiresByType image/png "access plus 1 months"
ExpiresByType text/css "access plus 1 months"
ExpiresByType text/javascript "access plus 1 months"
ExpiresByType application/javascript "access plus 1 months"
ExpiresByType application/x-shockwave-flash "access plus 1 months"
 
# Enable gzip (deflate) compression
AddOutputFilterByType DEFLATE text/html text/css application/x-javascript
 
RewriteEngine On
####Charset
AddDefaultCharset Off
####Gzip
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)(js|css)$ redir.php?file=$1$2&type=$2 [L]
</IfModule>
####ETags
FileETag None
####Expires
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/png A2592000
ExpiresByType application/x-shockwave-flash A2592000
ExpiresByType text/css A2592000
ExpiresByType application/x-javascript A2592000  

pre.php (với nội dung):


Mã:
<?php 
ob_start("ob_gzhandler"); 
 
$path = pathinfo($_SERVER['SCRIPT_NAME']); 
 
if ($path['extension'] == 'css')  { 
  header('Content-type: text/css'); 
} 
 
if ($path['extension'] == 'js')  { 
  header('Content-type: application/x-javascript'); 
} 
?>
redir.php (với nội dung):


Mã:
<?php
# this is the file redir.php, to gzip javascript and css
 
# set the request file name
$file=str_replace(chr(0x0),"",$_REQUEST['file']);
$allowedfiles = array('js','gif','png','jpg','css','txt','swf');
if (!in_array(str_replace(chr(0x2E),"",substr(chr(0x2E).$file,-3)),$allowedfiles)){ exit ("Hacking attempt!"); }
 
# Set Expires, cache the file on the browse
header("Expires:".gmdate("D, d M Y H:i:s", time()+15360000)."GMT");
header("Cache-Control: max-age=315360000");
 
# set the last modified time
$mtime = filemtime($file);
$gmt_mtime = gmdate('D, d M Y H:i:s', $mtime) . ' GMT';
header("Last-Modified:" [URL="http://adslcmc.blogspot.com/"][COLOR="#000000"].[/COLOR][/URL] $gmt_mtime);
 
# output a mediatype header
switch ($_REQUEST['type']){
  case 'css':
    header("Content-type: text/css");
    break;
  case 'js' :
    header("Content-type: text/javascript");
      break;
  default:
    header("Content-type: text/plain");
}
 
# GZIP the content
if(extension_loaded('zlib')){ob_start();ob_start('ob_gzhandler');}
 
# echo the file's contents
echo implode('', file($file));
 
if(extension_loaded('zlib')){
  ob_end_flush();
  # set header the content's length;
  # header("Content-Length: ".ob_get_length()); # (It doesn't work? )
  ob_end_flush();
}
?>
Hãy thử và cảm nhận tốc độ load website của bạn nhé. chúng bạn thành công
Nguồn internet

22 nhận xét:

  1. cái này chỉ áp dụng cho apache sever có hỗ trợ .htaccess thôi. Còn một số web dùng sever windows thì ko đc

    Trả lờiXóa
    Trả lời
    1. đúng đó bạn ah. vậy theo bạn một số web dùng sever windows thì dùng cách nào để có thể tối ưu tốc độ hơn ko

      Xóa
  2. Trả lời
    1. MỘT CÂU TRUYỆN VUI VUI MÀ MÌNH TÌM HIỂU ĐƯỢC THÔI MÀ BẠN

      Xóa
  3. Sao mình toàn bị lỗi 500 vậy. Demo http://tuyetlanh.info

    Trả lờiXóa
    Trả lời
    1. mình vẫn thấy bình thường mà. có lỗi gì đâu

      Xóa
    2. bạn xem lại web bạn đi. có 1 số lỗi ko ảnh hưởng tới tốc độ cũng như mỹ quan nhưng nó lại ảnh hưởng tới seo đó
      bạn có thể mở mã nguồn xem dòng 1,2,6,7

      Xóa
  4. Chia sẻ hay ghê, thử mới được, sợ lỗi 500 quá, cứ chạm vô .htaccess là bị 500 :((

    Trả lờiXóa
  5. tạo ở đâu vậy! em vẫn chưa hiểu lắm cho câu tạo 3 tệp tin!

    Trả lờiXóa
    Trả lời
    1. 3 tệp và up cùng với trang chủ bạn ah

      Xóa
  6. Mình làm web trên divivu.com có làm được ko bạn?

    Trả lờiXóa
    Trả lời
    1. mình thấy trang chủ của bạn load khá nhanh mà

      Xóa
  7. bạn ơi web của mình viết bằng asp.net thì sao?? có cách nào giảm tốc độ load web không bạn

    Trả lờiXóa
    Trả lời
    1. cái này cũng có tác dụng cho asp bạn ah.

      Xóa
  8. 1 page html gồm các thành phần
    - Media (image, flash, video)
    - Css
    - Javascript
    - HTML
    Mọi người tham khảo trang này để xem trình duyệt hoạt động như thế nào: http://www.browserscope.org/?category=summary&v=top.
    Dùng Inspect Element trên google để xem 1 site html load những gì.
    Tùy nhu cầu tiếp cận của khách hàng để có cơ chế phân tán dữ liệu theo vùng miền.
    VD:
    jscript.domain.com
    css.domain.com
    .....

    Trả lờiXóa
    Trả lời
    1. cám ơn bạn đã chia sẻ nhé

      Xóa
    2. Vui lòng để nguồn Tác giả là Mr.N2 nhé: http://nguyennghia.com/code-tang-toc-do-load-website/

      Copy bài mà phán còn hơn thánh.

      Xóa
  9. Mình thấy hầu như không thay đổi gì lắm bạn ah.

    Trả lờiXóa