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 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

Product Decisions This Supports

  • Feature scoping: "SEO-friendly pages" epic. This package turns SEO metadata from a custom build into a storage + rendering concern: a polymorphic seo table, a HasSEO trait on existing Eloquent models, and a Blade-side renderer for title, description, canonical, robots, Open Graph and Twitter card tags. That directly informs whether you staff this as a 1–2 sprint epic or a half-day integration plus admin-form work.
  • Build vs. buy for metadata plumbing. The reusable 20% (schema, trait, tag rendering, OG/Twitter conventions) is already written under MIT. Your team's remaining work is the part that is actually product-specific: admin editing UI, validation rules, defaults/fallbacks, and locale handling. This reframes the buy decision as "buy the plumbing, build the workflow."
  • Build vs. partner for social share images (new in 2.6.0). The release adds optional EmbedX support — a service, founded by the package author, that generates rich preview thumbnails for X/Twitter. That upgrades "OG image" from a static-asset chore to a live decision: generate cards in-house (template + headless renderer, more build), upload static images per record (cheap, less dynamic), or call a third-party API per share. Treat it as a separate, reversible decision from adopting the package itself.
  • Data-model decision: decouple SEO from content schema. Because metadata lives in its own polymorphic table rather than as columns on posts/products, you can retrofit SEO onto multiple existing models without wide migrations or touching existing content tables. Trade-off to weigh: extra joins, a second form surface in the admin, and a slightly awkward bulk-edit/import story.
  • Who owns metadata. The package makes per-record SEO editable data rather than hard-coded Blade strings — which is the prerequisite for handing titles, descriptions and canonicals to marketing/content ops instead of engineering. That's a growth-team autonomy decision, not just a technical one.
  • Use cases in scope: blog/news articles, product and category pages, CMS-driven landing pages, marketplace listings — anywhere an editor needs to override the auto-generated title/description for CTR or search intent. The EmbedX path additionally matters for any content with a heavy social-distribution strategy (launches, campaigns, news).
  • Explicit non-goals to plan around: this is a metadata store and renderer, not an SEO suite. Sitemaps, robots.txt management, redirects, hreflang, canonicalization policy, structured data and image hosting/CDN all remain separate roadmap items (or separate packages/services).

When to Consider This Package

Consider it when:

  • You have an existing Laravel app with Eloquent-backed content models and want per-record meta tags without designing a schema from scratch.
  • You need the storage and rendering layer only, and are prepared to build your own admin UI, validation, fallback logic and caching around it.
  • The effort saving matters more than maintenance guarantees — internal tools, MVPs, marketing sites, or a first SEO pass you intend to revisit.
  • You can verify it installs cleanly against your Laravel/PHP version, and you're willing to pin the version or vendor/fork it into your codebase.
  • You want a small, readable reference implementation of OG/Twitter conventions your team can extend rather than adopt wholesale.
  • Dynamic social preview images are on your roadmap and you'd rather evaluate a hosted generator than build one — but scope that evaluation as its own vendor decision (see caveats below), not as part of the package install.

Look elsewhere (or build in-house) when:

  • You need an out-of-the-box admin experience — prefer a package with a UI (e.g. ralphjsmit/laravel-seo) or fold this into your existing CMS/filament admin.
  • You need a broader SEO surface — sitemaps, redirects, robots, hreflang, schema.org. Pair with spatie/laravel-sitemap and friends, or use a fuller toolkit like artesaos/seotools.
  • You require active maintenance, a recent release cadence, or vendor support. Signals are still thin overall: ~349 stars, 0 dependents on Packagist, and an overall score of 2.4. 2.6.0 does show the project is not abandoned — there is at least one release after October 2023 — but a single feature release in a small project is a weak cadence signal. Treat it as unmaintained community code, not a platform dependency.
  • You don't want third-party SaaS in your render path. The EmbedX integration introduces an outbound call to an external service to produce share images. If your threat model, privacy policy or uptime budget rules that out, keep the integration disabled and generate images yourself — confirm in review whether any network call can fire without explicit configuration and credentials.
  • Vendor-adjacency is a procurement concern. EmbedX is the maintainer's own commercial project, so the "new release" is partly an upsell surface. That's legitimate, but it means future versions may assume or promote a paid service you don't want; read the diff rather than adopting blindly.
  • Laravel 11/12+ compatibility remains unconfirmed — a framework upgrade could strand you.
  • Your security/procurement process requires reviewing or approving every third-party dependency, or your site is a static/JS-rendered marketing property where Blade-side rendering is irrelevant.

How to Pitch It (Stakeholders)

To executives: This is a small, MIT-licensed library that removes the boilerplate for making our content pages search- and social-share-friendly — meta titles, descriptions, canonicals, Open Graph and Twitter cards — stored per record and editable without engineering involvement. It converts an open-ended "SEO" initiative into a bounded integration plus an admin form, and it's low-cost to reverse: the data lives in a normal database table and the rendering layer is swappable, so there's no lock-in. The new 2.6.0 release adds an optional connection to EmbedX, a hosted service from the same author that generates rich social preview thumbnails; useful if we want dynamic share cards, but it is a separate paid-ish vendor decision and stays off unless we turn it on. The honest caveats are maturity and commercial adjacency: it's a small community project with no downstream dependents and a sparse release history, now shipping a plug for the maintainer's own product. Recommend adopting it as vendored code with a named internal owner, and evaluating EmbedX — if at all — on its own merits.

To engineering: One composer require, one migration, add a trait to the models that need it, render tags in your layout. It's a thin, readable package — you'll extend it for locale, fallbacks and caching regardless. 2.6.0 is additive (EmbedX image generation for X/Twitter previews); no breaking changes are called out, but review the diff and confirm the integration is inert unless explicitly configured with credentials. Three things before committing: it installs and passes tests on our current Laravel/PHP versions; we're comfortable pinning the version or forking it, given the sparse release history and zero dependent packages; and we accept that social preview images may depend on a third-party service — decide per environment whether that's on, and make sure failures degrade gracefully so a slow image API never blocks a page render. Budget the real work where it belongs: the admin editing surface, validation, sensible defaults when metadata is empty, image hosting, and cache invalidation on save.

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.
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
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox