No Article or BlogPosting schema on an article
What Is This Issue
Blog posts or news articles are missing Article, BlogPosting, or NewsArticle schema, losing eligibility for Top Stories, Google Discover, and AI citation attribution.
Without Article schema:
- Your articles won’t appear in Google’s Top Stories carousel
- You won’t be eligible for Google Discover
- AI search engines can’t properly attribute content to authors
- Rich snippets showing publish date and author won’t appear
- E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) signals are weakened
A proper Article schema should include: @type (Article, BlogPosting, NewsArticle, or TechArticle), headline, author, datePublished, dateModified, image, and publisher.
Why Is This Important
Article schema is critical for content visibility and authority:
- Top Stories eligibility: Articles with proper schema can appear in Google’s Top Stories carousel
- Google Discover: Enables content to appear in Google Discover feed
- AI citation attribution: AI search engines use Article schema to properly attribute and cite content
- E-E-A-T signals: The
authorfield is critical for Google’s quality evaluation - Rich snippets: Enables publish date, author, and article image in search results
- Freshness signals:
datePublishedanddateModifiedhelp search engines understand content freshness
Resolving this issue improves your SEO health score by ensuring articles are properly structured for maximum visibility and authority.
How XeoPix Detects This
XeoPix follows these logical steps to detect missing Article schema:
-
Identify article pages: The crawler detects pages matching article URL patterns (
/blog/,/news/,/articles/,/post/) -
Extract structured data: The crawler looks for JSON-LD, Microdata, or RDFa blocks on the page
-
Check for Article schema: The crawler verifies if any schema block has:
@typeset toArticle,BlogPosting,NewsArticle, orTechArticle- Required properties:
headline,author,datePublished
-
Validate schema completeness: If Article schema is found, the crawler checks for:
authorproperty (critical for E-E-A-T)datePublishedproperty (required for freshness signals)imageproperty (required for Top Stories)dateModifiedproperty (helps with content updates)
-
Trigger conditions: The issue is flagged when:
- Article page doesn’t have Article schema
- Article schema exists but is missing
authorproperty - Article schema exists but is missing
datePublishedproperty - Article schema exists but is missing
imageproperty
How To Fix
-
Add Article/BlogPosting JSON-LD structured data to all article pages:
{ "@context": "https://schema.org", "@type": "BlogPosting", "headline": "How to Implement Schema in 2024", "image": "https://www.example.com/image.jpg", "author": { "@type": "Person", "name": "Jane Smith", "@id": "https://www.example.com/author/jane" }, "publisher": { "@type": "Organization", "name": "Example Corp", "logo": { "@type": "ImageObject", "url": "https://www.example.com/logo.png" } }, "datePublished": "2024-03-01T08:00:00Z", "dateModified": "2024-03-15T10:00:00Z" } -
Include required properties:
headline: Article titleauthor: Author information (usePersontype with@idfor E-E-A-T)datePublished: ISO 8601 format with timezonedateModified: Last modified dateimage: Article featured image URLpublisher: Organization publishing the article
-
Use the correct Article subtype:
Article: Generic article typeBlogPosting: For blog postsNewsArticle: For news articlesTechArticle: For technical articles
-
Link author to Person schema: Use
@idto connect to author’s Person schema page -
Validate with Google’s Rich Results Test
What We Store
Storage Level
Page Level — This issue is evaluated for each individual URL that contains structured data.
Database Table / Prisma Model
PageStructuredData
Stored Fields
| Field | Type | Description |
|---|---|---|
| schemaType | SchemaType | The type of schema (e.g., Organization, Person) |
| schemaFormat | SchemaFormat | The format of the schema (JSON-LD, Microdata, RDFa) |
| schemaIdentifier | String? | Unique identifier for the schema |
| rawJson | Json? | The raw JSON-LD or structured data content |
| schemaErrors | Json? | Array of validation errors found in the schema |
| isValidSchema | Boolean? | Whether the schema is valid according to validation |
| missingFields | Json? | Array of required fields that are missing |
Detection Dependencies
- The following data sources are required to evaluate this issue:
- HTML Document — The crawler parses the HTML to find structured data (JSON-LD, Microdata, RDFa)
- Structured Data Validation — The extracted schema is validated against Schema.org definitions
- Schema Parser — JSON-LD scripts, Microdata attributes, and RDFa markup are parsed
Examples
Example 1: Missing Article Schema on Blog Post
Problematic state:
<!-- Blog post without Article schema -->
<html>
<head>
<title>How to Implement Schema in 2024</title>
</head>
<body>
<h1>How to Implement Schema in 2024</h1>
<p>By Jane Smith | Published March 1, 2024</p>
<p>Article content goes here...</p>
</body>
</html>Corrected state:
<!-- Blog post with Article schema -->
<html>
<head>
<title>How to Implement Schema in 2024</title>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "How to Implement Schema in 2024",
"image": "https://www.example.com/image.jpg",
"author": {
"@type": "Person",
"name": "Jane Smith",
"@id": "https://www.example.com/author/jane"
},
"publisher": {
"@type": "Organization",
"name": "Example Corp",
"logo": {
"@type": "ImageObject",
"url": "https://www.example.com/logo.png"
}
},
"datePublished": "2024-03-01T08:00:00Z",
"dateModified": "2024-03-15T10:00:00Z"
}
</script>
</head>
<body>
<h1>How to Implement Schema in 2024</h1>
<p>By Jane Smith | Published March 1, 2024</p>
<p>Article content goes here...</p>
</body>
</html>Example 2: Article Schema with NewsArticle
Corrected state (for news article):
{
"@context": "https://schema.org",
"@type": "NewsArticle",
"headline": "New SEO Guidelines Released",
"image": "https://www.example.com/news-image.jpg",
"author": {
"@type": "Person",
"name": "John Doe"
},
"datePublished": "2024-03-10T14:30:00Z",
"publisher": {
"@type": "Organization",
"name": "Example News"
}
}Example 3: Incomplete Article Schema
Problematic state:
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "SEO Tips"
}Missing required properties: author, datePublished, image
Corrected state:
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "SEO Tips for 2024",
"author": {
"@type": "Person",
"name": "Jane Smith"
},
"datePublished": "2024-03-01T08:00:00Z",
"image": "https://www.example.com/seo-tips.jpg"
}Unit Test
Test File
xeopix-crawling-v2/__tests__/seo-audit-checks/structuredDataRichResults/issue-60-article-blogposting-schema.test.js
Purpose
Validates that the crawler correctly validates Article/BlogPosting JSON-LD schemas and does not report false positives when the schema is properly formed.
Tested Function
runStructuredDataRichResults()
Issue Information
- Issue Number: 60
- Issue Code:
article_blogposting_schema - Toggle Group:
structuredDataRichResults
Test Scenarios
Positive Test Cases
- Valid Article schema: Page has an
Articleschema withheadline,author, anddatePublished— no issue reported.
Negative Test Cases
None — the test only validates that valid schemas pass.
Boundary Cases
None.
Edge Cases
- Empty HTML:
<html></html>— no crash.
Expected Outcome
Pass
Issue should not be reported when a valid Article/BlogPosting schema with required properties is present.
Fail
No negative test cases are defined.
Validation
- Correct pass-through of valid Article/BlogPosting schemas
- Graceful handling of empty HTML
Related Production Files
xeopix-crawling-v2/toggleGroups/structuredDataRichResults.jsxeopix-crawling-v2/issueCodes.jsxeopix-crawling-v2/utils/context.jsxeopix-crawling-v2/utils/issues.jsxeopix-crawling-v2/utils/schema.js
Coverage Summary
- Covers valid Article schema detection
- Covers empty HTML resilience
References
- Schema.org — Article — Schema.org
- Schema.org — BlogPosting — Schema.org
- Google — Article Structured Data — Google Search Central