ralphjsmit/laravel-seo
Out-of-the-box SEO for Laravel models: automatically generates title, meta, OpenGraph, Twitter, structured data, robots, alternates and favicon tags. Store per-model SEO or derive it dynamically, then render everything with a simple seo()->for($model) call.
Post, Page) without manual tag management. Reduces technical debt for teams prioritizing organic growth.AlternateTag and locale handling.Adopt When:
Look Elsewhere If:
SchemaCollection)."This package lets us automate 80% of our SEO work—from meta tags to structured data—without hiring specialists. For example, a blog post’s title, OpenGraph image, and Twitter Card will update automatically when content changes, saving dev time and improving search rankings. It’s like having a built-in SEO team for our Laravel app, with minimal setup. The cost? Zero—it’s open-source and maintained. The ROI? Faster launches, better organic traffic, and happier marketers who don’t have to chase devs for tag fixes."
Key Metrics to Track:
*"This is Spatie’s media library, but for SEO—intuitive, database-backed, and opinionated in the right ways. Here’s why it’s a no-brainer:
use HasSEO to a model, and it auto-generates SEO tags. No more copying <meta> tags across Blade files.title, excerpt) without storing duplicates. Example:
public function getDynamicSEOData(): SEOData {
return new SEOData(
title: $this->title,
image: $this->featuredImage->path,
);
}
$seoData->schema = new SchemaCollection([
new ArticleSchema($this->title, $this->content, $this->author),
]);
config/seo.php. Override per-page as needed.inertia title attribute).Trade-offs:
Migration Path:
HasSEO to core models (e.g., Product, Page).getDynamicSEOData() to sync SEO with model fields.Alternatives Considered:
Ask: ‘Can we test this on our blog for a month and measure the impact on indexing?’"*
How can I help you explore Laravel packages today?