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

Seoable Laravel Package

marshmallow/seoable

marshmallow/seoable is a Laravel package that adds SEO metadata to Eloquent models, letting you manage meta titles, descriptions, and social sharing tags through a simple, reusable trait for consistent per-record SEO.

View on GitHub
Deep Wiki
Context7

Marshmallow/Seoable is a Laravel package for adding SEO metadata to Eloquent models with minimal setup. Attach the provided trait to define title, description, canonical, and social-sharing fields, then render consistent meta tags in your Blade views.

  • Model-level SEO attributes with sensible fallbacks
  • Open Graph and Twitter Card meta tag support
  • Customizable canonical URLs and robots directives
  • Blade helpers for quick head-section integration
  • Configurable defaults for titles, descriptions, and images
Frequently asked questions about Seoable
How do I install marshmallow/seoable in a Laravel application?
Install it with Composer using composer require marshmallow/seoable, then follow the package's registration steps for your Laravel version. Because it is designed around Laravel Resources, you will also need to register the field or trait in the relevant Resource or model. After installation, publish any provided config or migration files and confirm the required SEO columns or JSON storage exist before adding the field to a form. Pilot it on one low-risk Resource first rather than rolling it out everywhere.
Which Laravel and Nova versions does marshmallow/seoable support?
The package is built for Laravel applications that use Nova for back-office content editing, so its compatibility is tied to both the Nova major version and the underlying Laravel and PHP versions. The repository is the authoritative source for the exact constraints, so check its composer.json and README before committing. Because adoption is low, pin the version in composer.json and test upgrades in staging. Verify Nova major-version compatibility explicitly, since field APIs change between Nova releases.
What SEO fields does marshmallow/seoable add to a model?
The package focuses on the common metadata editors need: a title, a meta description, a canonical URL, robots directives, and social sharing tags such as Open Graph values. The precise field list and naming should be confirmed against the source, since the schema is what your frontend contract depends on. It handles metadata entry rather than full SEO automation, so sitemaps, redirects, and structured data remain your responsibility. Map its fields explicitly to any SEO columns you already have instead of adopting defaults blindly.
How is the SEO metadata stored by marshmallow/seoable?
Storage depends on the package's schema, which is typically either dedicated columns on the model's table or a JSON column holding the metadata payload. Confirm which approach applies before writing migrations, because changing it later means a data migration. If your application already stores SEO values in existing columns, map those to the package's fields rather than duplicating them. Also verify how the field serializes values to make sure the frontend reads exactly what editors save.
Can I use marshmallow/seoable without Laravel Nova?
The package is described as a Nova-oriented field, so its natural home is an application that already uses Nova as the editing surface. Without Nova you lose the admin input layer, and you would be relying only on the underlying model metadata handling, if that part is usable standalone. For API-only or headless stacks it is a poor fit unless Nova is already your CMS. In those cases a plain model trait or native form fields are usually simpler and better supported.
How do I render the SEO title and description in my Blade views?
The package supplies stored metadata; rendering is up to your application. Read the values from the model in your layout or a view component and output them in the head section, with sensible fallbacks when a field is empty. Add tests that assert the rendered title, description, canonical, and social tags so changes in the field schema do not silently break pages. Keep the rendering layer separate so you can swap the package out later without touching templates.
Does marshmallow/seoable support localization or multi-language content?
Localization support is not clearly documented, so treat it as something to verify in the source before planning a multilingual rollout. If your site serves multiple locales, check whether the field stores per-locale values or a single set of metadata, and whether it works with Nova's localization patterns. Where support is missing, you may need per-locale columns or a translated metadata table instead. Test one localized Resource end to end before extending the approach.
Is marshmallow/seoable safe to use in production?
It is a narrow, low-adoption package with few stars and no reported dependents, so treat it as a contained dependency rather than a strategic platform component. That does not make it unsafe, but it does mean you should pin the version, review the code you rely on, and keep an exit plan. Because it only handles metadata input, a failure affects admin editing rather than your public SEO output if you render from your own database columns. Document ownership and a rollback path before wider adoption.
Does marshmallow/seoable generate sitemaps or structured data?
No, based on its stated purpose the package manages metadata entry such as titles, descriptions, canonical URLs, and social tags. Sitemap generation, schema.org or JSON-LD structured data, redirects, and canonical enforcement are separate concerns you still need to implement. Do not assume it delivers complete SEO capability for a site. Pair it with dedicated tooling for those features and keep the responsibilities clearly separated.
What are the alternatives to marshmallow/seoable, and how do I migrate away?
The most direct alternative is native Nova fields plus your own model columns or a trait, which removes the dependency entirely at the cost of a little extra form configuration. Other Laravel SEO packages cover broader metadata and rendering concerns, though few are Nova-specific. Because the stored data is ordinary model attributes, migrating away usually means keeping the columns, dropping the field registration, and replacing the admin inputs. Plan that path up front so the package stays a replaceable convenience rather than a lock-in.
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.
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
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