Generates JSON-LD Schema.org markup (WebSite, SoftwareApplication, BlogPosting, FAQPage, HowTo, BreadcrumbList, Organization) for Next.js. Use when adding or validating structured data for rich results. Not for Open Graph or Twitter cards alone. Never merge multiple schema types into one JSON-LD object.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Um comando direto ignora o prompt de revisão. Verifique a origem antes de executá-lo.
Instruções da origem · Visualização somente leitura
name
schema-markup-generator
description
Generates JSON-LD Schema.org markup (WebSite, SoftwareApplication, BlogPosting, FAQPage, HowTo, BreadcrumbList, Organization) for Next.js. Use when adding or validating structured data for rich results. Not for Open Graph or Twitter cards alone. Never merge multiple schema types into one JSON-LD object.
Add JSON-LD structured data to pages to unlock rich results, improve CTR, and signal context to Google and AI systems. Supports WebSite, SoftwareApplication, BlogPosting, FAQPage, HowTo, BreadcrumbList, and Organization schemas with Next.js App Router integration.
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.
Choose the schema that matches the page's primary purpose:
Page Type
Schema Type
Homepage
WebSite (+ optional Organization)
Tool / SaaS app page
SoftwareApplication
Blog post
BlogPosting or Article
FAQ section / help page
FAQPage
Step-by-step guide
HowTo
Any non-homepage page
BreadcrumbList (additive)
About / contact page
Organization
4. Generate the Schema Object
Below are production-ready templates. Replace all URLs, names, dates, and content with the site's real data.
WebSite + Sitelinks Searchbox (homepage only)
{
"@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, FID, 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. A healthy keyword density is typically 1-3%."
}
},
{
"@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."
}
]
}
HARD RULE: Each schema lives in its own <script> tag — do NOT merge them into one object. Google and other consumers expect separate JSON-LD blocks per type.
Google Search Console → Enhancements → check for warnings after deployment
7. Quick Local Check (Windows PowerShell)
# Check if schema appears in rendered HTML
(Invoke-WebRequest -Uri "https://www.yourdomain.com/tools/keyword-density" -UseBasicParsing).Content | Select-String -Pattern "application/ld\+json" -Context 0,5
Pitfalls
Do NOT merge multiple schema types into a single JSON-LD object. Each type gets its own <script type="application/ld+json"> tag.
Do NOT use relative URLs in schema. All URLs must be absolute HTTPS (e.g., https://www.example.com/page, not /page).
Do NOT deploy without validating the rendered HTML. Frameworks and rendering modes (SSR, SSG, CSR) can change the final markup. Always validate the deployed page, not only the source code.
Do NOT use placeholder content in production. Generated examples must be adapted to the site's real content, legal entity details, ratings, pricing, and availability.
Do NOT assume rich-result display. Valid schema does not guarantee rich-result eligibility or display; Google and other consumers decide whether to use it.
Do NOT forget the </script> escape. The replace(/</g, '\\u003c') in the JsonLd component prevents content containing </script> from breaking the HTML parser.
Do NOT put WebSite schema on non-homepage pages. The WebSite type with potentialAction (SearchAction) is for the homepage only.
Do NOT omit BreadcrumbList on inner pages. Every non-homepage page should include breadcrumb schema for navigation context.
Do NOT use datePublished and dateModified interchangeably.datePublished is the original publish date; dateModified is the last significant update. Both should use ISO 8601 format (YYYY-MM-DD).
Verification
Checklist
Homepage has WebSite schema
Tool/app pages have SoftwareApplication schema
Blog posts have BlogPosting / Article schema
FAQ sections have FAQPage schema
Step-by-step guides have HowTo schema
All non-homepage pages have BreadcrumbList
About/contact page has Organization schema
All URLs in schema are absolute HTTPS
Schema validated with Google Rich Results Test
No schema errors in Google Search Console
Commands
# Verify schema script tags exist in rendered HTML
(Invoke-WebRequest -Uri "https://www.yourdomain.com/" -UseBasicParsing).Content | Select-String -Pattern "application/ld\+json" -AllMatches
# Count how many JSON-LD blocks are on a page
((Invoke-WebRequest -Uri "https://www.yourdomain.com/tools/example" -UseBasicParsing).Content | Select-String -Pattern "application/ld\+json" -AllMatches).Count