larament/seokit

A complete SEO package for Laravel, covering everything from meta tags to social sharing and structured data.

Maintainers

Package info

github.com/larament/seokit

pkg:composer/larament/seokit

Fund package maintenance!

iRaziul

Statistics

Installs: 1 899

Dependents: 0

Suggesters: 0

Stars: 41

Open Issues: 0


README

A Clean SEO Toolkit for Laravel

Technical SEO made easy in Laravel.

Latest Version on Packagist GitHub Tests Action Status Total Downloads License

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.