DEV Community

Juanan Ruiz
Juanan Ruiz

Posted on • Originally published at kungfupress.com on

¿Deberías quitar o limitar las revisiones de artículos en WordPress?

Una de las cosas que los usuarios no perdonan en una web es la lentitud. El contenido podrá ser de mayor o menor calidad y el diseño será mas o menos atractivo, si encuentran algo de valor seguirán contigo. Pero una página web que carga lenta es insufrible, si a eso le agregas la manía que tiene Google porque las webs sean rápidas tienes una tormenta perfecta.

En WordPress una de las dimensiones críticas que hay que controlar es el tamaño de la base de datos. Cuando creas un artículo o página y vas haciendo modificaciones el propio sistema guarda automáticamente las distintas versiones en la base de datos. Esto en algunos casos es de gran ayuda porque te permite revisar y recuperar versiones antiguas del contenido, pero con el tiempo las revisiones se van acumulando en la base de datos, el tamaño de esta va creciendo y tu sitio comienza a relentizarse (en webs con pocos recursos incluso he visto que impedía la creación de nuevas entradas).

Captura de pantalla de una comparación de revisiones de un artículo

Por tanto es necesario buscar una solución de compromiso ante el dilema de mantener o no mantener revisiones. Si tienes un buen plan de copias de seguridad y optas por optimizar la velocidad ante todo, puedes prescindir totalmente del sistema de revisiones. Si quieres una solución intermedia puedes al menos limitar el número de versiones que se guardan.

Otra solución bastante conservadora, aunque supone un poco más trabajo, es utilizar un plugin como WP-Optimize que te permite comprobar el total de revisiones de tus artículos y tomar distintas medidas al respecto, este plugin también es muy útil porque permite localizar y borrar registros huérfanos de tu base de datos.

Cómo deshabilitar las revisiones de artículos desde código

Para ello necesitas modificar el archivo wp-config.php. Lo primero es acceder a los ficheros de tu sitio web y hacer una copia de seguridad de este fichero por si accidentalmente modificas algo que no debieras.

Luego editas el fichero y más o menos debajo de la línea

$table_prefix = ‘wp_’;

pero siempre por encima de las líneas donde se define la constante “ABSPATH” añades la siguiente línea:

define('WP\_POST\_REVISIONS', false);

Es importante que esté bien escrito, si al volver a la web te aparece un error o la temida pantalla en blanca, vuelve a revisar lo que has escrito, mira que las comillas estén bien, el punto y coma, etc. También es importante la posición dentro del fichero como te he comentado antes. Pero tampoco te asustes demasiado, si quieres ser implementador o desarrollador de WordPress te tienes que acostumbrar a estas cosas. Para quedarte más tranquilo puedes practicar antes en un blog de pruebas o en uno local. Y recuerda siempre sacar a priori una copia de seguridad del archivo wp-config.php por si la lías parda.

Con esto has quitado las revisiones, pero WordPress seguirá haciendo el autoguardado automático del archivo, esto no ocupa lugar en la base de datos, pero, si quieres que no se haga con tanta frecuencia puedes aumentar el tiempo que viene establecido por defecto, que es de un minuto, a 3 o 5 minutos. Para ello encima de la línea anterior agrega esta otra:

define('AUTOSAVE\_INTERVAL', 300); 

Con lo cual el autoguardado se define a 300 segundos, o sea, 5 minutos. Recuerda es importante que todo esto vaya encima de la línea del “Absolute path”.

Guarda finalmente el fichero wp-config.php y verás que en el panel de publicación de los artículos ya no aparece la opción de revisiones.

Cómo (NO) deshabilitar las revisiones de artículos con un plugin. ¡Cuidado lee hasta el final!

Resulta que buscando un plugin que hiciera esto, casi el único que encuentro es Disable Post Revision (https://wordpress.org/plugins/disable-post-revision/) es un plugin muy ligero que sólo sirve para estos. Además ofrece la opción de deshabilitar las revisiones en función del tipo de contenido: páginas, entradas, medios, etc.

Cuando analizo un plugin o publico un fragmento de código en esta web no me conformo con buscar el primer plugin que encuentro, probarlo y tirar para adelante. Me gusta ver el código del plugin para ver lo que hace internamente, ve que repercusiones tiene sobre el sitio, sobre la base de datos, etc.

Cuál ha sido mi sorpresa cuando tras instalar este plugin, configurarlo y ver que funciona, me voy a la base de datos y veo que las revisiones se siguen grabando, aunque no se tiene acceso a ellas desde el panel de control. O sea el plugin te quita la ventaja de poder acceder a las revisiones y te sigue dejando el marrón permitir su almacenamiento en la base de datos ¡Que mal! ¡Ni se te ocurra instalarlo!

Cómo quitar revisiones antiguas en un sitio existente con un plugin

Si te toca revisar un sitio existente que no tenía ningún plugin de este tipo instalado previamente puede que te encuentres con cientos de revisiones de algunos contenidos que están relentizando la base de datos, las soluciones vistas hasta ahora no valen

Para quitar las revisiones antiguas el plugin que brilla con luz propia es WP-Optimize. Antes de empezar a utilizar este plugin o cualquiera que se dedique a borrar contenidos de la base debes hacer sí o sí una copia de seguridad de la base de datos. Es más, las primeras pruebas deberías hacerla en una web local con contenido de prueba que no te importe perder. Si aún no tienes ningún plugin de copias de seguridad instalado te recomiendo Updraft Plus (https://updraftplus.com/)

Una vez instalado el plugin dentro de su menú de administración ve a la opción Base de datos, marca la opción Limpiar todas las revisiones de entradas y dale al botón Ejecutar optimización.

Como verás WP-Optimize tiene muchas más opciones, pero en este artículo no me quiero salir del tema que nos tocaba.

Como quitar revisiones antiguas desde código.

Para quitar revisiones antiguas desde código necesitas tener acceso a la base de datos de tu sitio WordPress y en ella teclear la siguiente sentencia SQL:

DELETE FROM wp\_posts WHERE post\_type = "revision"; 

Resumen

Quería escribir una simple entrada sobre cómo añadir una línea a tu fichero wp-config.php por si necesitas deshabilitar el mecanismo de almacenamiento de revisiones de WordPress. No es algo que te recomiende hacer por defecto porque en muchas ocasiones viene muy bien poder deshacer los cambios que hemos realizado en un artículo o recuperar información de una versión antigua de una página que pueda sernos útil.

Sólo quiero que seas consciente de que todas estas revisiones van quedando almacenadas en la base de datos y si tienes muchas entradas y haces muchas revisiones en ciertos alojamientos podrían suponer una carga para el sistema.

Por el camino me he encontrado un plugin que no hacía lo que decía y me he quedado un poco a cuadros porque es un plugin del repositorio oficial. Por favor si alguien lo usa y le funciona que me deje un comentario de la versión que está usando o que me diga que he podido hacer mal.

Top comments (0)