Realmente, la pregunta no es la que exponemos en el título, sino: ¿Dónde se guardan los contenidos en WordPress?
La «estructura» de la base de datos de WordPress realmente es muy simple. En muchos casos, de hecho, esta simplicidad es lo que causa problemas en sitios web muy grandes y complejos.
Antes de nada quiero dejar claro que, excepto los archivos de imágenes y los que subimos a la galería multimedia todos, absolutamente todos los datos que subimos a nuestra web WordPress, están guardados en la base de datos MySQL o MariaDB que proporcionamos durante la instalación del CMS. Esto incluye tanto las configuraciones de funcionalidades y plugins como los contenidos.
Todos los contenidos que metemos a un WordPress se guardan en la tabla wp_posts y wp_postmeta.
- wp_posts: Se guardan los datos más importantes del contenido, como el título, la fecha de publicación, el autor, el propio contenido principal, etc.
- wp_postmeta: Se guardan lo que se conoce como «datos meta» o «metadatos», que son datos extra que debemos guardar del contenido. Por ejemplo, cualquier campo personalizado, cualquier opción guardada del editor de texto, el bloqueo de edición que se hace cuando un usuario edita un contenido, etc.
Los datos de ambas tablas (wp_post y wp_postmeta) están relacionados por un ID de publicación (post_ID). A nivel jerárquico tiene sus peculiaridades, ya que 1 fila de wp_posts equivale a varias filas de wp_postmeta porque la forma en que se guardan los datos es diferente.
Para que te hagas una idea de cómo funciona el guardado de contenidos de WordPress, el pagebuilder Elementor guarda el 99% de su contenido dentro de wp_postmeta, ya que almacena todo lo que nosotros le metemos en datos serializados dentro de unos campos personalizados.
Aunque la tabla principal de la base de datos se llama wp_posts y la de datos meta wp_postmeta, en ellas no solo se guarda el contenido de los posts o artículos de WordPress. También se guarda cualquier dato de cualquier CPT (Custom Post Type) que añadamos a nuestro WordPress, e incluso también las páginas y los datos de las imágenes o archivos que subimos a la galería multimedia.
En wp_postmeta no hay nada indicado, pero en wp_posts cada fila tiene un campo que nos indica qué tipo de contenido es:
Te voy a poner unos ejemplos prácticos ordenados de más simple a más complejo:
- Los productos de una tienda online WooCommerce se guardan utilizando la misma arquitectura que los posts y páginas de WordPress y exactamente en las mismas tablas.
- Cuando subimos imágenes a la galería multimedia de WordPress, los archivos se guardan dentro de wp_content/uploads, pero por cada archivo se crea una entrada «media» en las tablas wp_posts y puede contener algún dato meta en wp_postmeta.
- Cuando creamos una cabecera, un footer o una sección con el Theme Builder de Elementor Pro, esa cabecera se guardará en las tablas wp_posts y wp_postmeta como si fuese un contenido.
Y, por esta razón, en instalaciones WordPress muy grandes y complejas, las tablas wp_posts y wp_postmeta se vuelven muy grandes. Cuando hay muchas visitas, se pueden producir bloqueos al consultar datos en ambas tablas.
También por esta razón, en instalaciones muy grandes y con muchos datos (muchas filas en las dos tablas mencionadas) se suelen crear índices para acelerar las consultas.
Dado que todo, absolutamente todo lo que tiene que ver con el contenido se guarda en wp_posts y wp_postmeta, todo lo que podamos «sacar» de esas tablas va a ser beneficioso.
Por eso, en WP Database Tools hemos puesto la pestaña «General», que te permite borrar algo de basura de la base de datos de WordPress, específicamente de las dos tablas mencionadas:
En muchos casos, simplemente limpiando las revisiones, los borradores automáticos y los contenidos en la papelera vamos a conseguir bajar mucho el peso y la complejidad de las dos tablas. En algunos casos, también nos encontraremos algún campo huérfano en la tabla wp_postmeta. Normalmente se borran bien al borrar la publicación «padre», pero en ciertos CPTs puede haber fallos y con WP Database Tools podemos solucionar el problema.
Si no quieres usar un plugin como WP Database Tools y buscas a alguien que se encargue del mantenimiento de tu sitio web WordPress, en Raiola Networks podemos darte ese servicio.
Si quieres probar WP Database Tools, puedes obtener más información en este sitio web: https://wpdatabasetools.com/