Download brain/.raw/sources/claude-blog-skill/skills/blog-schema/SKILL.md from the publisher, or copy the path and open the repository. PlugMCP lists the skill and does not host the file.
Where does blog-schema live?
The publisher keeps it at https://github.com/AgriciDaniel/claude-blog.
Which agents can use blog-schema?
Claude, Cursor, and Codex can read a SKILL.md you add from the publisher's repository.
>
name: blog-schema
description: >
Generate complete JSON-LD schema markup for blog posts with Article/BlogPosting,
Person, Organization, BreadcrumbList, ImageObject, and optional FAQPage. Validates
against Google requirements and warns about deprecated types. Use when user
says "schema", "blog schema", "json-ld", "structured data", "schema markup",
"generate schema".
user-invokable: true
argument-hint: ""
license: MIT
Blog Schema: JSON-LD Structured Data Generation
Generates complete, validated JSON-LD schema markup for blog posts using the
@graph pattern. Combines multiple schema types into a single script tag with
stable @id references for entity linking.
Workflow
Step 1: Read Content
Read the blog post and extract all schema-relevant data:
Title (headline)
Author (name, job title, social links, credentials)
Dates (datePublished, dateModified / lastUpdated)
Description (meta description)
FAQ section (question and answer pairs)
Images (cover image URL, dimensions, alt text; inline images)
Organization info (site name, URL, logo)
Word count (approximate from content length)
Tags/categories (for BreadcrumbList category)
Slug (from filename or frontmatter)
Step 2: Generate BlogPosting Schema
Complete BlogPosting with recommended properties when applicable:
Google's Article structured data docs do not define required Article
properties. Include headline, datePublished, author, publisher, and
image when applicable, validate with the Rich Results Test, and treat missing
fields as warnings unless the target surface requires them. Recommended
properties: description, dateModified, mainEntityOfPage, wordCount, articleBody
(excerpt).
Step 3: Generate Person Schema
Author schema with stable @id for cross-referencing:
Logo requirements: use a valid crawlable image URL and follow the active
Organization and Article documentation for the target surface. Do not invent
hard logo dimensions unless the project or current docs require them.
If no category is available, use "Blog" as the second breadcrumb item with
{siteUrl}/blog as the URL.
Step 6: Generate FAQPage Entity Schema
Extract Q&A pairs from the blog post's FAQ section:
{
"@type": "FAQPage",
"@id": "{siteUrl}/blog/{slug}#faq",
"mainEntity": [
{
"@type": "Question",
"name": "What is the question?",
"acceptedAnswer": {
"@type": "Answer",
"text": "The complete answer text (40-60 words with statistic)."
}
}
]
}
Important note: Google retired FAQ rich results for all sites on 2026-05-07.
FAQPage is not a Google rich result path. Only emit FAQPage when visible FAQ
content exists, with at least one valid Question and matching visible answer.
Treat it as entity clarity markup, not a Google rich-result promise. The
Article/BlogPosting schema remains the priority for blog search eligibility.
Step 7: Generate VideoObject (if videos present)
For each YouTube video embedded in the post, generate a VideoObject schema:
Add each VideoObject to the @graph array. Use #video-1, #video-2 etc. for
the @id fragment. Extract video metadata from the embed's noscript fallback or
from YouTube Data API if available via blog-google.
Use only when current official docs and page content match
Validation checks:
All @id references resolve to entities within the @graph
dateModified is equal to or after datePublished
headline is concise. Warn when it may truncate or becomes unclear
description is concise, page-specific, and not duplicated across posts
All URLs are absolute (not relative)
Image dimensions are positive integers
BreadcrumbList positions are sequential starting from 1
If FAQPage is emitted, visible Q&A content exists and includes at least 1 valid Question
AI citation optimization note: Relevant schema helps entity clarity and
rich-result eligibility where supported, but structured data is not required for
Google generative AI search visibility. Prioritize Article/BlogPosting, Person,
Organization, and BreadcrumbList. Add ImageObject or VideoObject when assets
exist, and add FAQPage only when visible FAQ content exists.
Step 9: Output
Combine all schemas into a single <script> tag using the @graph pattern:
Single script tag instead of multiple - cleaner HTML
Entity linking via stable @id references (e.g., author references Person by @id)
Google and AI systems parse @graph arrays correctly
Easier to maintain and update as a single block
Output options:
Embedded HTML - Ready to paste into <head> or before </body>
Standalone JSON - For CMS schema fields or API injection
MDX component - If the project uses MDX, wrap in a component
Save the generated schema to the blog post file or to a separate schema file
as the user prefers.
How do I install blog-schema?
Download brain/.raw/sources/claude-blog-skill/skills/blog-schema/SKILL.md from the publisher, or copy the path and open the repository. PlugMCP lists the skill and does not host the file.
Where does blog-schema live?
The publisher keeps it at https://github.com/AgriciDaniel/claude-blog.
Which agents can use blog-schema?
Claude, Cursor, and Codex can read a SKILL.md you add from the publisher's repository.