SEO Guide

How to Write JSON-LD Structured Data

Learn how to implement JSON-LD using schema.org vocabulary, avoid common mistakes, and choose the right schema type. Check your implementation free with our tool.

5 min read2026-04-02

Structured data (JSON-LD) is markup that describes page content in a format search engines can easily understand. It enables rich results in search and improves click-through rates.

What Is Structured Data?

Structured data is markup that describes your page content in a machine-readable format. It uses vocabulary defined by schema.org — a collaborative initiative founded by Google, Microsoft, Yahoo!, and Yandex — to explicitly communicate the type and attributes of your content.

There are three formats — JSON-LD, Microdata, and RDFa — but Google recommends JSON-LD for its ease of management. JSON-LD is written in a standalone <script> tag without modifying your HTML content.

/* JSON-LD basic structure */

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "ページのタイトル",
  "author": {
    "@type": "Person",
    "name": "著者名"
  },
  "datePublished": "2026-04-25"
}
</script>

Why Does Structured Data Matter?

When properly implemented, structured data can enable rich results in Google Search — visually enhanced listings that go beyond the standard blue link. FAQ dropdowns, star ratings, breadcrumbs, and price information all increase visibility and click-through rates.

+20–30%

Average CTR increase when rich results are shown

~35%

Sites with correctly implemented structured data

3 formats

JSON-LD, Microdata, and RDFa supported by Google

Key Schema.org Types

Schema.org defines hundreds of types, but the following six are most impactful for SEO. Each type enables different rich result features in search.

TypeUse CaseRich Result Effect
FAQPageFAQ pagesQ&A accordion appears in search results
ArticleBlog posts & newsAuthor, date, and thumbnail shown
ProductProduct pagesPrice, rating, and availability shown
BreadcrumbListBreadcrumb navigationPath shown instead of raw URL
OrganizationCompany/organization infoInfo appears in Knowledge Panel
LocalBusinessLocal shops & businessesShown in Maps & local search

JSON-LD Code Example: FAQPage

FAQPage is one of the highest-impact schema types. It can display Q&A accordions directly in search results, increasing the visual footprint of your listing and boosting CTR.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "構造化データとは何ですか?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "構造化データとは、Webページの内容を検索エンジンが理解しやすい形式で記述するマークアップです。"
      }
    },
    {
      "@type": "Question",
      "name": "JSON-LDはどこに書けばいいですか?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "HTMLの<head>内に<script type=\"application/ld+json\">タグで記述します。"
      }
    }
  ]
}
</script>

Note: The Q&A content in FAQPage must match text that is actually visible on the page. Adding hidden content or Q&As not present on the page violates Google's guidelines.

Common Mistakes to Avoid

Missing @context

Without "@context": "https://schema.org" at the top of your JSON-LD, Google cannot identify the vocabulary namespace and will return an error. Include it in every JSON-LD block.

Structured data doesn't match page content

If information in your structured data (price, rating, FAQ text) is not actually visible on the page, it violates Google's guidelines and risks a Manual Action penalty.

Missing required properties

Each schema.org type has required properties. For example, Product requires "name". Use Google's Rich Results Test before publishing to catch missing properties.

JSON syntax errors

Missing commas, unclosed brackets, or mismatched quotes will invalidate your entire JSON-LD block. Always validate with a JSON linter or the Rich Results Test.

Check Your Site's Structured Data

Enter a URL to instantly check your structured data implementation, missing types, and errors — all for free. Also checks title, meta description, and OGP.

今井政和

Written by

今井政和

SEO Director / Frontend Developer

SEO Director with 20+ years of web industry experience. Creator of SEO_CHECK and the official WordPress plugin "ORECTIC SEO CHECK." Author of a book on web strategy inspired by Edo-era merchant principles.

@imai_director

FAQ

Apa itu structured data?
Structured data adalah markup yang membantu mesin pencari memahami konten halaman web. Markup ini menggunakan kosakata yang didefinisikan oleh schema.org dan dapat ditulis dalam format JSON-LD, Microdata, atau RDFa. Google secara khusus merekomendasikan JSON-LD. Jika diimplementasikan dengan benar, structured data dapat mengaktifkan rich results di pencarian (rating bintang, dropdown FAQ, breadcrumb, dll.).
Di mana sebaiknya saya menempatkan JSON-LD dalam HTML?
Google menerima JSON-LD baik di <head> maupun <body>. Untuk kemudahan pemeliharaan, menempatkannya di <head> adalah praktik umum di proyek Next.js dan WordPress. Bungkus dengan tag <script type="application/ld+json">. Anda dapat menyertakan beberapa blok JSON-LD dalam satu halaman.
Apakah structured data meningkatkan peringkat SEO?
Structured data bukan faktor peringkat langsung, tetapi mengaktifkan rich results (dropdown FAQ, breadcrumb, dll.) dapat meningkatkan CTR secara signifikan di hasil pencarian. Structured data juga membantu Google memahami konten halaman Anda secara akurat, yang dapat bermanfaat bagi evaluasi E-E-A-T dari waktu ke waktu.
Apa yang harus dilakukan jika Rich Results Test Google menampilkan error?
Solusinya tergantung pada jenis error. 'Missing required property': tambahkan properti yang ditentukan. 'JSON syntax error': periksa koma, tanda kurung, atau tanda kutip yang hilang. 'Missing @context': tambahkan "@context": "https://schema.org" di bagian atas JSON Anda. Pastikan juga konten structured data sesuai dengan apa yang sebenarnya terlihat di halaman.
Bagaimana cara menambahkan structured data ke situs WordPress?
Plugin WordPress seperti RankMath, Yoast SEO, atau Schema Pro memungkinkan konfigurasi structured data melalui GUI. Untuk JSON-LD manual, Anda dapat menambahkannya melalui hook wp_head() di functions.php atau langsung di header.php. Plugin lebih mudah dikelola; implementasi manual menawarkan fleksibilitas lebih besar.