Transformando WordPress en un Backend Headless Optimizado para Astro

Transformando WordPress en un Backend Headless Optimizado para Astro

WordPress es una herramienta poderosa, pero a veces necesitamos usarlo únicamente como CMS sin frontend, para que aplicaciones modernas como Astro consuman los contenidos de manera ligera y eficiente. En este artículo te explico cómo optimizar WordPress desde cero para un blog personal, usando SQLite como base de datos y eliminando todo lo innecesario para que tu instalación consuma mínimos recursos.


Instalación ligera con SQLite

Para un blog personal en una instancia micro de Google Cloud, SQLite es ideal:

  • Consume menos recursos que MySQL
  • Evita procesos de base de datos pesados
  • Es perfecto para aplicaciones headless donde el CMS solo sirve contenido a otra aplicación

Al instalar WordPress con SQLite, es importante:

  • Asegurarse de que la base de datos tiene los permisos correctos
  • Configurar correctamente wp-config.php para limitar escrituras
  • Desactivar funciones que generan tráfico innecesario

Optimización del archivo wp-config.php

El archivo wp-config.php es el núcleo de la configuración de WordPress. Para un backend ligero, realizamos estas modificaciones:

define('DISABLE_WP_CRON', true);   // Desactiva WP-Cron
define('WP_POST_REVISIONS', 2);    // Limita revisiones de posts
define('AUTOSAVE_INTERVAL', 300);  // Intervalo de auto-guardado mayor

Estas líneas ayudan a que SQLite no se sobrecargue con escrituras innecesarias y que la instancia micro funcione de manera estable.


Seguridad y estabilidad del servidor

En nuestra configuración usamos Apache 2.4 en la instancia micro. Para mejorar seguridad y estabilidad:

  • Bloqueamos xmlrpc.php a nivel de servidor para evitar ataques y spam, mediante la configuración de Apache:
<Files "xmlrpc.php">
    Require all denied
</Files>
  • Evitamos modificar .htaccess con bloques adicionales que puedan causar error 500
  • Revisamos que Apache esté ejecutando correctamente y que los permisos de archivos sean correctos

Esto asegura que el servidor no lance Internal Server Error y mantenga WordPress funcionando perfectamente como backend.


Desactivando comentarios

Al usar WordPress únicamente como CMS headless, los comentarios no son necesarios:

  1. Desactivamos comentarios globalmente desde Ajustes → Comentarios
  2. Cerramos comentarios en posts existentes
  3. Opcionalmente, añadimos un snippet en functions.php para eliminar cualquier sección de comentarios del frontend:
add_filter('comments_template', function($comment_template) {
    return dirname(__FILE__) . '/no-comments.php';
});

Con esto, WordPress deja de procesar comentarios y SQLite no genera escrituras innecesarias, manteniendo la instalación ligera.


Limpieza de entradas y contenido inicial

  • Eliminamos la entrada de ejemplo “Hola mundo”
  • Creamos nuevas entradas optimizadas para ser consumidas por Astro
  • Mantuvimos .htaccess limpio solo con reglas de permalinks, evitando conflictos con Apache

Resultado final

Tras estos ajustes, tenemos:

  • WordPress como CMS sin cabeza
  • Base de datos SQLite optimizada para mínima escritura
  • WP-Cron desactivado
  • Comentarios deshabilitados y no visibles
  • xmlrpc.php bloqueado a nivel de servidor
  • Instalación ligera y segura lista para un blog personal con Astro

Con esta configuración, tu WordPress funciona exclusivamente como backend, consumiendo mínimos recursos y proporcionando contenido limpio y seguro a cualquier frontend moderno.