Cuando se trata de seguridad, sabemos lo importante que es actualizar regularmente las instalaciones de WordPress (núcleo, temas y plugins), y cuánto tiempo podría llevarnos el proceso de actualización, especialmente cuando hemos instalado un buen número de plugins. Normalmente se recomienda seguir estos pasos:

  1. Archivos de backup y tablas de bases de datos
  2. Deshabilitar los plugins
  3. Actualización
  4. Habilitar los plugins uno por uno
  5. Revisa el sitio web

Podría ser una tarea tediosa para un solo sitio web, y podría ser un trabajo molesto y complejo cuando tenemos que actualizar cinco, diez o más sitios web.

Con el propósito específico de mejorar la seguridad de la instalación y facilitar la administración del sitio, WordPress 3.7 introdujo actualizaciones automáticas. De forma predeterminada, esta fantástica función está habilitada para versiones menores (es decir, versiones de mantenimiento y seguridad) y archivos de traducción, pero es posible personalizar cualquier tipo de actualizaciones. Así que, en este post, veremos cómo automatizar el proceso de actualización cada vez que se lance una nueva versión del núcleo, tema o plugin de WordPress. ¡Vamos a sumergirnos en las actualizaciones automáticas de WordPress!

Actualizaciones automáticas de WordPress
Actualizaciones automáticas de WordPress

Actualizaciones automáticas de WordPress

Hay cuatro tipos de actualizaciones y actualizaciones automáticas de WordPress:

  1. Actualizaciones del núcleo
  2. Actualizaciones de los plugins
  3. Actualizaciones de temas
  4. Actualizaciones de los archivos de traducción

Las actualizaciones del núcleo se dividen en tres subtipos:

  1. Desarrollo del núcleo (solo disponible para instalaciones de desarrollo)
  2. Actualizaciones menores del núcleo (mantenimiento y seguridad) – habilitadas por defecto en instalaciones estables
  3. Principales actualizaciones del núcleo

WordPress permite automatizar el proceso de actualización para cualquiera de estos tipos proporcionando dos constantes wp-config.php y un buen número de filtros API.

Control de las actualizaciones de fondo a través de wp-config.php

WordPress proporciona un par de constantes wp-config.php que nos permiten controlar las actualizaciones automáticas. Poner AUTOMATIC_UPDATER_DISABLED en true deshabilitará cualquier tipo de actualización automática:

define( 'AUTOMATIC_UPDATER_DISABLED', true );

WP_AUTO_UPDATE_CORE nos permite controlar las actualizaciones del núcleo (versiones menores, mayores y de desarrollo). Esta constante puede definirse de la siguiente manera:

# Disables all core updates:
define( 'WP_AUTO_UPDATE_CORE', false );

# Enables all core updates, including minor and major:
define( 'WP_AUTO_UPDATE_CORE', true );

# Enables minor updates:
define( 'WP_AUTO_UPDATE_CORE', 'minor' );

En las instalaciones de desarrollo WP_AUTO_UPDATE_CORE por defecto es true. En las instalaciones estables, el valor por defecto es minor.

Para completar, debo mencionar una constante adicional que puede ser definida para desactivar las actualizaciones automáticas. Sin embargo, al establecer su valor a true se desactivará cualquier edición de archivos, incluso temas e instalaciones de plugins y actualizaciones manuales.

define( 'DISALLOW_FILE_MODS', true );

En su lugar, puede que prefieras definir la constante DISALLOW_FILE_EDITS, que deshabilitaría el editor de archivos, pero manteniendo seguras las funcionalidades de instalación y actualización.

Tutorial relacionado: wp-config.php File – An In-Depth View on How to Configure WordPress

Control de las actualizaciones de fondo a través de los filtros de la API

Las constantes de configuración proporcionan una forma general de activar o desactivar las actualizaciones automáticas. Pero WordPress proporciona una serie de filtros que proporcionan un control más amplio sobre cualquier tipo de actualizaciones.

Nota: Los filtros deben usarse dentro de los plugins, y los «plugins obligatorios» son una buena opción para las actualizaciones de fondo. Los mu-plugins residen en una carpeta específica dentro del contenido de /wp-content y se habilitan automáticamente por WordPress. Estos plugins no aparecen en la pantalla de plugins de WordPress, por lo que no pueden ser desactivados o eliminados accidentalmente por los administradores del sitio. Para una visión más profunda, consulta la documentación del Codex

Primero, return true a través del filtro automatic_updater_disabled tiene el mismo efecto que definir la constante AUTOMATIC_UPDATER_DISABLED a true en wp-config.php:

add_filter( 'automatic_updater_disabled', '__return_true' );

Podemos controlar cualquiera de los tipos de actualización a través de los filtros auto_update_$type que habilitan o deshabilitan las actualizaciones dependiendo del valor de $type ('core', 'plugin', 'theme' o 'translation').

Por lo tanto, podemos automatizar todas las actualizaciones del núcleo devolviendo true a través del filtro auto_update_core:

add_filter( 'auto_update_core', '__return_true' );

En el siguiente ejemplo, estamos habilitando las actualizaciones automáticas de temas, plugins y traducciones:

add_filter( 'auto_update_theme', '__return_true' );
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_translation', '__return_true' );

En los ejemplos anteriores hemos activado las actualizaciones automáticas. Pero estos filtros nos dan un mayor control sobre las actualizaciones. En el siguiente ejemplo estamos automatizando las actualizaciones automáticas de dos plugins específicos:

function cb_auto_update_plugins ( $update, $item ) {
	$plugins = array ( 'hello', 'akismet' );
	if ( in_array( $item->slug, $plugins ) ) {
		// update plugin
		return true; 
	} else {
		// use default settings
		return $update; 
	}
}
add_filter( 'auto_update_plugin', 'cb_auto_update_plugins', 10, 2 );

La función de devolución de llamada mantiene dos argumentos:

  1. $update: una booleana que define si debe ser actualizada o no;
  2. $item: el objeto de la oferta de actualización.

La función comprueba si el elemento a actualizar está en la matriz de $plugins, y en consecuencia lo devuelve true o false .

Por último, podemos hacer la diferencia entre el desarrollo, las actualizaciones menores y mayores, devolviendo true o false a través de los siguientes filtros:

add_filter( 'allow_dev_auto_core_updates', '__return_false' );
add_filter( 'allow_minor_auto_core_updates', '__return_true' );
add_filter( 'allow_major_auto_core_updates', '__return_true' );

Sabemos que ocasionalmente una actualización puede fallar. En el peor de los casos, el sitio web puede caer después de un fallo de actualización. Pero por suerte podemos pedirle a WordPress que nos notifique con un correo electrónico después de cualquier actualización (o intento).

Correos electrónicos de resultados, notificaciones y depuraciones

Dependiendo del resultado del proceso de actualización, WordPress envía un correo electrónico diferente a la dirección del administrador:

  • Se envía un correo electrónico de resultados después de una actualización automática del núcleo;
  • Se envía un correo electrónico de notificación cuando WordPress no puede ejecutar una actualización automática;
  • Se envía un correo electrónico de depuración en las versiones de desarrollo de WordPress.

Cada vez que una actualización automática tiene éxito o falla, WordPress envía un correo electrónico de resultado o de notificación con uno de los siguientes temas:

  • Su sitio se ha actualizado a WordPress XXX (en caso de éxito)
  • WordPress XXX está disponible. ¡Por favor, actualízala! (la actualización falló y se requiere una actualización manual: caso fallido)
  • URGENTE: Tu sitio puede estar caído debido a una actualización fallida (la actualización falló y WordPress podría estar caído: caso crítico)

El filtro auto_core_update_send_email controla los correos electrónicos de resultados y notificaciones. Estos correos electrónicos pueden ser desactivados devolviendo el false de la siguiente manera:

apply_filters( 'auto_core_update_send_email', '__return_false' );

Especialmente si planeas extender las actualizaciones automáticas a las principales versiones del núcleo y/o del tema y de los plugins, puede que prefieras dejar habilitados los correos electrónicos de resultados y notificaciones, o personalizarlos según el resultado o la tipología de la actualización. En el siguiente ejemplo, WordPress no enviará el correo electrónico de resultados en caso de éxito:

function cb_auto_core_update_send_email ( $send, $type, $core_update, $result ) {
	if ( !empty( $type ) && $type == 'success' ) {
		// don't send email
		return false; 
	}
		// use default settings
		return $send; 
	}
}
add_filter( 'auto_core_update_send_email', 'cb_auto_core_update_send_email', 10, 4 );

La función de devolución de llamada mantiene los siguientes argumentos:

  • $send es un booleano que determina si enviar un resultado o un email de notificación;
  • $type es una cadena que establece el tipo de correo electrónico que se enviará (éxito, fracaso o crítico);
  • $core_update es el objeto de oferta de actualizaciónl;
  • $result es el resultado de la actualización del núcleo (puede ser un WP_Error).

De forma predeterminada, se notifica a los administradores cuando la oferta de actualización recibida de WordPress.org establece una marca determinada y la instalación no puede actualizarse. El correo electrónico de notificación se enviará solo una vez por cada lanzamiento. El filtro send_core_update_notification_email permite cierta discreción en cuanto a si hay que enviar y cuándo enviar este tipo de notificaciones. Aplica el filtro de la siguiente manera:

apply_filters( 'send_core_update_notification_email', '__return_true' );

Por último, el filtro de correo electrónico automatic_updates_send_debug_email controla los correos electrónicos de depuración, que proporcionan información de registro útil sobre las actualizaciones realizadas. Por defecto, estos correos electrónicos son enviados por las instalaciones de desarrollo. Return false evitará que WordPress envíe correos electrónicos de depuración, mientras que return true habilitará estos correos electrónicos incluso en instalaciones estables:

apply_filters( 'automatic_updates_send_debug_email', '__return_true' );

Cuándo y por qué hay que deshabilitar las actualizaciones automáticas de WordPress

El proceso de auto-actualización es una  función muy buena para muchos usuarios, ya que pueden ahorrar mucho tiempo y trabajo.

Pero aunque las actualizaciones automáticas parezcan que son realmente seguras, deberíamos preguntarnos si siempre es una buena idea habilitarlas todas.

Ocasionalmente, podríamos experimentar problemas de incompatibilidad en los temas y plugins que podrían interrumpir algunas funcionalidades o incluso romper el sitio web. Si el sitio web depende de un buen número de plugins, podría ser más seguro realizar actualizaciones manuales, al menos para los plugins. El proceso de actualizar uno por uno nos permite detectar rápidamente los problemas que la automatización haría difícil de encontrar.

Además, si eres un desarrollador, debes tener cuidado con los nombres que elijas para tus temas y plugins, incluso si no piensas distribuirlos. Cuando se realizan actualizaciones, WordPress busca en el directorio de plugins nuevas versiones de los mismos y sobrescribe los archivos si se encuentra un plugin con el mismo nombre. Por lo tanto, si piensas habilitar actualizaciones de fondo para temas y plugins, asegúrate de establecer nombres únicos para tus guiones.

Sí, eso es un montón de cosas buenas para los desarrolladores. Pero, ¿cómo puede un usuario no desarrollador gestionar las actualizaciones automáticas?

Controla las actualizaciones automáticas de WordPress con plugins

Si no eres un desarrollador, puedes controlar las actualizaciones automáticas de WordPress usando un plugin.

El Administrador de Actualizaciones permite a los usuarios administradores controlar las actualizaciones de WordPress tanto en instalaciones de un solo sitio como de múltiples sitios. El plugin permite gestionar todas las tipologías de actualizaciones de WordPress, y los temas y plugins pueden ser seleccionados individualmente para las actualizaciones automáticas. Las funciones adicionales se relacionan con los correos electrónicos de notificación, bloqueo de usuarios y registro de actualizaciones de plugins.

Easy Updates Manager
Easy Updates Manager

En caso de incompatibilidad, podría ser necesario volver rápidamente a una versión anterior de un tema o plugin. WP Rollback te permite restaurar una versión anterior de cualquier tema y plugin instalado desde la pantalla de plugins. Solo tienes que hacer clic en el enlace Rollback y el plugin te mostrará una lista de todas las versiones disponibles.
Desafortunadamente, WP Rollback no será de ayuda si tu sitio web se cae, así que no te olvides de hacer una copia de seguridad y leer cuidadosamente la documentación online.

WP Rollback
WP Rollback

Finalmente, si necesitas una prueba de compatibilidad de actualizaciones automáticas en tu instalación de WordPress, el Background Update Tester te proporcionará la información que necesitas.

Actualizaciones automáticas de los plugins y temas premium

Como desarrollador de plugins o temas premium de WordPress, tienes el deber de integrar un mecanismo de actualizaciones automáticas en tus productos para ofrecer la misma experiencia de actualización perfecta que los usuarios esperan de los productos de WordPress.org. Actualmente, este es el estándar del mercado (y por una buena razón). Puedes alojar los productos premium tú mismo y desarrollar un mecanismo de actualizaciones, o aprovechar plataformas como Freemius o Kernl, que ofrecen un repositorio seguro y actualizaciones automáticas como servicio, listo para usar.

Reversión para actualizaciones automáticas

Cualquier actualización del core, plugins o temas conlleva algún riesgo, tanto si es manual como automática. Afortunadamente, WordPress proporciona un paracaídas de seguridad tanto para las actualizaciones manuales como para las automáticas. Mientras que las reversiones automáticas para las actualizaciones del core se remontan a WordPress 3.7, tuvimos que esperar un poco más para las reversiones de las actualizaciones de plugins.

Desde WordPress 6.3, en caso de actualización manual, un plugin no se reactiva si genera un error fatal de PHP. Esta comprobación de seguridad no se ha realizado en las actualizaciones automáticas de plugins hasta WordPress 6.6.

Ahora, si tienes habilitadas las actualizaciones automáticas de plugins en tu sitio web de WordPress, en caso de fallo no verás la pantalla blanca de la muerte porque WordPress revierte automáticamente el plugin a su versión anterior evitando que el sitio se bloquee. Cuando visites la pantalla de plugins en tu panel de control de WordPress, notarás que el plugin sigue esperando una actualización.

Si un plugin no se actualiza automáticamente, WordPress lo revertirá a su versión anterior
Si un plugin no se actualiza automáticamente, WordPress lo revertirá a su versión anterior

Además, cuando WordPress detecta un error al actualizar un plugin, también envía al administrador del sitio un correo electrónico con una lista de los plugins que no se han podido actualizar y de los que están actualizados.

Un correo electrónico de WordPress advirtiendo del fallo de reversión automática del plugin
Un correo electrónico de WordPress advirtiendo del fallo de reversión automática del plugin

Puedes volver a intentar la actualización en un entorno de staging, esperar a que se publique una nueva versión del plugin que solucione el problema o ponerte en contacto con el desarrollador para obtener ayuda.

Actualizaciones Automáticas de Kinsta

Las actualizaciones de WordPress deben manejarse con precaución y cuidado, ya que podrían fallar y dejarte con una pantalla en blanco o causar problemas de compatibilidad entre plugins o con el núcleo de WordPress.

Probar las actualizaciones en un entorno staging y hacer una copia de seguridad del sitio en producción antes de implementarlas es vital para evitar estos problemas. Esto es particularmente importante para sitios web de negocios y educativos.

Aunque hayas tomado todas las precauciones para garantizar que las actualizaciones se realicen de forma segura, actualizar el núcleo, los plugins y los temas lleva mucho tiempo, especialmente cuando se gestionan docenas o cientos de sitios web de WordPress.

Es cierto que ahora hay actualizaciones automáticas disponibles para el núcleo y los plugins de WordPress, y que existe una opción de reversión para las actualizaciones automáticas de plugins que fallan. Sin embargo, estas no son soluciones definitivas y siguen requiriendo una monitorización activa.

El panel de control de MyKinsta ofrece varias funcionalidades que te permiten minimizar o incluso eliminar el tiempo de ejecución y el riesgo asociados a las actualizaciones de WordPress, los plugins y los temas. Esto resulta especialmente útil para sitios complejos y agencias con docenas o cientos de sitios web.

En el panel de control de MyKinsta, puedes:

  • Comprobar cuáles de tus plugins y temas instalados se ven afectados por vulnerabilidades conocidas.
  • Actualizar plugins y temas de forma individual o en lote, para un solo entorno o para varios entornos a la vez.
  • Activar o desactivar plugins y temas.
  • Activar o desactivar las actualizaciones automáticas de plugins y temas, de forma individual o en lote.
  • Activar las Actualizaciones Automáticas de Kinsta.

Inicia sesión en tu panel de control de MyKinsta y ve a Sitios de WordPress. Aquí, las pestañas Plugins y Temas muestran todos los plugins y temas instalados en tus sitios web de WordPress. Estas listas incluyen los números de versión, las actualizaciones disponibles y la última versión de cada extensión. Un menú desplegable te permite realizar acciones específicas en plugins/temas individuales o en lote.

La pestaña Plugins muestra todos los plugins instalados en todos tus sitios de WordPress.
La pestaña Plugins muestra todos los plugins instalados en todos tus sitios de WordPress.

También puedes comprobar las versiones de los plugins/temas y gestionar las actualizaciones en instalaciones/entornos específicos. Inicia sesión en tu panel de control de MyKinsta y ve a Sitios de WordPress > nombre del sitio > Plugins y temas. Aquí encontrarás las siguientes secciones:

  • Actualizaciones automáticas
  • Plugins instalados
  • Temas instalados
  • Actualizaciones Automáticas de Kinsta

En Actualizaciones automáticas, puedes comprobar qué actualización automática está habilitada en tu sitio/entorno. El botón Cambiar abre un menú desplegable en el que puedes seleccionar uno de los tres tipos de actualización para todos los plugins y temas de tu sitio:

  • Manual: Desactivar las actualizaciones automáticas
  • Actualizaciones automáticas de WordPress: Activar las actualizaciones automáticas integradas de WordPress para plugins y temas
  • Actualizaciones Automáticas de Kinsta: Activar las Actualizaciones Automáticas de Kinsta con una prueba de regresión visual.
Cambiar las Actualizaciones Automáticas en MyKinsta
Cambiar las Actualizaciones Automáticas en MyKinsta

Las secciones Plugins instalados y Temas instalados proporcionan listas de los plugins y temas de tu entorno de WordPress. Aquí puedes comprobar el estado de la extensión (activa o inactiva), la versión instalada, la última versión y el estado de las actualizaciones automáticas. Un menú desplegable también te permite actualizar, activar o desactivar el plugin/tema, y cambiar la configuración de actualización automática para cada extensión de forma individual o en lote.

Plugin instalado en un entorno de WordPress en MyKinsta
Plugin instalado en un entorno de WordPress en MyKinsta

Si se sabe que una versión tiene vulnerabilidades de seguridad, un triángulo rojo y una herramienta de información te informan del riesgo potencial.

Una versión de plugin con vulnerabilidades de seguridad conocidas
Una versión de plugin con vulnerabilidades de seguridad conocidas

Mientras que las secciones anteriores proporcionan detalles y te permiten gestionar las actualizaciones automáticas de WordPress, la sección Actualizaciones Automáticas de Kinsta proporciona detalles sobre las actualizaciones realizadas automáticamente por Kinsta.

Actualizaciones Automáticas de Kinsta
Actualizaciones Automáticas de Kinsta

Estas actualizaciones no son solo una versión más potente del sistema de actualización de WordPress. Son algo diferente y más eficiente. Mantienen tus plugins y temas de WordPress actualizados y realizan pruebas de regresión visual en tu sitio antes y después de la actualización. Si se detecta un error, las Actualizaciones Automáticas de Kinsta revierten los cambios.

Captura de pantalla de una actualización fallida
Captura de pantalla de una actualización fallida

Las Actualizaciones Automáticas de Kinsta son altamente personalizables. Puedes elegir la frecuencia de las pruebas, el intervalo de tiempo y la sensibilidad de la prueba de regresión visual. También puedes seleccionar las URLs de los sitios que se van a probar y especificar los elementos de la página que se van a ocultar de la prueba. También puedes elegir si activar o no el modo de mantenimiento al ejecutar las actualizaciones.

Configuración de las actualizaciones automáticas de Kinsta
Configuración de las actualizaciones automáticas de Kinsta

Gracias al add-on de actualizaciones automáticas de Kinsta, tu equipo puede reducir drásticamente el tiempo que suele dedicar a actualizar los plugins y temas de WordPress. Si gestionas docenas o incluso cientos de sitios, las Actualizaciones Automáticas de Kinsta te ahorran tiempo y recursos, permitiéndote centrarte menos en el mantenimiento y más en tu negocio principal.

Para obtener una descripción más detallada de las Actualizaciones Automáticas de Kinsta, consulta nuestra documentación sobre las Actualizaciones Automáticas.

Resumen

Las actualizaciones automáticas de WordPress son una gran funcionalidad que puede ahorrar tiempo y esfuerzo, al tiempo que mantiene tu sitio web actualizado. Afortunadamente, hoy en día WordPress cuenta con una potente funcionalidad de actualización automática para el núcleo, los plugins y los temas.

Sin embargo, las actualizaciones automáticas no son completamente seguras. Pueden fallar por diversas razones, por lo que no se pueden dejar al azar. Es fundamental disponer de una copia de seguridad reciente para restaurar en caso de fallo y comprobar cuidadosamente el sitio después de cada actualización.

Además, a medida que tu sitio web crece o tu base de clientes aumenta, actualizar la plataforma de WordPress puede convertirse en una tarea compleja y que requiere mucho tiempo, incluso si habilitas las actualizaciones automáticas de WordPress.

Aquí es donde las Actualizaciones Automáticas de Kinsta resultan útiles. Este potente add-on te permite configurar actualizaciones automáticas para los plugins y temas de WordPress, realizar una prueba de regresión visual que compara el aspecto de tu sitio web antes y después de cada actualización, y revertir los cambios si es necesario. No tienes que preocuparte por el éxito de una actualización, porque Kinsta se encarga de todo.

¿Quieres una forma más inteligente de gestionar las actualizaciones? Prueba ahora nuestro add-on premium.

Carlo Daniele Kinsta

Carlo es un diseñador y desarrollador de front-end freelance. Cuando escribe artículos y tutoriales, Carlo se ocupa principalmente de los estándares web, pero cuando juega con sitios web, su mejor compañero de trabajo es WordPress.