An article, in structured data terms, is any authored, dated piece of writing that is not breaking news — a guide, a blog post, an explainer, a tutorial. The markup is Article or, for a blog, BlogPosting, and the reward is the Article rich result: your headline, image and date presented properly in search.

What is required

One property: headline. That makes Article the easiest rich result to qualify for, and the easiest to under-serve — a bare headline earns a bare result.

What is recommended, and why each one earns its place

  • image — an absolute URL to the article's image. This is what turns a text-only result into a visual one. Provide the largest version you have.
  • datePublished and dateModified — ISO 8601 with a timezone. The visible dates on the page must agree with them; when they disagree, Google trusts neither.
  • author — a Person (or Organization) with a name. Authorship is part of how content quality is assessed, and an author node with a url pointing at an author page strengthens the claim.
  • publisher — the site publishing the piece, with a name and a logo.
  • mainEntityOfPage — the canonical URL of the article, so the node and the page are unambiguously the same thing.
  • description — a one-or-two sentence summary, sensibly the same text as your meta description.

Article, BlogPosting, or TechArticle?

BlogPosting and TechArticle are subtypes of Article, and Google treats them identically for the rich result. Use the most accurate one — a blog post is a BlogPosting — but never agonise: the parent type is always correct, and no placement depends on the subtype.

An example

{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "What a canonical tag actually does",
  "image": ["https://example.com/img/canonical-guide.jpg"],
  "datePublished": "2026-07-02T08:00:00+05:30",
  "dateModified": "2026-08-11T10:30:00+05:30",
  "author": {"@type": "Person", "name": "R. Author",
             "url": "https://example.com/authors/r-author"},
  "publisher": {"@type": "Organization", "name": "Example Blog",
                "logo": {"@type": "ImageObject",
                         "url": "https://example.com/logo.png"}},
  "mainEntityOfPage": "https://example.com/guides/canonical-tags",
  "description": "A canonical tag is a hint, not an instruction."
}

The mistakes worth knowing

A relative image URL. /img/hero.jpg is valid HTML and an invalid claim in JSON-LD — the consumer of the markup is not standing on your page, so every URL in it must be absolute.

dateModified as a lever. Bumping the modified date without changing the article is documented manipulation. Set it when the content genuinely changes, and let it sit otherwise.

The headline and the H1 telling different stories. They may differ in wording, but a markup headline that describes a different article than the visible one reads as bait.

Checking your page

Confirm the block parses with the structured data validator, then run the complete page audit — it also verifies your dates agree between markup and visible copy, which is where article markup most often quietly fails.