larament / seokit
A complete SEO package for Laravel, covering everything from meta tags to social sharing and structured data.
Fund package maintenance!
Requires
- php: ^8.3
- illuminate/contracts: ^11.0||^12.0||^13.0
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.14
- orchestra/testbench: ^11.0.0||^10.0.0||^9.0.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-arch: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
This package is auto-updated.
Last update: 2026-03-30 09:44:59 UTC
README
Technical SEO made easy in Laravel.
SeoKit is a Laravel SEO toolkit for managing meta tags, Open Graph data, Twitter cards, and JSON-LD from one consistent API.
It is designed for applications that need a practical SEO layer without stitching together multiple packages or scattering metadata logic across controllers, models, and views.
Highlights
- Complete SEO coverage for meta tags, Open Graph, Twitter cards, and JSON-LD structured data
- Clean Laravel integration through a facade, Blade directive, install command, and model traits
- Flexible data flow with support for computed SEO data and database-backed SEO records
- Polymorphic model SEO support for managing metadata separately from your domain models
- Built-in caching and sensible defaults to reduce repetitive setup and unnecessary queries
- Designed for modern Laravel applications, with automated test coverage for Laravel 11, 12, and 13
Requirements
- PHP 8.3+
- Laravel 11+
Installation
Install the package with Composer:
composer require larament/seokit
Publish the package assets with the installer command:
php artisan seokit:install
If you prefer to publish assets manually:
php artisan vendor:publish --tag="seokit-config" php artisan vendor:publish --tag="seokit-migrations" php artisan migrate
Quick Start
Set page metadata in your controller:
use Larament\SeoKit\Facades\SeoKit; public function show(Post $post) { SeoKit::title($post->title) ->description($post->excerpt) ->image($post->featured_image) ->canonical(route('posts.show', $post)); return view('posts.show', compact('post')); }
Render the tags in your layout:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> @seoKit <!-- ... --> </head> <body> <!-- ... --> </body> </html>
For model-driven SEO, SeoKit also provides HasSeo and HasSeoData traits.
Documentation
Detailed documentation lives in the GitHub wiki:
The README is intentionally kept short. The wiki should be the source of truth for package guides, examples, and feature-specific documentation.
Development
Run the test suite:
composer test
Run static analysis:
composer analyse
Format the codebase:
composer format
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Contributions are welcome. Please open an issue or submit a pull request if you want to improve the package.
Security
Please review the security policy for reporting vulnerabilities.
Credits
License
SeoKit is open-sourced software licensed under the MIT license.