logo
Intermediate2min read

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.

TypeBest forGoogle feature
**Article**In-depth editorial, academic or long-form contentAuthor, date, image in results
**BlogPosting**Standard blog entriesGoogle Discover eligibility
**NewsArticle**Time-sensitive journalismGoogle 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 name
  • wordCount — total word count
  • inLanguage — 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

json
{
  "@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?