Αναβάθμιση από το fibonoir/laravel-seo v1
Η v2.0.0 μετονομάζει το πακέτο σε rankbeam/laravel-seo και το περιορίζει σε έναν εστιασμένο πυρήνα: επίλυση μεταδεδομένων, απόδοση, JSON-LD και χάρτες ιστοτόπου. Ο αναλυτής, η σάρωση, οι ανακατευθύνσεις, η παρακολούθηση 404 και το περιβάλλον διαχείρισης μεταφέρθηκαν σε ξεχωριστά πακέτα.
1. Αντικαταστήστε το πακέτο
composer remove fibonoir/laravel-seo
composer require rankbeam/laravel-seo2. Ενημερώστε τα namespaces
Τα ονόματα κλάσεων δεν αλλάζουν· μετακινήθηκε μόνο το ριζικό namespace: Fibonoir\LaravelSEO\* → Rankbeam\Seo\*. Αρκεί εύρεση και αντικατάσταση σε όλο το έργο. Το ψευδώνυμο facade SEO και οι οδηγίες Blade @seo παραμένουν ίδια.
3. Διαγράψτε παλιά δημοσιευμένα αρχεία
Πριν αφαιρέσετε αρχεία ή πίνακες, κρατήστε αντίγραφο ασφαλείας των δημοσιευμένων ρυθμίσεων και εξαγάγετε τα επηρεαζόμενα δεδομένα. Επαληθεύστε ότι μπορείτε να τα επαναφέρετε. Αυτός ο οδηγός δεν μεταφέρει το ιστορικό ανακατευθύνσεων, 404 ή σαρώσεων της v1 στο διαφορετικό σχήμα του Pro· η συμβατότητα των πινάκων του πυρήνα παρακάτω αφορά μόνο τα seo_meta και seo_defaults.
Αυτό προκαλεί προβλήματα χωρίς προειδοποίηση
Το seo:install της v1 δημοσίευε αρχεία στην εφαρμογή σας που θα συγκρούονται με το πακέτο v2 χωρίς να εμφανίζεται ούτε ένα μήνυμα σφάλματος.
config/seo.php— αν το δικό σας δημοσιεύτηκε από τη v1 (ή από τοralphjsmit/laravel-seo, που μπορούσε να αφήσει πίσω του το εργαλείο εγκατάστασης της v1), υπερισχύει των ρυθμίσεων του πακέτου και μπορεί να μηδενίσει τοsite_nameκαι κάθε πρότυπο{site_name}. Διαγράψτε το και δημοσιεύστε ξανά:php artisan vendor:publish --tag=seo-config.- Μεταναστεύσεις της v1 για πίνακες που δεν ανήκουν πλέον στον πυρήνα:
seo_redirects,seo_404_logs,seo_scan_runs,seo_scan_issues,seo_analytics_cache,seo_internal_links_index. Αφαιρέστε τα αρχεία μεταναστεύσεων. Αν οι πίνακες υπάρχουν στην παραγωγή, διαγράψτε τους πριν εγκαταστήσετε τοrankbeam/laravel-seo-pro— το Pro τους δημιουργεί ξανά με διαφορετικό σχήμα. - Δημοσιευμένα stubs στα
app/καιresources/jsαπό τη ροή Filament 3 / Livewire / Vue / React της v1 — αναφέρονται σε κλάσεις που δεν υπάρχουν πλέον.
Οι δύο πίνακες του πυρήνα (seo_meta, seo_defaults) έχουν συμβατό σχήμα· τα δεδομένα σας διατηρούνται κατά την αναβάθμιση.
4. Λειτουργίες που αφαιρέθηκαν και πού μεταφέρθηκαν
| Λειτουργία v1 | Πού βρίσκεται τώρα |
|---|---|
| Ενότητα φόρμας SEO στο Filament | rankbeam/laravel-seo-filament (δωρεάν, MIT) |
| Αναλυτής περιεχομένου (32 κανόνες) | Ο παλιός αναλυτής δεν μεταφέρεται με αυτή τη μετάβαση. Η ανίχνευση ζητημάτων τεχνικού SEO βρίσκεται στη σάρωση ιστοτόπου του rankbeam/laravel-seo-pro· η αριθμητική βαθμολογία SEO είναι λειτουργία Pro (προκύπτει από ζητήματα). |
| Σάρωση ολόκληρου του ιστοτόπου | rankbeam/laravel-seo-pro — διαδικασία μέσω ουράς + πίνακας ελέγχου |
| Διαχείριση ανακατευθύνσεων | rankbeam/laravel-seo-pro — ενισχυμένη προστασία (επικύρωση regex, δικλίδες κατά ανοιχτών ανακατευθύνσεων) |
| Παρακολούθηση 404 | rankbeam/laravel-seo-pro — προτεραιότητα στο απόρρητο (δεν αποθηκεύονται IP από προεπιλογή) |
| Αναλυτικά GA4, εσωτερικοί σύνδεσμοι | Μελλοντικές εργασίες του rankbeam/laravel-seo-pro |
Εργαλείο εγκατάστασης seo:install | Καταργήθηκε — η εγκατάσταση γίνεται με require, δημοσίευση ρυθμίσεων και μεταναστεύσεις |
5. Αλλαγές συμπεριφοράς προς έλεγχο
- Τα
og:image/twitter:imageείναι πάντα απόλυτες URL. Η v1 απέδιδε αυτούσιες τις σχετικές διαδρομές που είχαν οριστεί χειροκίνητα. - Οι παραγόμενες κανονικές URL αφαιρούν τη συμβολοσειρά ερωτήματος. Οι ρητά ορισμένες κανονικές URL διατηρούνται αυτούσιες.
- Η αυτόματη ανακάλυψη χαρτών ιστοτόπου δίνει προτεραιότητα στις καταχωρισμένες πηγές — δεν υπάρχει πλέον διπλότυπο
sitemap-post.xmlδίπλα σε καταχωρισμένοsitemap-posts.xml. - Το JSON-LD χρησιμοποιεί διαφυγή
JSON_HEX_*— αν επεξεργάζεστε εκ των υστέρων την ακατέργαστη έξοδο script, αναμένετε ακολουθίες διαφυγής τύπου<.
6. Γνωστές παγίδες
- Το προεπιλεγμένο
DatabaseSeederτου Laravel χρησιμοποιείWithoutModelEvents, που απενεργοποιεί το hook αυτόματης δημιουργίας τουHasSEOστους seeders. - Αν ένα πρότυπο τίτλου προεπιλογής διαδρομής περιέχει ήδη την επωνυμία σας, ολοκληρώστε το πρότυπο με το ρυθμισμένο
title_suffix— τότε ο resolver παραλείπει την εκ νέου προσθήκη του.