Cómo actualizar tu proyecto Laravel a la última versión (Laravel 13 en 2026)
⚙️ Actualizado para Laravel 13 (marzo 2026). Si todavía estás en Laravel 9, 10 u 11, los pasos que verás abajo siguen siendo válidos: la mecánica del upgrade no ha cambiado, lo único que cambia son los requisitos de PHP y los paquetes a revisar.
Una de las preguntas más recurrentes de los desarrolladores Laravel es cómo actualizar el proyecto a la última versión sin romperlo. La buena noticia es que las últimas releases mayores —especialmente Laravel 13— han sido publicadas con la promesa explícita de “zero breaking changes” y un upgrade path de unos 10 minutos. La mala: si arrastras un proyecto desde Laravel 9 o anterior, conviene subir versión por versión, no saltar varias a la vez.
Versiones actuales y soporte (2026)
| Versión | Estado | PHP mínimo | Soporte de bugs | Soporte de seguridad |
|---|---|---|---|---|
| Laravel 13 | Current (marzo 2026) | 8.3 (8.4 en práctica) | Q3 2027 | Q1 2028 |
| Laravel 12 | LTS / Bug fixes | 8.2 | Hasta 2027 | Hasta 2028 |
| Laravel 11 | Solo security | 8.2 | Cerrado | Hasta 2026 |
| Laravel 10 | End of life | 8.1 | Cerrado | Cerrado |
| Laravel 9 y anteriores | End of life | 8.0 | Cerrado | Cerrado |
Si estás en Laravel 9 o 10, actualiza ya: ya no recibes parches de seguridad. Si estás en 11 o 12, el salto a 13 es trivial.
Requisitos previos para Laravel 13
- PHP 8.3 mínimo. En la práctica, desde Laravel 13.3 las dependencias de Symfony 8 piden PHP 8.4, así que ese es el target recomendado.
- Composer 2.7 o superior.
- Una base de datos compatible (MySQL 8, MariaDB 11, PostgreSQL 16, SQLite, SQL Server).
php -v
composer --version
Paso 1: respaldo y rama de trabajo
Antes de tocar nada, crea una rama de Git dedicada y haz backup de la base de datos.
git checkout -b upgrade/laravel-13
mysqldump -u usuario -p mi_proyecto > backup.sql
Paso 2: actualiza Laravel a la última patch de tu versión actual
Antes de saltar a la siguiente major, ponte al día dentro de tu major actual.
composer update
php artisan test
Si los tests fallan aquí, arregla primero antes de continuar.
Paso 3: edita composer.json
Cambia las versiones del framework y de los paquetes principales. Ejemplo para subir a Laravel 13:
"require": {
"php": "^8.3",
"laravel/framework": "^13.0",
"laravel/sanctum": "^4.0",
"laravel/tinker": "^2.10"
},
"require-dev": {
"phpunit/phpunit": "^11.0",
"nunomaduro/collision": "^8.0",
"spatie/laravel-ignition": "^2.7",
"fakerphp/faker": "^1.23",
"laravel/pint": "^1.13"
}
Si vas a Laravel 12 desde 11, ajusta a "laravel/framework": "^12.0" y revisa cada paquete equivalente.
Paso 4: actualiza dependencias
composer update --with-all-dependencies
Si Composer reporta conflictos, casi siempre son paquetes de terceros que aún no soportan la nueva major. Las opciones son:
- Esperar a que el paquete saque una versión compatible.
- Buscar un fork mantenido.
- Reemplazar el paquete por una alternativa moderna (muchos paquetes han sido absorbidos por el core de Laravel en versiones recientes).
Paso 5: revisa la guía oficial de upgrade
Esto es lo más importante. Cada major tiene su guía oficial detallada:
Léela completa antes de ejecutar y aplica los cambios marcados con Likelihood of impact: High. Para Laravel 13 son muy pocos: cambios menores en helpers, alguna firma de método y la actualización a Symfony 8.
Paso 6: limpieza de cachés y reconstrucción
php artisan optimize:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
php artisan event:clear
php artisan cache:clear
composer dump-autoload -o
Paso 7: regenera archivos del framework si es necesario
Algunas releases (Laravel 11 en su día) cambiaron el esqueleto del proyecto (bootstrap/app.php reemplazó a varios archivos de configuración). Si vienes de muy atrás, considera comparar tu estructura con un laravel new recién creado y migrar manualmente los archivos críticos.
Paso 8: ejecuta las pruebas y verifica manualmente
php artisan test
php artisan migrate:status
Y dale una vuelta manual al panel de administración, a las rutas API y a cualquier flujo crítico. Los problemas más típicos suelen estar en:
- Middleware personalizado con firmas obsoletas.
- Service providers que registran cosas antiguas.
- Paquetes de terceros abandonados.
- Notificaciones y mailables con métodos cambiados.
Paso 9: aprovecha lo nuevo de Laravel 13
Mientras actualizas, vale la pena revisar las funcionalidades que Laravel 13 trae listas para usar:
- Laravel AI SDK integrado: una API unificada para LLMs, embeddings, agentes con tool calling y vector stores.
- Passkey authentication y vector search de primera mano.
- Atributos PHP nativos para controladores y jobs:
#[Middleware],#[Authorize],#[Tries],#[Backoff],#[Timeout].
Errores frecuentes y cómo resolverlos
- “Composer detected issues in your platform”: te falta subir PHP. Instala 8.4 con Laravel Herd en local.
- “Class X not found”: revisa los namespaces movidos en la guía oficial.
storage/con permisos rotos: correphp artisan storage:linky revisa permisos.- Sesiones que se invalidan: regenera
php artisan key:generatesolo si es seguro (rompe sesiones existentes en producción).
Conclusión
Actualizar Laravel ya no es la odisea que era hace unos años. Si mantienes tu proyecto al día (una major por año), cada upgrade es cuestión de un par de horas. Si llegas tarde y tienes que saltar varias versions, hazlo de una en una, ejecuta los tests entre cada paso y revisa siempre la guía oficial.
Si ya estás en Laravel 13 y quieres aprovechar el nuevo AI SDK, te recomiendo continuar con Cómo construir un agente de IA con Laravel y MCP y Cómo integrar la API de OpenAI en Laravel.
¿Tuviste algún error durante el upgrade? Déjalo en los comentarios y lo revisamos.