Перейти к содержимому

Обновление с fibonoir/laravel-seo v1

В v2.0.0 пакет переименован в rankbeam/laravel-seo, а ядро сосредоточено на определении итоговых метаданных, рендеринге, JSON-LD и картах сайта. Анализатор, сканер, перенаправления, монитор 404 и интерфейс администратора перенесены в отдельные пакеты.

1. Замените пакет

bash
composer remove fibonoir/laravel-seo
composer require rankbeam/laravel-seo

2. Обновите пространства имён

Имена классов не изменились; перенесено только корневое пространство имён: 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 в формах Filamentrankbeam/laravel-seo-filament (бесплатно, MIT)
Анализатор контента (32 правила)Эта миграция не переносит старый анализатор. Проблемы технического SEO выявляет сканер сайта в rankbeam/laravel-seo-pro; числовая оценка SEO — функция Pro, рассчитываемая по найденным проблемам.
Сканер всего сайтаrankbeam/laravel-seo-pro — конвейер с очередью и панелью
Менеджер перенаправленийrankbeam/laravel-seo-pro — усиленная защита: проверка регулярных выражений и защита от открытых перенаправлений
Монитор 404rankbeam/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, отключающий обработчик автоматического создания HasSEO в сидерах.
  • Если шаблон заголовка по умолчанию для маршрута уже содержит бренд, завершите его настроенным title_suffix: тогда резолвер не добавит суффикс повторно.

rankbeam/laravel-seo распространяется под лицензией MIT.