# Plan de Migración: Joomla 3.1 → WordPress ## 📊 Análisis del sitio actual **Sitio:** Fe Adulta - Portal cristiano de renovación de la fe **Joomla:** 3.1 (2012) + PHP 7.4.33 (EOL) **Base de datos:** MySQL **Contenido:** - **8,971 artículos** 📝 - **68 categorías** - **Componentes principales:** - K2 (sistema de contenido avanzado) - JCE (editor) - Akeeba Backup - AdminTools - AIMy Sitemap --- ## 🎯 Objetivos de la migración 1. **Modernizar la plataforma:** WordPress + PHP 8.x 2. **Simplificar la estructura:** Cartas semanales + artículos enlazados 3. **Monetización:** Google AdSense 4. **Accesibilidad:** Plugin Text-to-Speech con múltiples voces --- ## 🛠️ Fases de migración ### Fase 1: Preparación y backup ✅ - [x] Entorno Docker levantado - [x] Análisis de contenido completado - [ ] Backup completo con Akeeba - [ ] Export de base de datos ### Fase 2: Configuración de WordPress - [ ] WordPress instalado (ya tienes el contenedor) - [ ] Tema seleccionado (ligero, optimizado SEO) - [ ] Plugins esenciales: - **Migración:** FG Joomla to WordPress o WP All Import - **AdSense:** Ad Inserter o Advanced Ads - **Text-to-Speech:** Play.ht, Amazon Polly, o similar - **SEO:** Yoast SEO o Rank Math - **Cache:** WP Rocket o W3 Total Cache - **Seguridad:** Wordfence ### Fase 3: Migración de contenido - [ ] Exportar artículos de Joomla (K2 + content) - [ ] Mapear categorías Joomla → WordPress - [ ] Importar artículos conservando: - Títulos y slugs (SEO) - Categorías y tags - Imágenes y media - Metadatos (autor, fecha) - [ ] Migrar menús - [ ] Migrar usuarios ### Fase 4: Estructura de "Cartas Semanales" - [ ] Crear custom post type "Cartas Semanales" (o usar posts normales con categoría) - [ ] Cada carta enlaza a artículos de la semana - [ ] Template personalizado para cartas - [ ] Navegación por fechas/semanas ### Fase 5: AdSense + Text-to-Speech - [ ] Configurar cuenta Google AdSense - [ ] Insertar bloques de anuncios: - Header - Sidebar - Entre contenido - Footer - [ ] Plugin Text-to-Speech: - Configurar voces (masculina/femenina/neutral) - Botón de reproducción en artículos - Opciones de velocidad ### Fase 6: Testing y optimización - [ ] Probar enlaces internos - [ ] Verificar imágenes rotas - [ ] Optimizar base de datos - [ ] Configurar redirects 301 (Joomla URLs → WordPress URLs) - [ ] Test de velocidad (PageSpeed, GTmetrix) - [ ] Test mobile-responsive ### Fase 7: Lanzamiento - [ ] DNS apuntando al nuevo servidor - [ ] SSL/HTTPS configurado - [ ] Sitemap XML generado - [ ] Google Search Console configurado - [ ] Analytics migrado --- ## ⚙️ Scripts de automatización ### 1. Export masivo de contenido ```bash # Exportar todos los artículos + K2 ./scripts/export-joomla-content.sh ``` ### 2. Conversión de formato ```bash # Convertir HTML de Joomla a formato WordPress ./scripts/convert-content.sh ``` ### 3. Import a WordPress ```bash # Usar WP-CLI para importar en lote ./scripts/import-to-wordpress.sh ``` ### 4. Migración de imágenes ```bash # Descargar y reorganizar media ./scripts/migrate-media.sh ``` --- ## 📋 Checklist crítico - [ ] **Backup completo** antes de cualquier cambio - [ ] **Probar en staging** antes de producción - [ ] **Mapeo de URLs** para no perder SEO - [ ] **Conservar metadatos** (fechas, autores) - [ ] **Migrar comentarios** (si aplica) - [ ] **Verificar formularios de contacto** --- ## 🚨 Riesgos y mitigaciones | Riesgo | Mitigación | |--------|------------| | Pérdida de SEO | Redirects 301 + conservar URLs | | Imágenes rotas | Script de validación post-migración | | Contenido duplicado | Limpiar antes de importar | | Downtime largo | Preparar todo en paralelo, switch rápido | --- ## ⏱️ Estimación de tiempo - **Preparación:** 2-3 horas - **Configuración WordPress:** 3-4 horas - **Migración de contenido:** 6-8 horas (automatizado) - **Testing:** 4-6 horas - **Total:** ~20 horas de trabajo distribuido en 3-5 días --- ## 📝 Notas - **K2:** El componente K2 tiene estructura propia, necesita exportación especial - **8,971 artículos:** Migración por lotes (500-1000 a la vez) - **Cartas semanales:** Posible crear taxonomía personalizada o usar categoría + custom fields - **Text-to-Speech:** Amazon Polly es robusto, Play.ht tiene mejores voces en español --- **Siguiente paso:** ¿Empezamos por el export de contenido o prefieres configurar WordPress primero?