18 de Octubre
PLAZAS LIMITADAS

Redirecciones en el htaccess. WPO

Impacto de las redirecciones en el rendimiento de una página web

Redirecciones en el htaccess. WPO
Autor:
Carlos Sánchez
Temática:
Enlazado
,
Servidores
,
WPO
Fecha de publicación:
2024-04-22

Última revisión:
2024-05-06

Un mito común es que las redirecciones pueden ralentizar una página web. Es cierto que las redirecciones pueden agregar una sobrecarga adicional al tiempo de carga de una página, pero su impacto será insignificante. Aunque según como se realicen, este mito puede ser una verdad a medias.

A menudo he escuchado el tema de que no hay que hace redirecciones porque afectan al rendimiento. Esto se dice desde el desconocimiento y vamos a profundizar aquí.

Las redirecciones bien implementadas, como las redirecciones 301 (permanentemente) o las redirecciones 302 (temporalmente), son procesadas rápidamente. Sin embargo, si están mal configuradas o en cadena sí que pueden tener un impacto negativo en el rendimiento. Y en consecuencia, aumentar el tiempo de carga y generar solicitudes adicionales al servidor.

Es importante destacar que las redirecciones son necesarias en muchas situaciones, como cuando se cambia la estructura de un sitio web. Por ello, una estrategia de redirección adecuada puede evitar la pérdida de tráfico y mantener la integridad del SEO sin perjudicar al usuario. De hecho son más que necesarias en las migraciones.

Lo ideal es hacer todas las redirecciones desde el mismo sitio y de una forma ordenada para su posterior mantenimiento, de esta forma se pueden evitar cadenas de redirecciones y mantener un control de las mismas.

Creo firmemente que el mito puede estar ocasionado por la mala utilización del .htaccess principalmente en Apache (que era el servidor más usado en el momento de la creación de la leyenda), y es que suene como suene, el .htaccess se usa mal.

Como afecta el .htaccess en el WPO

En SEO existen numerosas creencias que pueden influir en las decisiones de diseño y optimización de un sitio web. Una de ellas es la idea de que el uso excesivo de redirecciones en el archivo .htaccess puede ralentizar el rendimiento de un sitio web. Sin embargo, es crucial entender que el impacto real de las redirecciones en el rendimiento web es más complejo de lo que comúnmente se piensa.

Más que por cuestión de las redirecciones, es por el hecho de utilizar este tipo de archivo.

Debería evitar usar ficheros .htaccess completamente si tiene acceso al fichero de configuración principal de httpd. Usar ficheros .htaccess ralentiza su servidor Apache http. Cualquier directiva que pueda incluir en un fichero .htaccess estará mejor configurada dentro de una sección Directory, tendrá el mismo efecto y mejor rendimiento. — Documentación de Apache

El papel del archivo .htaccess

Antes de profundizar en el impacto de las redirecciones en .htaccess, es importante comprender la función de este archivo en el entorno de desarrollo web. Este archivo es una herramienta poderosa que se utiliza en servidores web Apache para configurar diversas opciones de servidor, como redirecciones, control de acceso, compresión de archivos y más. Permite a los desarrolladores modificar la configuración del servidor sin necesidad de acceder directamente a la configuración del servidor principal.

Podemos entenderlo como un apéndice que utilizan tanto Apache como LiteSpeed. Cuenta con la ventaja de que no se necesita acceder a la configuración del servidor principal ni reiniciar el servidor. Por contra, esto quiere decir que el servidor necesita leer estas directivas cada vez que un usuario realiza una solicitud al servidor. Si estas directivas son largas y engorrosas, al servidor le tomará más tiempo resolver esto a cada petición. Si hay una gran cantidad de usuarios solicitando a un servidor con un .htaccess con demasiadas directivas, puede ocasionar problemas en la carga.

Es decir, htaccess se lee "at run-time", en vivo, mientras que el resto de configuraciones de servidor están precargadas, de forma que es más eficiente.

Pruebas de rendimiento sobre el .htaccess

Examinemos distintas fuentes sobre el efecto que tiene el .htaccess en el rendimiento

SEOMike

SEOMike hizo un testeo de las redirecciones, donde si que le salía un impacto notable a partir de las 30.000 redirecciones.

No obstante fue utilizando el .htaccess con Apache, es decir, en el peor de los escenarios. Si las afirmaciones de las documentaciones y mis propias pruebas son ciertas, la baja performance se debe al abuso del .htaccess, no al exceso de redirecciones

Netseven

NETSeven también hizo un estudio bastante profundo sobre el tema.

Cantidad de peticiones que se consiguieron atender por segundo con distintas configuraciones de .htaccess

Las conclusiones principales de este análisis sobre el impacto del uso de archivos .htaccess en un servidor web Apache son:

  1. Impacto moderado en sitios estáticos: Un archivo .htaccess pequeño tiene un impacto limitado en la velocidad de respuesta de sitios estáticos, pero su presencia aún así afecta el rendimiento. Permitir los archivos .htaccess (AllowOverride All) reduce el rendimiento en aproximadamente un 16% en comparación con su deshabilitación total.
  2. Desempeño bajo carga de archivos grandes o complejos: Los archivos .htaccess muy grandes o con directivas complejas pueden disminuir significativamente el rendimiento. Por ejemplo, un archivo de 170 Kb lleno de directivas puede reducir la capacidad de respuesta del servidor en un 90%, mientras que un archivo realista de 12 Kb puede reducirlo en un 40%.
  3. Configuración centralizada es más eficiente: Colocar las configuraciones directamente en el archivo de configuración principal del servidor web en lugar de usar múltiples archivos .htaccess mejora el rendimiento y la seguridad.
  4. Efectos de la jerarquía de directorios: La presencia de archivos .htaccess en cada nivel de una estructura de directorios tiene un impacto acumulativo en el rendimiento, especialmente si los archivos son grandes o numerosos.
  5. Comparación con otros servidores web: Aunque Apache muestra una disminución en el rendimiento con el uso de .htaccess, la diferencia de rendimiento no justifica necesariamente el uso de Nginx para contenido estático exclusivamente, a menos que se maneje una cantidad muy alta de dicho contenido.
  6. Influencia del almacenamiento: El tipo de almacenamiento (SSD local vs. NFS) no mostró una diferencia significativa en el rendimiento, probablemente debido al caché de lectura de Linux.

En resumen, aunque el uso de archivos .htaccess ofrece flexibilidad, también conlleva una penalización en el rendimiento que debe considerarse, especialmente en configuraciones de alto tráfico o cuando se utilizan archivos de configuración grandes y complejos.

Strategiq

Strategiq también sacó su propio analisis al respecto.

Analisis del TTFB en un archivo simple de txt de 280 bites según el número de líneas en el .htaccess

El análisis en el artículo de StrategiQ sobre el impacto del número de reglas en archivos .htaccess en el rendimiento y la escalabilidad del servidor revela varios puntos clave:

  1. Impacto en el tiempo hasta el primer byte (TTFB): A medida que aumenta el número de líneas en un archivo .htaccess, el TTFB de los archivos servidos en el mismo directorio aumenta significativamente. Por ejemplo, un archivo .htaccess con 1,000,000 de líneas puede llevar a un TTFB de hasta 2.5 segundos.
  2. Impacto en la escalabilidad del servidor: Al incrementar la cantidad de reglas en .htaccess, especialmente durante pruebas de carga, se observa un aumento en el uso de la CPU y la memoria. Esto indica que archivos grandes de .htaccess pueden consumir recursos significativos bajo condiciones de carga elevada.
  3. Recomendaciones: Para mitigar estos efectos, se recomienda minimizar el uso de códigos en el .htaccess cuando sea posible, consolidando directivas en el archivo de configuración central del servidor (httpd.conf). Esto reduce la sobrecarga de procesamiento y el acceso frecuente al disco asociado con los archivos .htaccess.

Este análisis destaca que mientras más reglas se contienen en el archivo .htaccess, mayor es el impacto en el rendimiento y la escalabilidad del servidor, lo cual es crucial considerar en entornos de producción donde la eficiencia es crítica.

Matthewedgar

En el artículo de Matthew Edgar sobre los redireccionamientos y su impacto en la velocidad del sitio web, se concluye que los redireccionamientos pueden afectar significativamente la velocidad, especialmente a través del Tiempo hasta el Primer Byte (TTFB).

Los redireccionamientos en cadena, donde una página redirige a otra sucesivamente, pueden agregar tiempo considerable de carga.

Además, los redireccionamientos especificados en un archivo .htaccess pueden aumentar la sobrecarga del servidor si hay un gran número de ellos, lo que también disminuye la velocidad del sitio.

Según el artículo, se recomienda minimizar los redireccionamientos y optimizar la gestión de redirecciones para mejorar el rendimiento del sitio web. Pero mis conclusiones siguen siendo que es por el abuso de .htaccess y por lo que implican las propias cadenas de redirecciones.

En cualquier caso, podemos observar como en el caso de SEOMike que hasta las 30.000 líneas de redirecciones no empieza a haber un cambio significativo en la performance.

Pruebas de redirecciones sin .htaccess

Aunque pueda haber un impacto, todas las pruebas que se observan en servidores que no están utilizando un .htaccess para generar las redirecciones tienen un impacto mínimo:

Puedes analizar tus propias redirecciones con un redirect speed tester o también tienes la opción de analizar la performance de la web (sin necesidad de redirección ni nada) añadiendo mucho código en vuestro htaccess.

Conclusiones

La realidad es que tiene sentido que sea por la lectura de excesivo código que el servidor tiene que procesar cada vez que le llega una solicitud lo que afecte a la performance.

Las redirecciones en si tienen un impacto mínimo en el rendimiento y velocidad de una web. Lo único que se deben adoptar buenas prácticas entendiendo la naturaleza de los servidores.

El .htaccess solo se debe utilizar para códigos auxiliares que se necesiten implementar rápidamente. Y aunque se consiga optimizar la velocidad de una web con comandos en el .htaccess, esto se consigue simplemente porque lo que hacen esos códigos mejora más la velocidad que el aumento de peso del archivo al aumentar el número de líneas.

Las redirecciones no ralentizan una web. Pero los códigos en el .htaccess o en un archivo de PHP que se llame desde toda la web sí. El problema no es la cantidad de redirecciones. Sino cómo ponerlas.

Como implementar redirecciones de una forma correcta

 

Si te gusta este artículo, me ayudarías un montón compartiendo mi contenido:
No se te da mal el SEO Técnico

Te falta mi máster. Accede a una formación avanzada que te permitirá aplicar e implementar SEO en cualquier tipo de WEB

¡Accede al Máster de SEO Técnico!
Tal vez te interesen otros artículos:
Artículos de SEO
Usamos cookies para asegurar que te damos la mejor experiencia en nuestra web. Aquí tienes nuestra política de privacidad.