Mise à niveau depuis fibonoir/laravel-seo v1
La version 2.0.0 renomme le package en rankbeam/laravel-seo et recentre le Core sur la résolution des métadonnées, le rendu, JSON-LD et les sitemaps. L'analyseur, le scanner, les redirections, le moniteur 404 et l'administration passent dans des packages séparés.
1. Remplacer le package
composer remove fibonoir/laravel-seo
composer require rankbeam/laravel-seo2. Mettre à jour les espaces de noms
Les noms de classes restent identiques. Seule la racine change : Fibonoir\LaravelSEO\* devient Rankbeam\Seo\*. Une recherche-remplacement dans le projet couvre ce changement. L'alias de façade SEO et les directives Blade @seo restent inchangés.
3. Supprimer les anciens fichiers publiés
Avant toute suppression de fichiers ou de tables, sauvegardez la configuration publiée et exportez les données concernées. Vérifiez que vous pouvez les restaurer. Ce guide ne migre pas l'historique v1 des redirections, des erreurs 404 ou des scans vers le schéma différent de Pro. La compatibilité des tables Core décrite ci-dessous concerne uniquement seo_meta et seo_defaults.
Des conflits peuvent rester silencieux
Le seo:install de v1 publiait des fichiers dans l'application. Ceux-ci peuvent entrer en conflit avec v2 sans produire de message d'erreur.
config/seo.php: une ancienne version publiée par v1, ou parralphjsmit/laravel-seoet conservée par l'installateur v1, masque la configuration du package. Elle peut rendresite_namenul et affecter tous les modèles de texte{site_name}. Supprimez-la après sauvegarde, puis republiez avecphp artisan vendor:publish --tag=seo-config.- Les migrations v1 des tables que le Core ne gère plus :
seo_redirects,seo_404_logs,seo_scan_runs,seo_scan_issues,seo_analytics_cacheetseo_internal_links_index. Supprimez leurs fichiers de migration. Si les tables existent en production, sauvegardez leurs données puis supprimez-les avant d'installerrankbeam/laravel-seo-pro, qui les recrée avec un autre schéma. - Les anciens fichiers générés sous
app/etresources/jspour Filament 3, Livewire, Vue ou React : ils référencent des classes qui n'existent plus.
Les deux tables Core, seo_meta et seo_defaults, gardent un schéma compatible. Leurs données sont conservées pendant cette mise à niveau.
4. Fonctions retirées et nouveaux emplacements
| Fonction v1 | Emplacement actuel |
|---|---|
| Section SEO des formulaires Filament | rankbeam/laravel-seo-filament, gratuit sous MIT |
| Analyseur de contenu à 32 règles | Cet ancien analyseur n'est pas repris par la migration. Le scanner de rankbeam/laravel-seo-pro détecte les problèmes de SEO technique ; le score numérique dérivé des problèmes appartient à Pro. |
| Scanner du site | rankbeam/laravel-seo-pro, pipeline en queue et tableau de bord |
| Gestionnaire de redirections | rankbeam/laravel-seo-pro, avec validation des regex et protections contre les redirections ouvertes |
| Moniteur 404 | rankbeam/laravel-seo-pro, sans stockage des IP par défaut |
| Analytics GA4 et liens internes | Backlog de rankbeam/laravel-seo-pro |
Installateur seo:install | Supprimé : installation avec require, publication de la configuration et migrations |
5. Changements de comportement à vérifier
og:imageettwitter:imagesont toujours des URL absolues. v1 produisait tels quels les chemins relatifs définis manuellement.- Les canonicals dérivés perdent leurs paramètres de requête. Les canonicals explicites restent inchangés.
- La découverte automatique des sitemaps laisse la priorité aux sources enregistrées. Une
sitemap-post.xmln'est plus créée en double à côté d'une sourcesitemap-posts.xmlenregistrée. - Le JSON-LD utilise l'échappement
JSON_HEX_*. Si vous retraitez les scripts bruts, prévoyez les séquences d'échappement de caractères comme<.
6. Points d'attention connus
- Le
DatabaseSeederpar défaut de Laravel utiliseWithoutModelEvents, qui désactive le hook de création automatique deHasSEOdans les seeders. - Si un modèle de titre par défaut de route contient déjà votre marque, terminez-le par le
title_suffixconfiguré. Le résolveur évitera de l'ajouter une deuxième fois.