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.
<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.
<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.
- Google docsArticle rich result (inherited)primary
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.
- 01
Using sharedContent for the post's own cover image
WrongsharedContent on a blog post that just has a hero imageRightimage for the post's own media, sharedContent for work the post quotes or resharessharedContent 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.
- 02
Using SocialMediaPosting when BlogPosting fits
WrongSocialMediaPosting for a standard blog entryRightBlogPosting 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.
Schema properties in this example
About the example data
A Mastodon microblog post from the Xoo Code account sharing a XooStructured product screenshot.
Comments
Loading comments...