# SW Blog Posting Schema (JSON-LD) — AI Agent Documentation **Asset type:** Theme partial (`templateType: none`) — not a drag-and-drop module **Partial path:** `sw-master/sw-partials/sw-blog-posting-schema.html` **Included from:** `templates/header.html` when `content.post_body` is defined (blog post pages) **Reference:** `docs/PROCESS-SW-SCHEMA-AEO-SITEWIDE.md` §5, audit gate **S-G12** **Last updated:** 2026.05.21 --- ## 1. Overview HubSpot’s native **BlogPosting** JSON-LD often emits `"description": null` while `` is populated. This partial outputs a supplemental **BlogPosting** block with **`description`** from `content.meta_description` when set. - Run **only on blog posts** (not listing, tag, or author pages). - Audits may show **two** BlogPosting graphs (HubSpot + SW); gate **S-G12** passes when at least one includes a non-empty `description`. --- ## 2. Required behavior | Item | Source | |------|--------| | `description` | Post **Meta description** in blog editor | | `headline`, `url`, dates, image | `content.*` when available | **Editors:** Set meta description on each post for best schema/AEO results. --- ## 3. Developer / roll-down - Merge **`templates/header.html`** per `docs/PROCESS-SEO-SCHEMA-ROLLDOWN.md` — include after `sw-seo-schema.html`. - No portal constants in this partial. --- ## 4. Related - **SW SEO Schema** — sitewide Organization / WebSite / homepage WebPage (`SW-SEO-Schema.txt`). - **SW FAQs Simple** — per-post FAQPage in **post body** (not this partial). --- ## 5. Document version **2026.05.21.15.16:** Initial AI doc; PKG-1B sitewide package Finish Up.