¿Cómo añadir la compresión GZIP a tu web?

¿Cómo añadir la compresión GZIP a tu web?

¿Has chekeado tu web en Google Page Speed y te sale mala puntuación en “Habilita la compresión de texto”? ¡Entonces estás en el lugar adecuado! Con la compresión GZIP podrás reducir el tamaño de tu web.

¿Qué es GZIP?

Es un formato de compresión desarrollado hace ya más de 2 décadas, y que utiliza el algoritmo de «Deflate» para comprimir ficheros.

¿Para qué quiero tener compresión GZIP en mi web?

Con la compresión GZIP podrás reducir el tamaño de tu web, habilitando la compresión lograrás disminuir el tiempo para descargar todos los archivos comprimidos y mejorar el TTFB (tiempo hasta el primer byte).  Es importante señalar que los usuarios que te visitan desde un móvil gastarán “menos megas”.
La compresión GZIP funciona perfectamente en todos los navegadores web que se utilizan hoy en día, por lo que no tienes que temer que haya ningún tipo de problema de compatibilidad.

¿Cómo añadir la compresión GZIP en Plesk? Sin usar SSH

Añadiendo las siguientes líneas al .htaccess de Apache, que está en el directorio raíz de tu web (Puedes hacerlo por SFTP o usando el administrador de ficheros de Plesk).

#Habilitar compresión GZIP en Plesk
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE application/javascript 
AddOutputFilterByType DEFLATE application/rss+xml 
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject 
AddOutputFilterByType DEFLATE application/x-font 
AddOutputFilterByType DEFLATE application/x-font-opentype 
AddOutputFilterByType DEFLATE application/x-font-otf 
AddOutputFilterByType DEFLATE application/x-font-truetype 
AddOutputFilterByType DEFLATE application/x-font-ttf 
AddOutputFilterByType DEFLATE application/x-javascript 
AddOutputFilterByType DEFLATE application/xhtml+xml 
AddOutputFilterByType DEFLATE application/xml 
AddOutputFilterByType DEFLATE font/opentype 
AddOutputFilterByType DEFLATE font/otf 
AddOutputFilterByType DEFLATE font/ttf 
AddOutputFilterByType DEFLATE image/svg+xml 
AddOutputFilterByType DEFLATE image/x-icon 
AddOutputFilterByType DEFLATE text/css 
AddOutputFilterByType DEFLATE text/html 
AddOutputFilterByType DEFLATE text/javascript 
AddOutputFilterByType DEFLATE text/plain 
AddOutputFilterByType DEFLATE text/xml 
BrowserMatch ^Mozilla/4 gzip-only-text/html 
BrowserMatch ^Mozilla/4\.0[678] no-gzip 
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
Header append Vary User-Agent 
</IfModule>

También es posible hacerlo con mod_gzip, pero está menos soportado que DEFLATE, y el resultado es prácticamente el mismo. Quedaría así:

<IfModule mod_gzip.c>
mod_gzip_static_suffix .gz
AddEncoding gzip .gz
AddEncoding gzip .gzip
mod_gzip_on YES
mod_gzip_handle_methods GET
mod_gzip_temp_dir /tmp
mod_gzip_can_negotiate Yes
mod_gzip_dechunk Yes
mod_gzip_send_vary On
mod_gzip_update_static No
mod_gzip_keep_workfiles No
mod_gzip_minimum_file_size 250
mod_gzip_maximum_file_size 1048576
mod_gzip_maximum_inmem_size 60000
mod_gzip_min_http 1000
mod_gzip_item_exclude reqheader "User-agent: Mozilla/4.0[678]"
mod_gzip_item_exclude file .js$
mod_gzip_item_exclude file .css$
mod_gzip_item_exclude mime ^application/pdf$
mod_gzip_item_exclude mime ^image/
mod_gzip_item_exclude mime ^application/x-javascript$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include file .html$
mod_gzip_item_include file .pl$
mod_gzip_item_include file .cgi$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^httpd/unix-directory$
mod_gzip_item_include mime ^application/postscript$
</IfModule>

 

¿No te funciona la compresión GZIP en Plesk? Añade la compresión GZIP en Nginx.

Si lo anterior no te ha servido es porque tu web sólo funciona con Apache. Y es muy común ver instalaciones Plesk que lo que tienen expuesto hacia internet es un NGINX (aunque lo usen como proxy inverso y tengan un Apache detrás), debido a esto lo que deberíamos tocar es la configuración de NGINX. ¡No te asustes, es muy sencillo de hacer!

Para ello, entras en el panel de Plesk y vas a Plesk > Dominios > tudominio.com > Ajustes de Apache & nginx  y añades las siguientes líneas en el apartado «Additional nginx directives» (Directivas nginx adicionales):

gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types image/svg+xml text/plain text/html text/xml text/css text/javascript application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript application/x-font-ttf application/vnd.ms-fontobject font/opentype font/ttf font/eot font/otf application/font-ttf;

¡Y listo! Guárdalo y ya puedes comprobar que tu web soporta y tiene activada la compresión GZIP en HTML, CSS, Javascript, XML y los distintos tipos de fuentes web. Si Google PageSpeed Insights nos detecta que algunos recursos estáticos no son comprimidos, debemos revisar los MIME* que debe comprimir Nginx y añadir los que falten.

Servidores con panel de control cPanel

Simplemente accede al «Panel de control de cPanel» >> «Optimizar el sitio web» >> «Comprimir todo el contenido», y pulsa en «Actualizar configuración».

cPanel se encargará de actualizar tu web para que todo el tráfico vaya comprimido con GZIP.

Glosario:

¿Qué son los tipos de MIME*? 

Los tipos de MIME describen el tipo de medio del contenido, sea del correo electrónico o el utilizado en los servidores o aplicaciones web, y tiene como proposito ayudar a guiar al navegador web acerca de como ha de ser procesado y mostrado el contenido. Ejemplos de tipos de MIME son:

  • texto/html para páginas web normales
  • texto/plano para texto común
  • Aplicacion/de fuente octeto que significa “descarga este archivo”
  • Aplicacion/x-java-applet para uso de applets de Java
  • Aplicacion/pdf para documentos en PDF.

Sobre el autor

adw.es administrator