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

Работа без интерфейса

Все функции Pro — сканирование, перенаправления и журнал 404 — работают без интерфейса: они находятся в движке и не требуют Filament. Панель — лишь интерфейс управления; эти команды предоставляют соответствующие возможности без неё.

Справочник команд

Установка и проверка состояния

КомандаНазначение
seo-pro:installПубликует config/seo-pro.php и миграции Pro, выполняет их и выводит дальнейшие шаги (--no-migrate, --force)
seo:doctorРазовая проверка состояния: URL приложения, таблицы ядра и Pro, цели сканирования, карта сайта, очереди разных задач, необязательные функции и эксплуатационное состояние; каждое предупреждение содержит точное исправление (--json для мониторинга)

seo-pro:install — документированный путь установки: миграции Pro требуют публикации (пакет никогда не загружает их автоматически), поэтому установщик превращает один лишь composer require в работающую схему. Он идемпотентен — повторяйте в любое время.

seo:doctor не выполняет сетевых запросов и никогда не выводит секретные значения (проверка ИИ сообщает только, задана ли настроенная переменная ключа). Команда проверяет конфигурацию и историю недавних запусков; она не может доказать, что внешний cron или воркер действительно работает. Ненулевой код возвращается только при критическом сбое — отсутствии обязательной таблицы, поэтому локальное окружение разработки с предупреждениями всё ещё завершается успешно. --json присваивает каждой проверке стабильный id для автоматической обработки. Запускайте команду сразу после установки и в CI.

Сканирование

КомандаНазначение
seo-pro:scanСтавит полное сканирование всех зарегистрированных целей в очередь (--sync для синхронного выполнения; проверка CI --fail-on-error, --fail-on-warning, --report=, --format=json|md|html требует --sync)
seo-pro:scan-statusСводка последнего запуска и открытые проблемы, начиная с самых серьёзных (--limit=20, --severity=critical|warning|notice)
seo-pro:scan-recoverОтмечает запуски, брошенные остановившимся воркером очереди, как неудачные
seo-pro:scan-pruneУдаляет завершённые запуски и их проблемы по истечении срока хранения

По умолчанию выключен: включите seo-pro.broken_links.enabled и выполните миграции его двух таблиц (seo-pro:install публикует их). Обход выполняется ограниченными заданиями очереди; запустите отдельный воркер для его очереди. Настройка описана в рабочем окружении.

КомандаНазначение
seo-pro:broken-links-scanСтавит ограниченный возобновляемый обход в очередь (--scope=internal_only|internal_and_external, --url=* для дополнительных начальных URL)
seo-pro:broken-links-statusСводка последнего обхода, открытые находки и типизированные проверки этого запуска; проверка CI (--fail-on-error, --fail-on-warning, --report=, --format=)
seo-pro:broken-links-cancelОтменяет выполняющийся или ожидающий обход ({run?} — по умолчанию последний активный)
seo-pro:broken-links-recoverОтмечает обходы, брошенные остановившимся воркером, как неудачные (устаревшая аренда)
seo-pro:broken-links-pruneПрименяет сроки хранения обходчика (старые запуски и устранённые находки)

Перенаправления и 404

КомандаНазначение
seo-pro:redirect-create {source} {target}Создаёт правило перенаправления (--code=301, --regex, --no-preserve-query, --note=)
seo-pro:404-listПоказывает записанные 404, начиная с самых частых (--status=new|ignored|redirected|all, --limit=20)
seo-pro:redirects-flush-hitsЗаписывает накопленные в кеше счётчики перенаправлений в БД при redirects.hits.flush_immediately=false
seo-pro:404-pruneУдаляет устаревшие записи 404 и соблюдает лимит строк

Чек-лист страницы

КомандаНазначение
seo-pro:checklist {model} {id}Чек-лист одной модели с учётом ключевого слова и результатами pass/warn/fail (--json, --strict, --locale=) — см. чек-лист страницы

Тот же чек-лист доступен как SeoPro::checklistFor($model). Это инструмент редакторской работы (размещение ключевого слова, длина, изображения, внутренние ссылки), а не SEO-оценка.

Search Console (только чтение)

КомандаНазначение
seo-pro:search-consoleСтраницы с открытыми проблемами и поисковым трафиком, начиная с самых значимых упущенных возможностей (--view=attention, по умолчанию)
seo-pro:search-console --view=pagesВедущие страницы по показам/кликам/CTR/позиции
seo-pro:search-console --view=queriesВедущие запросы (--days=, --limit=, --json)

Те же метрики доступны как SeoPro::searchConsole() — см. Search Console. По умолчанию выключено; строго только чтение.

Помощь ИИ

КомандаНазначение
seo-pro:ai-suggest {model} {id}Предложения заголовка/описания в JSON (--field=title|description|all) — см. помощь ИИ
seo-pro:ai-suggest --issue={id}Объяснение исправления проблемы сканирования простым языком, в JSON

Устранение 404 за один шаг

--from-404={path} — вариант действия создания перенаправления одним нажатием из монитора 404, доступный через командную строку: команда создаёт правило и отмечает соответствующую запись журнала как перенаправленную, связывая её с новым правилом:

bash
php artisan seo-pro:404-list

#  ID | Path        | Hits | Status | ...
#  1  | /old-pricing | 41  | new

php artisan seo-pro:redirect-create /old-pricing /pricing --from-404=/old-pricing

# Redirect #1 created: /old-pricing → /pricing (301).
# 404 log #1 (/old-pricing) marked redirected.

Команда запускает те же валидаторы, что и форма Filament: неверные регулярные выражения, слишком длинные значения и внешние адреса назначения вне списка разрешённых отклоняются до любой записи.

php
use Illuminate\Support\Facades\Schedule;

// Only needed when seo-pro.redirects.hits.flush_immediately=false.
Schedule::command('seo-pro:redirects-flush-hits')->everyFiveMinutes();

// Keep the 404 log within retention and the row cap.
Schedule::command('seo-pro:404-prune')->daily();

// Scan cadence: weekly suits most sites; go daily when content
// changes fast. Scans are queued jobs - pair with a queue worker.
Schedule::command('seo-pro:scan')->weekly();

// Housekeeping for the scan pipeline.
Schedule::command('seo-pro:scan-recover')->hourly();
Schedule::command('seo-pro:scan-prune')->daily();

// Broken-link crawler (only when enabled). Run a dedicated worker for
// its queue so a long crawl never starves user-facing jobs.
Schedule::command('seo-pro:broken-links-scan')->weekly();
Schedule::command('seo-pro:broken-links-recover')->hourly();
Schedule::command('seo-pro:broken-links-prune')->daily();

Для каждой повторяющейся команды выше рекомендованная частота указана в настройке рабочего окружения, вместе со схемой очередей, настройками воркеров, повторами/восстановлением, сроками хранения и структурированной телеметрией каждого завершённого запуска (загруженные страницы, проверенные ссылки, заблокированные URL, длительность, задержка очереди).

Для чего нужен интерфейс Filament?

Для работы функций он не требуется. Весь движок — конвейер сканирования, отслеживание проблем, сопоставление перенаправлений, журнал 404, очистка и восстановление — одинаков с Filament и без него. Панель добавляет представления: ход сканирования и статистику серьёзности, просмотр проблем с фильтрами и модальными окнами страниц, кнопки игнорирования/повторного открытия, CRUD-формы перенаправлений и таблицу 404 с действием одним нажатием. Для игнорирования/повторного открытия проблем пока нет отдельной команды: используйте панель или модель SEOScanIssue (markIgnored() / reopen()) в tinker или своём коде.

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