Skip to content
Issue docs

No Article or BlogPosting schema on an article

Standardarticle_blogposting_schemaIssue 92

What is this issue?

This issue reports an Article, BlogPosting, NewsArticle or TechArticle schema block your page already declares that is missing a required property or fails one of Google's rich-result value rules — not a page that has no Article schema at all.

Checked once a page declares one of these types:

  • headline, author and datePublished are present
  • headline is 110 characters or fewer (Google truncates beyond that)
  • image is present, and — when written as an ImageObject with declared dimensions — its long edge is at least 1200px
  • datePublished and dateModified are valid ISO 8601 dates
  • author entries carry a name and a @type of Person or Organization

What this issue is not: it does not guess that a page under /blog/ or /news/, or one that reads like an article, ought to carry this schema. A page with no Article schema is never reported, whatever its URL pattern or title suggests.

Why it matters

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 to fix it

If this issue was raised, your page already declares an Article-family schema — open the finding for the exact property or value at fault. The steps below are for a page that declares none yet: worthwhile to add, and never reported as a defect while absent.

  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

Examples

Example 1: No Schema Declared — Not This Issue

<!-- Blog post without any 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>

Nothing is reported, whatever the URL or title suggests. See How to fix it for why adding the schema is worth doing anyway.

Example 2: A Well-Formed NewsArticle (passes)

{
  "@context": "https://schema.org",
  "@type": "NewsArticle",
  "headline": "New SEO Guidelines Released",
  "image": {
    "@type": "ImageObject",
    "url": "https://www.example.com/news-image.jpg",
    "width": 1600,
    "height": 900
  },
  "author": { "@type": "Person", "name": "John Doe" },
  "datePublished": "2024-03-10T14:30:00Z",
  "publisher": { "@type": "Organization", "name": "Example News" }
}

Example 3: Incomplete Article Schema (fails)

Problematic state:

{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "SEO Tips"
}

Reported: author missing, datePublished missing, image missing.

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"
}

Example 4: An Image Too Small for the Rich Result (fails)

Problematic state:

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Small Image Example",
  "author": { "@type": "Person", "name": "Jane Smith" },
  "datePublished": "2024-03-01",
  "image": {
    "@type": "ImageObject",
    "url": "https://www.example.com/thumb.jpg",
    "width": 300,
    "height": 200
  }
}

Reported: image (ImageObject) long edge is 300px (Google requires at least 1200px). A bare image URL string, with no declared dimensions, is accepted as-is.

Corrected state: publish an image whose long edge is at least 1200px, or point to one as a plain URL string.

How PixyScan detects this

  1. Read the declared structured data: every JSON-LD block is parsed, and @graph wrappers are flattened.

  2. Select declared Article entities: any schema block whose @type is Article, BlogPosting, NewsArticle or TechArticle. A page that declares none of these is not examined — the URL is never inspected for /blog/, /news/ or similar patterns.

  3. Check the required properties: headline, author and datePublished must be present.

  4. Check the rich-result value rules:

    • headline — flagged if longer than 110 characters, the point at which Google truncates it in the rich result
    • image — required; if declared as an ImageObject with dimensions, its long edge must be at least 1200px (a bare image URL string is accepted as-is, since there is nothing to measure)
    • datePublished / dateModified — each, if present, must be a valid ISO 8601 date
    • author — each entry must be an object with a non-empty name and a @type of Person or Organization
  5. This is reported when: the page declares an Article-family schema that is missing a required property, or whose declared values fail the rules above. A blog post, news article or how-to guide with no Article schema at all is never reported, whatever its URL or title suggests.

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? Reserved for future use — the crawler always writes null here today; no check currently populates it

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

Further reading