Article & BlogPosting
Schema markup for articles, blog posts and news — unlocks author, date and image in Google results.
Article / BlogPosting / NewsArticle
Three related schema types for written content. Use the one that best describes your content format.
| Type | Best for | Google feature |
|---|---|---|
| **Article** | In-depth editorial, academic or long-form content | Author, date, image in results |
| **BlogPosting** | Standard blog entries | Google Discover eligibility |
| **NewsArticle** | Time-sensitive journalism | Google News, news carousel |
Plan: Free (Article) · Basic+ (BlogPosting, NewsArticle)
Key properties
headline— the article title *(required)*author— name, photo URL and profile link *(required)*datePublished— ISO 8601 publication date *(required)*dateModified— ISO 8601 last modification date *(recommended)*image— featured image, minimum 1200×630px *(required for rich results)*publisher— organization name and logo *(required)*description— article summary *(recommended)*articleSection— category or section namewordCount— total word countinLanguage— language code (en, es, pt, etc.)
When to use each type
Article — use for guides, tutorials, reports and evergreen content where authoritativeness matters. Google may show it in Discover and in standard results with enhanced metadata.
BlogPosting — the correct type for regular blog entries. Google Discover actively promotes well-structured BlogPosting content with good E-E-A-T signals.
NewsArticle — only use for content that is genuinely news: breaking stories, press releases, journalism. Requires a publisher with a verified logo. Makes the article eligible for the Google News carousel.
Template: Blog Post with variables
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "{{post_title}}",
"url": "{{post_url}}",
"datePublished": "{{post_date}}",
"dateModified": "{{post_modified}}",
"description": "{{post_excerpt}}",
"image": "{{post_thumbnail}}",
"author": {
"@type": "Person",
"name": "{{author_name}}"
},
"publisher": {
"@type": "Organization",
"name": "{{site_name}}",
"logo": {
"@type": "ImageObject",
"url": "{{site_logo}}"
}
}
}Was this page helpful?
Thanks for the feedback!