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

Meta Tags Laravel Package

butschster/meta-tags

Laravel package for managing SEO meta tags with a fluent API. Define page titles, descriptions, canonical URLs, Open Graph and Twitter Card tags, and custom meta tags, with Blade directives, JSON-LD structured data, and per-page configuration.

View on GitHub
Deep Wiki
Context7

butschster/meta-tags is a Laravel package for managing SEO and social meta tags through a clean, fluent API. Define page titles, descriptions, canonical URLs, Open Graph data, Twitter Cards, and custom tags in one place, then render them easily in Blade templates.

  • Fluent, chainable API for page metadata
  • Built-in Open Graph and Twitter Card support
  • Custom meta tags with flexible rendering
  • Seamless Laravel and Blade integration
  • Configurable defaults for consistent SEO across pages
Frequently asked questions about Meta Tags
How do I install butschster/meta-tags in a Laravel application?
Install it with Composer using composer require butschster/meta-tags; the service provider is auto-discovered so no manual registration is required. Publish the package config, then define a MetaTagCollection subclass for each content type and render the collection in your master Blade layout. The package is presentation-layer only, so it does not touch controllers, models, or migrations, which keeps the integration non-invasive.
Does butschster/meta-tags support Open Graph and Twitter Card tags?
Yes. The package ships builders for Open Graph and Twitter Card metadata alongside the standard title, description, canonical, and robots tags. You compose them into a single collection per page, so the same object renders classic SEO tags and social preview tags together. Because the output is a single render call, your social tags stay in sync with the page title and description instead of drifting in hardcoded Blade partials.
Can I generate JSON-LD structured data with butschster/meta-tags?
Yes, JSON-LD structured data is part of the package's scope, and you add it through custom tag groups or builders on your collection. For schema types like Product, Article, BreadcrumbList, or Organization, define a reusable builder once and attach it wherever that content type is rendered. Verify coverage for your specific schema types before adopting, and plan to extend the builders if a type is not provided out of the box.
Which Laravel and PHP versions does butschster/meta-tags support?
The package targets modern Laravel releases with server-rendered Blade front ends, and it is commonly evaluated against Laravel 9 through 12. Always check the composer.json version constraints in the repository before upgrading, since that file is the authoritative source for the supported Laravel and PHP matrix. If your platform roadmap includes a Laravel major upgrade, confirm the constraint allows it or be prepared to fork and adjust a small, readable codebase.
How should I test rendered SEO meta tags in CI?
Missing or stale meta tags fail silently and only show up as slow organic traffic regressions, so treat test coverage as your responsibility rather than the package's. The practical approach is snapshot or assertion tests against the collection's render() output per route, committed alongside your feature tests. Build a baseline inventory of each route's expected title, description, canonical, robots, Open Graph, Twitter, and JSON-LD output, then assert against it so drift fails the build.
Does butschster/meta-tags work with Inertia, Livewire, or an SPA?
Rendering is Blade-centric, so the package works cleanly with Inertia and Livewire only when the initial HTML response for each route is server-rendered with the correct collection. There is no client-side hydration path, meaning an SPA shell that populates metadata in JavaScript will leave crawlers with nothing useful. If your frontend architecture is heading toward a headless or SPA model, plan a server-rendering layer for metadata first.
Is butschster/meta-tags compatible with php artisan config:cache and Laravel Octane?
The package has no persistence, queue, or eventing surface, so there is no long-lived state to corrupt under Octane. The real requirement is on your side: collection construction must happen per request and must be stateless and cheap, with no mutation of config values at runtime. Validate this with an Octane smoke test and a config:cache run in staging before relying on it in production.
How does butschster/meta-tags compare to artesaos/seotools or romanzipp/laravel-seo?
The differentiator is the collection-and-builder model with custom tag groups, which keeps metadata composition consistent across many page types instead of scattering tags through Blade partials. If another SEO package is already in use, map each existing concept to a MetaTagCollection builder before you start, and keep both installed only during the diff window. Do not run two meta tag packages in production indefinitely, since duplicate or conflicting tags are worse than either package alone.
Is butschster/meta-tags actively maintained, and what happens if the maintainer stops?
It is effectively a single-maintainer project, which is the main lifecycle risk rather than any runtime concern. The MIT license, an active release cadence, and a small readable codebase mitigate this: worst case you vendor-fork the package and keep it on your own release cycle. There are zero Packagist dependents, so no downstream community has stress-tested upgrade paths across Laravel majors, meaning you should rely on the maintainer's version constraints and your own CI.
Can I manage multi-locale SEO such as hreflang and per-locale canonicals with butschster/meta-tags?
The package renders whatever tags you put in a collection, so per-locale canonicals fit naturally when collections are built from locale-aware route data. Hreflang alternates are less standardized in most meta tag libraries, so confirm support in the source or add them as a custom tag group before committing to a multi-locale roadmap. If multi-locale SEO is in scope for the next twelve months, prototype one locale pair early to prove the pattern.
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.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
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