Blogs / WordPressHerramientas de Internet

Optimizando WordPress

Optimizando WordPress

Utilizo WordPress como CMS en Batiburrillo.net, el espacio madre de mi sitio web, y como gestor de blogs en los hijos del original, entre los que se encuentra Lecciones (este blog). Desde hace algún tiempo he tenido problemas a la hora de publicar entradas, sobre todo en el sitio matriz. Después del almacenamiento del artículo en la base de datos, surgía una página de error y, si intentaba acceder a la página de inicio del sitio, no se cargaba o aparecía en blanco. Revisé la base de datos, scripts y todo lo que controla el gestor, pero a pesar de diversas modificaciones (hasta cambié la plantilla) el fallo seguía produciéndose.

¿En dónde estaba el fallo?

Ayer me puse a estudiar con detenimiento la base de datos. Ya había descubierto que había una tabla de gran tamaño, wp_postmeta (el prefijo, wp, puede ser distinto si se cambió en la instalación de WordPress). La estudié detalladamente y descubrí que existía un parámetro que se repetía múltiples veces y que iba acompañado, en otro campo (meta_value, de tipo longtext), de contenido que ocupaba bastante espacio. Descubrí que dicho parámetro correspondía a un plugin, Better Related Content. Desactivé el plugin e hice una limpieza de la citada tabla utilizando la consulta SQL siguiente en phpMyAdmin:

DELETE FROM wp_postmeta WHERE meta_key = "better-related-";

Optimizar tabla

A continuación optimicé la tabla marcándola y utilizando la opción de menú correspondiente (parte inferior derecha de phpmyAdmin: Optimizar la tabla). El tamaño de la base de datos se redujo en más de 130 megas, pasó de más de 170 a poco más de 40. En Batiburrillo.net tengo publicadas cerca de 2.400 entradas. Los resultados han sido totalmente satisfactorios. Los fallos han desaparecido y las páginas, por lo menos hasta ahora, cargan más rápido.

Más limpieza

Nota: Repetí la operación anterior en todos los blogs en los que tenía instalado dicho plugin. Aproveché el proceso de limpieza borrando otros meta_key de la misma tabla. Utilicé la siguiente consulta SQL:

DELETE FROM wp_postmeta WHERE meta_key = "_edit_lock";
DELETE FROM wp_postmeta WHERE meta_key = "_edit_last";
DELETE FROM wp_postmeta WHERE meta_key = "_wp_old_slug";

Recuerda que tal vez tengas que cambiar wp_postmeta por otro nombre, el que corresponde a dicha tabla en tu base de datos. Sólo tendrás que modificar el prefijo.

_______________________________

Actualización (6-04-2011): Continuando con el proceso de limpieza descubrí que hay otra tabla,  wp_commentmeta, que también tiene un tamaño por encima del normal. Esto se debe a que va guardando relaciones entre los meta, aquí almacenados, y los comentarios. No tiene mucho sentido que algunos de estos campos existan ya que dicha relación ya no existe. ¿Qué hice? Limpiar dicha tabla utilizando la siguiente instrucción en la ventana de consultas SQL de phpMyAdmin:

DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments);

_______________________________

Actualización (24-09-2011): En la tabla wp_options se acumulan una serie de datos con el prefijo _transient que proceden de datos acumulados en al caché, como pueden ser los datos de los feeds RSS. Estos registros están ocupando espacio no necesario, por lo que es conveniente borrarlos. Para ello debemos utilizar en phpMyAdmin una consulta SQL con la instrucción siguiente:

SELECT option_name FROM wp_options WHERE option_name LIKE '_transient_timeout%' AND option_value < now();

Recuerda que si las tablas de tu instalación de WordPress no tienen el prefijo wp_, has de cambiarlo en la instrucción anterior.

Fabriciano González

Amante de la informática y de Internet entre otras muchas pasiones. Leo, descifro, interpreto, combino y escribo. Lo hago para seguir viviendo y disfrutando. Trato de dominar el tiempo para que no me esclavice.

3 Comentarios

  1. Hola Fabriciano,

    Antes que nada, felicidades por tu excelente post, mismo que me está siendo muy útil. Solo tengo una duda…

    Puedo borrar las siguientes meta_key…?

    _wp_attachment_metadat

    _wp_attached_file

    Gracias y saludos cordiales!

    1. No, no debes borrarlos. El segundo se refiere a las imágenes que incluyes en los posts y el primero a los meta datos, como pueden ser las dimensiones de las imágenes (grande, mediana y pequeña) y otras características.

      Saludos.

Responder a fabriciano Cancelar la respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.