jekyll-structured-content
jekyll-structured-content generates JSON-LD structured data to help search engines and AI understand your content.
Open Source Plugin

jekyll-structured-content

A Jekyll plugin that generates structured data JSON-LD for posts, pages, projects, and FAQ content — without touching your theme markup.

jekyll-structured-content is a Jekyll plugin that emits clean, standards-compliant JSON-LD structured data from your existing frontmatter — no theme changes required. It handles BlogPosting, WebPage, ProfilePage, CreativeWork, and FAQPage schema types.

Why This Exists

Structured data helps search engines and AI systems understand what your content is, who wrote it, and what questions it answers. Most full SEO plugins bring too much with them — meta tag management, Open Graph, sitemaps. This plugin does one thing: emit valid JSON-LD from your Jekyll frontmatter and leave everything else alone.

Source Code

Installation

Add to your Gemfile:

gem "jekyll-structured-content", "~> 0.2.0"

Add to _config.yml:

plugins:
  - jekyll-structured-content

Then run bundle install.

Usage

Place the tag inside a <script> block in your layout:

<script type="application/ld+json">{% schema_json_ld post %}</script>

Supported types: post, page, project.

For FAQ schema, add an faq array to your frontmatter and emit it separately:

<script type="application/ld+json">{% faq_json_ld %}</script>
faq:
  - question: "What does this plugin do?"
    answer: "It emits JSON-LD structured data from Jekyll frontmatter."

What It Emits

Tag Schema type
{% schema_json_ld post %} BlogPosting
{% schema_json_ld page %} WebPage (or ProfilePage for /about/)
{% schema_json_ld project %} CreativeWork
{% faq_json_ld %} FAQPage

Live Example

This site uses the plugin on every post and project page. Example with both BlogPosting and FAQPage schema: