Skip to content

Installing Pro ​

rankbeam/laravel-seo-pro adds queued site scans with issue tracking, a redirect manager, and a 404 monitor on top of the core package. The engine runs on any Laravel 11–13 app — Blade, Inertia, or pure API. Filament is an optional UI layer: install it and you get the SEO dashboard, redirect manager, and 404 monitor as panel pages; skip it and you manage everything with artisan commands.

Requirements ​

PHP8.2–8.4 (Laravel 11); 8.2–8.5 (Laravel 12); 8.3–8.5 (Laravel 13)
Laravel11, 12, or 13
rankbeam/laravel-seo^3.20 (installed automatically by Pro 2.40+)
filament/filamentoptional — 4.x or 5.x, only for the admin UI
rankbeam/laravel-seo-filamentoptional — ^1.11 when using the SEO editor with Pro 2.36+

Start with an existing Laravel app and a configured database. Complete the core Quickstart first so a model renders metadata and the core tables exist. A Pro license supplies the Composer credentials below.

For a visual example of the result, see scan → fix → report.

Install the package ​

Pro is distributed through a private Composer repository tied to your license. Add the repository once, then require the package — Composer will ask for your license e-mail (username) and license key (password):

Lemon Squeezy handles payment as merchant of record. After payment, the private receipt page provides your download key and Composer instructions. Use the purchase email as the username. Rankbeam hosts the package repository; no Anystack account is needed. Keep the receipt link and auth.json private. A full refund revokes future downloads and updates without interrupting an installed application.

bash
composer config repositories.rankbeam-pro composer https://blog.rankbeam.dev/composer
composer require rankbeam/laravel-seo-pro
Non-interactive Composer authentication

For CI or non-interactive environments, store the credentials up front:

bash
composer config http-basic.blog.rankbeam.dev you@example.com YOUR-LICENSE-KEY

Then run the installer:

bash
php artisan seo-pro:install

The installer publishes config/seo-pro.php and the Pro migrations, runs migrate, and prints the next steps. The core and Pro tables should now be present in your app's database.

Manual installation and installer flags

Pro migrations are published into your app; they are not auto-loaded from the package. The equivalent manual steps are:

bash
php artisan vendor:publish --tag=seo-pro-config
php artisan vendor:publish --tag=seo-pro-migrations
php artisan migrate

The installer can be rerun. --no-migrate publishes files without migrating. Use --force only when you intend to overwrite published files, including your configuration.

Register scan targets ​

Tell the scanner what to scan in a service provider — model classes, named routes, or everything in your sitemap registry:

php
use App\Models\Post;
use Rankbeam\Seo\Pro\Facades\SeoPro;

public function boot(): void
{
    SeoPro::targets()->register('posts', Post::class);
    // Optional: register named routes that exist in your app.
    // SeoPro::targets()->registerRoutes('static', ['home', 'pricing']);
    // Or discover targets from your registered sitemaps:
    // SeoPro::targets()->fromSitemaps();
}

Replace Post with your own model using HasSEO. You need at least one record to see a model scan result. Route targets must name existing routes; leave that registration out if you only want to scan models.

Verify your install ​

Run the configuration check:

bash
php artisan seo:doctor

Confirm that the core and Pro tables exist, your application URL is correct, and your scan targets are listed. Follow any reported fixes. A sync queue warning is expected while trying the inline commands below; configure a worker before scheduling production scans.

Example health-check output
  Rankbeam SEO — health check

  Application
    ✓ app.url is https://shop.example.com
  Database (core)
    ✓ Core tables present (seo_meta, seo_defaults)
  Database (Pro)
    ✓ Pro tables present (redirects, 404 logs, scan runs/issues/results)
  Scanning
    ✓ Scan targets registered: posts, static
    ✓ Scan delta snapshot store present (seo_scan_run_issues)
  Queue
    ! Queue connection is 'sync'
      ↳ Scans run inline on the dispatching request/CLI. Use a real queue …
    ✓ Scan queue: default (seo-pro.scan.queue unset)
  Broken links
    ✓ Broken-link crawler is off (optional)
  AI assist
    ✓ AI assist is off (optional)
  AI bots
    ✓ AI-bot logging is off (optional)
  Search Console
    ✓ Search Console is off (optional)
  Reports
    ✓ Reports on (snapshot store present: seo_report_runs)

  ! Healthy with warnings — 1 warning(s), 11 passed.

seo:doctor checks configuration and recent run history without network calls or printing secrets. It cannot prove that an external cron or worker is running. Critical failures return a non-zero exit code; warnings do not. Use --json for the machine-readable result.

Run your first scan ​

bash
php artisan seo-pro:scan --sync
php artisan seo-pro:scan-status

The first command completes the scan inline, so this initial check does not need a queue worker. The second shows the latest run and its results. Expect a completed run with your registered targets processed; investigate any failed targets before treating the scan as complete.

Fix one reported field, save it, and run the scan again. The walkthrough shows this with a missing description and a report of the change. A technical score is a diagnostic result, not a prediction of rankings.

Headless usage ​

The engine is ready to use without a panel. Artisan commands let you scan, inspect issues, create redirects and generate reports. The redirect and 404 middlewares register automatically by default; their settings live in config/seo-pro.php.

For scheduled work, follow Production setup to configure queues, workers, the scheduler and retention.

Add a Filament panel (optional) ​

For an existing Filament 4 or 5 panel, register the Pro plugin below. If your app has no panel yet, install the UI packages and create one first:

bash
composer require filament/filament rankbeam/laravel-seo-filament
php artisan filament:install --panels
php artisan make:filament-user
php
use Rankbeam\Seo\Pro\Filament\SeoProPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        // ...
        ->plugin(SeoProPlugin::make());
}

This adds the SEO dashboard (scan-all action, live progress, issue list with one-click rescan), the redirect manager, and the 404 monitor with its one-click Create redirect action. rankbeam/laravel-seo-filament additionally gives your resource forms the SEO fields section.

Troubleshooting ​

ResultNext step
Composer rejects the credentialsCheck the license email and key for blog.rankbeam.dev. Keep credentials out of version control.
Doctor reports missing tablesComplete the core Quickstart, then run seo-pro:install and migrate against the same database as the app.
A scan processes no targetsCheck your provider registration and that the model contains records.
A queued scan stays pendingStart the configured queue worker, or use --sync for an inline check.
A target failsCheck the run details, route names and application URL before rescanning.
The dashboard is missingRegister SeoProPlugin on the panel you actually use and check access gates.

See Production setup for worker recovery and ongoing operations.

License and refunds ​

The founding license costs €179 once and covers up to five production projects, including client projects, with lifetime updates. Development and staging copies for those projects do not count separately. Installation/migration help, a 60-minute installation call and the advertised launch kit are included. You can request an unconditional full refund within 30 days through your receipt or by emailing valentinogoxhaj@gmail.com. After a full refund, stop using Pro. You may modify Pro for your licensed projects, but may not publish its source or resell it as a standalone package or starter kit. The package includes the full license terms.

Use Pro on up to five production projects, including client projects. Development, staging and test copies of those projects do not count separately. Lifetime updates include future Pro releases; they do not include ongoing personal implementation work.

One 60-minute installation and configuration call and metadata migration for one initial project are included. Migration covers supported sources; we confirm the scope before starting, and custom application changes are quoted separately. The launch setup covers reviewing and configuring llms.txt, AI-crawler rules in robots.txt and markdown responses for bots on that same project, using features available in the free Core. Email hello@rankbeam.dev to arrange the included help.

The offer shown when you purchased applies to your order.

rankbeam/laravel-seo is released under the MIT License.