WordPress Headless: Crea Sitios Web de Alta Velocidad con Next.js
Aprende a combinar la flexibilidad de WordPress con la velocidad de Next.js para crear sitios web de alta performance. Guía paso a paso para dominar WordPress Headless.

WordPress Headless: Crea Sitios Web de Alta Velocidad con Next.js
¿Alguna vez has sentido que tu sitio de WordPress se vuelve lento a medida que añades plugins? ¿Te gustaría tener la velocidad de una aplicación moderna (como Facebook o Airbnb) pero manteniendo la facilidad de gestión de contenido de WordPress?
La respuesta a estos problemas tiene nombre y apellido: WordPress Headless con Next.js.
En este artículo, exploraremos cómo desacoplar el "cerebro" de WordPress de su "cuerpo" para construir sitios web ultrarrápidos, seguros y escalables.
¿Qué es WordPress Headless?
Tradicionalmente, WordPress es un sistema "monolítico": el backend (donde gestionas el contenido) y el frontend (lo que ve el usuario) están unidos inseparablemente.
WordPress Headless rompe esta relación.
- El Backend: Sigues usando WordPress (
wp-admin) para escribir posts, subir imágenes y gestionar usuarios. - La API: WordPress expone los datos a través de una API (REST o GraphQL).
- El Frontend: Una tecnología separada (en este caso, Next.js) consume esos datos y renderiza la web.
La analogía: Imagina que WordPress es un escritor que escribe novelas (contenido), pero en lugar de imprimir él mismo los libros (frontend tradicional), envía el manuscrito digital a una imprenta de última generación (Next.js) que los publica en formatos increíbles.
¿Por qué elegir Next.js para el Frontend?
Next.js es un framework de React que ofrece ventajas competitivas brutales para el SEO y el rendimiento:
- Static Site Generation (SSG): Next.js puede generar todas tus páginas como HTML estático en el momento de la construcción. Esto significa que cuando un usuario visita tu web, no hay base de datos que consultar; el archivo ya está listo. ¡Carga instantánea!
- Incremental Static Regeneration (ISR): Puedes actualizar el contenido estático en segundo plano sin reconstruir todo el sitio.
- Seguridad: Al separar el frontend del backend, tu base de datos de WordPress no está expuesta directamente al tráfico público.
- Optimización de Imágenes: El componente
<Image>de Next.js redimensiona y optimiza las imágenes automáticamente para cada dispositivo.
Guía Rápida: Arquitectura del Proyecto
Para montar este stack, necesitas tres piezas clave:
- WordPress: Instalado en cualquier servidor (puede ser un hosting barato, ya que solo servirá JSON).
- WPGraphQL: Un plugin gratuito que convierte tu WordPress en un servidor GraphQL potente.
- Next.js: Tu aplicación frontend alojada en Vercel o Netlify.
Paso 1: Preparar WordPress
No necesitas tocar mucho código aquí. Solo instala dos plugins:
- WPGraphQL: Para consultar tus datos de manera eficiente.
- WpGraphQL CORS: Para permitir que tu app de Next.js (que estará en otro dominio) pueda pedir datos.
Paso 2: Conectando Next.js (El Código)
En tu aplicación Next.js, no harás consultas a una base de datos MySQL. Harás peticiones HTTP a tu API de GraphQL.
Aquí tienes un ejemplo simplificado de cómo obtener tus posts:
// lib/api.js
const API_URL = 'https://tu-sitio-wordpress.com/graphql';
async function fetchAPI(query, { variables } = {}) {
const headers = { 'Content-Type': 'application/json' };
const res = await fetch(API_URL, {
method: 'POST',
headers,
body: JSON.stringify({ query, variables }),
});
const json = await res.json();
if (json.errors) {
console.error(json.errors);
throw new Error('Error al obtener datos de la API');
}
return json.data;
}
export async function getAllPosts() {
const data = await fetchAPI(`
{
posts(first: 20) {
nodes {
title
slug
excerpt
}
}
}
`);
return data?.posts?.nodes;
}
Paso 3: Renderizar en el Frontend
Gracias a la función getStaticProps (o los Server Components en Next.js 14+), los datos se obtienen antes de que el usuario llegue a la web.
// pages/index.js (Ejemplo Pages Router)
import { getAllPosts } from '../lib/api';
export default function Home({ allPosts }) {
return (
<main>
<h1>Mi Blog Headless</h1>
<div className="grid">
{allPosts.map((post) => (
<article key={post.slug}>
<h2>{post.title}</h2>
<div dangerouslySetInnerHTML={{ __html: post.excerpt }} />
</article>
))}
</div>
</main>
);
}
export async function getStaticProps() {
const allPosts = await getAllPosts();
return {
props: { allPosts },
revalidate: 10, // Revisa cambios cada 10 segundos (ISR)
};
}
Comparativa: Tradicional vs. Headless
| Característica | WordPress Tradicional | WordPress Headless (Next.js) |
|---|---|---|
| Velocidad | Depende del caché y plugins | Extrema (HTML estático) |
| Seguridad | Vulnerable (SQL Injection, plugins) | Alta (API desacoplada) |
| Hosting | PHP/MySQL (Cpanel, SiteGround) | Edge Network (Vercel, Netlify) |
| Desarrollo | Temas PHP, jQuery | React, Componentes, JS Moderno |
| Dificultad | Baja / Media | Media / Alta |
Los Retos (No todo es color de rosa)
Antes de dar el salto, considera esto:
- Adiós a los constructores visuales: Elementor o Divi no funcionan (directamente) en el frontend de Next.js. Tendrás que maquetar con código (CSS/Tailwind).
- Complejidad: Necesitas saber React y JavaScript.
- Formularios y Comentarios: Ya no es "instalar y listo". Necesitarás conectar servicios externos o crear endpoints en tu API para manejar envíos de formularios.
El enfoque Headless con Next.js no es para todos los proyectos. Si necesitas un blog simple, sigue con el WordPress clásico.
Pero si buscas rendimiento perfecto (Lighthouse 100/100), seguridad empresarial y una experiencia de usuario tipo app, esta es la arquitectura ganadora del 2024.
¿Estás listo para cortarle la cabeza a WordPress y ponerle un motor de cohete?
🚀 ¿Siguientes pasos?
- Instala el plugin WPGraphQL en tu sitio de pruebas.
- Ejecuta
npx create-next-app@latesten tu terminal. - ¡Empieza a construir el futuro de la web! Alojar un proyecto Headless WordPress (WordPress + Next.js) requiere un cambio de mentalidad: ya no buscas "un hosting" para todo, sino dos alojamientos especializados que se conectan entre sí.
No intentes alojar ambas partes en el mismo servidor tradicional (cPanel compartidos), ya que Next.js requiere Node.js y WordPress requiere PHP/MySQL. Forzarlos a convivir en un entorno no optimizado suele traer problemas de despliegue y rendimiento.
Aquí tienes la arquitectura ideal dividida por responsabilidades:
1. Dónde alojar el Frontend (Next.js)
El "cuerpo" de tu web. Necesitas una plataforma que entienda Node.js, soporte Server Side Rendering (SSR) y tenga una red de distribución (CDN) global.
🥇 Vercel (La opción nativa):
Por qué: Son los creadores de Next.js. Todo funciona "out of the box": optimización de imágenes, caché ISR (Incremental Static Regeneration) y despliegues automáticos con Git.
Precio: Tiene un plan gratuito muy generoso para proyectos personales. El plan Pro cuesta $20/mes.
Veredicto: Úsalo siempre como primera opción.
🥈 Netlify:
Por qué: Es el competidor directo. Muy fácil de usar y con una capa gratuita excelente. A veces es un poco más lento en adoptar las últimas funciones beta de Next.js, pero es muy sólido.
Veredicto: Excelente alternativa si prefieres su interfaz o ecosistema de plugins.
2. Dónde alojar el Backend (WordPress)
El "cerebro". Solo servirá datos JSON a través de la API, así que no necesita servir tráfico web masivo (HTML/CSS), pero necesita ser rápido procesando bases de datos.
Opción A: Hostings Especializados (Premium)
WP Engine (Atlas) / Kinsta: Tienen soluciones específicas para Headless. Te dan el entorno optimizado y seguridad extra, pero son caros (parten de $30-$50/mes).
Para quién: Empresas, agencias o proyectos con presupuesto que no quieren líos técnicos.
Opción B: Hostings Gestionados (Calidad/Precio)
Cloudways / SiteGround / Hostinger: Puedes usar una instalación normal de WordPress. Al ser headless, puedes usar el plan más barato, ya que el servidor apenas recibirá carga de visitas reales (solo recibirá las peticiones de construcción de Vercel/Netlify).
Tip: Instala el plugin WPGraphQL y configura reglas de caché agresivas.
Opción C: Cloud (Económico y potente)
DigitalOcean / Hetzner / Vultr: Si sabes gestionar servidores (o usas paneles como RunCloud/Ploi), un VPS de $5-$10 USD te dará mucho más rendimiento bruto que un hosting compartido de precio similar.
La Combinación Ganadora 🏆
Si estás empezando, esta es la configuración con mejor relación calidad/coste cero o muy bajo:
- Frontend: Vercel (Plan Hobby - Gratuito). Conectado a tu repositorio de GitHub.
- Backend: Un WordPress barato (puede ser incluso un subdominio en un hosting que ya tengas tipo
api.tusitio.com) o un VPS pequeño ($5-6/mes). - Base de Datos: Asegúrate de que tu hosting de WordPress tenga buena latencia, ya que Vercel pedirá los datos cada vez que reconstruya la web.
¿Resumen? No busques "hosting para Next.js y WordPress juntos". Contrata Vercel para lo visual y mantén tu WordPress donde prefieras (mientras soporte PHP/MySQL y tenga una API rápida).
Al desacoplar el frontend del backend, cambias radicalmente quién soporta la carga de las visitas.
Aquí te explico por qué tienes razón y cuál es la única "trampa" que debes evitar con un hosting barato.
1. El concepto del "Escudo" (Por qué te vale un hosting barato)
En un WordPress tradicional, cada visita golpea tu servidor. En Headless, nadie visita tu WordPress.
- WordPress Tradicional: 10.000 visitas = 10.000 peticiones a tu base de datos y procesamiento PHP. Necesitas mucha RAM y CPU.
- WordPress Headless: 10.000 visitas = 10.000 peticiones a la CDN de Vercel/Netlify. 0 peticiones a tu WordPress.
Tu servidor de WordPress solo trabaja en dos momentos:
- Cuando tú entras a escribir (wp-admin).
- Cuando Vercel reconstruye el sitio (Build time).
Por lo tanto, tu WordPress puede estar en un hosting compartido de 2€/mes, en un servidor antiguo, o incluso en una Raspberry Pi en tu casa (con un túnel), y tu web pública seguirá cargando en milisegundos para miles de usuarios.
2. La única "trampa": El momento del Build (Reconstrucción)
Aunque no necesitas un hosting "Premium" para aguantar tráfico, sí necesitas un mínimo de estabilidad para el momento de la compilación.
Cuando haces un cambio y Next.js genera las páginas estáticas (npm run build), ocurre esto:
- Next.js le dice a WordPress: "¡Dame TODOS tus posts, TODAS tus páginas y TODAS tus imágenes ahora mismo!".
Si el hosting es demasiado malo (muy poca RAM o CPU muy limitada):
- WordPress intentará responder a cientos de peticiones GraphQL en un segundo.
- El servidor colapsará (Error 500 o Timeout).
- El despliegue en Vercel fallará.
3. Recomendación para Hosting "Low Cost" en Headless
Sí, puedes ahorrar mucho dinero, pero busca estas características mínimas en tu hosting barato:
- Límite de tiempo de ejecución PHP: Busca que te dejen subir el
max_execution_time. Si Vercel tarda 2 minutos en descargar tus datos y tu server corta a los 30 segundos, tendrás problemas. - Caché de Objeto (Redis/Memcached): Incluso en hostings baratos, si tienen Redis, actívalo. Ayuda a que la API de GraphQL responda rápido sin quemar la CPU durante el "Build".
- Ancho de banda: Aunque no tengas visitas web, el trasvase de datos (imágenes) hacia Vercel consume ancho de banda. Asegúrate de que no sea muy limitado.
Resumen de la estrategia económica
| Componente | Opción | Coste |
|---|---|---|
| Frontend | Vercel (Hobby) | Gratis |
| Backend | Shared Hosting básico (Namecheap, Hostinger, etc.) | ~2 - 4 $ / mes |
| Base de Datos | La que viene con el hosting (MySQL) | Incluido |
Conclusión: No necesitas un Ferrari (WP Engine, Kinsta) para llevar la compra del supermercado. Con un utilitario fiable (Hosting compartido decente) te sobra, porque Vercel es quien pone el Ferrari en la autopista.
ConsejoConsejo Pro
Se puede usar WooCommerce en modo Headless, y de hecho, es una tendencia enorme llamada "Headless Commerce".
Sin embargo, aquí es donde la curva de dificultad sube. Ya no es "instalar y listo". La gestión del Carrito y el Checkout (Pago) cambia radicalmente porque ya no puedes depender de las sesiones de PHP tradicionales del servidor de la misma manera.
Aquí te explico cómo se resuelven estas dos piezas clave:
1. El Catálogo (Lo fácil)
Mostrar productos es igual que mostrar posts. Usas WPGraphQL junto con una extensión llamada WooGraphQL (WPGraphQL for WooCommerce).
- Next.js pide la lista de productos, precios e imágenes a la API.
- Next.js renderiza las fichas de producto ultrarrápidas.
2. El Carrito (El desafío de estado)
En un WooCommerce normal, el carrito vive en la sesión del servidor. En Headless, el carrito debe vivir en el navegador del usuario (Frontend) y sincronizarse con el servidor.
¿Cómo funciona el flujo?
- Estado Local: Usas React (Context API o librerías como Zustand/Redux) para mantener el estado del carrito visualmente en la app.
- Sincronización: Cuando el usuario hace clic en "Añadir al carrito", Next.js envía una petición (una Mutación en GraphQL) a WordPress.
- Persistencia: WordPress devuelve un "Token de Sesión" o una cookie. Next.js guarda ese token en el
localStoragedel navegador. Así, si el usuario recarga la página, el carrito no se vacía.
3. La Pasarela de Pago / Checkout (Las 2 Estrategias)
Aquí tienes que tomar una decisión de arquitectura. Hay dos formas de hacerlo:
A. El método "Híbrido" o "Redirect" (Más fácil y seguro)
Construyes toda la tienda en Next.js (Catálogo, Buscador, Carrito lateral), pero cuando el usuario pulsa "Finalizar Compra", lo rediriges a tu instalación de WordPress.
- El usuario llena el carrito en Next.js.
- Pulsa "Pagar".
- La web redirige a
checkout.tudominio.com(que es el WordPress clásico con un tema minimalista). - El usuario paga allí con los plugins normales de WooCommerce (Stripe, PayPal, Redsys).
- Al terminar, WordPress lo redirige de vuelta a Next.js (
tudominio.com/gracias).
- Ventaja: No tienes que programar la lógica de pagos, impuestos ni validaciones de seguridad complejas. Funcionan todos los plugins de pago.
- Desventaja: El usuario nota un pequeño "salto" visual al cambiar de dominio/diseño en el último paso.
B. El método "Nativo" o "Full Headless" (Pro y complejo)
El usuario nunca sale de tu aplicación Next.js.
- Creas un formulario de Checkout en React (Nombre, Dirección, Tarjeta).
- Impuestos/Envíos: Mientras el usuario escribe su dirección, Next.js consulta a la API de WooCommerce cuánto cuesta el envío y los impuestos y actualiza el total en tiempo real.
- El Pago:
- No procesas la tarjeta tú mismo. Usas las librerías de JS de la pasarela (ej: Stripe Elements o PayPal SDK para React).
- El frontend obtiene un "token de pago" seguro de Stripe.
- Envías ese token + los datos del pedido a WooCommerce mediante una mutación GraphQL (
checkout()).
- WooCommerce procesa la orden en el backend y devuelve "Éxito".
- Ventaja: Experiencia de usuario (UX) perfecta y sin interrupciones.
- Desventaja: Es mucho más difícil de desarrollar. Muchos plugins de pasarelas locales (como algunos bancos específicos) no tienen soporte para API/GraphQL, por lo que podrías estar limitado a Stripe/PayPal.
Herramientas que necesitas instalar
Para lograr esto, tu "Hosting Barato" de WordPress necesitará estos plugins:
- WooCommerce: El núcleo.
- WPGraphQL: La API base.
- WooGraphQL (WPGraphQL for WooCommerce): Esencial. Expone los productos, y las mutaciones
addToCart,applyCoupon,checkout, etc. - Faust.js (Opcional): Es un framework creado por WP Engine encima de Next.js que facilita mucho la conexión con WordPress, especialmente el manejo de autenticación y previsualizaciones.
¿Cuál te recomiendo?
Si es tu primer proyecto Headless Commerce: Empieza con la Estrategia A (Redirect).
Haz que tu Next.js sea increíblemente rápido para navegar y buscar productos. Gestiona el carrito en el frontend. Pero a la hora de pagar, manda al usuario al checkout estándar de WordPress. Te ahorrarás cientos de horas de dolor de cabeza con la seguridad de los pagos y el cálculo de impuestos.
¡Webgae Studio!¿Listo para despegar?
Si buscas una web rápida, segura y diseñada para convertir, no busques más. Solicita tu presupuesto sin compromiso y llevemos tu negocio al siguiente nivel.
¡Comparte!Compartir es vivir
Si te ha sido útil este artículo, compártelo con quien creas que le pueda interesar. ¡Me ayudas a seguir creando contenido!
¿Listo para despegar?
Si buscas una web rápida, segura y diseñada para convertir, solicita tu presupuesto sin compromiso.
Solicitar PresupuestoArtículos Relacionados
De WordPress Tradicional a Headless: Cuándo y por qué hacer la transición
La arquitectura headless está transformando la forma en que pensamos sobre WordPress. Pero, ¿es realmente necesaria ...
WordPress headless y frontend moderno: la arquitectura que está transformando el desarrollo web profesional
WordPress headless se ha convertido en una de las arquitecturas más potentes para crear sitios web rápidos, seguros y...
Automatizar el código CSS y PHP en WordPress con IA
En el mundo del desarrollo web, el código es la vida. Sin embargo, generar código personalizado para WordPress puede ...