Cómo optimizar WordPress para pagar menos hosting

Cómo optimizar WordPress para pagar menos hosting
  • 7
    Oct

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 algunas 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 costo.

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 gastar menos en hosting

Nos concentraremos en 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, o incluir uno o varios sitios adicionales en el tu plan actual -si es multidominio y te lo permite- y empezar a ahorrar dinero.

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

Si nos fijamos en las prestaciones de los planes de alojamiento hay una relación directa entre capacidad-prestaciones y precio. A mayor espacio en disco, memoria, CPU, ancho de banda, etc, mayor será el costo. 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 o capacidad, 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. Si quieres/necesitas tener respaldos, genéralos, descárgalos a tu computador y luego bórralos del servidor.

No te preocupes -por ejemplo- por las configuraciones que hayas hecho a algún plugin, éstas se guardan en la base de datos, así que la próxima vez que borres, y posteriormente instales y actives, por ejemplo, All in One SEO Pack, no tendrás que volver a poner tus ajustes preferidos, pues ya quedará guardado en la base de datos la configuración que le asignaste inicialmente.

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 o inodos.

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

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 es importante – sino esos miles de pequeños archivos de esas copias de webs antigua que guardas en tu alojamiento, todas y cada una de esas ya innecesarias versiones que alguna vez tuviste de tu web.

Si quieres seguir “guardando recuerdos” 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; recordando vaciar la carpeta Trash al finalizar, para que no sigan quedando allí los archivos borrados.

Y es solo un ejemplo. Vigila carpetas con muchos archivos, por pequeños que sean, especialmente si son pequeños, y muchos, allí se esconde el mayor consumo de inodes.

Otra práctica efectiva de ahorro en el consumo de espacio es configurar y manejar las cuentas de correo desde plataformas externas como Outlook, Thunderbird y similares, bajo protocolo POP3, de esta manera todo lo enviado y recibido quedará siempre alojado en tu computador, y no consumiendo espacio e inodes del servidor.

Optimiza las imágenes antes de subirlas

¿De verdad necesitas subir la foto de ese bonito paisaje en su versión HD?

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 -y dimensiones- 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 (desde el menú Ajustes > Medios) 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 (mejor si usas el nuevo WebP).
  • Reutiliza imágenes. Si ya tienes una imagen subida que te vale de miniatura para un artículo ¿para qué subir otra parecida?. 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.
  • Emplea plugins y técnicas adicionales para la optimización de imágenes.

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 (CPU, RAM, I/O, IOPS).

El único detalle de la caché es que al mismo tiempo que ahorras en recursos dinámicos consumes más espacio en disco (al realizar copias estáticas del contenido dinámico), así que debes analizar cual es tu principal carencia, aunque nuestro consejo es que priorices la caché, porque la derivada es que ofrecerás páginas más rápidas a tus visitantes.

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 como 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 verlas 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 detectarlos analizando 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:

Crawl-delay: 30

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:

wp cron event list

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:

define('DISABLE_WP_CRON', true);

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í:

wget -q -O - http://tudominio.es/wp-cron.php?doing_wp_cron >/dev/null 2>&1

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 (aquí, puedes ver cómo, además de opciones adicionales de optimización).

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) el 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

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Devela este datazo, ¡compártelo!

Reviews and expert opinio