Glossary · SEO

Structured data (JSON-LD)

Structured data is a description of a page in a vocabulary machines understand, usually schema.org: this is an article, this is its headline, this is who wrote it and when. JSON-LD is the format Google recommends for it, a block of JSON in a script tag that readers of the page never see.

Updated 4 October 2026

An example

A blog post described as a schema.org BlogPosting. Every value is also on the page itself: the headline, the date under it, the author’s name.

Anywhere in the post page’s HTML

html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "How Much Does a Wedding Cake Cost?",
  "description": "Our 2026 prices for two- and three-tier wedding cakes, and how far ahead to order.",
  "image": "https://bakery.example/images/wedding-cake.jpg",
  "datePublished": "2026-09-14T09:00:00+01:00",
  "dateModified": "2026-09-28T16:30:00+01:00",
  "author": { "@type": "Person", "name": "Rosa Lima" },
  "mainEntityOfPage": "https://bakery.example/blog/wedding-cake-guide"
}
</script>

Why it matters for a small-business blog

Google says Article data “can help Google understand more about the web page and show better title text, images, and date information” in results. A search engine can guess those from your layout; structured data means it does not have to.

The same block is read by other machines that read the web, including assistants that answer questions from it: it says plainly which text is the article, who wrote it and when. Nobody can promise it gets you quoted, but it removes a reason not to be.

Common mistakes

  • Describing what is not on the page. Google: don’t mark up content that is not visible to readers. An author or a rating that only exists in the JSON is against its guidelines.
  • Dates without a time zone, or a dateModified that changes when nothing did. Google recommends ISO 8601 with time-zone information.
  • Extra words in the author’s name. Google asks for the name only in author.name, not “By Rosa Lima, head baker”.
  • Breaking the page. A JSON-LD block is still a script tag: a post that contains </script> ends it early. Escape < as \u003c when you write the JSON.
  • Expecting a rich result. Google does not guarantee that structured data will show up in results, even when it is correct.
  • Never testing it. Google’s Rich Results Test shows what it reads from a page, and URL Inspection in Search Console confirms it was found.

How CMSKite handles it

  • On the free blog link, each post page carries BlogPosting (headline, description, language, published and updated dates, category, tags, reading time, author, image and its canonical address) and a breadcrumb trail; the blog’s front page carries Blog data listing its posts.
  • With the embed, the script adds BlogPosting to your page when a post opens: headline, description, language, dates, address, author and image. Google reads it after running the script.
  • Through the API, every value is in the post; your page writes the block. The code, with the escaping, is in Making your posts findable.
  • This page has structured data too: it is a schema.org DefinedTerm, part of the glossary’s DefinedTermSet.

Sources

Checked on 4 October 2026.

Is JSON-LD the same as schema.org?

No. Schema.org is the vocabulary (BlogPosting, headline, author); JSON-LD is one way of writing it on a page. Microdata and RDFa are the others. Google recommends JSON-LD.

Does structured data improve rankings?

Google describes it as helping it understand a page and show it with better title, image and date information. It does not promise anything beyond that, and neither do we.

Start free. Your blog can be live today.

No card needed. Embed it on any website, or publish on a free blog link.

Free plan forever · No card · Free 10-minute setup call