Skip to content

Sites: fix homepage JSON-LD, add og:type, sequential card heading levels - #191

Merged
clbotdev merged 1 commit into
mainfrom
fix/seo-structured-data
Nov 5, 2026
Merged

clbotdev merged 1 commit into
mainfrom
fix/seo-structured-data

Conversation

@clbotdev

@clbotdev clbotdev commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

Closes #190.

An Is Agentic scan of medialit.cloud flagged these. They affect every hosted site.

  • Homepage JSON-LD: Organization and WebSite used the builder page's name ("Homepage") and hardcoded logoUrl: null. They now use the site title, logo, and the site subtitle (falling back to the page description) as description.
  • og:type: website on the layout and builder pages, article on docs pages. Blog posts already had article.
  • Heading levels: Featured and Grid item titles render one level below the block's titleLevel (so h3 under the default h2) instead of always <h4>, with the same look. The pricing price renders as <p>; it isn't a heading. PageCardHeader takes an optional as.

Organization sameAs / contactPoint / address need new site.json fields and are left as a follow-up (noted in #190).

Testing

  • apps/sites vitest (68 passed, JSON-LD tests updated), page-builder vitest (60 passed), tsc on both, biome format check.
  • Local browser smoke (sites dev + API against local Postgres, "Smoke 137" team homepage):
    • JSON-LD shows "name":"Smoke 137". After temporarily setting a subtitle and logo, it also shows description and logo; settings were restored afterwards.
    • og:type is website.
    • Heading outline is h1 h2 h3×4 h2 h3×4 h2 …, with no h4.
    • Card titles and prices keep 20px / weight 500. Cards, pricing and the monthly/yearly switcher look unchanged.

The homepage Organization/WebSite JSON-LD used the builder page's name
("Homepage") and no logo; it now uses the site title, logo and subtitle.
Builder and docs pages set og:type. Featured, Grid and Pricing item
titles render one level below the block title instead of always h4, and
the pricing price is a paragraph rather than a heading.

Closes #190
@clbotdev
clbotdev merged commit 82f5706 into main Nov 5, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Sites: fix homepage JSON-LD, add og:type, keep heading levels sequential in card blocks

2 participants