Cómo optimizar WordPress para pagar menos hosting

¿Alguna vez se ha caído tu web por exceso de consumo de recursos de ancho de banda, memoria, CPU? ¿Tu web va lenta y no sabes el motivo? ¿Has recibido una amable invitación de tu empresa de hosting para que amplíes tu plan de alojamiento?

Si te sientes aludido en alguna de estas preguntas este artículo es para ti.

¿Qué consume recursos de mi hosting?

Normalmente pensamos que el único parámetro de medida de consumo de recursos de nuestra web son las visitas, y las empresas de hosting tienen parte de culpa en esto, pues distinguen sus planes a contratar por este parámetro, pero no es así.

Puedes tener pocas visitas y mucho consumo de recursos y, en el lado opuesto, tener un montón de tráfico y ser un ahorrador nato de recursos del servidor.

Así, hay webs con pocas visitas que necesitan contratar planes de hosting carísimos, al mismo tiempo que webs de alto tráfico que funcionan de maravilla incluso con planes de hosting compartido de bajo coste.

En consecuencia, todo depende del uso eficaz que hagas de los recursos disponibles,  y apliques medidas de eso conocido como WPO, abreviatura de optimización del rendimiento web, que no solo tiene que ver con lo rápida que carga tu web, sino con el dineral que puedes ahorrar en hosting si haces un uso efectivo de los recursos del mismo.

¿Cómo sé qué consume CPU, memoria, etc. en mi web?

Buena pregunta, pues es algo que Google Analytics y los plugins de estadísticas no ofrecen.

Para saber el consumo de CPU, y otros recursos, de tu alojamiento, no hay nada mejor que una herramienta que casi siempre está disponible en los paneles de todas las empresas de hosting: AWStats.

Es una herramienta de estadísticas de tu web realmente completa, de hecho la más completa. Google Analytics es más para analizar segmentos y usos de tu web por tipología de visitantes, pero si quieres estadísticas de tráfico de verdad de tu sitio usa AWStats.

Ahí verás que hay un indicador de tráfico (bandwith si lo tienes en inglés) que identifica al detalle qué es lo que más consume en tu web.

El consumo de espacio en disco podrás observarlo normalmente en algún indicador del panel de tu hosting.

Cómo gastar menos en hosting

Ya he publicado muchos artículos sobre WPO orientados a obtener tiempos de carga ultrarrápidos, así que hoy nos concentraremos a aquellas medidas de WPO que te ayudarán a no tener que cambiar a un plan de hosting mayor, y más caro, e incluso – quien sabe – a pasarte a un plan inferior y empezar a ahorrar dinero.

Una empresa de hosting, a fin de cuentas, te está alquilando espacio en sus servidores, las prestaciones que tiene en cuanto a espacio en disco, memoria, CPU, ancho de banda, etc. y nivel de servicio.

Si nos fijamos en las prestaciones del equipo hay una relación directa entre capacidad y precio. A más disco, memoria, CPU, ancho de banda más coste.

Así que la estrategia de WPO debe ir dirigida a ahorrar recursos en esas prestaciones.

Cómo ahorrar espacio en disco

Igual que cualquier sistema informático, uno de los elementos que influyen en el rendimiento de tu aplicación es el espacio en disco.

Es más común de lo que imaginas ver webs lentas, aparentemente optimizadas, en las que el único problema sin resolver es que tenían prácticamente agotado el espacio en disco.

Así que, antes de pagar por una ampliación de disco duro, podemos revisar algunas estrategias para ahorrar espacio.

Borra todo lo que no necesites

¿De verdad tienes que tener una copia del directorio de plugins y temas de WordPress? ¿Sufres de angustia por la separación o algo así?

En serio, borra todos esos plugins o temas que no utilizas. Si alguna vez quieres volver a usarlos los vuelves a instalar desde cero.

No te preocupes por las configuraciones, las guardan en la base de datos, así que la próxima vez que instales y actives, por ejemplo, All in One SEO Pack, no tendrás que volver a poner tus ajustes preferidos.

Con los temas es lo mismo. Solo tienes que tener en tu alojamiento el tema activo, el tema hijo si lo usas, y cualquiera de los temas por defecto de WordPress, solo uno, por si algún día falla tu tema activo, para que WordPress muestre automáticamente tu contenido con el tema por defecto, una salvaguarda que hace WordPress y que no todo el mundo conoce.

El resto sobra.

Borra los archivos temporales y de caché antiguos

Si el tema, o los plugins, han añadido carpetas o archivos y ya no los necesitas por  haberlos desinstalado, simplemente borra todo lo que ya no esté en uso.

Si tu plugin de caché guarda todo el histórico de caché desde el siglo pasado ¿de verdad lo necesitas? Borra cualquier carpeta histórica de caché que te encuentres, y ante la duda borra toda la caché, tu plugin de caché creará la versión más actual necesaria.

Vigila los inodes

Como la inmensa mayoría de servidores web utilizan alguna versión de Linux, tienen una limitación de los conocidos como inodes, que son la cantidad de unidades de archivo que puede contener un sistema, da igual su tamaño.

Debido a esto, puedes tener tu web caída, no por haber ocupado los 10 Gb de espacio en disco, sino por haber superado el número de inodes que tu plan de hosting admite.

Así que vigila, no los archivos grandes – que también – sino esos miles de pequeños archivos de esas copias de webs antigua que guardas en tu alojamiento por tu Síndrome de Diógenes web, que te obliga a guardar todas y cada una de las versiones que alguna vez tuviste de tu web.

Si quieres seguir manteniendo esa enfermedad hazlo en tu disco duro local, que sale mucho más barato el precio/giga que en un plan de hosting. Descarga tus webs históricas y luego borras la copia alojada en el servidor.

Y es solo un ejemplo. Vigila carpetas con muchos archivos, por pequeños que sean, especialmente si son pequeños, y muchos.

Optimiza las imágenes antes de subirlas

¿De verdad necesitas subir el RAW de la foto de ese bonito paisaje?

Cuando ofrecemos imágenes en nuestra web son para ilustrar contenidos o como elementos de diseño, y ni unos ni otros requieren calidad de alta definición.

Recuerda que la mayoría del tráfico actualmente es móvil, donde tampoco tendrán sentido imágenes de enorme peso que, además, harían la experiencia de navegación terriblemente lenta.

Así que, antes de subir imágenes

  • Si el tema o plugins ya crean los tamaños adicionales que necesitan para mostrar las miniaturas y demás tamaños de tus imágenes, pon a cero los ajustes de medios de WordPress para no crear tamaños adicionales que no se utilizarán y solo ocuparán espacio en disco.
  • Reduce sus dimensiones a las máximas que se verán “bien” en las resoluciones de dispositivo utilizadas por tus visitantes, información que puedes obtener en Google Analytics.
  • Reduce el peso de las imágenes utilizando formatos de compresión como JPG, relegando formatos sin compresión a imágenes que requieran fondos transparentes y poco más.
  • Reutiliza imágenes. Si ya tienes una imagen subida que te vale de miniatura para un artículo ¿para qué subir otra parecida? Verás que esto lo hago mucho en el blog. De paso, ayuda a los usuarios a identificar sobre qué van los artículos, creando una especie de “serie”, detectable fácilmente por la miniatura. Lo mismo para cabeceras o imágenes con las que ilustrar un contenido, por supuesto.

Y no, yo no recomiendo usar plugins para optimizar imágenes, porque lo que te ahorras de espacio en disco lo consumen con creces en memoria, CPU, ancho de banda del servidor, de lo que hablaremos a continuación.

Cómo ahorrar CPU y RAM

En cuanto a la CPU  la RAM de tu servidor tenemos que centrarnos en aquellos procesos dinámicos que requieran alta capacidad de proceso de estos recursos.

Sí, estamos hablando de la programación, la base de datos, o sea, de WordPress, el tema, los plugins, y su código, de la web como la conocemos.

Cachea todo

La mejor estrategia para no consumir recursos dinámicos es convertir todo lo que se pueda a estático. Así que utiliza caché de objetos, de procesos, de memoria, persistente, para ofrecer versiones estáticas de todas las peticiones, consultas y solicitudes comunes de programación.

De este modo, las consultas más habituales a la base de datos, las peticiones de datos meta que hace WordPress, se servirán desde su copia estática, reduciendo el consumo de recursos dinámicos de tu hosting, mucho más caros dicho sea de paso.

La única pega de la caché es que al mismo tiempo que ahorras en recursos dinámicos consumes más espacio en disco, así que debes analizar cual es tu principal carencia, aunque mi consejo es que priorices la caché, porque la derivada es que ofrecerás páginas más rápidas a tus visitantes, y a fin de cuentas ¿querías una web que todos disfruten no?

Usa una CDN

Si te es posible utiliza una CDN, tipo Amazon o CloudFlare, para servir remotamente desde sus servidores tus contenidos estáticos e imágenes, liberando así de peticiones a tu propio servidor.

Minimiza todo tu código

Si reduces, digamos, al 40 o 50% el peso de cada página ¿a que tu web en su conjunto se servirá más rápido, y consumirá menos recursos por parte de, por ejemplo, el motor de PHP?

Además, que con plugins como Autoptimize es cosa de hacer 3 clics. Elimina líneas vacías, tabulados, espacios, todo lo que sobra en el HTML, CSS y JavaScript que entregamos al navegador del visitante.

Software actualizado

Las versiones actualizadas de WordPress, plugins, temas, PHP, MySQL y demás aplicaciones necesarias para que funcione tu web están habitualmente más optimizadas que las antiguas, a veces con enorme diferencia.

Así que ¡actualiza, actualiza, actualiza!

Depura la base de datos

La base de datos de WordPress va aumentando de tamaño, llenándose de restos de procesos que hacen que tu hosting cada vez consuma más recursos para cualquier proceso de, solicitud, lectura y envío de datos.

Puedes depurar residuos simplemente usando la utilidad incluida en WordPress o el mismo PHPMyAdmin, o con plugins con Advanced DB Cleaner, que además te ayudará a vaciar datos transitorios temporales, los pesados transients.

Limpia la base de datos

Además de depurar residuos, en la base de datos de WordPress encontrarás tablas, líneas y elementos que ya no necesitas, normalmente de plugins y temas que ya no utilizas.

Si encuentras una tabla añadida por un tema o plugin que ya no usas bórrala. Pero ojo con esto, hazlo solo si estás seguro al 100%, sino puedes cargarte la web en un milisegundo.

Recuerda hacer una copia de la base de datos antes de hacer cualquier modificación, limpieza o borrado, para poder recuperar la web en caso de desastre.

Limpia la tabla options

Mención aparte merece la tabla options de la base de datos de WordPress, casi siempre repleta de restos de todo tipo de ajustes de plugins y temas antiguos, que ya no usas, de datos transitorios (transients) y demás basurilla que vamos acumulando en nuestra vorágine de probar todo nuevo tema o plugin disponible.

Si a eso le sumamos que no está estandarizado que los plugins y temas vacíen sus “cosas” de la base de datos al desinstalarlos, te encontrarás siempre con una tabla options de miles de líneas que ya no necesitas.

El problema es que no es fácil casi nunca saber qué puedes borrar y qué no, pues no siempre las líneas de esta tabla que dejan os plugins tienen un nombre que te permita identificar a qué pertenecen, o pertenecieron.

Sí es cierto que encontrarás a veces, con suerte, líneas del tipo “nombreplugin_opcion-del-mismo” pero no es así siempre.

De nuevo, lo mejor es trabajar con red, teniendo una copia de seguridad reciente antes de ponerte a pasar el aspirador.

En cualquier caso hay que intentarlo, pues no hay parte de la base de datos que genere más consultas, tráfico y consumo que las líneas de la tabla options.

Autoload solo de lo necesario

Todas las líneas de la tabla options de WordPress tienen una columna llamada Autoload, que define si se cargará la misma en cada ejecución de WordPress.

Todas estas opciones en carga automática y permanente tienes que veras como pequeñas aplicaciones consumiendo recursos siempre, en todo momento, así que es buena idea cambiar el estado de “yes” a “no” de aquellas que no sea realmente necesario que se activen siempre.

Aquí volvemos a terreno incógnito, pues hay tantas, son tan poco descriptivas, que cuesta adivinar qué estás desactivando o no.

No obstante el riesgo de hacer este cambio es mínimo, pues si ves que algo deja de funcionar con un plugin o lo que sea siempre puedes volver a cambiar el Autoload a yes.

Evita usar plugins que consuman muchos recursos

Fácil ¿no?

Pero ¿cuáles son? ¿cómo los detecto?

Muchos puedes adivinarlos a poco que pienses un poco en ¿qué hace este plugin? pero sobre todo ¿cómo lo hace?

Un ejemplo muy claro son los plugins de entradas relacionadas:

  • ¿Qué hace?: Muestra entradas relacionadas a la que está visualizando el visitante
  • ¿Cómo lo hace?: “Lee” la entrada actual y busca en la base de datos entradas posiblemente relacionadas utilizando el ¿título/etiqueta/categoría/etc.?
  • ¿Cómo, cómo lo hace?: ¿Hizo un análisis previo y siempre muestra las mismas a todos los visitantes o realiza todo el proceso en tiempo real en cada visita a cada contenido?

Verás que, por lógica, el consumo de recursos puede variar, pero siempre será extenso. En el ejemplo de este tipo de plugins procura siempre usar los que hagan el análisis previo en vez de en tiempo real.

Otros ejemplos de plugins que consumen muchos recursos del servidor, y para los que deberás buscar el más optimizado, serían:

  • Estadísticas
  • Seguridad
  • SEO
  • Caché (sí, regenerar o actualizar cachés consume recursos)
  • Maquetadores visuales
  • Comprobadores de enlaces

Desactiva plugins o utilidades inactivas

Hay plugins que es posible que queramos tener siempre instalados para tareas de mantenimiento o revisión, pero no es necesario que estén siempre activos.

Me refiero a comprobadores de enlaces como Broken Link Checker, de optimización de base de datos como Advanced DB Cleaner, etc, que aunque nos faciliten tareas no siempre tienen que estar activos, sino que podemos activarlos, ejecutar lo que quiera que hagan, y cuando termine desactivarlos.

Lo mismo para utilidades que sea innecesario tener activas de plugins o el tema. Hablo de cosas como módulos que no uses de Jetpack, ajustes que no utilizas del tema activo, ese tipo de cosas.

No envíes correos usando PHP

Por defecto, todos los correos que manda WordPress lo hace usando PHP Mail(), un consumo de recursos que puedes ahorrarte enviándolos por SMTP, mejor si es externo.

Para ello hay plugins como WP Mail SMTP que lo hacen fácil.

Controla los rastreadores

Constantemente hay rastreadores revisando tu web, pero no todos son buenos, no todos lo hacen para mandarte tráfico, y además algunos rastrean de manera muy poco eficiente para ti, con demasiado tráfico cada poco tiempo.

Un modo de controlar cada cuanto pueden rastrearte es aplicar una regla de retardo al archivo robots.txt, esta:

En el ejemplo anterior reclamamos que no se repita un rastreo hasta dentro de 30 segundos.

Lo mejor de este método es que Google no hace caso a esta regla. La mala noticia es que no solo Google no hace caso a esta regla.

Para estos otros insistentes rastreadores podemos usar las reglas de control de crawlers de plugins como WordFence y otros.

Bloquea intentos de acceso excesivos

Una medida de seguridad para WordPress que también evita consumos altísimos de los recursos de tu servidor es bloquear todo intento de acceso masivo a tu administración.

Plugins como iThemes Security te ofrecen ajustes para bloquear accesos masivos.

Administración siempre activa

Si estás navegando y dejas activa la administración de WordPress en otra pestaña estarás consumiendo recursos innecesariamente.

Tampoco tengas varias ventanas abiertas de administración, varias vistas previas de entradas, etc.

Todo ello consume mucha RAM y CPU de tu servidor.

Controla el cron de WordPress

El cron de WordPress ejecuta procesos programados, del mismo WordPress y de plugins y el tema, y no todas esas tareas son necesarias, y casi nunca son necesarias con la frecuencia por defecto de WordPress.

Lo usa WordPress para publicar artículos programados, lo usan los plugins de copias de seguridad para sus tareas programadas, WooCommerce para cancelar pedidos sin pagar y muchos otros.

Un modo de controlarlo es cambiar su programación, forzando por ejemplo a que se ejecute solo 1 vez al día en vez de cada hora, lo que redundará en menos consumo de CPU del servidor.

Puedes ver las tareas programadas en el cron de WordPress usando comandos de WP-CLI:

O puedes valerte de plugins como WP Crontrol para optimizar y personalizar su ejecución o incluso eliminar tareas del cron.

Si quieres ir más allá puedes desactivar el cron de WordPress y crear un cron de Linux en tu servidor. Lo primero es desactivar el cron de WordPress añadiendo esta línea al archivo wp-config.php:

Cuando guardes habrás liberado todas las tareas cron, y el consumo de recursos de tu hosting habrá llegado a mínimos, nunca vas a tenerlo más optimizado y consumiendo menos CPU y RAM.

Ahora bien, puede que algo no funcione (seguro) así que puedes crear un cron en tu alojamiento, normalmente en cPanel, en el que podrás especificar cada cuanto tiempo se ejecutará.

Este sería un ejemplo de trabajo cron creado en cPanel que se ejecutará cada media hora:

El comando a introducir para que el cron real lance el cron de WordPress sería así:

Todas estas tareas cron de WordPress se almacenan en una línea de la tabla options de la base de datos de WordPress, con Autoload en “yes” que, curiosamente, se llama también cron.

Reduce la carga de admin-ajax.php

Si alguna vez has analizado la velocidad de tu web en herramientas como las Pingdom Tools habrás observado que hay un archivo de WordPress, admin-ajax.php, que aparece montones de veces en la lista de procesos, y en ocasiones ralentiza mucho la carga total de la misma.

Esto es debido a que es el archivo que, entre otras cosas, gestiona la famosa utilidad de WordPress llamada HeartBeat, además del uso extensivo que pueden también llegar a hacer de admin-ajax.php algunos plugins.

Como los procesos de admin-ajax.php no suelen poderse cachear provocan además un enorme consumo de RAM y CPU de tu alojamiento.

Esto es debido a que admin-ajax.php se ocupa de servir contenido al navegador sin tener que recargar la página, por eso a los plugins de redes sociales, maquetadores, e-commerce y muchos otros les encanta usar esta utilidad de WordPress.

Y el modo de reducir esta carga es controlando la cantidad y frecuencia de peticiones a admin-ajax.php ajustando la HeartBeat API, como ya vimos no hace mucho.

Carga solo lo necesario

Para ir terminando, seguramente ya sabrás que WordPress carga montones de elementos por defecto que no siempre son necesarios; de hecho algunos casi nunca son necesarios.

Para evitar la carga de todas las funcionalidades que carga WordPress que aportan poco o nada a tu web puedes instalar y activar (no hay nada que configurar) mi plugin WordPress WPO Tweaks que, entre otras optimizaciones, hace las siguientes:

  • Elimina los Dashicons de la barra de administración (solo para los usuarios no conectados)
  • Elimina estilos y scripts de Emoji
  • Desactiva la REST API (desactivación completa)
  • Controla el intervalo de la Heartbeat API
  • Elimina cadenas de petición de los recursos estáticos
  • Atrasa la carga de JavaScript
  • Elimina cadenas de petición de Gravatar
  • Elimina el enlace de Really Simple Discovery de la cabecera
  • Elimina wlwmanifest.xml (Windows Live Writer) de la cabecera
  • Elimina la URL de enlace corto de la cabecera
  • Elimina el generador de versión de WordPress de la cabecera
  • Elimina la precarga de DNS de s.w.org
  • Elimina jquery_migrate
  • Elimina enlaces innecesarios de la cabecera
  • Elimina el nombre de generador de los feeds RSS
  • Elimina el filtro Capital P Dangit
  • Desactiva la vista previa de las miniaturas de PDF
  • Desactiva los pingbacks propios

Más ahorros

Además de todo lo que hemos visto en este artículo hay muchas otras optimizaciones que pueden ayudarte, además de a acelerar la carga de tu web, a ahorrar recursos de tu servidor, a gastar menos en hosting.

Aquí tienes algunas buenas ideas y trucos para optimizar WordPress:


Si sabes más trucos para gastar menos en hosting estamos deseando verlos en los comentarios 🙂

VALORA ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
FlojitoNo está malEstá bienMe ha servidoFantástico (13 votos, promedio: 4,69 de 5)
Cargando…

Autor: Fernando Tellado

Fernando Tellado, apasionado de WordPress, profesor, consultor y ponente. Maquero cansino, padre de tres hijos y de una perrita Beagle, Bilbaíno de nacimiento, Español de corazón y ciudadano de donde me quieran. Autor del libro WordPress - La tela de la araña. Mi blog personal es Navegando con red, donde he crecido como escritor en la red y ofrezco mis visiones acerca de la Web 2.0 y la blogosfera.

Comparte esta entrada en
468 ad

Centro de preferencias de privacidad

Cookies imprescindibles

Se usan para saber si ya aceptaste nuestras políticas, si ya estás suscrito a nuestra newsletter, para reconocer el estado de tu sesión si la tuvieses y para servir más rápidos los contenidos.

No se captura IPs ni siquiera para el servicio de Analytics así que tu visita es privada.

JSESSIONID, _cfuid, wpSGCachePypass, mailerlite, gdpr, gawp
mailerlite, _cfuid

Cookies de terceros

Usamos cookies de terceros con servicios, también garantes de tu privacidad, que analizan tus usos de navegación para que podamos mejorar los contenidos, si ya estás suscrito al boletín y los elementos compartidos en redes sociales y el formulario de comentarios.

1P_JAR, APISID, CONSENT, HPSID, NID, SAPISID, SID, SIDCC, SSID, disqus_unique, disqusauth
disqus_unique, disqusauth
1P_JAR, APISID, CONSENT, HPSID, NID, SAPISID, SID, SIDCC, SSID

Pin It on Pinterest

Share This
Ir al contenido