Обновление с fibonoir/laravel-seo v1
В v2.0.0 пакет переименован в rankbeam/laravel-seo, а ядро сосредоточено на определении итоговых метаданных, рендеринге, JSON-LD и картах сайта. Анализатор, сканер, перенаправления, монитор 404 и интерфейс администратора перенесены в отдельные пакеты.
1. Замените пакет
composer remove fibonoir/laravel-seo
composer require rankbeam/laravel-seo2. Обновите пространства имён
Имена классов не изменились; перенесено только корневое пространство имён: Fibonoir\LaravelSEO\* → Rankbeam\Seo\*. Достаточно поиска и замены по всему проекту. Псевдоним фасада 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. Удалите файлы миграций. Если таблицы существуют в production, удалите их до установкиrankbeam/laravel-seo-pro: Pro создаёт их заново с другой схемой. - Опубликованные заготовки в
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 — усиленная защита: проверка регулярных выражений и защита от открытых перенаправлений |
| Монитор 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. Известные особенности
- Стандартный
DatabaseSeederLaravel используетWithoutModelEvents, отключающий обработчик автоматического созданияHasSEOв сидерах. - Если шаблон заголовка по умолчанию для маршрута уже содержит бренд, завершите его настроенным
title_suffix: тогда резолвер не добавит суффикс повторно.