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

Seo Bundle Laravel Package

leogout/seo-bundle

A Symfony bundle for managing SEO metadata such as page titles, meta descriptions, canonical URLs and Open Graph tags, with flexible configuration for adding SEO data to your routes and templates.

View on GitHub
Deep Wiki
Context7

A Symfony bundle to generate SEO meta tags.

Frequently asked questions about Seo Bundle
Is leogout/seo-bundle a Laravel package or a Symfony bundle?
It is a Symfony bundle for generating SEO metadata such as page titles, meta descriptions, canonical URLs and Open Graph tags. The underlying PHP logic is not tightly coupled to Symfony, which is why Laravel teams sometimes reuse it, but the documented integration surface is a Symfony bundle registration plus a Twig extension. If you want a native Laravel service provider, facades and Blade directives, this package does not ship them out of the box.
How do I install leogout/seo-bundle with Composer?
Run composer require leogout/seo-bundle and make sure your platform satisfies PHP 8.1 or newer, because version 1.3.0 was refactored for PHP 8.1. On Symfony you then register the bundle in config/bundles.php and add your SEO configuration. On Laravel there is no documented auto-discovery provider, so expect to bind the relevant classes and configuration yourself.
Which PHP and Laravel versions does leogout/seo-bundle support?
The 1.3.0 release targets PHP 8.1 and Symfony 6, which puts Laravel 10 and later in the comfortable zone. Laravel 9 projects still pinned to PHP 8.0 will fail Composer dependency resolution rather than break at runtime, which is the preferable, fast failure mode. If you cannot upgrade PHP yet, pin the previous minor explicitly instead of using a caret constraint.
Can I use leogout/seo-bundle inside a Laravel application?
Yes, but treat it as an integration task rather than a drop-in install. Resolve the SEO service from Laravel's container, build the metadata for each route, and render the resulting tags in a single Blade partial. Keep that partial as the only place title, description and canonical tags are emitted so they never drift between views. Cover the wiring with a couple of feature tests before rolling it out across services.
How do I define page titles, meta descriptions, canonical URLs and Open Graph tags per route?
The bundle is designed around attaching SEO data to routes and templates, so each page can carry its own title, description, canonical URL and Open Graph values. You supply that data through configuration and at render time, then output it via the provided Twig function in Symfony. In a Laravel context the equivalent is passing the same metadata into your Blade partial and echoing the tags there.
Can I render the SEO tags in Blade instead of Twig?
There is no Blade directive or Blade component shipped with the bundle; the rendering helper is a Twig extension. Since the metadata resolves to plain PHP strings, you can still consume the objects from Laravel and echo the tags in a Blade partial. This keeps your application's SEO output declarative and testable even though the rendering layer is different from the upstream one.
How do I test that my SEO meta tags render correctly?
Assert against the rendered HTML rather than the internal objects: check the title tag, meta description, canonical link and og: properties on a few representative routes. The bundle ships a Twig extension test case, which is a good signal that the rendering path is treated as supported rather than incidental. Add one integration test per page type so a future refactor cannot silently drop a canonical or description tag.
Are there production concerns with PHP 8.2 and this bundle's PHP 8.1 refactor?
The 1.3.0 notes describe a broad PHP 8.1 refactor without detailing signature changes, so review the diff if you rely on edge-case coercion or nullable behaviour. Implicit nullable parameters are the usual trap, since they are deprecated in PHP 8.2 and can flood logs under E_ALL. Run your suite on both 8.1 and 8.2 with deprecations surfaced, and report upstream rather than patching vendor code.
What are the alternatives to leogout/seo-bundle for a Laravel application?
If you want Laravel-native ergonomics, packages such as ralphjsmit/laravel-seo or artesaos/seotools offer Blade-level APIs and are commonly used in Laravel projects. Choose this bundle only if you value the shared Symfony-verified core or already run a mixed Symfony and Laravel estate. Evaluating both against your Blade rendering and caching setup is cheaper than retrofitting one later.
Is leogout/seo-bundle actively maintained, and what changed in version 1.3.0?
Version 1.3.0 adds Symfony 6 support, refactors the codebase for PHP 8.1 and introduces a Twig extension test case, with CI moved from Travis to GitHub Actions. The migration means older build history is gone, so confirm the new matrix still covers the PHP minors you run. Before upgrading, check the composer.json constraints for php, illuminate/* and symfony/* and verify whether Symfony 5 support was dropped or kept as purely additive.
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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource