Skip to main content

Confirm

Are you sure?

SEO · Checked on every page

Article pages declare Article structured dataWhat it checks and how to fix it

What it checks

Applies only to pages that look like articles (an <article> element, og:type=article or Article-family JSON-LD). Passes when the page declares Article, BlogPosting, NewsArticle, TechArticle, ScholarlyArticle or Report in JSON-LD, and warns when it declares none of them.

Why it matters

Article markup tells search engines and AI assistants the headline, the author and the publication and update dates without having to guess them from the layout. It makes the page eligible for article rich results, and the explicit author and dates are signals assistants use when deciding which source to quote. Without it, your posts compete as plain web pages.

How to fix it

Add a JSON-LD block of the most specific Article type to the head of every post, with values matching what the page
shows.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "How to set up DMARC without losing email",
  "description": "A step-by-step rollout from p=none to p=reject.",
  "image": "https://example.com/images/dmarc-rollout.png",
  "datePublished": "2026-03-02T09:00:00+00:00",
  "dateModified": "2026-06-18T14:30:00+00:00",
  "author": { "@type": "Person", "name": "Jane Doe", "url": "https://example.com/authors/jane-doe" },
  "publisher": { "@type": "Organization", "name": "Example", "logo": { "@type": "ImageObject", "url": "https://example.com/logo.png" } },
  "mainEntityOfPage": "https://example.com/blog/dmarc-rollout"
}
</script>

In Rails, build the hash in the view and print it with json_escape:

<script type="application/ld+json">
  <%= json_escape({ "@context": "https://schema.org", "@type": "BlogPosting",
                    headline: @post.title, datePublished: @post.published_at.iso8601,
                    dateModified: @post.updated_at.iso8601,
                    author: { "@type": "Person", name: @post.author.name } }.to_json).html_safe %>
</script>

Validate the result with Google's Rich Results Test.

Monitor this automatically

Full Stack Audit runs this check and 126 others on your site on a schedule, and emails you when one that passed starts failing.

More SEO checks