SEO panel fields silently ignored unless the page wires getSeoMeta (footgun for content editors) #1775
khoinguyenpham04
announced in
Roadmap
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
This Roadmap discussion mirrors #1518: SEO panel fields silently ignored unless the page wires getSeoMeta (footgun for content editors).
Use this discussion to upvote the roadmap item and discuss priority, use cases, and product feedback. Keep implementation tracking, reproduction details, and PR-specific feedback on the source issue.
Original Issue
Problem
The admin exposes a full SEO panel (SEO title, meta description, OG image, canonical URL, "hide from search engines"/noindex). Content editors fill it in expecting it to take effect.
But these fields live on
entry.data.seoand have no effect unless the page template explicitly callsgetSeoMeta(orgetContentSeo). A site author who hand-rolls a collection detail page like:silently bypasses the entire panel — including the
noindextoggle, which is an indexing/correctness risk, not just cosmetic.Why it's a trap
skills/building-emdash-site/references/site-features.md) only showgetSeoMetafor apostspage and never state that every content detail page must wire it or the panel is inert.I hit this on a real site: only the scaffolded
postspage usedgetSeoMeta; four hand-written collection pages (albums, interviews, covers, collabs) ignored the panel entirely. Editors had filled SEO titles/descriptions that were never rendered, and thenoindextoggle did nothing.Suggestions (any of)
site-features.md— "the SEO panel is only honored if your page callsgetSeoMeta; hand-writtentitle/descriptionbypass it silently." (Happy to PR this — see below.)<SeoHead entry={...} defaults={{ title, description, image }} />component, or letgetSeoMetaacceptdefaultTitle/defaultDescription. Today its only fallbacks aredata.title/data.excerpt, so authors with computed titles (e.g."Maeta — {title} (cover of {artist})") must drop down togetContentSeoand merge panel-vs-default by hand.data.seofields but the rendered page never read them, log a warning in dev.Environment
main), Astro + Cloudflare Workers template.Beta Was this translation helpful? Give feedback.
All reactions