CMSKite

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.

DashboardStart freeNo card. Your blog is live in a minute.

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

Questions

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.

Checked