Optimiza tu WordPress

Optimiza tu WordPress

Optimiza tu WordPress.

En ocasiones hay que «remangarse» y hacer trabajo sucio, o sea, limpiar lo que se pueda, para que las cosas funcionen como es de suponer que deben hacerlo.

Cuando una instalación de WordPress lleva tiempo funcionando, es muy común que se acumule basura en su interior. Obviamente, no hablo de «polvo» acumulado, pero si de residuos informáticos.

La cantidad de residuos puede verse aumentada por muchos factores, como la cantidad de «escritores», la cantidad de «versiones» de cada entrada, etcétera.

Factores estos, no siempre fácilmente controlables. 😉

Optimiza tu WordPress

Antes de limpiar, es conveniente saber qué se debe limpiar (no es lo mismo limpiar una cocina que un taller mecánico) han de usarse herramientas y productos de limpieza adecuados.

Sí, de acuerdo, estamos hablando de informática, pero aún así, no es lo mismo limpiar un disco duro, que una memoria o una galería de imágenes (por poner un ejemplo).

En este caso concreto, hablamos de limpiar la base de datos de WordPress.

Así que empezamos por el principio.

¿Porqué se genera suciedad en la Base de Datos?

Las razones siempre son las mismas, aunque la velocidad a la que se genera la basura varía de un entorno a otro, por lo que voy a plantearte distintos escenarios de uso del CMS1.

Lo cierto es que es suficiente con escribir algo en la bitácora. Sí, así como suena. Si abres una nueva entrada, ya sea con el editor clásico o con Gutenberg, y escribes «una letra» cada minuto, el editor ira guardando las versiones a modo de borrador, en la base de datos, cada cierto tiempo establecido.

Sin hacer nada, sin pulsar ningún botón, se irá generando «basura» de las copias que no necesitas.

Si ocurre que esto se hace con frecuencia, o si hay más de un usuario editando entradas, este efecto se multiplica, como puedes entender.

Y aunque esto es «un caso extremo», lo uso para explicarte una de las formas fáciles en que esto ocurre sin que el usuario (tu) se de cuenta.

Otro escenario: Tu eres de los que escribe rápido y sin necesidad de edición, por lo que escribes la entrada «del tirón» y no da tiempo a que se creen copias fantasma.

Pero resulta que en tu entrada hace referencia a «otros autores» y citas su obra; en correspondencia, esos autores te citan a ti, o agradecen tus menciones.

Cuando ese cruce de halagos se hace con enlaces, se genera un tráfico de «pingback» y «trackbacks» y, eso también se almacena en la base de datos, engordándola sin necesidad de ninguna acción adicional.

Como comprendes, mientras más citaciones hay en un artículo, más «basura» de este tipo se genera y, mientras más entradas hay con citaciones …

Optimiza tu WordPress.

Atajando el problema

Sea cual sea la razón, más tarde o más temprano, todas las instalaciones de WordPress deberían limpiarse ya que, un engrosamiento innecesario de la base de datos (el «alma» del CMS) genera un detrimento (notable) en el rendimiento del sitio.

Claro que siempre hay quién dice: «Yo nunca he tenido problemas», quien tiene la suerte de contar con un servidor con recursos muy altos, al que no afecta el «peso» de la base de datos, etcétera.

Pero en general, como ya he dicho, tarde o temprano te encuentras con este obstáculo.

Limpiar la basura, es algo que como sabes, no se hace con una escoba, pero también sabes que hay muchas formas de luchar con el problema; desde las más fáciles mediante la instalación de un plugin, hasta la forma manual sólo recomendada a personal especializado.

Los plugin

Advanced Database Cleaner

Este plugin es bastante eficiente; sin que eso quiera decir que es una recomendación, sí es cierto que es uno de los más completos que encuentras en el repositorio.

Optimiza tu WordPress - Advanced Database Cleaner
Optimiza tu WordPress – Advanced Database Cleaner

«Advanced Database Cleaner» te permite limpiar la base de datos borrando los elementos huérfanos como «revisiones antiguas» o, «borradores antiguos» y, optimiza la base de datos.

Cabe destacar que es uno de los que en nuestras pruebas, ha manejado correctamente una instalación en «multisitio».

Puedes encontrar este plugin, en el repositorio oficial de WordPress, en el enlace: (https://es.wordpress.org/plugins/advanced-database-cleaner/).

WP-Sweep

«WP-Sweep» es interesante por dos razones fundamentales: La primera es efectivo y simple; la segunda, hace uso de las funciones de borrado internas de WordPress, en lugar de usar funciones SQL2 en PHP3.

Optimiza tu WordPress - WP-Sweep
Optimiza tu WordPress – WP-Sweep

Por otro lado, hay que decir que el funcionamiento de «WP-Sweep» deja que desear, en lo que ha compatibilidades se refiere. Hay una lista de varios plugins y extensiones de WordPress con los que «no se lleva bien». 😉

Puedes encontrar este plugin, en el repositorio oficial de WordPress, en el enlace: (https://es.wordpress.org/plugins/wp-sweep/).

Optimiza tu WordPress.

Optimize Database after Deleting Revisions

Con este nombre tan específico, hay otro plugin que te ayudará en la tarea de mantener limpia (más o menos) la base de datos de tu sitio WordPress.

Optimiza tu WordPress - Optimize Database after Deleting Revisions
Optimiza tu WordPress – Optimize Database after Deleting Revisions

Curiosamente, este plugin está disponible en Bielorruso, Danés, Holandés, Inglés, Francés, Alemán, Indonesio, Italiano, Persa, Portugués, Ruso, Servio, Sueco, Turco y Ucraniano, pero no en Español (Por si alguien se ofrece a traducirlo).

Al igual que otro de la lista, este plugin es capaz de optimizar las bases de datos de los sitios con la opción «multisitio» de WordPress.

Puedes encontrar este plugin, en el repositorio oficial de WordPress, en el enlace: (https://es.wordpress.org/plugins/rvg-optimize-database/).

WP-Optimize – Clean, Compress, Cache.

Este plugin lo he dejado intencionalmente el último, porque hace más cosas que simplemente limpiar la base de datos, se vende como una solución para acelerar un sitio.

Optimiza tu WordPress - WP-Optimize
Optimiza tu WordPress – WP-Optimize

Además de limpiar, «WP-Optimize» realiza tareas de cache y optimización de elementos ajenos a la base de datos, como las imágenes de la galería.

Puedes encontrar este plugin, en el repositorio oficial de WordPress, en el enlace: (https://es.wordpress.org/plugins/wp-optimize/).

Optimiza tu WordPress.

Trabajos manuales

Para los que les gusta meter «las manos en la masa», va esta sección.

Antes de continuar, he de hacer una declinación de responsabilidad, tanto si se usa un plugin como si se hace manualmente, existe el riesgo de destruir la base de datos y, por tanto, inutilizar el WordPress irremediablemente.

SoloWordpress no puede ser considerado responsable, ni colectiva ni individualmente, por el uso que se haga de esta información. Si bien se han puesto todos los esfuerzos en la veracidad y corrección de la información suministrada, los errores pueden ocurrir.
¡Si no estás seguro de lo que estás haciendo, por favor no toques nada!
Y recuerda siempre, hacer una copia de seguridad completa, antes de continuar.

WordPress cuenta con funciones nativas completas, para el borrado de registros almacenados en las tablas de la base de datos (al menos, las tablas «oficiales»).

Una consulta a «La Biblia» de WordPress que es CODEX puede ayudarte con esta y muchas otras tareas, aunque aún teneos el inconveniente de que no está disponible (completo) más que en inglés.

En WordPress (y en toda aplicación informática) siempre hay varias formas de conseguir un objetivo (asumiendo que todas ellas son correctas 😉). En este caso en concreto, se puede realizar la limpieza de la base de datos, mediante funciones nativas de WordPress o mediante instrucciones SQL.

Sí, es cierto, siempre puedes argumentar que las funciones nativas de WordPress son un encapsulado de las funciones SQL correspondientes, así que yo te presento ambas versiones y, tu decides.

Funciones de WordPress

Te voy a presentar una tabla de las funciones de borrado nativas de WordPress, con una breve explicación de para qué se usan (aunque su nombre es usualmente descriptivo).

Función

Uso

wp_delete_post_revision(int|WP_Post $revision_id)

Borra la entrada en la tabla «posts» correspondiente a la revisión especificada «$revision_id».

wp_delete_post(int $postid, bool $force_delete = false)

Borra la entrada especificada en «postid», enviándola a la papelera, a no ser que «$force_delete» sea cierto, en cuyo caso la borra permanentemente. Cuando una entrada es borrada permanentemente, se borran también las entradas en las tablas de comentarios y meta asociados.

wp_delete_comment(int|WP_Comment $comment_id, bool $force_delete = false)

Borra el comentario asociado con el número «$comment_id», enviándolo a la papelera, a no ser que «$force_delete» sea cierto, en cuyo caso lo borra permanentemente. Cuando un comentario es borrado, se actualiza el contador de comentarios correspondiente.

delete_post_meta(int $post_id, string $meta_key, mixed $meta_value = ’‘)

Borra el meta correspondiente a la entrada «$post_id» que tenga el nombre «$meta_key»

delete_comment_meta(int $comment_id, string $meta_key, mixed $meta_value = ‘‘)

Borra el metadato de un comentario «$comment_id» que tenga el nombre «$meta_key»

delete_user_meta(int $user_id, string $meta_key, mixed $meta_value = '')

Borra los metadatos correspondientes a usuario «$user_id» que cumplen el criterio de nombre «$meta_key»

delete_term_meta(int $term_id, string $meta_key, mixed $meta_value, mixed $prev_value = '')

Borra los metadatos de un termino o slug. Han de cumplirse que exista la taxonomía «$term_id» y su metadato «$meta_key».

wp_remove_object_terms(int $object_id, string|int|array $terms, array|string $taxonomy)

Borra los términos o slugs asociados a un objeto.

wp_delete_term(int $term, string $taxonomy, array|string $args = array())

Borra un término «$term», si este es un «padre», los hijos serán actualizados. Se borrará también el metadato asociado el término.

delete_transient(string $transient)

Borra la entrada temporal cuyo nombre es «$transient» y devuelve «true» o «false». El nombre NO debe estar «escapado» en SQL.

delete_site_transient(string $transient)

Borra la entrada temporal cuyo nombre es «$transient» y devuelve «true» o «false». El nombre NO debe estar «escapado» en SQL.

Funciones SQL

Voy a presentarte un código SQL que puedes aplicar con tu servidor mySQL (como PHPMyAdmin) para realizar una limpieza de la base de datos. Recuerda, esto NO es código PHP.

Si quieres borrar las revisiones que se producen al hacer ediciones, puedes usar en siguiente snippet:

  DELETE a,b,c
  FROM wp_posts a
  LEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id)
  LEFT JOIN wp_postmeta c ON ( a.ID = c.post_id )
  LEFT JOIN wp_term_taxonomy d ON ( b.term_taxonomy_id = d.term_taxonomy_id)
  WHERE a.post_type = 'revision'
  AND d.taxonomy != 'link_category';

Por otro lado, si lo que quieres es borrar comentarios, puedes usar:

  DELETE FROM wp_comments WHERE comment_approved = 'spam';

para borrar los que has marcado como «spam» o,

  DELETE FROM wp_comments WHERE comment_approved = '0';

para borrar los no aprobados.

Si eres como yo y ya tienes deshabilitados los «pingbacks» y «trackbacks», puedes eliminarlos todos de «un plumazo» con:

  DELETE FROM wp_comments WHERE comment_type = 'pingback';
  DELETE FROM wp_comments WHERE comment_type = 'trackback';

Si lo que te preocupa son los «transient» acumulados en la tabla «options», puedes usar:

  DELETE FROM wp_options WHERE option_name LIKE ('%\_transient\_%')

Optimiza tu WordPress.

Conclusión

Sabes que sea cual sea la tarea que quieres realizar en WordPress, es muy probable que alguien haya tenido el mismo obstáculo y por tanto, habrá un plugin para esa tarea.

Pero también puedes ahora «remangarte» y hacer las cosas tu mismo (si es eso lo que te llama).

Y si además, has encontrado otra fórmula, puedes compartirla para que todos ampliemos conocimientos y la comunidad sea cada día más fuerte.

Mientras tanto, recuerda, #QuédateEnCasa, #UsaMascarilla, #LavateLasManos, juega, experimenta y, sobre todo, ¡divertirte!


Canales de Telegram: Canal SoloWordpressCanal SoloLinux 


¡Espero que este articulo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación en PayPal, o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales!

¡Tus comentarios y preguntas nos ayudan a mejorar, por favor comenta!

 

Chat de SoloWordpress


  1. Content Management System – Sistema de Gestión de Contenidos 

  2. Structured Query Language – Lenguaje de Búsqueda Estructurado 

  3. Hypertext Preprocessor – Preprocesador de Hypertexto (acrónimo recursivo)  

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

logo solowordpress mails

Suscríbete a SoloWordpress

Recibe todos los nuevos artículos es tu correo electrónico

¡Te has suscrito correctamente!

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver nuestra Política de Cookies
Privacidad
Ir al contenido