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

Что такое Rankbeam?

Rankbeam — SEO-инфраструктура для Laravel по модели open-core: бесплатное ядро под MIT для метаданных, канонических URL, карточек соцсетей, связанного JSON-LD, карт сайта и управления роботами, а также необязательный коммерческий Pro для мониторинга и рабочих процессов. Это не вспомогательный генератор тегов, пристроенный к приложению. Rankbeam определяет SEO по вашим моделям и конфигурации, выводит одни и те же типизированные данные через Blade, head Inertia или JSON API, а с Pro продолжает следить за ними после развёртывания.

Семейство пакетов

Rankbeam состоит из трёх пакетов с общей матрицей поддержки:

ПакетЛицензияНазначение
rankbeam/laravel-seoMIT, бесплатноЯдро: определение итоговых метаданных, связанный граф schema.org в JSON-LD, XML-карты сайта, управление роботами, бесплатный seo:audit и импортёры
rankbeam/laravel-seo-filamentMIT, бесплатноПоля форм Filament 4/5 и живые превью, сохраняющие данные в seo_meta ядра
rankbeam/laravel-seo-proКоммерческаяДвижок эксплуатации: сканирования через очередь с оценкой 0–100, менеджер перенаправлений, монитор 404 без IP-адресов, обход битых ссылок, данные Search Console и помощь ИИ с собственным ключом

Граница проведена намеренно. Всё, что выводится на странице, распространяется под MIT и навсегда остаётся бесплатным; оплачивается слой аудита и мониторинга рабочего сайта. Коммерческий Pro — отдельный пакет, который никогда не входит в бесплатное ядро.

Для кого он предназначен

Rankbeam оправдывает себя, когда SEO хранится в базе, привязано к моделям, поддерживает несколько локалей, отдельный фронтенд и аудит: в рабочем приложении Laravel с динамическим контентом или контентом на основе моделей. Для нескольких статических страниц, которым нужны только заголовок и описание, лучше подойдёт небольшой генератор метатегов во время выполнения; ниже это прямо сказано в примечании о том, когда набор отдельных пакетов всё ещё уместен.

Поддерживаемые версии

Единая матрица для всего семейства:

  • PHP 8.2–8.4 (Laravel 11); 8.2–8.5 (Laravel 12); 8.3–8.5 (Laravel 13)
  • Laravel 11 / 12 / 13 (Laravel 13 требует PHP 8.3+)
  • Filament 4 / 5 (необязательно)

Что Rankbeam не заменяет

Rankbeam согласует SEO-вывод самого приложения Laravel. Это не облачный сервис отслеживания позиций, не набор инструментов исследования ключевых слов и не аналитический продукт; он ничего не обещает относительно позиций, индексации или цитирования в ответах ИИ. Для генерации XML-карт сайта он использует spatie/laravel-sitemap, а не создаёт такую реализацию заново, и не переносит ваш контент, маршрутизацию или аналитику.

Впервые здесь? Установите бесплатное ядро или читайте дальше: ниже приведены результаты реальной замены в рабочем приложении. Pro и предложение для первых клиентов доступны на rankbeam.dev.

Почему не три пакета и код интеграции

У большинства приложений Laravel нет одного «SEO-пакета». Есть SEO-стек: пакет для хранения метаданных моделей, второй пакет для добавления полей Filament, третий для сканирования страниц и затем специфичный для приложения код, который согласует их работу. Каждый компонент сам по себе вполне пригоден. Затраты возникают на стыках, а поддерживать соединяющий код вам придётся постоянно.

Эта страница показывает результаты одной реальной замены в рабочем приложении: такой набор пакетов удалили и заменили семейством Rankbeam. Числа ниже получены измерениями, а не придуманы для рекламы.

Приложение, на котором проверяли замену

Реальный работающий контентный сайт на Laravel (здесь приведён анонимно):

  • Контентный сайт больницы / учреждения, около 3 месяцев в эксплуатации.
  • Перенесён с WordPress, около 900 страниц по карте сайта.
  • Около 20 000 посещений в день.
  • Laravel 12, панель администратора Filament 4, фронтенд Blade, MySQL.

SEO-стек до замены:

СлойПакет
Хранение метаданных (таблица seo для моделей)ralphjsmit/laravel-seo
SEO-поля Filamentralphjsmit/laravel-filament-seo
Сканер страницbackstage/laravel-seo-scanner
Всё, что связывало их между собойОколо 30 собственных классов приложения

Мы удалили три пакета, установили Rankbeam core + Pro + Filament, запустили набор SEO-тестов, и приложение заработало без единой SEO-регрессии. Ниже — фактическая стоимость слоя интеграции и то, что удалось удалить.

Что удалили после замены

Замена стека сканирования на Rankbeam позволила полностью удалить 12 собственных классов: приложение больше не отвечает за эти задачи, поскольку их выполняет семейство пакетов:

Удалённый класс приложенияЧто он делалЧем заменён
Services/SeoService.phpОбёртка над точкой входа в SEO приложенияРезолвер ядра + фасад SEO
Services/SeoWarningEvaluator.phpПороговые значения длины заголовка/описания и размеров изображенийSEOWarningEvaluator ядра (общие для аудита, превью и сканирования)
Services/Seo/SeoAssetInspector.phpПроверка размеров локальных изображенийLocalImageInspector ядра
Jobs/ScanAllPagesSeo.phpПостановка сканирования всего сайта в очередьКонвейер сканирования Pro с очередью
Jobs/ScanPageSeo.phpСканирование отдельной страницыPageScanner Pro
Jobs/ScanPublicPageSeo.phpСканирование отдельной публичной страницыКонвейер сканирования Pro
Models/SeoScanBatch.phpУчёт запусков сканированияseo_scan_runs Pro
Filament/Pages/SeoDashboard.phpАдминистративная панель SEOПлагин SeoDashboard Pro
Filament/Widgets/SeoScanProgressWidget.phpВиджет хода сканированияВиджеты сканирования Pro
Filament/Widgets/SeoTrendChartWidget.phpВиджет динамики сканированийВиджеты сканирования Pro
Facades/Seo.phpФасад приложения над пакетом храненияФасад SEO ядра
Console/Commands/RecoverLegacySeoMetadata.phpРазовое восстановление метаданныхИмпортёры ядра (seo:import-from)

Что честно осталось за рамками удаления

При замене намеренно сохранили собственный обходчик битых ссылок приложения (около 17 классов: задание сканирования, проверка, построитель начальных URL, резолвер источников, две модели, два перечисления, два события, ресурс Filament + три виджета, две команды) и несколько вспомогательных классов метаданных/schema.org (CustomSEO, EntitySeoSection, DynamicSeoDataResolver, SitewideSchema, SeoKeywords) — ещё примерно 22 класса. Их не удалили в первый день, потому что замены в Rankbeam появились позже: обходчик битых ссылок Pro вместо собственного обходчика, выбор связанной модели + превью SERP/соцсетей Filament вместо CustomSEO/EntitySeoSection и граф schema.org ядра вместо SitewideSchema. При использовании всего семейства поддержка этого собственного кода — суммарно примерно трёх дюжин классов — переходит к пакету.

Дело не в том, что какой-то из этих пакетов плох. Именно интеграция — более десятка классов, благодаря которым изменение метаданных отражается в сканере, панели и выведенном head, — остаётся собственным кодом без внешнего сопровождающего, без чужих тестов и без сообщений об ошибках от других пользователей.

Сравнение

ВозможностьНабор из 3 пакетов и кода интеграцииСемейство Rankbeam
Хранение метаданных моделейПакет метаданныхЯдро (seo_meta, MIT)
Хранение с учётом локалиОбычно задача кода интеграцииЯдроseo_meta разделяется по локали отдельным столбцом
SEO-поля FilamentПакет Filament-SEOlaravel-seo-filament (MIT)
Редактирование SEO связанной моделиСобственная обёртка над компонентом поляВстроенный резолвер target:
Живое превью SERP + соцсетейСобственная реализация на Blade/AlpineВстроенное редакторское превью с вкладками
Вывод для отдельного фронтенда (Inertia / Livewire / JSON)В проверочном приложении использовался Blade; для других стеков нужна интеграцияОдин резолвер → Blade, Inertia, Livewire, JSON (проверяется контрактными тестами)
Сканер страниц и упорядоченные по приоритету проблемыПакет сканированияPro: конвейер сканирования + IssueRegistry
Оценка 0–100Собственная интеграция / отсутствуетPro: прозрачная версионируемая методика
Перенаправления и обработка 404Ещё один пакет / собственная реализацияPro: менеджер перенаправлений и монитор 404 без IP-адресов
Обходчик битых ссылокСобственная реализация (так было в приложении)Pro: обход с ограничениями и возможностью продолжения
Граф schema.org в JSON-LDПостроитель и собственные связи через @idЯдро: взаимосвязанный граф Organization/WebSite/WebPage
XML-карты сайтаПакет карт сайтаЯдро: реестр карт сайта (использует spatie/laravel-sitemap)
Импорт WordPress / Yoast / Rank MathРазовые скриптыЯдро: seo:import-from и пошаговый план
Кто поддерживает стыкиВыСемейство пакетов с единой линией выпусков

Три задачи, с которыми код интеграции справляется плохо

1 — Единое семейство и единая линия выпусков. У трёх пакетов три сопровождающих, три журнала изменений и три графика обновлений; код интеграции должен компенсировать расхождения. Ядро Rankbeam, Pro и Filament версионируются вместе, с общей матрицей поддержки и документированными границами обновления. Об изменении поведения сообщается в одном месте, а не становится известно после конфликта двух пакетов.

2 — Локаль хранится в столбце, а не существует только по соглашению. seo_meta одновременно полиморфен и разделён по локали на уровне хранения. Многоязычное SEO — это строка на каждую комбинацию (model, locale), а не сериализованный блок или дополнительная таблица, которую вы не забыли создать. Цепочка приоритетов резолвера изначально учитывает активную локаль.

3 — Вывод для отдельного фронтенда из одного резолвера. Rankbeam получает типизированный SEOData и выводит одни и те же данные как HTML, данные Head Inertia или JSON-массив. Это проверяется общим контрактом рендеринга для Blade, Inertia (Vue/React/Svelte) и Livewire. Панель администратора не требуется: каждая функция Pro также работает без интерфейса через artisan.

Что действительно не входит в бесплатное ядро

Rankbeam использует модель open-core, и граница проведена намеренно, чтобы вы точно знали, что получите, ещё до composer require:

ПакетЛицензияСостав
rankbeam/laravel-seoMIT, бесплатноОпределение итоговых метаданных, граф schema.org в JSON-LD, карты сайта, бесплатный seo:audit, импортёры
rankbeam/laravel-seo-filamentMIT, бесплатноПоля/разделы форм Filament, сохраняющие данные в seo_meta
rankbeam/laravel-seo-proКоммерческаяСканирования через очередь, приоритизированные проблемы и оценка 0–100, перенаправления, монитор 404, обходчик битых ссылок, Search Console, помощь ИИ, панель Filament

Оплачиваются технический SEO-аудит и набор инструментов мониторинга сайта: сканирования, оценка, перенаправления, обработка 404 и обходчик. Движок метаданных, граф schema.org, карты сайта и бесплатный аудит внутри процесса распространяются под MIT и остаются бесплатными.

Два свойства, которые можно проверить:

  • Без проверки лицензии во время выполнения. Pro лицензируется для проекта при установке; приложение никуда не обращается для проверки, и удалённый выключатель не может его остановить. (Pro пишет локальную эксплуатационную телеметрию в ваши журналы — её можно отключить, нам она никогда не отправляется.)
  • ИИ с собственным ключом. Необязательная помощь ИИ использует ваш ключ Anthropic, OpenAI, Google или локальной модели. Запросы не проксируются, использование не тарифицируется Rankbeam и услуги не перепродаются; функция по умолчанию выключена.

Когда набор отдельных пакетов всё ещё уместен

Если нескольким статическим страницам нужен лишь один <title> и описание, генератора тегов во время выполнения достаточно. Rankbeam оправдывает себя, когда SEO хранится в базе, поддерживает несколько локалей, привязано к моделям, работает с отдельным фронтендом и проверяется аудитом — то есть когда связь между пакетами превращается в настоящий код, который вы поддерживаете.

Переход с наименьшим риском: с WordPress

Проверочное приложение перенесли с WordPress; в нём было около 900 страниц. Таким проектам есть что терять — годы оптимизации в Yoast/Rank Math. Rankbeam делает этот путь безопасным, а не пугающим:

  1. Совместная работа. Запустите Rankbeam рядом с действующим сайтом; пока ничего не удаляется.
  2. Импорт (сначала пробный запуск). seo:import-from yoast / rank-math / wordpress-csv читает заголовки, описания, канонические URL, robots, фокусные ключевые слова и переопределения для соцсетей. Импортёры идемпотентны и по умолчанию заполняют только пустые поля: без --overwrite они сохраняют уже заданные метаданные, а --dry-run ничего не записывает.
  3. Передача перенаправлений. Ядро формирует версионированный CSV перенаправлений; seo-pro:redirects-import Pro проверяет каждую строку до записи, отклоняя циклы, небезопасные адреса назначения и дубликаты.
  4. Проверка до любого удаления. seo:audit --strict служит обязательной проверкой для CI/переключения и завершается с ненулевым кодом при любой проблеме. Старая база WordPress остаётся нетронутой, пока вы сами не решите её удалить.

Полная процедура описана в пошаговом плане миграции с WordPress; сопоставление полей и обработка токенов — в руководстве по миграции с WordPress. Переходите с SEO-пакета для Laravel (ralphjsmit, artesaos, Spatie)? См. руководство по миграции с других пакетов.

Выдерживает ли это масштабирование?

Два самых требовательных условия проверочного приложения — вызов резолвера на каждом из примерно 20 тысяч ежедневных запросов и обход ссылок на примерно 900 страницах — представлены отдельными бенчмарками в наборе тестов. Они проверяют детерминированные преимущества (число запросов и ограничения заданий), а не специально подобранные показатели времени:

Кеширование резолвера: попадание в прогретый кеш не обращается к базе ни разу. При включённом по желанию кеше итоговых значений получение из кеша пропускает всю цепочку приоритетов. Бенчмарк выполняет 25 вызовов резолвера для одной модели:

Запросы к БД
Без кеша (каждый вызов резолвера заново читает seo_meta)≥ 25
Попадание в прогретый кеш0

Кеш по умолчанию выключен и описан как средство масштабирования. Инвалидация удаляет нужные записи при изменении seo_meta, поля контента или значений по умолчанию. См. Конфигурация → кеширование.

Обходчик битых ссылок: ограниченный обход 900 страниц. Бенчмарк обходчика пропускает сгенерированный набор примерно из 900 страниц через настоящее задание:

  • Завершается за ≥ 18 заданий с ограничениями (лимит 50 страниц на задание).
  • Ни одно задание не посещает больше установленного лимита в 50 страниц.
  • Проверяется 1 800 ссылок; каждый недоступный адрес назначения становится сохранённым результатом с подтверждённой неисправностью.

Обход ограничен конечными лимитами на запуск и жёстким бюджетом времени каждого задания. SSRF-проверка применяется при загрузке начального URL и на каждом переходе перенаправления, а блокировка с арендой в БД позволяет выполнять только один запуск для заданной области. Эксплуатация описана в руководстве по настройке рабочего окружения.

Проверено на поддерживаемых версиях

Единая матрица поддержки для всего семейства, а не три отдельных:

  • PHP 8.2–8.4 (Laravel 11); 8.2–8.5 (Laravel 12); 8.3–8.5 (Laravel 13)
  • Laravel 11 / 12 / 13
  • Filament 4 / 5

Так зачем связывать три пакета вручную?

Если набор пакетов требует более десятка собственных классов интеграции, подчиняет вас чужому графику выпусков, требует отдельной интеграции рендеринга для каждого стека и ручного добавления локалей, а единое семейство с поддержкой отдельного фронтенда и локалей устраняет этот код и проверено на настоящем рабочем приложении с 900 страницами и 20 тысячами посещений в день, набор отдельных пакетов перестаёт быть самым безопасным выбором по умолчанию.

Начните с быстрого старта: от composer require до полностью сформированного <head> за пять минут.

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