Migración de WordPress/PHP a Django/Python: cuándo se amortiza y cuánto cuesta
WordPress en PHP cubre la mayoría de sitios de contenido, pero a medida que crece el negocio, los plugins, el código personalizado y los límites del CMS se convierten en un cuello de botella. Django/Python es el camino hacia lógica de negocio personalizada, APIs, roles y un backend escalable sin un "zoológico de plugins". A continuación: señales de que hay que migrar, escenarios típicos, presupuesto, plazos y cómo saber si la mudanza se amortiza en 2026.
- Disparadores típicos - lógica de negocio compleja, integraciones, seguridad, rendimiento, deuda técnica en PHP
- Presupuesto de migración - $3.000 - $80.000+ según volumen de datos, funciones y requisitos SEO
- Plazos - 3-12 semanas para un sitio típico, 3-9 meses para e-commerce y SaaS
- Amortización - 12-36 meses con mayor conversión, menos costes de soporte y nuevas integraciones
- Riesgo principal - no Django, sino una auditoría legacy deficiente y pérdida SEO al migrar URLs
Cuando WordPress deja de bastar
WordPress tiene sentido mientras el sitio sea contenido + formularios + catálogo básico. Los problemas empiezan cuando la lógica de negocio supera el ecosistema de plugins:
- 10+ plugins con funciones solapadas, conflictos de actualización y agujeros de seguridad;
- PHP personalizado en
functions.php, mu-plugins y forks de plugins - sin tests, documentación ni code review; - Páginas lentas con 50K+ registros, filtros complejos o consultas pesadas de WooCommerce;
- Integraciones con parches - webhooks en Zapier, exportaciones CSV, sincronización manual con CRM y ERP;
- Sin API adecuada para app móvil, portal de partners o frontend headless;
- Roles y permisos más allá de "admin / editor / suscriptor" - departamentos, flujos de aprobación, audit log.
Django no es "mejor que WordPress en todo" - es mejor donde el CMS se convierte en un ERP casero sobre plugins.
Señales de que ya hace falta migrar
| Síntoma | Qué ocurre | A dónde lleva |
|---|---|---|
| Actualizar WP rompe el sitio | Conflictos de plugins, hooks obsoletos | Caída, leads perdidos |
| Desarrollo "con plugins" tarda semanas | Sin acceso a la lógica central | Cambios caros |
| Seguridad en modo incendio | Vulnerabilidades en plugins, temas nulled | Hackeos, penalizaciones SEO |
| Datos duplicados | Pedidos en WP, clientes en CRM, stock en Excel | Errores, trabajo manual |
| Crece la carga, la caché no basta | Arquitectura monolito-sobre-plugins | Caída de conversión |
Si 2-3 filas encajan con su caso, la migración ya no es un "stack de moda" - es reducción de riesgo operativo.
Qué incluye la migración
Un proyecto típico "WordPress → Django" no es solo mover HTML:
- Auditoría legacy - plugins, código custom, BD, cron, integraciones, lógica de negocio "oculta".
- Diseño de arquitectura nueva - modelos de datos, API, roles, tareas en segundo plano (Celery).
- Migración de contenido - posts, páginas, medios, meta, categorías, tags, custom fields (ACF).
- Migración de usuarios - hashes de contraseña (a menudo re-hash en el primer login), roles, perfiles.
- E-commerce / pedidos - si WooCommerce: productos, variantes, pedidos, cupones, impuestos.
- Capa SEO - redirecciones 301, sitemap, canonical, Schema.org, conservar slug cuando sea posible.
- Integraciones - CRM, pagos, email, analítica - ya en Python, sin intermediarios.
- Ejecución en paralelo - staging, UAT, plan de cutover, rollback.
- Formación de editores - Wagtail / Django Admin / CMS headless.
Django no tiene que replicar el admin de WordPress uno a uno. Suele ganar un CMS simplificado alineado con los procesos reales del equipo.
Estrategias de migración
Big bang (corte único)
El sitio antiguo se apaga; el nuevo entra en una ventana de mantenimiento (noche / fin de semana).
- Ventajas - un solo cutover, sin doble soporte.
- Desventajas - alto riesgo, rollback necesario, estrés para SEO y equipo.
- Cuándo encaja - sitio pequeño, pocas integraciones, poco tráfico fuera de hora punta.
Por fases (strangler fig)
Primero se migra un módulo - blog, área de cuenta, API - y parte del tráfico va a Django.
- Ventajas - menos riesgo, KPIs medibles por partes.
- Desventajas - dos sistemas temporalmente, infra más compleja (reverse proxy, auth compartida).
- Cuándo encaja - e-commerce, SaaS, alto tráfico, requisito zero-downtime.
Headless WordPress → backend Django
Al inicio WordPress sigue siendo CMS para editores; Django se queda con catálogo, pedidos, API. Luego el contenido pasa a Wagtail.
- Ventajas - editores siguen trabajando; la lógica de negocio sale de PHP antes.
- Desventajas - dos CMS en la transición.
Para la mayoría de proyectos B2B y e-commerce, la migración por fases compensa en tranquilidad del equipo y menos tiempo caído.
Coste de la migración
El precio depende del volumen de datos, profundidad WooCommerce / membership, número de integraciones y requisitos SEO - no de "pasar a Python" como tal.
Rangos típicos (USD, outsourcing Europa del Este / CEI)
| Escenario | Qué se migra | Presupuesto | Plazo |
|---|---|---|---|
| Sitio corporativo | 20-100 páginas, blog, formularios, SEO | $3.000 - $12.000 | 3-6 semanas |
| Contenido + área de cuenta | Usuarios, roles, documentos, API | $8.000 - $25.000 | 6-10 semanas |
| WooCommerce MVP | Hasta 2.000 SKU, pedidos, pago, admin | $15.000 - $45.000 | 2-4 meses |
| Marketplace / SaaS | Multi-vendor, suscripciones, billing, RBAC | $40.000 - $80.000+ | 4-9 meses |
Para equipos de EE.UU. y Europa Occidental aplique multiplicador x2-x3. La migración suele ser +15-35% frente a un proyecto Django greenfield similar por parsing legacy, redirecciones y operación en paralelo.
Desglose del presupuesto
| Partida | Cuota | Comentario |
|---|---|---|
| Auditoría y especificación | 10-15% | Sin esto se subestima un 40-60% |
| Diseño / frontend | 15-30% | Rediseño o adaptación del markup actual |
| Backend Django | 30-45% | Modelos, API, lógica de negocio, admin |
| Migración de datos | 10-20% | Scripts, validación, dry-run |
| SEO y redirecciones | 5-10% | Mapa de URLs, 301, Search Console |
| Pruebas, UAT | 10-15% | Regresión, carga, ensayo de cutover |
| DevOps | 5-10% | CI/CD, staging, monitorización |
Ahorrar en auditoría legacy y SEO es arriesgado - ahí estallan presupuestos y se pierde tráfico orgánico.
Plazos y camino crítico
| Etapa | Corporativo | WooCommerce | SaaS / marketplace |
|---|---|---|---|
| Auditoría WP, mapa de datos | 3-7 días | 1-2 semanas | 2-3 semanas |
| Arquitectura, spec | 3-5 días | 1-2 semanas | 2-4 semanas |
| Desarrollo Django | 2-4 semanas | 6-12 semanas | 12-24 semanas |
| Scripts de migración + dry-run | 3-5 días | 1-2 semanas | 2-3 semanas |
| SEO, redirecciones, UAT | 3-5 días | 1-2 semanas | 2-3 semanas |
| Cutover | 1 día | 1-2 días | 2-5 días |
| Total | 3-6 semanas | 2-4 meses | 4-9 meses |
Los plazos se alargan por datos WP sucios (ACF con decenas de campos, slugs duplicados), APIs de partners inestables y retrasos en aprobar redirecciones con SEO.
Cuándo se amortiza la migración
La amortización se mide en dinero y riesgo, no en "belleza del stack":
Ahorro directo
- Soporte de plugins y fixes urgentes - $200-800/mes en WP vs $150-500/mes retainer Django sin zoológico de plugins;
- Hosting - WooCommerce pesado en WP gestionado $100-400/mes vs Django optimizado en VPS $40-150/mes con carga comparable;
- Integraciones - dejar Zapier/Make y CSV intermedios ahorra $50-300/mes y horas manuales.
Crecimiento de ingresos
- Velocidad del sitio - +0,1s LCP suele dar +1-3% conversión en e-commerce;
- Nuevas funciones sin "techo de plugins" - suscripciones, portal B2B, API para partners;
- Menos caídas - un hackeo WP o conflicto de actualización puede costar más que un trimestre de soporte.
Fórmula ROI simple
ROI (meses) = (coste migración) / (ahorro mensual + margen por subida de conversión)
Ejemplo: migración WooCommerce por $25.000. Ahorro en soporte, hosting, integraciones - $600/mes. Subida de ingresos por velocidad y nueva sección B2B - $800/mes. Total $1.400/mes → amortización ~18 meses.
La migración no se amortiza si el sitio es un folleto de 10 páginas sin integraciones ni planes de crecimiento. Ahí conviene actualizar WP, quitar plugins de más y pasar a un hosting decente.
Riesgos y cómo mitigarlos
Pérdida SEO. Mapa 301 antes del cutover, monitorización 404 las primeras 4-8 semanas, conservar estructura URL cuando sea posible.
Pérdida de datos. Mínimo dos dry-runs, checksums, revisión muestral de pedidos y usuarios.
Caída en cutover. Ensayo en staging, plan rollback, ventana de bajo tráfico, feature flags.
Resistencia de editores. Acceso temprano al nuevo admin, formación breve, 1-2 semanas en paralelo.
Scope creep. Congelar funciones en la migración; lo nuevo en "fase 2" tras estabilizar.
WordPress vs Django tras la migración
| Criterio | WordPress | Django |
|---|---|---|
| Contenido, blog | Excelente | Wagtail / CMS headless |
| Lógica de negocio custom | Débil (parches) | Punto fuerte |
| API, clientes móviles | Vía plugins | DRF integrado |
| E-commerce enterprise | WooCommerce + dolor | Oscar / custom |
| Seguridad | Depende de plugins | Menor superficie de ataque |
| Velocidad MVP | Más rápida | Más lenta al inicio |
| TCO al escalar | Crece de forma no lineal | Más predecible |
Conclusión
Migrar de WordPress/PHP a Django/Python tiene sentido cuando el CMS se convirtió en deuda técnica: conflictos de plugins, lógica custom, integraciones, seguridad, escala. Presupuesto - desde $3.000 para sitio de contenido hasta $80.000+ para marketplace; plazos - de 3 semanas a 9 meses. Amortización - 12-36 meses con ahorro medible en soporte y crecimiento de conversión.
Empiece con una auditoría legacy de 3-5 días - muestra el alcance real y filtra la "migración por migrar". Si Django no hace falta, la auditoría ahorra más de lo que cuesta.
Preguntas frecuentes
¿Se puede migrar a Django sin perder SEO?
Sí, con un mapa de URLs correcto. Hacen falta redirecciones 301 para cada dirección cambiada, conservar slug cuando sea posible, sitemap actualizado, Search Console y 404 tras el cutover. Contenido y meta se migran con scripts y revisión manual de páginas top por tráfico. El riesgo no es Django sino redirecciones omitidas - reserve 5-10% del presupuesto para SEO.
¿Se conservan las contraseñas tras migrar desde WordPress?
Depende del algoritmo de hash. WordPress usa phpass - Django no lo acepta directamente. Lo habitual: migrar hashes y re-hashear en el primer login (auth backend custom) o enviar enlace de un solo uso para nueva contraseña. En B2C con base grande - comunicar antes; en B2B - onboarding manual de cuentas clave.
¿Cuánto cuesta migrar solo contenido, sin e-commerce?
Sitio corporativo (hasta 100 páginas, blog, medios, formularios) - $3.000 - $8.000, 3-5 semanas. La complejidad sube con ACF/custom fields, multilingüe (WPML/Polylang) y tipos de entrada no estándar. Si además hay contenido en Wagtail con diseño nuevo - +15-25% en frontend.
¿Qué es más barato: seguir con WordPress o migrar a Django?
Ampliar WP es más barato a corto plazo (días-semanas) si hace falta una función pequeña y no hay deuda técnica. Django es más barato a 1-3 años cuando se acumulan plugins, integraciones, incidentes de seguridad y cada feature nueva cuesta x2. Regla: si los últimos 2-3 cambios tardaron más de lo previsto - calcule el TCO de migración.
¿Puede WordPress quedarse para el blog y Django para la lógica de negocio?
Sí, es un paso intermedio habitual. Django sirve catálogo, pedidos, API y cuentas; WordPress solo contenido editorial. Un reverse proxy (Nginx) envía /blog/ a WP y el resto a Django. Inconveniente - dos sistemas para actualizaciones y seguridad. Ventaja - time-to-value más rápido y menos riesgo para editores. A largo plazo el contenido suele ir a Wagtail cuando los módulos de negocio se estabilizan.