Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Laravel Seo

Laravel Seo Laravel Package

romanzipp/laravel-seo

romanzipp/laravel-seo is a Laravel package for adding SEO metadata to Eloquent models and Blade views. It generates meta titles, descriptions, canonical URLs, Open Graph and Twitter Card tags through a simple fluent API, making pages easier to optimize for search and social sharing.

View on GitHub
Deep Wiki
Context7

Laravel SEO package

Frequently asked questions about Laravel Seo
How do I install romanzipp/laravel-seo in a Laravel application?
Install it with Composer via composer require romanzipp/laravel-seo, then publish the package config and migrations and run php artisan migrate. Add the provided trait to the content models that should carry SEO metadata, such as pages or posts, and render the tags in your base Blade layout. Before committing, check the package's Composer constraints against your Laravel and PHP versions, since the last release was October 2023.
Which Laravel and PHP versions does romanzipp/laravel-seo support?
The package is Laravel-native and was last released in October 2023, so a Laravel 9 or 10 application on PHP 8.1 or 8.2 is the safest fit. Official support for Laravel 11, 12, or newer PHP releases is unproven without testing. Read the composer.json constraints and run a short compatibility spike on your current and next framework version before adopting it broadly.
What SEO fields can I manage per Eloquent model with this package?
It stores per-record titles, meta descriptions, canonical URLs, and Open Graph and Twitter card values, which you then render as meta tags in Blade. It is an accelerator for on-page metadata, not a complete SEO platform. Redirects, robots directives, JSON-LD structured data, hreflang, and sitemaps should be handled separately or verified in the source before you rely on them.
Does the package add SEO columns to my existing content tables?
No. The package ships its own migration for storing SEO metadata and links records back to your models, so you do not need to alter existing content tables. That keeps your schema cleaner but means you should plan a backfill of SEO records for existing content and decide how missing records behave. Confirm the migration's conventions do not conflict with your current tables or polymorphic relations.
How do I render the SEO meta tags in a Blade layout?
Add the package trait to a model, create or edit its SEO record, and then call the package's rendering helpers inside the head section of your base Blade layout. Because values can be editor-managed, confirm how the package escapes output before printing raw metadata, and keep the existing tags in place in staging until parity is verified. Rollback is straightforward: remove the render call, then the trait.
What happens when a model has no SEO metadata record?
Fallback behavior depends on how you wire the trait and template, so treat it as something you must define and test rather than assume. A common approach is to fall back to model fields or site-wide defaults in your layout when no SEO record exists. Write a rendering test that covers the missing-record case before expanding the package to more models.
Will storing SEO metadata in the database cause N+1 queries on listing pages?
It can if you loop over models in a Blade view and let the SEO relation lazy-load per item. Eager load the SEO relationship in your queries and consider caching rendered meta tags or page fragments. Because metadata lives in the database, missing or stale records are an operational concern, so plan cache invalidation when editors update SEO values.
Does romanzipp/laravel-seo support multi-language or multi-site metadata?
The package is oriented around one SEO record per model, so multi-language hreflang or per-site metadata is not something to assume out of the box. If your application serves multiple locales or domains, verify the schema and helper behavior in a spike, and expect to extend the storage or resolution logic yourself. This is a common reason teams pair it with custom code or a different solution.
Is romanzipp/laravel-seo actively maintained and safe for production?
The last release was October 2023, the project has modest adoption, and it appears to be single-maintainer or community-supported, so lifecycle risk outweighs implementation complexity. Pin the version, monitor advisories and framework compatibility, and decide in advance who owns patching or forking if upstream stalls. Treat it as a commodity accelerator rather than a strategic platform dependency.
Is this package a good fit for headless or API-first Laravel applications?
Generally no. The package is designed for Blade-rendered Laravel pages where the backend owns the head section of the HTML. In a headless setup where a separate frontend framework fetches data and renders metadata itself, you would be exposing the SEO record over an API and doing the rendering elsewhere, which removes most of the package's value. It also fits poorly in non-Laravel services.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo
bernskioldmedia/laravel-harvest
bernskiold/laravel-data-scrubber
bernskiold/laravel-currency-converter
bernskiold/laravel-campaign-monitor
bernskioldmedia/laravel-autotranslate
siberfx/telegram-bot
roy-sandip/laravel-view-extended
gregsphotography/site-builder-core
roy-sandip/laravel-view
anodyne/blade-fluentui-icons
webx-ui/module-catalog-collections