Step-by-Step JSON-LD Templates for Every Major Use Case

Ready-to-paste structured data templates with clear instructions

Published: February 10, 202610 min read

Implementing JSON-LD structured data doesn't have to be complicated. Whether you're adding FAQs, product information, how-to guides, or event details, these ready-to-use templates will get you started quickly. Simply copy, customize with your content, and paste into your website's <head> section.

Ready to optimize your content?

Generate optimized JSON-LD schemas to protect your traffic and optimize for AI search engines.

Get Started Free

No Credit Card Required

How to Use These Templates

  1. Copy the JSON-LD template for your use case
  2. Replace placeholder values (marked with YOUR_VALUE) with your actual content
  3. Paste the code into a <script type="application/ld+json"> tag
  4. Place it in your HTML <head> section
  5. Validate using Google's Rich Results Test tool

1. FAQ Schema Template

Perfect for FAQ pages, support documentation, or any content that answers common questions. This schema helps your FAQs appear as rich snippets in search results.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "YOUR_QUESTION_HERE",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "YOUR_ANSWER_HERE"
      }
    },
    {
      "@type": "Question",
      "name": "ANOTHER_QUESTION",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "ANOTHER_ANSWER"
      }
    }
  ]
}
</script>

Example: Replace "YOUR_QUESTION_HERE" with "What is JSON-LD?" and "YOUR_ANSWER_HERE" with your actual answer. Add more Question objects for additional FAQs.

2. HowTo Schema Template

Ideal for step-by-step guides, tutorials, recipes, and instructional content. This can appear as a rich snippet with expandable steps.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "HOW_TO_TITLE",
  "description": "BRIEF_DESCRIPTION",
  "image": "URL_TO_IMAGE",
  "totalTime": "PT30M",
  "estimatedCost": {
    "@type": "MonetaryAmount",
    "currency": "USD",
    "value": "0"
  },
  "supply": [
    {
      "@type": "HowToSupply",
      "name": "SUPPLY_ITEM_1"
    }
  ],
  "tool": [
    {
      "@type": "HowToTool",
      "name": "TOOL_ITEM_1"
    }
  ],
  "step": [
    {
      "@type": "HowToStep",
      "name": "STEP_1_NAME",
      "text": "STEP_1_INSTRUCTIONS",
      "image": "URL_TO_STEP_IMAGE",
      "url": "URL_TO_STEP_PAGE"
    },
    {
      "@type": "HowToStep",
      "name": "STEP_2_NAME",
      "text": "STEP_2_INSTRUCTIONS"
    }
  ]
}
</script>

Notes: "totalTime" uses ISO 8601 duration format (PT30M = 30 minutes). "estimatedCost" is optional. Add more steps as needed.

3. Product Schema Template

Essential for e-commerce sites. Include pricing, availability, reviews, and ratings to enable rich product snippets in search results.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "PRODUCT_NAME",
  "image": [
    "URL_TO_IMAGE_1",
    "URL_TO_IMAGE_2"
  ],
  "description": "PRODUCT_DESCRIPTION",
  "sku": "PRODUCT_SKU",
  "brand": {
    "@type": "Brand",
    "name": "BRAND_NAME"
  },
  "offers": {
    "@type": "Offer",
    "url": "PRODUCT_URL",
    "priceCurrency": "USD",
    "price": "99.99",
    "priceValidUntil": "2026-12-31",
    "itemCondition": "https://schema.org/NewCondition",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "reviewCount": "120"
  }
}
</script>

Important: Update "availability" to "https://schema.org/OutOfStock" or "https://schema.org/PreOrder" as needed. Remove "aggregateRating" if you don't have reviews.

4. VideoObject Schema Template

For video content, tutorials, product demos, or any video on your site. Helps videos appear in video search results and video carousels.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "VIDEO_TITLE",
  "description": "VIDEO_DESCRIPTION",
  "thumbnailUrl": "URL_TO_THUMBNAIL",
  "uploadDate": "2026-02-10T00:00:00Z",
  "duration": "PT5M30S",
  "contentUrl": "URL_TO_VIDEO_FILE",
  "embedUrl": "URL_TO_EMBED",
  "publisher": {
    "@type": "Organization",
    "name": "YOUR_ORGANIZATION",
    "logo": {
      "@type": "ImageObject",
      "url": "URL_TO_LOGO"
    }
  }
}
</script>

Notes: "duration" uses ISO 8601 format (PT5M30S = 5 minutes 30 seconds). Use "contentUrl" for direct video file or "embedUrl" for embedded videos.

5. Event Schema Template

Perfect for conferences, webinars, workshops, concerts, or any scheduled event. Enables rich event snippets with date, location, and ticket information.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "EVENT_NAME",
  "description": "EVENT_DESCRIPTION",
  "image": "URL_TO_EVENT_IMAGE",
  "startDate": "2026-03-15T10:00:00Z",
  "endDate": "2026-03-15T18:00:00Z",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "eventStatus": "https://schema.org/EventScheduled",
  "location": {
    "@type": "Place",
    "name": "VENUE_NAME",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "123 Main St",
      "addressLocality": "City",
      "addressRegion": "State",
      "postalCode": "12345",
      "addressCountry": "US"
    }
  },
  "organizer": {
    "@type": "Organization",
    "name": "ORGANIZER_NAME",
    "url": "ORGANIZER_URL"
  },
  "offers": {
    "@type": "Offer",
    "url": "TICKET_URL",
    "price": "99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "validFrom": "2026-01-01T00:00:00Z"
  }
}
</script>

Notes: For online events, change "eventAttendanceMode" to "https://schema.org/OnlineEventAttendanceMode" and update location accordingly. Remove "offers" if tickets aren't available.

6. Article/BlogPosting Schema Template

Essential for blog posts, news articles, and editorial content. Helps articles appear in Google News and article rich snippets.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "ARTICLE_TITLE",
  "description": "ARTICLE_DESCRIPTION",
  "image": "URL_TO_FEATURED_IMAGE",
  "datePublished": "2026-02-10T00:00:00Z",
  "dateModified": "2026-02-10T00:00:00Z",
  "author": {
    "@type": "Person",
    "name": "AUTHOR_NAME",
    "url": "AUTHOR_URL"
  },
  "publisher": {
    "@type": "Organization",
    "name": "PUBLISHER_NAME",
    "logo": {
      "@type": "ImageObject",
      "url": "URL_TO_LOGO"
    }
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "ARTICLE_URL"
  }
}
</script>

Tip: Use "BlogPosting" instead of "Article" for blog posts. Both work, but BlogPosting is more specific.

7. Organization Schema Template

Establish your brand's identity and authority. Should be on your homepage to help search engines understand your organization.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "YOUR_ORGANIZATION_NAME",
  "url": "YOUR_WEBSITE_URL",
  "logo": "URL_TO_LOGO",
  "description": "ORGANIZATION_DESCRIPTION",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main St",
    "addressLocality": "City",
    "addressRegion": "State",
    "postalCode": "12345",
    "addressCountry": "US"
  },
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+1-555-123-4567",
    "contactType": "customer service",
    "email": "contact@example.com"
  },
  "sameAs": [
    "https://www.facebook.com/yourpage",
    "https://twitter.com/yourhandle",
    "https://www.linkedin.com/company/yourcompany"
  ]
}
</script>

Tip: The "sameAs" array should include all your social media profiles to establish brand consistency.

8. BreadcrumbList Schema Template

Helps users and search engines understand your site structure. Can appear as breadcrumb navigation in search results.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://example.com"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Category",
      "item": "https://example.com/category"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Current Page",
      "item": "https://example.com/category/page"
    }
  ]
}
</script>

Note: Update the position numbers and URLs to match your actual site structure. Add or remove items as needed.

Best Practices

  • Validate your JSON-LD using Google's Rich Results Test before going live
  • Keep it accurate—don't include information that doesn't match your actual content
  • Update regularly—especially for products, events, and time-sensitive content
  • Use absolute URLs for all links and images
  • Test in production to ensure everything renders correctly

Common Mistakes to Avoid

  • Forgetting to replace placeholder values
  • Using relative URLs instead of absolute URLs
  • Including invalid date formats (use ISO 8601)
  • Missing required fields for specific schema types
  • Not validating before publishing

Ready to optimize your content?

Generate optimized JSON-LD schemas to protect your traffic and optimize for AI search engines.

Get Started Free

No Credit Card Required