Cuando contratamos un servidor VPS con Plesk lo habitual es que venga configurado con unos parámetros de rendimiento aceptables, pero todo es optimizable. Apache es uno de los servidores web más extendidos al igual que el conocido Ngix, un servidor que está ganando bastante terreno en los últimos años.
Es por ello que en digitalDot queremos dar unas pinceladas sobre algunas de las optimizaciones que solemos hacer en nuestros servidores VPS y que brindan a nuestros clientes Web una mejora sustancial en la velocidad y optimización de su sitio Web, factores que hacen que puedan ganar en su posicionamiento SEO.
Básicamente, trataremos unas funciones de WPO (Web Performance Optimization) sobre Apache que nos permitirán reducir la velocidad de carga hasta en 2 segundos.
Prácticamente todos nuestros VPS o Hosting suelen venir ya con Centos 7 como instalación base, por lo tanto y como primer paso, debemos conocer cuál es el formato en el que trabaja nuestro servidor web.
Podemos averiguarlo de la siguiente manera:
/usr/sbin/httpd -l Compiled in modules: core.c mod_so.c http_core.c |
A continuación, vamos a comprobar si tenemos nuestro módulo cargado en Apache, si aparece como Shared significará que está instalado y configurado, mientras que el deflate_module nos permitirá comprimir nuestro contenido web.
[<a href="mailto:root@servidor log">root@servidor log</a>]# apachectl -t -D DUMP_MODULES |grep deflate [Sun Jan 24 14:24:07.039369 2016] [so:warn] [pid 6198] AH01574: module actions_module is already loaded, skipping [Sun Jan 24 14:24:07.045944 2016] [so:warn] [pid 6198] AH01574: module headers_module is already loaded, skipping [Sun Jan 24 14:24:07.046588 2016] [so:warn] [pid 6198] AH01574: module logio_module is already loaded, skipping [Sun Jan 24 14:24:07.048180 2016] [so:warn] [pid 6198] AH01574: module suexec_module is already loaded, skipping deflate_module (shared) |
Una vez verificado que lo tenemos, vamos a comprobar que el módulo está activo en nuestro servidor y para ello debemos editar el archivo 00-base.conf
vi /etc/httpd/conf.modules.d/00-base.conf |
Deberíamos tener algo como la siguiente línea sin # al principio
LoadModule deflate_module modules/mod_deflate.so |
Cuando estemos seguros de que nuestro módulo está instalado, vamos a comprimir los JavaScript, HTML o CSS de forma que el contenido llegue a nuestros clientes en un tamaño óptimo.
vi /etc/httpd/conf.d/deflate.conf AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript DeflateCompressionLevel 9 # Browser specific settings BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html BrowserMatch \bOpera !no-gzip # Setup custom deflate log DeflateFilterNote Input instream DeflateFilterNote Output outstream DeflateFilterNote Ratio ratio LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate # Example of log file CustomLog logs/deflate_log DEFLATE |
Actualmente, estas modificaciones las estamos aplicando sobre dos proyectos; una tienda Online basada en el CMS eCommerce Magento, donde el rendimiento mejora considerablemente, y una web corporativa con Joomla.
vi /etc/httpd/conf.d/keep-alive.conf KeepAlive On vi /etc/httpd/conf.d/expire.conf ExpiresActive On ExpiresByType image/jpg "access plus 60 days" ExpiresByType image/png "access plus 60 days" ExpiresByType image/gif "access plus 60 days" ExpiresByType image/jpeg "access plus 60 days" ExpiresByType text/css "access plus 1 month" ExpiresByType image/x-icon "access plus 1 month" ExpiresByType application/pdf "access plus 1 month" ExpiresByType audio/x-wav "access plus 1 month" ExpiresByType audio/mpeg "access plus 1 month" ExpiresByType video/mpeg "access plus 1 month" ExpiresByType video/mp4 "access plus 1 month" ExpiresByType video/quicktime "access plus 1 month" ExpiresByType video/x-ms-wmv "access plus 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType text/javascript "access plus 1 week" ExpiresByType application/x-javascript "access plus 1 week" ExpiresByType application/javascript "access plus 1 week" |
Tan sólo con estas 3 modificaciones, nuestra web ha conseguido pasar de una puntación del 75% al 81% y en Yslow del 77% al 79%, reduciendo cerca de un segundo nuestra carga web, si esto lo multiplicamos por el número de sesiones simultaneas, habremos conseguido que nuestro sitio web cargue de forma más optimizada.
Pero nuestro trabajo en WPO no puede quedarse solamente en estos factores, debemos trabajar la caché y otros servicios de CDN o velocidad y accesos de nuestra base de datos. Para ello podemos utilizar un módulo de velocidad que ha lanzado Google y que mejorará estos aspectos de nuestra página web.
service httpd restart |
Vamos a usar una excelente herramienta como es Load Impact para testear esta tienda online -testeamos la web antes de hacer todos los cambios- Vemos un consumo de 10 segundos por venta/visitas.
Y, después de aplicar nuestra optimización para Apache…
Vemos tiempos de hasta 4 segundos con los mismos números de sesiones y visitas, mejorando el rendimiento de nuestra web para poder tener un mayor soporte y mejor velocidad de carga, factores importantes en nuestro SEO y que marcan la diferencia con respecto a otras webs sin un trabajo de optimización.
Para otro proyecto de mejora de nuestro Hosting y, usando validadores Web como puede ser GTmetrix, vemos una puntuación no superior al 80% con 4 segundos de velocidad web.
Si aplicamos nuestras modificaciones, conseguimos reducir la carga casi en medio segundo y nuestra valoración supera el 80% de optimización. Este no es un paso definitivo para nuestra WPO, pero con 3 pequeñas modificaciones hemos podido agilizar mucho nuestra tienda online y web corporativa.