Skip to main content
seofields
docs

Article

The Article schema type represents a written piece of content such as a news article, editorial, or investigative report. It enables Google to display rich results with headline, author byline, publish date, and thumbnail images.

About Article

Article markup is one of the most useful schema types for content publishers. It gives search engines explicit headline, image, author, publisher, and date signals that can support eligible article rich results and clearer attribution. Providing accurate author and publisher information strengthens E-E-A-T context and helps establish content credibility. Include both datePublished and dateModified when available so freshness is transparent. For blog posts specifically, consider using the more specific BlogPosting type instead.

Fields

FieldTypeRequiredDescription
headlinestringThe headline or title of the article. Should be concise and under 110 characters.
descriptionstringA short summary or excerpt of the article content.
imagestringURL of the article's main image or thumbnail.
author.namestringThe name of the article's author.
publisher.namestringThe name of the publishing organization.
publisher.logo.urlstringURL of the publisher's logo image.
datePublisheddateThe date the article was originally published (ISO 8601 format).
articleSectionstringThe section of the publication this article belongs to (e.g. "Sports", "Business").

Plugin Registration

sanity.config.ts
import { defineConfig } from 'sanity'
import { schemaOrgArticlePlugin } from 'sanity-plugin-seofields/schema'

export default defineConfig({
  // ... your sanity config
  plugins: [
    schemaOrgArticlePlugin(),
  ],
})

Schema Usage

Add the schemaOrgArticle field to any document schema:

schemas/page.ts
import { defineField, defineType } from 'sanity'

export default defineType({
  name: 'page',
  title: 'Page',
  type: 'document',
  fields: [
    // ... your other fields
    defineField({
      name: 'schemaOrgArticle',
      title: 'Article Schema',
      type: 'schemaOrgArticle',
    }),
  ],
})

GROQ Query

GROQ query
*[_type == "yourDocument"][0]{
  schemaOrgArticle {
    headline,
    description,
    image,
    author {
      name
    },
    publisher {
      name,
      logo {
        url
      }
    },
    datePublished,
    articleSection
  }
}

Next.js Component

app/layout.tsx
import { ArticleSchema } from 'sanity-plugin-seofields/schema/next'

export default function Layout({ data }) {
  return <ArticleSchema data={data.schemaOrgArticle} />
}

JSON-LD Output

Generated JSON-LD
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How to Implement Structured Data for SEO",
  "description": "A comprehensive guide to adding Schema.org markup to your website for better search visibility.",
  "image": "https://example.com/images/structured-data-guide.jpg",
  "author": {
    "@type": "Person",
    "name": "Jane Doe"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Acme Publishing",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  },
  "datePublished": "2025-01-15",
  "articleSection": "Technology"
}

Last updated: May 27, 2026. Tested with: Sanity Studio v3, v4, and v5.

Was this page helpful?