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 impactful schema types for content publishers. Google uses it to power Top Stories carousels, article rich results, and author attribution in search. Providing accurate author and publisher information strengthens E-E-A-T signals and helps establish content credibility. The datePublished field is used for freshness signals in ranking. For blog posts specifically, consider using the more specific BlogPosting type instead.
Fields
| Field | Type | Required | Description |
|---|---|---|---|
headline | string | ✓ | The headline or title of the article. Should be concise and under 110 characters. |
description | string | — | A short summary or excerpt of the article content. |
image | string | — | URL of the article's main image or thumbnail. |
author.name | string | — | The name of the article's author. |
publisher.name | string | — | The name of the publishing organization. |
publisher.logo.url | string | — | URL of the publisher's logo image. |
datePublished | date | — | The date the article was originally published (ISO 8601 format). |
Plugin Registration
import { defineConfig } from 'sanity'
import { schemaOrgArticlePlugin } from 'sanity-plugin-seofields/schema'
export default defineConfig({
// ... your sanity config
plugins: [
schemaOrgArticlePlugin(),
],
})Schema Usage
Add theschemaOrgArticle field to any document schema:
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
*[_type == "yourDocument"][0]{
schemaOrgArticle {
headline,
description,
image,
author {
name
},
publisher {
name,
logo {
url
}
},
datePublished
}
}Next.js Component
import { ArticleSchema } from 'sanity-plugin-seofields/schema/next'
export default function Layout({ data }) {
return <ArticleSchema data={data.schemaOrgArticle} />
}JSON-LD Output
{
"@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"
}Was this page helpful?