SEO

Diseño Web, Gestores de contenidos, SEO, Trucos

Usar compresión GZip en tus páginas web, por ejemplo en Prestashop

Una de las cosas que más cuentan los buscadores es la rapidez de tu página. Y esta puede verse afectada o por mal código, o por mucho acceso.  Los hosting compartidos tienen un ancho de banda limitado (y unos recursos de servidor).Evidentemente cuanto más gente acceda más afecta al rendimiento. Por lo tanto es buena idea que el servidor comprima el contenido de la página web, lo que hace que no afecte tanto al ancho de banda y el lector reciba antes la información. En WordPress por ejemplo hay módulos que dan el contenido de páginas dinámicas a las que se accedan mucho en modo estático, optimizando bastante la velocidad de acceso. Pero es que aunque no contara para el SEO, evidentemente una persona que note que la web vaya lenta…acabará hartándose y marchándose. Por lo tanto es buena idea activar la compresión GZip en el servidor, a veces reduce hasta un 80% el tamaño de las páginas. Aquí te decimos cómo: Apache consigue la compresión a través de los módulos mod_gzip y mod_deflate. Para ello primero tendrás que ver si están activados en tu proveedor. Puedes usar un fichero php_info(). SI están cargados pero no está haciendo la compresión puedes activarlos a través de .htaccess (pequeño fichero que se añade en la raíz para modificar parámetros de Apache y php).  SI ESTÁN ACTIVADOS LOS MÓDULOS: Para activarlo para html y texto: # compress all text and html: AddOutputFilterByType DEFLATE text/html text/plain text/xml # Or, compress certain file types by extension: <Files *.html> SetOutputFilter DEFLATE </Files> Con mod_deflate puedes elegir los ficheros a comprimir (gif,jpeg, png: <Location />     SetOutputFilter DEFLATE       SetEnvIfNoCase Request_URI          .(?:gif|jpeg|png)$ no-gzip dont-vary     SetEnvIfNoCase Request_URI          .(?:exe|t?gz|zip|gz2|sit|rar)$ no-gzip dont-vary </Location> Así lo puedes hacer con mod_gzip: <IfModule mod_gzip.c>     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.* </IfModule>  En nuestro caso los módulos estaban pero desactivados. Prestashop metía el código correcto pero Apache ni caso. Así que SI NO ESTAN ACTIVOS LOS MÓDULOS: Usando PHP: Puedes meter este código en cada página de PHP que quieras que se comprima. O, como en nuestro caso, en una que se cargue siempre (en Prestashop usamos config/config.inc.php). <?php     if (substr_count($_SERVER[‘HTTP_ACCEPT_ENCODING’], ‘gzip’))         ob_start(“ob_gzhandler”);     else         ob_start(); ?> ¿Quieres probar a ponerlo en .htaccess en vez de en cada fichero? A nosotros no nos funcionó pero como depende de cada servidor puedes probarlo. Para sólo los php: <FilesMatch “.(txt|html|htm|php)”>     ForceType application/x-httpd-php     php_value auto_prepend_file /the/full/path/gzip-enable.php </FilesMatch> Para hacerlo para todos los ficheros. Primero: php_value output_handler ob_gzhandler Luego por ejemplo para los CSS crea este fichero gzip-css.php y pon: <?php    // initialize ob_gzhandler function to send and compress data    ob_start (“ob_gzhandler”);    // send the requisite header information and character set    header (“content-type: text/css; charset: UTF-8”);    // check cached credentials and reprocess accordingly    header (“cache-control: must-revalidate”);    // set variable for duration of cached content    $offset = 60 * 60;    // set variable specifying format of expiration header    $expire = “expires: ” . gmdate (“D, d M Y H:i:s”, time() + $offset) . ” GMT”;    // send cache expiration header to the client broswer    header ($expire); ?> Después en el .htaccess: <FilesMatch “.(css)”>     ForceType application/x-httpd-php     php_value auto_prepend_file “/the/full/path/of/this/file/gzip-css.php” </FilesMatch> Para los JavaScrip crea el fichero gzip-js.php: <?php    // initialize ob_gzhandler function to send and compress data    ob_start (“ob_gzhandler”);    // send the requisite header information and character set    header (“content-type: text/javascript; charset: UTF-8”);    // check cached credentials and reprocess accordingly    header (“cache-control: must-revalidate”);    // set variable for duration of cached content    $offset = 60 * 60;    // set variable specifying format of expiration header    $expire = “expires: ” . gmdate (“D, d M Y H:i:s”, time() + $offset) . ” GMT”;    // send cache expiration header to the client broswer    header ($expire); ?>  y pon esto en el .htaccess: <FilesMatch “.(js)”>     ForceType application/x-httpd-php     php_value auto_prepend_file “/the/full/path/of/this/file/gzip-js.php” </FilesMatch> Para ver cómo hacerlo en un servidor Tomcat pincha aquí.    

Diseño Web, SEO, Trucos, Webs

Compresores online de CSS y JavaScript

Dentro de nuestros esfuerzos por mejorar la velocidad de carga de las páginas de nuestros clientes, hemos estado probando con mucho éxito estos compresores de páginas de estilo CSS y de  JavaScript. Lo que hacen es quitar espacios, comentarios y código innecesario para reducir el tamaño de estos ficheros, con lo que se  consigue una velocidad de carga mayor y páginas más rápidas. Que una página sea más rápida no sólo afecta a la sensación del cliente y su usabilidad, sino que también afecta a la posición en los buscadores. Aquí os dejamos algunos de estos compresores: http://www.csscompressor.com/ http://www.minifycss.com/css-compressor/ http://refresh-sf.com/yui/ http://javascriptcompressor.com/ http://jscompress.com/ Este es muy bueno porque analiza tu página y directamente te da todo comprimido: http://www.zbugs.com/  

Scroll al inicio