Why Google recommends JSON-LD schema

Historically, structured data was embedded directly inside HTML tags using Microdata or RDFa. This made code messy and prone to breaking whenever designs were updated.

Today, Google explicitly recommends JSON-LD (JavaScript Object Notation for Linked Data). JSON-LD lives in a clean, self-contained <script type="application/ld+json"> block in the head or body of the page, completely decoupled from your visual markup.

The 5 essential schema types for businesses

Schema typeWhere to deploySearch engine benefit
Organization / LocalBusinessHome and Contact pagesKnowledge Graph card, official logo, social profiles, NAP
BreadcrumbListAll secondary pagesClean breadcrumb URL trails instead of raw query strings
Article / BlogPostingArticles and guidesHeadline, author, publication date, and carousel eligibility
FAQPageService pages & FAQ sectionsExpandable Q&A accordions directly in search results
Product & AggregateRatingE-commerce product pagesLive pricing, stock availability, and gold review stars

Worked JSON-LD code example: FAQPage schema

Here is an example of valid FAQPage schema structured for a web design studio:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How is a website project priced?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Design and development are priced per page with our transparent pricing calculator."
      }
    }
  ]
}
</script>

Testing your schema and avoiding Google penalties

Google penalizes spammy or deceptive structured data. Always adhere to these three rules:

  1. Content Parity: Every piece of information in your JSON-LD must be visibly present on the page for human readers. Marking up hidden reviews or fake FAQs violates Google's guidelines.
  2. Validate with Google's Rich Results Test: Test your staging URLs at search.google.com/test/rich-results (opens in a new tab) to ensure zero syntax errors or missing required properties.
  3. Escape Quotation Marks: Ensure raw strings do not accidentally contain unescaped quotes that terminate the script tag.