Skip to content
Now accepting Q2 projects — limited slots available. Get started →
Migration Service

Tu sitio en Craft CMS carga en 2,4 segundos. El de tu competencia, en 0,6.

Si eres un operador de crecimiento y tu factura de hosting en Craft ya supera los 150 $/mes mientras la conversión móvil se desangra al 1,8 %, has llegado al momento headless.

  • Twig rendering locks mobile Lighthouse scores at 65 regardless of caching strategy
  • Matrix fields with nested relational blocks generate 4-second GraphQL queries at 10,000+ entries
  • PHP/MySQL/Redis hosting demands $50-150/month plus ongoing security patches and server monitoring
  • Hiring developers fluent in both Twig templating and modern JavaScript takes 3-5× longer than React-only roles
  • Plugin chains for SEO metadata, redirects, forms, and image transforms break compatibility on major version upgrades
  • Custom Twig macros and filters create tribal knowledge that traps your content team in a single-vendor dependency
  • Edge-cached server components deliver sub-300ms TTFB and 95+ Lighthouse scores via Vercel's global CDN
  • Matrix blocks map to typed React components with a single BlockRenderer file that makes adding new block types a 10-minute task
  • Infrastructure cost falls to $50-100/month total with zero server maintenance via Vercel Functions and Supabase Postgres
  • React and Next.js talent pool is 40× larger than Twig/PHP making hiring cycles 70% faster
  • Supabase replaces SEO plugins, form handlers, and auth middleware with managed Postgres, edge functions, and built-in auth
  • Dynamic OG image generation, ISR revalidation, and redirect middleware live in version-controlled TypeScript instead of plugin UIs

Por qué dejar atrás el frontend monolítico de Craft CMS

Craft CMS 5 es, genuinamente, un buen software. El modelado de contenido es flexible, los campos Matrix son potentes y el panel de control es uno de los mejores del mercado. Pero el frontend basado en Twig está frenando tu sitio.

Cada petición de página pasa por PHP. Cada plantilla se renderiza en el servidor a través de un stack monolítico. Tus puntuaciones de Lighthouse en móvil se quedan entre 45 y 65 por mucho que optimices. El TTFB se arrastra entre 1,2 y 2,5 segundos. Y tus desarrolladores cambian constantemente de contexto entre plantillas Twig y el JavaScript que necesitan para la interactividad.

La solución no es abandonar el modelo de contenido de Craft. Es desacoplar completamente el frontend.

Una migración headless a Next.js preserva todo lo bueno de Craft —los bloques Matrix, las entradas relacionales, el flujo editorial— mientras reemplaza la capa de renderizado por algo que realmente rinde. Server components, caché en el edge e Incremental Static Regeneration. El resultado: un TTFB por debajo de los 300 ms y puntuaciones de Lighthouse superiores a 95.

Los verdaderos puntos de dolor que vemos en los sitios con Craft CMS

Hemos migrado decenas de sitios en Craft. Las quejas son llamativamente consistentes:

Techo de rendimiento

Has minificado el CSS, cargado imágenes de forma diferida, añadido caché con Redis y ajustado tu configuración de nginx. Lighthouse sigue mostrando naranja en móvil. El cuello de botella es arquitectónico: el renderizado con PHP no puede competir con páginas estáticas cacheadas en el edge ni con streaming server components. No hay ajuste que lo resuelva.

Complejidad de los campos Matrix a escala

Los campos Matrix son brillantes para 50 páginas. A partir de 500 con bloques Matrix anidados, entradas relacionales y requisitos de eager-loading, las consultas GraphQL se ralentizan de forma notoria. La lógica de las plantillas se convierte en condicionales Twig profundamente anidados. Añadir un nuevo tipo de bloque implica modificar múltiples archivos de plantilla. El problema se acumula rápido.

Contratación de desarrolladores

Encontrar desarrolladores senior de Twig/PHP que además escriban buen CSS y JavaScript es cada vez más difícil. Encontrar desarrolladores senior de React/Next.js no lo es. Tu bolsa de candidatos se amplía drásticamente con una arquitectura headless.

Costes de hosting

Craft requiere PHP, MySQL/Postgres, un servidor web y, normalmente, Redis o Memcached para un rendimiento aceptable. Eso son entre 40 y 120 £/mes como mínimo para un entorno de producción, más el mantenimiento del servidor. Un sitio en Next.js sobre Vercel empieza en 20 $/mes sin gestión de servidor.

Dependencia de plugins

Los plugins de Craft gestionan el SEO, los formularios, las redirecciones, las transformaciones de imágenes y mucho más. Cada uno es una dependencia con su propio ciclo de actualizaciones, matriz de compatibilidad y riesgo de rotura en actualizaciones mayores de Craft. Todo eso se acumula.

Cómo es la nueva arquitectura

No nos limitamos a cambiar Twig por React. Replanteamos todo el stack:

Frontend con Next.js 15 en Vercel

App Router con React Server Components. Las páginas se renderizan en el edge en menos de 100 ms. El Incremental Static Regeneration hace que las actualizaciones de contenido aparezcan en segundos sin reconstrucciones completas. La optimización de imágenes viene integrada mediante next/image. Sin ajustes de nginx, sin workers de PHP-FPM, sin dolores de cabeza por la invalidación de caché.

CMS headless para el contenido

Según tus necesidades, migramos el contenido a Sanity, Contentful, Payload CMS o mantenemos Craft 5 funcionando en modo headless. Si tus editores adoran el panel de control de Craft, lo conservamos: simplemente eliminamos el frontend Twig y consultamos el contenido a través de la API GraphQL nativa de Craft.

Supabase para los datos de la aplicación

Autenticación de usuarios, envíos de formularios, datos dinámicos, funcionalidades en tiempo real: Supabase gestiona lo que un CMS no debería. Base de datos Postgres, Edge Functions, Row Level Security y un generoso nivel gratuito. Reemplaza el conjunto de plugins de Craft que usabas para funcionalidades ajenas al contenido.

Vercel para el hosting y la red edge

Despliegues automáticos desde Git. Despliegues de previsualización para cada PR. Caché en el edge en más de 100 PoPs globales. Analítica e informes de velocidad integrados. Los costes de infraestructura se reducen mientras el rendimiento mejora en un orden de magnitud.

Nuestro proceso de migración

Ejecutamos una migración estructurada en 5 fases. Sin sorpresas, sin desvíos de alcance.

Fase 1: Auditoría de contenido y mapeo de URLs (Semana 1)

Rastreamos tu sitio Craft con Screaming Frog y exportamos la estructura completa del contenido. Cada sección, tipo de entrada, configuración de bloques Matrix y volumen de assets queda documentado. Mapeamos cada URL existente a su equivalente en Next.js y señalamos cualquier cambio estructural.

Esta fase produce dos entregables: un documento de especificación de migración de contenido y un mapa completo de redirecciones 301.

Fase 2: Diseño de arquitectura y esquema (Semana 2)

Diseñamos el nuevo esquema de contenido, ya sean secciones de Craft reestructuradas para el modo headless o un esquema nuevo en Sanity, Contentful o Payload. Los bloques Matrix se mapean a bloques de contenido tipados con esquemas explícitos. Las entradas relacionales se convierten en referencias apropiadas.

Se diseñan las tablas de Supabase para los datos de la aplicación (usuarios, formularios, contenido dinámico). Se definen los contratos de API entre Next.js y todas las fuentes de datos.

Fase 3: Desarrollo del frontend (Semanas 3-5)

Componentes de Next.js construidos a partir de tu sistema de diseño. Cada tipo de bloque Matrix se convierte en un componente React con interfaces TypeScript. Utilizamos un patrón BlockRenderer que mapea dinámicamente los tipos de bloques del CMS a los componentes correspondientes: añadir nuevos tipos de bloque más adelante es una única adición de archivo.

Las consultas GraphQL se coubican con los componentes de página. La obtención de datos usa el sistema de caché de Next.js con intervalos de revalidación apropiados. Las imágenes pasan por next/image con generación correcta de srcset.

Fase 4: Migración de contenido e implementación de redirecciones 301 (Semanas 5-6)

Scripts de migración personalizados gestionan la transferencia real del contenido. Los datos de los campos Matrix, los archivos de assets y las entradas relacionales se mueven al nuevo esquema con validación de integridad de datos.

Las redirecciones 301 se implementan en next.config.js para las redirecciones estáticas y en el edge middleware de Vercel para las reglas basadas en patrones. Verificamos cada redirección con pruebas automatizadas.

// next.config.js - ejemplo de estructura de redirecciones
const redirects = async () => [
  { source: '/blog/:slug', destination: '/articles/:slug', permanent: true },
  { source: '/services/:path*', destination: '/what-we-do/:path*', permanent: true },
  // Mapa completo generado a partir de la auditoría de URLs de Craft
];

Fase 5: Pruebas, lanzamiento y monitorización (Semanas 6-7)

Ejecutamos pruebas en paralelo: el sitio antiguo y el nuevo lado a lado. Los Core Web Vitals se validan frente a los objetivos (LCP < 2,5 s, CLS < 0,1, INP < 200 ms). Cada redirección 301 queda verificada. Se monitoriza Google Search Console en busca de errores de rastreo.

El lanzamiento se realiza con tiempo de inactividad cero mediante cambio de DNS. Monitorizamos el rendimiento en búsqueda durante 30 días tras el lanzamiento.

Estrategia de preservación del SEO

El SEO es donde la mayoría de las migraciones fallan. Hemos desarrollado un proceso que elimina la incertidumbre:

Cobertura del 100 % de las URLs. Cada URL indexada recibe una redirección 301. Sin excepciones. Cruzamos los datos de Google Search Console, los rastreos de Screaming Frog y el sitemap.xml para capturar cada URL.

Migración de metadatos. Las etiquetas de título, las meta descripciones, los datos Open Graph y los datos estructurados (JSON-LD) se migran y validan página por página. Si usabas el plugin SEOmatic de Craft, replicamos su salida de forma exacta.

Integridad de los enlaces internos. Todos los enlaces internos se actualizan a las nuevas URLs. Sin cadenas de redirecciones. Sin enlaces rotos.

Generación de sitemap XML. Sitemap dinámico generado a partir del contenido del CMS, enviado a Google Search Console el día del lanzamiento.

Etiquetas canonical y hreflang. Preservadas exactamente como estaban, o mejoradas si estaban mal configuradas.

Nuestros clientes suelen experimentar menos de un 3 % de fluctuación en el tráfico orgánico durante la migración, con recuperación y crecimiento en un plazo de 4 a 6 semanas.

Plazos y precios

Precios transparentes. Sin honorarios de descubrimiento, sin costes ocultos.

Sitios pequeños (menos de 50 páginas): 8.000-15.000 £ / 10.000-18.000 $. Plazo de 4-5 semanas.

Sitios medianos (50-500 páginas): 15.000-35.000 £ / 18.000-42.000 $. Plazo de 6-8 semanas.

Sitios grandes (más de 500 páginas): 35.000-80.000 £ / 42.000-95.000 $. Plazo de 8-12 semanas.

El precio escala con la complejidad del contenido (número de tipos de bloques Matrix, profundidad relacional, requisitos multilingües) y la funcionalidad personalizada (integraciones con Supabase, autenticación, comercio electrónico).

Los costes de hosting tras la migración: Vercel Pro a 20 $/mes, Supabase Pro a 25 $/mes y tu hosting de CMS si mantienes Craft en modo headless, o tu suscripción al CMS. La infraestructura total suele rondar los 50-100 $/mes, a menudo menos de lo que pagabas solo por el hosting de Craft.

Cada proyecto comienza con una auditoría de migración gratuita. Revisamos tu sitio actual en Craft, estimamos la complejidad del contenido y entregamos un presupuesto de precio fijo en un plazo de 48 horas.

How It Works

The migration process

01

Discovery & Audit

We map every page, post, media file, redirect, and plugin. Nothing gets missed.

02

Architecture Plan

New stack designed for your content structure, SEO requirements, and performance targets.

03

Staged Migration

Content migrated in batches. Each batch verified before the next begins.

04

SEO Preservation

301 redirects, canonical tags, sitemap, robots.txt — every ranking signal carried over.

05

Launch & Monitor

DNS cutover with zero downtime. 30-day monitoring period included.

Before vs After

Craft CMS 5 vs Next.js (Headless)

Metric Craft CMS 5 Next.js (Headless)
Lighthouse Mobile 45-65 95-100
TTFB 1.2-2.5s <0.3s
Build Time (500 pages) N/A (runtime) <90s ISR
Hosting Cost $50-150/mo $20-50/mo
Developer Experience Twig + PHP + plugins TypeScript + React + GraphQL
API/Headless Support Partial (requires config) Native (App Router + RSC)
FAQ

Common questions

¿Podemos conservar Craft CMS como editor de contenido tras migrar a Next.js?

Por supuesto. Craft CMS 5 dispone de un modo headless nativo con una API GraphQL integrada. Tus editores siguen usando el panel de control que ya conocen —campos Matrix, vista previa en vivo, gestión de assets— mientras el frontend pasa a Next.js. Configuramos el modo headless de Craft para que la experiencia editorial sea prácticamente idéntica, solo que más rápida en la parte pública.

¿Cómo gestionáis los bloques de campos Matrix durante la migración?

Cada tipo de bloque Matrix en Craft se mapea a un componente React tipado en Next.js. Construimos un BlockRenderer dinámico que recibe los datos del bloque desde GraphQL y renderiza el componente correcto. Tus editores siguen usando los campos Matrix exactamente igual que antes, y añadir nuevos tipos de bloque en el futuro requiere un trabajo de desarrollo mínimo.

¿Bajará nuestro posicionamiento en buscadores durante la migración?

Con una cobertura adecuada de redirecciones 301 y la migración de metadatos, nuestros clientes suelen experimentar menos de un 3 % de fluctuación en el tráfico orgánico. Mapeamos cada URL indexada, migramos todas las etiquetas de título y meta descripciones, preservamos los datos estructurados y monitorizamos Google Search Console durante 30 días tras el lanzamiento. La mayoría de los sitios se recuperan y superan el tráfico anterior en un plazo de 4 a 6 semanas.

¿Cuánto tiempo tarda una migración de Craft CMS a Next.js?

Los sitios pequeños con menos de 50 páginas tardan 4-5 semanas. Los sitios medianos con 50-500 páginas, entre 6 y 8 semanas. Los sitios grandes con más de 500 páginas necesitan entre 8 y 12 semanas. El plazo depende de la complejidad del contenido: número de tipos de bloques Matrix, profundidad de entradas relacionales, requisitos multilingües e integraciones personalizadas con Supabase. Damos plazos exactos tras la auditoría gratuita.

¿Qué reemplaza Supabase en la nueva arquitectura?

Supabase gestiona los datos de la aplicación que no corresponden a un CMS: autenticación de usuarios, envíos de formularios, funcionalidades en tiempo real y datos dinámicos. Reemplaza los plugins de Craft que pudieras estar usando para formularios de contacto, cuentas de usuario o tablas de base de datos personalizadas. Es una base de datos Postgres completa con autenticación, edge functions y almacenamiento integrados.

¿Cuánto cuesta el hosting tras migrar de Craft CMS a Next.js en Vercel?

Vercel Pro cuesta 20 $/mes y Supabase Pro, 25 $/mes. Si mantienes Craft en modo headless como CMS, añade tu coste de hosting actual (normalmente entre 50 y 100 $/mes). La infraestructura total suele situarse entre 50 y 100 $/mes, a menudo menos de lo que pagabas solo por el hosting de Craft, con un rendimiento notablemente mejor y distribución global desde el edge.

¿Trabajáis con agencias tanto en el Reino Unido como en Estados Unidos?

Sí. Trabajamos con agencias y marcas en el Reino Unido y en Estados Unidos, con precios tanto en GBP como en USD. Nuestro proceso es completamente remoto, con comunicación asíncrona, tableros de proyecto compartidos y videollamadas semanales de seguimiento. La diferencia horaria no ha sido un problema: estructuramos los sprints para adaptarnos a ambos mercados.

Ready to migrate?

Free assessment. We'll audit your current site and give you a clear migration plan — no commitment.

Get your free assessment →
Get in touch

Let's build
something together.

Whether it's a migration, a new build, or an SEO challenge — the Social Animal team would love to hear from you.

Get in touch →