digitalDot diseño webLogo Diseño Web digitalDot

Optimización Web en nuestro VPS - WPO

09/02/2016

Optimización Web mediante VPS

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.

servidor vps

Y, después de aplicar nuestra optimización para Apache

optimizacion web

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.

posicionamiento 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.

optimizacion servidor vps

Contenido
crossmenuchevron-down