[Tutorial] Cómo acelerar la carga de Google Analytics

Estos días ando optimizando la velocidad de carga de la web y una de las cosas que he optimizado es la carga del ga.js de Google Analytics.
Para hacer esto lo que he implementado es la carga de este ga.js desde mi servidor.

Lo normal es tener un código tal que así:

ga js

ga js

Donde podéis ver que se llama a google-analytics.com.

Pues bien la idea es bajar este script y cargarlo desde nuestro propio servidor. Para ello cambiaremos example.com por nuestro dominio.com quedando:

ga example js

ga example js

Así que bueno lo que nos queda es programar un crontab para que cada día nos descargue el fichero de los servidores de google y lo tengamos en nuestro servidor.

Para hacerlo creamos un fichero php con el siguiente contenido (entre < ??>):

// script to update local version of google analytics script

 
// Remote file to download
$remoteFile = 'http://www.google-analytics.com/ga.js';
$localfile = 'ENTER YOUR ABSOLUTE PATH TO THE FILE HERE';
//For Cpanel it will be /home/USERNAME/public_html/ga.js
 
// Connection time out
$connTimeout = 10;
$url = parse_url($remoteFile);
$host = $url['host'];
$path = isset($url['path']) ? $url['path'] : '/';
 
if (isset($url['query'])) {
  $path .= '?' . $url['query'];
}
 
$port = isset($url['port']) ? $url['port'] : '80';
$fp = @fsockopen($host, '80', $errno, $errstr, $connTimeout );
if(!$fp){
  // On connection failure return the cached file (if it exist)
  if(file_exists($localfile)){
    readfile($localfile);
  }
} else {
  // Send the header information
  $header = "GET $path HTTP/1.0\r\n";
  $header .= "Host: $host\r\n";
  $header .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6\r\n";
  $header .= "Accept: */*\r\n";
  $header .= "Accept-Language: en-us,en;q=0.5\r\n";
  $header .= "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n";
  $header .= "Keep-Alive: 300\r\n";
  $header .= "Connection: keep-alive\r\n";
  $header .= "Referer: http://$host\r\n\r\n";
  fputs($fp, $header);
  $response = '';
 
  // Get the response from the remote server
  while($line = fread($fp, 4096)){
    $response .= $line;
  }
 
  // Close the connection
  fclose( $fp );
 
  // Remove the headers
  $pos = strpos($response, "\r\n\r\n");
  $response = substr($response, $pos + 4);
 
  // Return the processed response
  echo $response;
 
  // Save the response to the local file
  if(!file_exists($localfile)){
    // Try to create the file, if doesn't exist
    fopen($localfile, 'w');
  }
 
  if(is_writable($localfile)) {
    if($fp = fopen($localfile, 'w')){
      fwrite($fp, $response);
      fclose($fp);
    }
  }
}

Finalmente en nuestro contrab tendremos:

0 8 * * * /usr/bin/php /home/domain/www/update-analytics.php

google-analytics

google-analytics

victor lopez Sobre mí Esta noticia ha sido creada el 23 julio 2012 a las 16:58 en InicioActualidad[Tutorial] Cómo acelerar la carga de Google Analytics y si quieres puedes comentarla.
Si te ha gustado [Tutorial] Cómo acelerar la carga de Google Analytics y esta web, puedes seguirla a través de Facebook, Twitter y también puedes recibir las nuevas noticias de la web en tu correo pincha en este enlace para darte de alta. Además también puedes seguir las noticias por RSS.