XooCode(){

SocialMediaPosting

SocialMediaPosting is an Article subtype for posts published on social platforms, microblogs, and community feeds. It is the parent of BlogPosting and DiscussionForumPosting. It adds exactly one property of its own, sharedContent: a CreativeWork (image, video, article, audio) that the post is sharing or quoting. Everything else is inherited from Article/CreativeWork (author, datePublished, headline, articleBody, image, interactionStatistic).

Full example of schema.org/SocialMediaPosting json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/SocialMediaPosting
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "SocialMediaPosting",
  "headline": "Shipped: XooStructured Enterprise 4.2 with property-level validation",
  "articleBody": "We shipped XooStructured 4.2 today. The big change: property-level validation now runs against the full schema.org vocabulary, not just the Google rich result surface.",
  "datePublished": "2026-04-14T15:02:11-05:00",
  "author": { "@type": "Organization", "name": "Xoo Code", "url": "https://xoocode.com" },
  "mainEntityOfPage": "https://social.xoocode.com/@xoocode/12489823710",
  "sharedContent": {
    "@type": "ImageObject",
    "contentUrl": "https://xoocode.com/press/xoostructured-4-2-screenshot.png",
    "caption": "XooStructured 4.2 validation surface highlighting a missing addressCountry warning.",
    "creditText": "Xoo Code product marketing"
  },
  "interactionStatistic": [
    { "@type": "InteractionCounter", "interactionType": "https://schema.org/LikeAction", "userInteractionCount": 418 },
    { "@type": "InteractionCounter", "interactionType": "https://schema.org/ShareAction", "userInteractionCount": 96 }
  ]
}
</script>

sharedContent vs attached media

Use sharedContent when the post embeds or quotes another CreativeWork (a shared article, a reposted image, a quoted tweet). Do not use it for the post's own cover image or hero media, those go on image. sharedContent is about provenance: "this post is carrying along another work."

When to use the parent type

Reach for SocialMediaPosting directly when your post does not fit BlogPosting (a full blog entry with headline/body) or DiscussionForumPosting (a thread reply). Microblog posts like Mastodon toots, Bluesky skeets, and X posts all fit SocialMediaPosting cleanly.

Minimal valid version

The smallest markup that still produces a valid SocialMediaPosting entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/SocialMediaPosting (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "SocialMediaPosting",
  "headline": "Shipped: XooStructured Enterprise 4.2",
  "datePublished": "2026-04-14T15:02:11-05:00",
  "author": { "@type": "Organization", "name": "Xoo Code" }
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

Common SocialMediaPosting mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    Using sharedContent for the post's own cover image

    Wrong
    sharedContent on a blog post that just has a hero image
    Right
    image for the post's own media, sharedContent for work the post quotes or reshares

    sharedContent is about provenance, it marks a work the post is carrying along. The post's own cover image belongs on image. Misusing sharedContent muddles the consumer's understanding of what this post is about vs what it shares.

  2. 02

    Using SocialMediaPosting when BlogPosting fits

    Wrong
    SocialMediaPosting for a standard blog entry
    Right
    BlogPosting for a blog article published on a blog (with headline + body)

    Reach for the most specific subtype. SocialMediaPosting is the right call when BlogPosting's blog-article model does not apply (microblogs, feeds), otherwise default to BlogPosting.

About the example data

A Mastodon microblog post from the Xoo Code account sharing a XooStructured product screenshot.

Comments

Loading comments...

Leave a comment