Guide

JSON-LD structured data for articles: a publisher's guide

Search engines read your HTML, but they also look for explicit machine-readable hints about what a page is. JSON-LD is the most common way publishers declare that a URL is an article, who wrote it, when it was published, and what it is about. Done correctly, structured data unlocks rich results in Google Search, helps news aggregators classify your content, and gives ad platforms a cleaner signal about page type. This guide walks through Article and NewsArticle schema, the properties that matter, how to test your markup, and mistakes that waste crawl budget without earning anything back.

What structured data does for publishers

Structured data is a vocabulary — usually schema.org — embedded in your page so crawlers do not have to guess. For a news site or guide library, the payoff is practical:

Structured data is not a substitute for good content or fast pages. It sits alongside technical SEO basics like canonical URLs, semantic headings, and Core Web Vitals. Google has stated structured data alone is not a direct ranking factor, but invalid or spammy markup can trigger manual actions — treat it as accurate metadata, not keyword stuffing.

JSON-LD vs other formats

Schema can be expressed three ways: JSON-LD (a <script type="application/ld+json"> block in <head> or body), Microdata (attributes on HTML elements), or RDFa. Google supports all three but recommends JSON-LD because it keeps presentation HTML separate from metadata and is easy to generate in static site templates.

For static publishers shipping hand-authored or templated HTML, JSON-LD wins on maintainability: copy one head snippet per article type, swap headline and dates, validate once, deploy. Microdata sprinkled through article body tags is harder to audit at scale and breaks more often when designers refactor markup.

Article vs NewsArticle: which type to use

Both inherit from CreativeWork. Pick based on editorial intent, not URL folder names:

Type Use when Examples on this site
Article Evergreen guides, explainers, tutorials, reference docs Wallet setup guides, developer how-tos
NewsArticle Time-sensitive reporting tied to a specific event or date Breaking tech news, market moves, product launches

Using NewsArticle on a five-year-old tutorial misleads crawlers. Using Article on same-day reporting is acceptable but may miss news-specific signals. When in doubt, Article is the safer default for educational content; reserve NewsArticle for pages where the publish date is part of the story's value.

Properties Google actually checks

Required for rich results (Article)

Strongly recommended

Optional but useful

Minimal working example

Place this in <head> alongside your canonical and Open Graph tags. Replace the placeholder values; every URL must be absolute ( https://).

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Your article title — matches H1",
  "description": "One-sentence summary aligned with meta description.",
  "author": {
    "@type": "Organization",
    "name": "Your Site Name",
    "url": "https://example.com/"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Your Site Name",
    "url": "https://example.com/",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png",
      "width": 600,
      "height": 60
    }
  },
  "image": ["https://example.com/og/article-card.png"],
  "mainEntityOfPage": "https://example.com/guides/your-slug/",
  "datePublished": "2026-06-07",
  "dateModified": "2026-06-07"
}
</script>

For breaking news, change @type to NewsArticle and add dateModified whenever you correct facts. Keep the JSON valid: no trailing commas, escape quotes inside strings, one root object per script tag (or use @graph for multiple entities on one page).

Align JSON-LD with visible page content

Google's guidelines require structured data to reflect what users see. That means:

The same alignment applies to Open Graph and Twitter cards: title, description, image, and URL should tell one coherent story across HTML meta tags, JSON-LD, and visible copy. Divergence confuses crawlers and looks like cloaking when the gaps are large.

Common mistakes that block rich results

How to test before and after deploy

Run the Rich Results Test every time you change a head template. A single bad deploy across hundreds of guides pollutes Search Console faster than you can fix URLs one by one.

Structured data in a static-site workflow

Teams shipping static HTML — no CMS — usually template the head once per content type (guide, news, product). A sensible pipeline:

Our Garden Dice build log documents similar head-template discipline for a product page — the same pattern scales to content libraries. Pair markup with performance work from our Core Web Vitals guide so rich results lead to pages that actually load.

Publisher checklist

Related reading