Skip to Content

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 author field is critical for Google’s quality evaluation
  • Rich snippets: Enables publish date, author, and article image in search results
  • Freshness signals: datePublished and dateModified help 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:

  1. Identify article pages: The crawler detects pages matching article URL patterns (/blog/, /news/, /articles/, /post/)

  2. Extract structured data: The crawler looks for JSON-LD, Microdata, or RDFa blocks on the page

  3. Check for Article schema: The crawler verifies if any schema block has:

    • @type set to Article, BlogPosting, NewsArticle, or TechArticle
    • Required properties: headline, author, datePublished
  4. Validate schema completeness: If Article schema is found, the crawler checks for:

    • author property (critical for E-E-A-T)
    • datePublished property (required for freshness signals)
    • image property (required for Top Stories)
    • dateModified property (helps with content updates)
  5. Trigger conditions: The issue is flagged when:

    • Article page doesn’t have Article schema
    • Article schema exists but is missing author property
    • Article schema exists but is missing datePublished property
    • Article schema exists but is missing image property

How To Fix

  1. 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" }
  2. Include required properties:

    • headline: Article title
    • author: Author information (use Person type with @id for E-E-A-T)
    • datePublished: ISO 8601 format with timezone
    • dateModified: Last modified date
    • image: Article featured image URL
    • publisher: Organization publishing the article
  3. Use the correct Article subtype:

    • Article: Generic article type
    • BlogPosting: For blog posts
    • NewsArticle: For news articles
    • TechArticle: For technical articles
  4. Link author to Person schema: Use @id to connect to author’s Person schema page

  5. 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

FieldTypeDescription
schemaTypeSchemaTypeThe type of schema (e.g., Organization, Person)
schemaFormatSchemaFormatThe format of the schema (JSON-LD, Microdata, RDFa)
schemaIdentifierString?Unique identifier for the schema
rawJsonJson?The raw JSON-LD or structured data content
schemaErrorsJson?Array of validation errors found in the schema
isValidSchemaBoolean?Whether the schema is valid according to validation
missingFieldsJson?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 Article schema with headline, author, and datePublished — 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
  • xeopix-crawling-v2/toggleGroups/structuredDataRichResults.js
  • xeopix-crawling-v2/issueCodes.js
  • xeopix-crawling-v2/utils/context.js
  • xeopix-crawling-v2/utils/issues.js
  • xeopix-crawling-v2/utils/schema.js

Coverage Summary

  • Covers valid Article schema detection
  • Covers empty HTML resilience

References

Last updated on