Lista de verificación para migración TYPO3: Tu plan de vuelo paso a paso
Tu instancia de TYPO3 registra hoy su renderizado de página número 10.000. Observas los logs de Apache desplazarse, ves multiplicarse las advertencias de extensiones y te das cuenta de que la conversación sobre migración que has ido postergando acaba de volverse urgente. Tras acompañar a seis equipos empresariales en actualizaciones de versiones de TYPO3 y tres migraciones completas de plataforma, he aprendido que las migraciones fluidas comparten un rasgo: comienzan con una lista de verificación antes de que nadie toque producción. ¿La diferencia entre un cambio de tres semanas y un estancamiento de seis meses? Un plan previo al vuelo que mapea cada extensión, audita cada tipo de contenido y pone a prueba tus redirecciones antes de que cambie el DNS. Aquí está la lista de verificación exacta que usamos -- la que mantiene intactos tus rankings SEO y honesto tu calendario de despliegue.
Esta es la lista de verificación que desearía que alguien me hubiera entregado antes de mi primera migración de TYPO3. No es teórica. Cada elemento existe porque he visto qué ocurre cuando lo omites.
Tabla de Contenidos
- Evalúa tu instalación actual de TYPO3
- Define tu estrategia de migración
- Auditoría de contenido y mapeo de datos
- Preparación de la infraestructura técnica
- Inventario de extensiones e integraciones
- Plan de preservación SEO
- La fase de ejecución de la migración
- Pruebas y aseguramiento de calidad
- Monitoreo post-migración
- Errores comunes en migraciones de TYPO3
- Preguntas frecuentes

Evalúa tu instalación actual de TYPO3
Antes de tocar nada, necesitas entender exactamente con qué estás trabajando. Esto suena obvio. No lo es. He llegado a proyectos donde el equipo ni siquiera sabía qué versión de TYPO3 estaban ejecutando en producción.
Auditoría de versión y entorno
Empieza aquí:
# Check your TYPO3 version
php typo3/sysext/core/bin/typo3 --version
# Or check via the backend: Help > About TYPO3
Documenta lo siguiente:
- Versión de TYPO3 (mayor y menor -- p. ej., TYPO3 v11.5.38 LTS)
- Versión de PHP en ejecución en el servidor
- Tipo y versión de la base de datos (MySQL, MariaDB, PostgreSQL)
- Servidor web (Apache, Nginx)
- Instalación basada en Composer o clásica -- esto importa enormemente
- Número de sitios/dominios en la instalación (las configuraciones multisitio añaden complejidad)
- Número total de páginas y elementos de contenido en el árbol de páginas
Mapeo de usuarios y permisos
El sistema de permisos de usuarios y grupos del backend de TYPO3 es notoriamente granular. Exporta tus tablas be_users y be_groups y documenta:
- Cuántos usuarios de backend existen
- Qué permisos personalizados están configurados
- Qué usuarios tienen acceso de administrador
- Cualquier anulación personalizada de TSconfig
Si estás migrando a un CMS diferente, necesitarás mapear estos roles al modelo de permisos del nuevo sistema. Si estás actualizando versiones de TYPO3, es posible que algunas configuraciones de permisos necesiten actualizarse.
Complejidad de TypoScript y configuración
Realiza una auditoría rápida de tu configuración de TypoScript:
# Count your TypoScript files
find . -name '*.typoscript' -o -name '*.ts' | wc -l
# Check for setup.txt and constants.txt (legacy format)
find . -name 'setup.txt' -o -name 'constants.txt' | wc -l
Si tienes cientos de archivos TypoScript con configuraciones profundamente anidadas, espera que la migración tome más tiempo. He visto instalaciones de TYPO3 con más de 10.000 líneas de TypoScript que habían evolucionado durante 15 años. Eso no es un proyecto de fin de semana.
Define tu estrategia de migración
Fundamentalmente existen tres tipos de migraciones de TYPO3, y necesitas decidir cuál estás haciendo antes de cualquier otra cosa.
| Tipo de migración | Cuándo elegirla | Complejidad | Cronograma típico |
|---|---|---|---|
| Actualización de versión de TYPO3 (p. ej., v10 → v12) | Quieres mantenerte en TYPO3 | Media-Alta | 4-12 semanas |
| TYPO3 a CMS headless (p. ej., Contentful, Strapi, Sanity) | Quieres flexibilidad moderna en el frontend | Alta | 8-20 semanas |
| TYPO3 a otro CMS tradicional (p. ej., WordPress, Drupal) | Quieres un CMS monolítico diferente | Media | 6-16 semanas |
| TYPO3 a TYPO3 headless (usando EXT:headless) | Quieres backend de TYPO3 con frontend moderno | Media | 6-14 semanas |
Actualización dentro de TYPO3
Si te quedas en TYPO3, la ruta de actualización oficial requiere pasar por cada versión LTS. No puedes saltar directamente de v8 a v12. Bueno, puedes intentarlo. No lo hagas.
La ruta recomendada a partir de 2026:
- v8 LTS → v9 LTS → v10 LTS → v11 LTS → v12 LTS → v13 LTS
TYPO3 v13 LTS fue lanzado a finales de 2024 y es la versión de soporte a largo plazo actual. TYPO3 v12 LTS recibirá actualizaciones de seguridad hasta abril de 2026 a través del programa Extended Long Term Support (ELTS).
Migración fuera de TYPO3
Si te estás moviendo a una arquitectura headless -- y honestamente, para muchos equipos esto tiene mucho sentido -- querrás evaluar tus opciones de framework frontend. Hemos realizado un trabajo extenso con Next.js y Astro como capas frontend emparejadas con plataformas CMS headless.
La pregunta clave es: ¿tu modelo de contenido justifica la complejidad de TYPO3? Si estás gestionando un sitio de marketing con 200 páginas, TYPO3 probablemente es excesivo. Si estás gestionando un portal empresarial multilingüe con flujos de trabajo complejos, el trabajo de modelado de contenido durante la migración será significativo independientemente de a dónde vayas.
Auditoría de contenido y mapeo de datos
Aquí es donde las migraciones viven o mueren. El contenido.
Exportación y análisis de la base de datos
TYPO3 almacena contenido principalmente en estas tablas:
pages-- la estructura del árbol de páginastt_content-- elementos de contenidosys_fileysys_file_reference-- activos multimedia (FAL)sys_category-- categoríastx_news_domain_model_news-- si estás usando la extensión de noticias
Exporta tu contenido y obtén números reales:
-- Count pages by type
SELECT doktype, COUNT(*) as count
FROM pages
WHERE deleted = 0
GROUP BY doktype;
-- Count content elements by type
SELECT CType, COUNT(*) as count
FROM tt_content
WHERE deleted = 0 AND hidden = 0
GROUP BY CType
ORDER BY count DESC;
-- Count file references
SELECT COUNT(*) FROM sys_file WHERE missing = 0;
Mapeo de tipos de contenido
Crea una hoja de cálculo que mapee cada tipo de contenido de TYPO3 (CType) a su equivalente en el sistema de destino. Tipos de contenido comunes de TYPO3 que encontrarás:
text,textmedia,textpic-- contenido de texto estándarimage-- galerías de imágenestable-- tablas de datosbullets-- listasuploads-- listas de archivoshtml-- HTML sin procesar (estos siempre son divertidos durante la migración)list-- contenido de plugins (aquí es donde se complica)- Tipos de contenido personalizados de extensiones
El CType list es el complicado. Representa contenido de plugins -- listados de noticias, formularios, funcionalidad personalizada -- y cada uno requiere atención individual.
Contenido multilingüe
TYPO3 gestiona las traducciones a través del modo conectado (donde las traducciones están vinculadas a un registro de idioma predeterminado) o el modo libre. Verifica qué enfoque usa tu sitio:
-- Check translation setup
SELECT sys_language_uid, COUNT(*)
FROM pages
WHERE deleted = 0
GROUP BY sys_language_uid;
Si tienes 8 idiomas con traducciones en modo conectado, el mapeo de datos de migración acaba de volverse 8 veces más complejo. Planifica en consecuencia.

Preparación de la infraestructura técnica
Requisitos del servidor
Si estás actualizando a TYPO3 v13, estos son los requisitos mínimos a partir de 2026:
- PHP 8.2 o superior (se recomienda 8.3)
- MySQL 8.0+ o MariaDB 10.4+ o PostgreSQL 12+
- Límite mínimo de memoria PHP de 256 MB (se recomiendan 512 MB)
- Composer 2.7+
Entorno de staging
Nunca -- y no puedo enfatizar esto suficientemente -- nunca ejecutes una migración directamente en producción. Configura:
- Un entorno de staging que refleje producción
- Una copia separada de la base de datos
- Configuraciones idénticas de PHP y servidor
- Acceso al almacenamiento de archivos (o una copia de fileadmin)
# Clone your database to staging
mysqldump -u root -p production_db | mysql -u root -p staging_db
# Rsync fileadmin
rsync -avz production:/var/www/html/fileadmin/ staging:/var/www/html/fileadmin/
Estrategia de respaldo
Antes de que comience cualquier trabajo de migración:
- Volcado completo de la base de datos con marcas de tiempo
- Respaldo completo del sistema de archivos incluyendo fileadmin, typo3conf y cualquier directorio de extensiones personalizadas
- Documenta tu configuración de LocalConfiguration.php y AdditionalConfiguration.php
- Exporta tus plantillas TypoScript
Almacena estos respaldos en un lugar completamente separado del entorno de migración. Yo mantengo al menos tres copias.
Inventario de extensiones e integraciones
Las extensiones de TYPO3 son probablemente la mayor fuente de dolores de cabeza en las migraciones. Así es como manejarlas.
Lista de todas las extensiones instaladas
# Composer-based installation
composer show | grep typo3
# Or check the PackageStates.php
cat typo3conf/PackageStates.php
Categoriza cada extensión
Para cada extensión, determina:
| Categoría | Acción requerida | Ejemplo |
|---|---|---|
| Extensión del sistema central | Generalmente gestionada por el asistente de actualización | fluid_styled_content, form |
| Extensión TER mantenida | Verifica compatibilidad con la versión de destino | news, powermail, solr |
| Extensión TER abandonada | Encuentra reemplazo o solución personalizada | Varias |
| Extensión de sitio personalizada | Necesita migración/reescritura manual | Tu site_package |
| Extensión comercial | Contacta al proveedor para ruta de migración | in2publish, varias |
Rutas comunes de migración de extensiones
Algunas extensiones que veo en casi todas las migraciones de TYPO3:
- EXT:news (Georg Ringer) -- Verifica compatibilidad de versión; v11+ funciona con TYPO3 v12/v13
- EXT:powermail -- Extensión popular de formularios; las alternativas incluyen EXT:form (núcleo)
- EXT:realurl -- Obsoleta desde TYPO3 v9; reemplazada por enrutamiento del núcleo
- EXT:tt_address -- Generalmente actualización directa
- EXT:gridelements o EXT:flux -- Estas extensiones de maquetación causan más problemas durante las actualizaciones. Si estás migrando fuera de TYPO3, espera un trabajo significativo para extraer contenido de las estructuras de cuadrícula.
Plan de preservación SEO
Omitir esta sección le ha costado a empresas millones en tráfico orgánico. No seas ese equipo.
Mapeo de URLs
- Rastrea todo tu sitio actual con Screaming Frog, Sitebulb o Ahrefs
- Exporta todas las URLs (espera miles para sitios grandes de TYPO3)
- Crea un documento completo de mapeo de URLs 1:1
- Identifica tus 100 páginas principales por tráfico orgánico (revisa Google Search Console)
- Prioriza la precisión de redirección para las páginas de alto tráfico
Implementación de redirecciones
# Example .htaccess redirects
RedirectPermanent /old-typo3-path/page.html /new-path/page
RedirectPermanent /index.php?id=123 /about-us
Para redirecciones a gran escala, usa una solución de gestión de redirecciones en lugar de abarrotar miles de reglas en .htaccess. Si estás migrando a una pila moderna, la mayoría de los frameworks y plataformas de alojamiento (Vercel, Netlify) tienen archivos de configuración de redirecciones.
Migración de metadatos
TYPO3 almacena metadatos SEO en la tabla pages (desde que EXT:seo se convirtió en extensión del núcleo en v9):
seo_titleog_title,og_description,og_imagetwitter_title,twitter_description,twitter_imagecanonical_linkno_index,no_follow
Asegúrate de exportar y mapear todo esto. Perder tus meta descripciones en 500 páginas es un desastre evitable.
La fase de ejecución de la migración
Para actualizaciones de versión de TYPO3
Sigue esta secuencia para cada paso de versión:
- Actualiza las dependencias de Composer a la siguiente versión LTS
- Ejecuta el Asistente de Actualización en la herramienta de instalación (Admin Tools > Upgrade)
- Ejecuta el analizador de base de datos para actualizar el esquema
- Revisa el registro de deprecaciones en busca de problemas
- Actualiza las extensiones a versiones compatibles
- Corrige las deprecaciones y cambios importantes de TypoScript
- Prueba exhaustivamente antes de pasar al siguiente paso de versión
# Update TYPO3 core via Composer
composer require typo3/cms-core:^13.4 typo3/cms-backend:^13.4 \
typo3/cms-frontend:^13.4 --with-all-dependencies
# Run upgrade wizards via CLI
php typo3/sysext/core/bin/typo3 upgrade:run
# Database schema update
php typo3/sysext/core/bin/typo3 database:updateschema
Para migraciones de plataforma
Si estás migrando a una arquitectura CMS headless, la fase de ejecución tiene un aspecto diferente:
- Configura el nuevo CMS y define los modelos de contenido
- Construye scripts de migración para transformar los datos de TYPO3
- Migra el contenido por lotes -- comienza con los tipos de contenido más simples
- Gestiona los activos multimedia -- descarga desde fileadmin y sube al nuevo almacenamiento de activos
- Construye el frontend con tu framework elegido
- Implementa las redirecciones antes de la puesta en marcha
- Cambio de DNS y monitoreo
Para la transformación real de datos, generalmente escribo scripts en Python o Node.js que leen de la base de datos de TYPO3 y envían contenido al nuevo CMS mediante API:
import mysql.connector
import requests
# Connect to TYPO3 database
db = mysql.connector.connect(
host="localhost",
user="typo3",
password="password",
database="typo3_db"
)
cursor = db.cursor(dictionary=True)
cursor.execute("""
SELECT uid, title, description, slug,
seo_title, og_description
FROM pages
WHERE deleted = 0 AND hidden = 0
AND sys_language_uid = 0
ORDER BY sorting
""")
for page in cursor.fetchall():
# Transform and push to new CMS
payload = {
"title": page["title"],
"slug": page["slug"],
"seoTitle": page["seo_title"] or page["title"],
"description": page["og_description"] or page["description"]
}
# POST to your new CMS API
response = requests.post(
"https://api.new-cms.com/content",
json=payload,
headers={"Authorization": "Bearer YOUR_TOKEN"}
)
print(f"Migrated page {page['uid']}: {response.status_code}")
Pruebas y aseguramiento de calidad
Lista de verificación de pruebas automatizadas
- Todas las páginas devuelven códigos de estado 200
- Sin enlaces internos rotos
- Todas las imágenes cargan correctamente
- Los formularios se envían correctamente
- La funcionalidad de búsqueda funciona
- El cambio multilingüe funciona
- Las redirecciones desde las URLs antiguas funcionan correctamente
- Las URLs canónicas son correctas
- Los sitemaps XML son válidos y accesibles
- El robots.txt está configurado correctamente
- Los certificados SSL son válidos
- Los tiempos de carga de página son aceptables (menos de 3 segundos)
Pruebas de regresión visual
Usa herramientas como Percy, BackstopJS o Playwright para la comparación visual:
# BackstopJS example
npx backstop init
# Configure scenarios in backstop.json
npx backstop reference # Capture current site
npx backstop test # Compare after migration
Benchmarks de rendimiento
Mide antes y después. Tu migración debería mejorar el rendimiento, no degradarlo.
| Métrica | Objetivo pre-migración | Objetivo post-migración |
|---|---|---|
| TTFB | < 800ms | < 200ms |
| LCP | < 2.5s | < 1.5s |
| CLS | < 0.1 | < 0.05 |
| FID/INP | < 200ms | < 100ms |
| Puntuación PageSpeed | 50-70 | 90+ |
Si estás pasando de TYPO3 renderizado en servidor a un frontend estático o renderizado en el edge, deberías ver mejoras drásticas en estos números.
Monitoreo post-migración
La migración no termina cuando cambias el DNS. Monitorea estos elementos durante al menos 30 días:
- Google Search Console -- Observa los errores de rastreo, problemas de cobertura y problemas de indexación. Espera cierta fluctuación en las primeras dos semanas.
- Analytics -- Compara los patrones de tráfico semana a semana con las líneas base previas a la migración.
- Errores 404 -- Configura el registro de errores 404 y añade redirecciones para cualquier URL que hayas omitido.
- Core Web Vitals -- Monitorea datos de usuarios reales a través de CrUX o tu plataforma de analytics.
- Logs del servidor -- Observa patrones de error inusuales.
Configura alertas para caídas de tráfico superiores al 20% en cualquier página que estuviera previamente entre tus 50 principales.
Errores comunes en migraciones de TYPO3
Estos son errores que he visto (y a veces cometido) en docenas de migraciones:
1. Ignorar los registros eliminados de forma suave. TYPO3 usa indicadores deleted=1 en lugar de eliminar realmente los registros. Tus scripts de migración necesitan filtrarlos, o importarás miles de registros que fueron eliminados hace años.
2. Olvidar los espacios de trabajo. Si el sitio usa espacios de trabajo de TYPO3 para flujos de trabajo editoriales, es posible que tengas contenido en borrador mezclado en tu exportación. Filtra siempre por t3ver_wsid = 0 para obtener solo el contenido publicado.
3. Subestimar el contenido RTE. La salida del editor de texto enriquecido de TYPO3 puede contener etiquetas personalizadas, etiquetas <link> con sintaxis específica de TYPO3 y URIs t3://. Necesitas analizar y convertir todos estos.
4. Romper las referencias de archivos. La Capa de Abstracción de Archivos (FAL) de TYPO3 usa sys_file_reference para conectar archivos al contenido. No es un simple "campo de imagen en el registro de contenido" -- es una tabla de relaciones. Tus scripts de migración necesitan seguir estas referencias.
5. No probar con volúmenes reales de contenido. Tu script de migración funciona perfectamente con 10 páginas de prueba. Falla catastróficamente con 15.000 páginas y 50.000 elementos de contenido. Prueba siempre a escala.
Si estás planificando una migración y quieres evitar estos errores, hemos guiado a varios equipos empresariales a través de migraciones de TYPO3 -- no dudes en contactarnos y podemos hablar sobre tu situación específica.
Preguntas frecuentes
¿Cuánto tiempo suele durar una migración de TYPO3? Depende en gran medida de la complejidad de tu instalación. Una actualización directa de TYPO3 v11 a v13 para un sitio de un solo idioma con extensiones estándar podría llevar 4-6 semanas. Una migración completa de plataforma de un sitio TYPO3 empresarial multilingüe con extensiones personalizadas puede fácilmente llevar 3-6 meses. La fase de auditoría de contenido por sí sola puede llevar 2-4 semanas para sitios grandes.
¿Puedo omitir versiones LTS de TYPO3 durante una actualización? Técnicamente, no deberías. La recomendación oficial es actualizar a través de cada versión LTS de forma secuencial (v8 → v9 → v10 → v11 → v12 → v13) porque cada versión incluye asistentes de actualización que gestionan las migraciones de datos para ese paso específico. Omitir versiones significa que esas migraciones de datos no se ejecutan y terminarás con datos corruptos o huérfanos. Algunas agencias afirman que pueden hacer actualizaciones saltando versiones, pero he visto que esto causa problemas sutiles de datos que surgen meses después.
¿Debería migrar de TYPO3 a WordPress? Depende de tus necesidades. WordPress gestiona bien los sitios de marketing simples, pero si elegiste TYPO3 originalmente por requisitos complejos de múltiples idiomas, permisos granulares o flujos de trabajo empresariales, WordPress podría ser un paso atrás. Considera si un CMS headless emparejado con un framework de frontend moderno podría ser una mejor opción. Hemos escrito sobre enfoques de desarrollo de CMS headless que a menudo tienen más sentido para los equipos que abandonan plataformas CMS empresariales.
¿Qué ocurre con mis rankings SEO durante una migración de TYPO3? Espera cierta fluctuación en los rankings durante 2-6 semanas, incluso con redirecciones perfectas. Google necesita tiempo para volver a rastrear e indexar tu contenido. Para minimizar el impacto: implementa redirecciones 301 para cada URL, mantén tu estructura de contenido lo más cercana posible a la original, envía sitemaps actualizados de inmediato y usa la herramienta de Cambio de Dirección en Google Search Console si estás cambiando de dominio. Los sitios que gestionan correctamente las redirecciones suelen recuperarse en 4-8 semanas.
¿Cómo gestiono las extensiones de TYPO3 que no existen en la plataforma de destino? Primero, determina qué hace realmente la extensión. Muchas extensiones de TYPO3 proporcionan funcionalidad que está integrada en las plataformas modernas (como constructores de formularios, herramientas SEO o gestión de redirecciones). Para la funcionalidad personalizada, necesitarás encontrar un plugin/servicio equivalente o construir características personalizadas. Crea una hoja de cálculo listando cada extensión, su propósito y la estrategia de reemplazo.
¿Vale la pena moverse a TYPO3 headless en lugar de migrar completamente a otra plataforma? La extensión headless de TYPO3 (EXT:headless) es una opción legítima si tu equipo se siente cómodo con el backend de TYPO3 pero quiere un frontend moderno. Expone el contenido de TYPO3 como APIs JSON, permitiéndote construir tu frontend con Next.js, Nuxt o Astro. Este enfoque preserva tu estructura de contenido existente y los flujos de trabajo editoriales mientras moderniza la capa de presentación. Es un buen término medio, aunque significa que aún estás manteniendo un backend de TYPO3.
¿Cuál es el costo de una migración de TYPO3 en 2026? Cifras aproximadas: una actualización de versión de TYPO3 para un sitio de tamaño mediano cuesta entre $15.000 y $50.000. Una migración completa de plataforma a una arquitectura headless oscila entre $40.000 y $150.000 o más, dependiendo del volumen de contenido, el número de idiomas, la funcionalidad personalizada y la complejidad de las integraciones. No son cifras pequeñas, pero compáralas con el costo de mantener una instalación de CMS desactualizada e insegura. Puedes consultar nuestra página de precios para más detalles sobre cómo estructuramos estos proyectos.
¿Necesito reconstruir mis plantillas desde cero? Para actualizaciones de versión de TYPO3, generalmente no del todo -- pero sí necesitarás actualizar las plantillas Fluid para gestionar los ViewHelpers obsoletos y las nuevas APIs. Para migraciones de plataforma, sí, estás construyendo un nuevo frontend. La buena noticia es que los frameworks modernos como Next.js y Astro hacen significativamente más rápido construir frontends de alto rendimiento de lo que era en la era de Fluid/TypoScript. Tu diseño puede mantenerse igual; solo cambia la implementación.
Conclusión clave: Audita tu versión de TYPO3 y el stack de extensiones antes de tocar producción.