SEO
The first-party filament-seo plugin morphs SEO meta onto any Eloquent model — Post, Doc, or your own — and renders the matching <head> tags and /sitemap.xml on the public site. It is part of the Docs stack plugin set and ships look-neutral: the clone renders the tags, the plugin only supplies the data.
What it does
HasSeotrait — attaches aseo_metamorph row (title, description, canonical URL, OG image URL) to any model.SeoFields::make()— a drop-in Filament form field group added to thePostandDocresource forms in the panel.SeoTags::for($model)->toHtml()— emits<title>, meta description, canonical, Open Graph, X/Twitter card, and a JSON-LDWebPageblock for the public layout.Sitemap::xml()— helper that builds a sitemap<urlset>from a list of{loc, lastmod}URLs.- SEO settings page — singleton defaults (title, description, social image, X handle) with a share-card preview, registered under panel Settings.
Storage
| Table | Shape | Purpose |
|---|---|---|
seo_meta |
morph (seoable_type, seoable_id) |
Per-record SEO overrides |
seo_settings |
singleton row | Site-wide defaults |
Public surface
The clone renders SeoTags in its <head> and exposes /sitemap.xml. When the Content API plugin is enabled, the nested seo relation is carried through the API payload, so API-published posts and docs keep their SEO meta for any downstream consumer.