PHPackages                             laravel-seo-pro/seo-pro - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. laravel-seo-pro/seo-pro

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

laravel-seo-pro/seo-pro
=======================

A comprehensive SEO toolkit for Laravel applications

1.1.0(7mo ago)501MITPHPPHP ^8.1CI passing

Since Oct 3Pushed 7mo agoCompare

[ Source](https://github.com/mrdulal/laravelseo)[ Packagist](https://packagist.org/packages/laravel-seo-pro/seo-pro)[ RSS](/packages/laravel-seo-pro-seo-pro/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (13)Versions (3)Used By (0)

Laravel SEO Pro
===============

[](#laravel-seo-pro)

[![Latest Version](https://camo.githubusercontent.com/0202d99b68588c4fb2267c8e6fbc0e0ee456d9e13247c699c54b733ed0af63db/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6d7264756c616c2f6c61726176656c73656f3f7374796c653d666c61742d737175617265)](https://github.com/mrdulal/laravelseo/releases)[![Downloads](https://camo.githubusercontent.com/14ce5408aa17de21320bcdfbd6718ce9a5b760b9febbc966e3b30873497c466e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6d7264756c616c2f6c61726176656c73656f2f746f74616c3f7374796c653d666c61742d737175617265)](https://github.com/mrdulal/laravelseo)[![License](https://camo.githubusercontent.com/add30db2cd311251768d3edfc3fb29292a3cfe57439caa56b8fd80276c9f0bcf/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d7264756c616c2f6c61726176656c73656f3f7374796c653d666c61742d737175617265)](https://github.com/mrdulal/laravelseo/blob/main/LICENSE)[![PHP Version](https://camo.githubusercontent.com/407cae97f462622b426bac8a038a78696841ce2f26cf8caaf5059c90b8f729b7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e312532422d626c75652e7376673f7374796c653d666c61742d737175617265)](https://php.net)[![Laravel](https://camo.githubusercontent.com/2755f1e1a8f3cb82d435b8e1aadfbc0177d5a0cd2bc8a0ed85ce2dc079fab99c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d392532422d7265642e7376673f7374796c653d666c61742d737175617265)](https://laravel.com)[![Tests](https://camo.githubusercontent.com/2f78b0622f259a9853a2009f9421321253768e036eb06950dba5ba15ced08071/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6d7264756c616c2f6c61726176656c73656f2f74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/mrdulal/laravelseo/actions/workflows/tests.yml)[![Stars](https://camo.githubusercontent.com/afbb40244b1291aa58f3ff72fb292df13a5a978b5a56e4f5a3768de95296887d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6d7264756c616c2f6c61726176656c73656f3f7374796c653d666c61742d737175617265)](https://github.com/mrdulal/laravelseo)[![Forks](https://camo.githubusercontent.com/9cc1c711631cd1f24220778cc8696a412570408beefb01948e1161699403b401/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f6d7264756c616c2f6c61726176656c73656f3f7374796c653d666c61742d737175617265)](https://github.com/mrdulal/laravelseo)[![Issues](https://camo.githubusercontent.com/7577dbd6ea570aaf8599c217ebb29c5ffed0dcf65c2bfd2ba32591a942540bee/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6d7264756c616c2f6c61726176656c73656f3f7374796c653d666c61742d737175617265)](https://github.com/mrdulal/laravelseo/issues)[![Pull Requests](https://camo.githubusercontent.com/fd3d7ed0da464f274f2e59559062965e40a1260a7e79a4769e44775a04becc7f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d70722f6d7264756c616c2f6c61726176656c73656f3f7374796c653d666c61742d737175617265)](https://github.com/mrdulal/laravelseo/pulls)

**Created by [mrdulal](https://github.com/mrdulal)**

A comprehensive SEO toolkit for Laravel applications that provides meta tags, Open Graph, Twitter Cards, JSON-LD schema, canonical URLs, robots.txt generation, XML sitemaps, and SEO auditing capabilities.

Features
--------

[](#features)

- **Meta Tags Management** - Title, description, keywords, author, robots
- **Open Graph Support** - Complete Open Graph meta tags for social sharing
- **Twitter Cards** - Twitter Card meta tags for enhanced tweets
- **JSON-LD Schema** - Structured data markup for search engines
- **Canonical URLs** - Prevent duplicate content issues
- **Robots.txt Generation** - Automatic robots.txt file generation
- **XML Sitemap** - Dynamic XML sitemap generation
- **SEO Audit Middleware** - Real-time SEO issue detection
- **SEO Dashboard** - Optional admin dashboard for SEO management
- **Blade Components** - Easy-to-use Blade components for templates
- **Artisan Commands** - Command-line tools for SEO management
- **Database Integration** - Polymorphic SEO meta storage with HasSeo trait
- **Livewire Support** - Full Livewire compatibility with reactive components
- **Filament Integration** - Complete Filament admin panel integration
- **Real-time Updates** - Live SEO management with instant previews
- **Mobile Responsive** - Optimized for all device sizes

Installation
------------

[](#installation)

### Quick Installation (Recommended)

[](#quick-installation-recommended)

Use the interactive installation command to choose your preferred integration:

```
composer require laravel-seo-pro/seo-pro
php artisan seo:install
```

The installer will guide you through selecting your integration method:

- **Blade Components Only** - Lightweight, no additional dependencies
- **Livewire Integration** - Reactive components with real-time updates
- **Filament Integration** - Admin panel with advanced management
- **Full Integration** - Livewire + Filament + Blade components

### Installation Options

[](#installation-options)

You can also specify your preferred integration directly:

```
# Blade components only (lightweight)
php artisan seo:install --blade-only

# With Livewire integration
php artisan seo:install --livewire

# With Filament integration
php artisan seo:install --filament

# Skip creating example files
php artisan seo:install --no-examples

# Force installation without prompts
php artisan seo:install --force --livewire
```

### Manual Installation

[](#manual-installation)

If you prefer manual installation:

1. Install the package via Composer:

```
composer require laravel-seo-pro/seo-pro
```

2. Publish the configuration file:

```
php artisan vendor:publish --provider="LaravelSeoPro\SeoProServiceProvider" --tag="seo-config"
```

3. Publish and run the migrations:

```
php artisan vendor:publish --provider="LaravelSeoPro\SeoProServiceProvider" --tag="seo-migrations"
php artisan migrate
```

4. (Optional) Publish the Blade views:

```
php artisan vendor:publish --provider="LaravelSeoPro\SeoProServiceProvider" --tag="seo-views"
```

5. (Optional) Install additional dependencies:

```
# For Livewire support
composer require livewire/livewire

# For Filament support
composer require filament/filament
```

Configuration
-------------

[](#configuration)

The package configuration is located in `config/seo.php`. You can customize:

- **Feature toggles** - Enable/disable specific SEO components
- **Default values** - Set default meta tags and social media data
- **Open Graph settings** - Configure Open Graph defaults
- **Twitter Card settings** - Configure Twitter Card defaults
- **Robots.txt rules** - Set up search engine directives
- **Sitemap configuration** - Configure XML sitemap generation
- **SEO audit rules** - Set up automated SEO analysis

### Configuration Example

[](#configuration-example)

```
// config/seo.php
return [
    'features' => [
        'meta_tags' => true,
        'open_graph' => true,
        'twitter_cards' => true,
        'json_ld' => true,
        'canonical_urls' => true,
        'robots_meta' => true,
        'robots_txt' => true,
        'sitemap' => true,
        'audit_middleware' => true,
        'dashboard' => false,
    ],

    'defaults' => [
        'title' => 'My Website',
        'description' => 'Welcome to my website',
        'keywords' => 'website, laravel, php',
        'author' => 'My Company',
        'robots' => 'index, follow',
    ],

    'open_graph' => [
        'type' => 'website',
        'site_name' => 'My Website',
        'locale' => 'en_US',
    ],

    'twitter' => [
        'card' => 'summary_large_image',
        'site' => '@mywebsite',
        'creator' => '@mywebsite',
    ],
];
```

Basic Usage
-----------

[](#basic-usage)

### Using the Facade

[](#using-the-facade)

```
use LaravelSeoPro\Facades\Seo;

// Set basic meta tags
Seo::setTitle('My Page Title')
   ->setDescription('This is my page description')
   ->setKeywords('laravel, seo, php')
   ->setAuthor('John Doe');

// Set Open Graph data
Seo::setOpenGraph('og:title', 'My Page Title')
   ->setOpenGraph('og:description', 'This is my page description')
   ->setOpenGraph('og:image', 'https://example.com/image.jpg');

// Set Twitter Card data
Seo::setTwitterCard('twitter:card', 'summary_large_image')
   ->setTwitterCard('twitter:title', 'My Page Title');

// Set JSON-LD schema
Seo::setJsonLd([
    '@context' => 'https://schema.org',
    '@type' => 'Article',
    'headline' => 'My Article Title',
    'author' => [
        '@type' => 'Person',
        'name' => 'John Doe'
    ]
]);
```

### Using Blade Components

[](#using-blade-components)

Include the SEO components in your layout:

```

```

### Using Livewire Components

[](#using-livewire-components)

For dynamic SEO management with Livewire:

```

```

### Using with Filament

[](#using-with-filament)

The package automatically registers Filament resources for SEO management:

1. **SEO Meta Resource** - Manage all SEO data through Filament admin panel
2. **Automatic Integration** - Works with any model that uses the HasSeo trait
3. **Bulk Operations** - Manage multiple SEO records at once
4. **Advanced Filtering** - Filter and search SEO data efficiently

### Using the HasSeo Trait

[](#using-the-hasseo-trait)

Add the `HasSeo` trait to your models:

```
use LaravelSeoPro\Traits\HasSeo;

class Post extends Model
{
    use HasSeo;

    public function getSeoUrl()
    {
        return route('posts.show', $this);
    }
}
```

Then manage SEO data for your models:

```
$post = Post::find(1);

// Update SEO meta
$post->updateSeoMeta([
    'title' => 'My Post Title',
    'description' => 'This is my post description',
    'og_image' => 'https://example.com/post-image.jpg',
]);

// Load SEO data into the service
Seo::loadFromModel($post);
```

Artisan Commands
----------------

[](#artisan-commands)

### Generate robots.txt

[](#generate-robotstxt)

```
php artisan seo:generate-robots
```

### Generate sitemap.xml

[](#generate-sitemapxml)

```
php artisan seo:generate-sitemap
```

### Attach SEO to a model

[](#attach-seo-to-a-model)

```
php artisan seo:attach "App\Models\Post"
```

### Perform SEO audit

[](#perform-seo-audit)

```
php artisan seo:audit https://example.com
```

Middleware
----------

[](#middleware)

Add the SEO audit middleware to your routes:

```
Route::middleware(['seo.audit'])->group(function () {
    // Your routes
});
```

Routes
------

[](#routes)

The package automatically registers these routes:

- `/seo/robots.txt` - Dynamic robots.txt
- `/seo/sitemap.xml` - Dynamic XML sitemap

Advanced Usage
--------------

[](#advanced-usage)

### Custom JSON-LD Schema

[](#custom-json-ld-schema)

```
Seo::addJsonLd([
    '@type' => 'Organization',
    'name' => 'My Company',
    'url' => 'https://example.com',
    'logo' => 'https://example.com/logo.png'
]);
```

### Additional Meta Tags

[](#additional-meta-tags)

```
Seo::addMeta('custom-tag', 'custom-value')
   ->addMeta('another-tag', 'another-value');
```

### Custom Sitemap Models

[](#custom-sitemap-models)

Add your models to the sitemap configuration:

```
// config/seo.php
'sitemap' => [
    'models' => [
        \App\Models\Post::class,
        \App\Models\Page::class,
    ],
    // ...
],
```

Testing
-------

[](#testing)

Run the test suite:

```
composer test
```

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details.

📈 Changelog
-----------

[](#-changelog)

Please see [CHANGELOG.md](CHANGELOG.md) for more information on what has changed recently.

License
-------

[](#license)

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

---

**Made with ❤️ by the Laravel SEO Pro Team**

[⭐ Star us on GitHub](https://github.com/laravel-seo-pro/seo-pro) • [📖 Read the docs](https://laravelseopro.com/docs) • [💬 Join our Discord](https://discord.gg/laravel-seo-pro)

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance64

Regular maintenance activity

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

221d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ca21abbabdf7be6ae806e0e9d46c4a2944186168a99ebb14cf445f119d6d9eee?d=identicon)[mrdulal](/maintainers/mrdulal)

---

Top Contributors

[![mrdulal](https://avatars.githubusercontent.com/u/13785868?v=4)](https://github.com/mrdulal "mrdulal (20 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/laravel-seo-pro-seo-pro/health.svg)

```
[![Health](https://phpackages.com/badges/laravel-seo-pro-seo-pro/health.svg)](https://phpackages.com/packages/laravel-seo-pro-seo-pro)
```

###  Alternatives

[laravel/cashier

Laravel Cashier provides an expressive, fluent interface to Stripe's subscription billing services.

2.5k25.9M107](/packages/laravel-cashier)[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k12.1M99](/packages/laravel-pulse)[psalm/plugin-laravel

Psalm plugin for Laravel

3274.9M308](/packages/psalm-plugin-laravel)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9682.1M97](/packages/roots-acorn)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)[flarum/core

Delightfully simple forum software.

211.3M1.9k](/packages/flarum-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
