schema-markup-generator – Writing & Content skill for AI agents
Generate and implement JSON-LD structured data for web apps, blogs, FAQs, and SaaS sites. Supports WebSite, SoftwareApplication, BlogPosting, FAQPage, HowTo, and more.
Install the schema-markup-generator skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/schema-markup-generator-7c076.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /schema-markup-generator – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/schema-markup-generator-7c076.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $schema-markup-generator – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/schema-markup-generator-7c076.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /schema-markup-generator – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/schema-markup-generator-7c076.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /schema-markup-generator – then describe the task you want done.
SKILL.md content
Schema Markup Generator Skill
Add JSON-LD structured data to pages to unlock rich results, improve CTR, and signal context to Google and AI systems.
---
When to Use
- Use when adding or auditing JSON-LD schema for websites, SaaS apps, tools, articles, FAQs, breadcrumbs, or organization pages.
- Use when schema must be implemented in Next.js App Router or validated against Google Rich Results and Schema.org tooling.
- Use when a page has strong content but lacks structured data for search engines and rich-result eligibility.
---
How to Add Schema in Next.js App Router
The cleanest approach is a reusable JsonLd component:
// components/JsonLd.jsx
export function JsonLd({ data }) {
const json = JSON.stringify(data).replace(/</g, '\\u003c');
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: json }}
/>
);
}Use it in any page:
import { JsonLd } from '@/components/JsonLd';
export default function MyPage() {
return (
<>
<JsonLd data={mySchemaObject} />
{/* rest of page */}
</>
);
}---
Schema Types by Page Type
WebSite / SearchAction (schema semantics, not a Google search-box feature)
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "100 SEO Tools",
"url": "https://www.100seotools.com",
"description": "Free online SEO tools for keyword research, technical audits, and more.",
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://www.100seotools.com/search?q={search_term_string}"
},
"query-input": "required name=search_term_string"
}
}---
SoftwareApplication (tool / SaaS app pages)
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Keyword Density Checker",
"applicationCategory": "WebApplication",
"operatingSystem": "Web",
"url": "https://www.100seotools.com/tools/keyword-density-checker",
"description": "Free keyword density checker tool. Analyze keyword frequency and optimize your content for SEO.",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
},
"featureList": [
"Analyze keyword frequency",
"Detect over-optimization",
"Export results as CSV"
],
"provider": {
"@type": "Organization",
"name": "100 SEO Tools",
"url": "https://www.100seotools.com"
}
}---
Article / BlogPosting (blog posts)
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "How to Improve Your Core Web Vitals in 2025",
"description": "A practical guide to improving LCP, INP, and CLS scores for better rankings.",
"url": "https://www.100seotools.com/blog/improve-core-web-vitals",
"datePublished": "2025-01-15",
"dateModified": "2025-03-20",
"author": {
"@type": "Person",
"name": "Jane Smith",
"url": "https://www.100seotools.com/author/jane-smith"
},
"publisher": {
"@type": "Organization",
"name": "100 SEO Tools",
"logo": {
"@type": "ImageObject",
"url": "https://www.100seotools.com/logo.png"
}
},
"image": {
"@type": "ImageObject",
"url": "https://www.100seotools.com/images/blog/core-web-vitals.jpg",
"width": 1200,
"height": 630
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://www.100seotools.com/blog/improve-core-web-vitals"
}
}---
FAQPage (FAQ sections, tool help pages)
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is keyword density?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Keyword density is the percentage of times a keyword appears in a piece of content relative to the total word count. There is no universal optimal keyword-density percentage; prioritize useful natural language and avoid keyword stuffing."
}
},
{
"@type": "Question",
"name": "Is this tool free to use?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, our keyword density checker is completely free with no registration required."
}
}
]
}---
HowTo (step-by-step tool guides)
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to Check Keyword Density",
"description": "Step-by-step guide to analyzing keyword density using our free tool.",
"totalTime": "PT2M",
"step": [
{
"@type": "HowToStep",
"position": 1,
"name": "Paste your content",
"text": "Copy your article or webpage content and paste it into the text area.",
"image": "https://www.100seotools.com/images/how-to/step1.jpg"
},
{
"@type": "HowToStep",
"position": 2,
"name": "Enter your target keyword",
"text": "Type the keyword you want to analyze in the keyword field."
},
{
"@type": "HowToStep",
"position": 3,
"name": "Click Analyze",
"text": "Press the Analyze button to get your keyword density report instantly."
}
]
}---
BreadcrumbList (all non-homepage pages)
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.100seotools.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "SEO Tools",
"item": "https://www.100seotools.com/tools"
},
{
"@type": "ListItem",
"position": 3,
"name": "Keyword Density Checker",
"item": "https://www.100seotools.com/tools/keyword-density-checker"
}
]
}---
Organization (about, contact pages)
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "100 SEO Tools",
"url": "https://www.100seotools.com",
"logo": "https://www.100seotools.com/logo.png",
"sameAs": [
"https://twitter.com/100seotools",
"https://www.linkedin.com/company/100seotools"
],
"contactPoint": {
"@type": "ContactPoint",
"contactType": "customer support",
"email": "[email protected]"
}
}---
Combining Multiple Schemas on One Page
A tool page can have BreadcrumbList + SoftwareApplication + FAQPage:
export default function ToolPage() {
return (
<>
<JsonLd data={breadcrumbSchema} />
<JsonLd data={softwareApplicationSchema} />
<JsonLd data={faqSchema} />
{/* page content */}
</>
);
}Each schema lives in its own <script> tag — do NOT merge them into one object.
---
Validation
Always validate schema before deploying:
1. Google Rich Results Test — https://search.google.com/test/rich-results
2. Schema.org Validator — https://validator.schema.org/
3. Google Search Console → Enhancements → check for warnings after deployment
# Quick check: schema appears in HTML
curl -s https://www.yourdomain.com/tools/keyword-density | grep -A 5 "application/ld+json"---
Schema Markup Checklist
- [ ] Homepage has
WebSiteschema - [ ] Tool/app pages have
SoftwareApplicationschema - [ ] Blog posts have
BlogPosting/Articleschema - [ ] FAQ sections have
FAQPageschema - [ ] Step-by-step guides have
HowToschema - [ ] All non-homepage pages have
BreadcrumbList - [ ] About/contact page has
Organizationschema - [ ] All URLs in schema are absolute HTTPS
- [ ] Schema validated with Google Rich Results Test
- [ ] No schema errors in Google Search Console
Limitations
- Does not guarantee rich-result eligibility or display; Google and other consumers decide whether to use valid schema.
- Generated examples must be adapted to the site's real content, legal entity details, ratings, pricing, and availability.
- Always validate deployed HTML, not only source code, because frameworks and rendering modes can change the final markup.
Google rich-result support is separate from Schema.org validity: sitelinks search box was removed in November 2024, HowTo rich results were deprecated in September 2023, and FAQ rich results are limited to eligible well-known authoritative government/health sites. Do not promise these enhancements for ordinary FAQ/how-to pages. Use only truthful visible content and real ratings; eligibility tests do not guarantee display. See [search-box removal](https://developers.google.com/search/blog/2024/10/sitelinks-search-box) and [FAQ/HowTo changes](https://developers.google.com/search/blog/2023/08/howto-faq-changes).
Related skills
- screenstudio-alt – Open-source headless Screen Studio alternative: auto speed-up of idle, auto-zoom on…
- scroll-experience – Expert in building immersive scroll-driven experiences - parallax storytelling, scroll…
- seo-aeo-blog-writer – Writes search-intent-led long-form articles with answer-first structure, FAQ coverage…
- seo-aeo-content-cluster – Builds a topical authority map from business goals, search intent, existing content, and…
- seo-content – Content quality and E-E-A-T analysis with AI citation readiness assessment. Use when…
- seo-content-auditor – Analyzes provided content for quality, E-E-A-T signals, and SEO best practices. Scores…
- seo-content-checker – SEO Content Checker. Use when working with content and target query or reader task.
- seo-content-planner – Creates comprehensive content outlines and topic clusters for SEO. Plans content…