
Schema Markup Guide: Article, FAQ, HowTo JSON-LD for Blogs
From JSON-LD code to testing, done in five steps
Schema markup is structured data that tells search engines what your content means. When to use Article, FAQ, or HowTo, and how to test your JSON-LD code.
Schema markup is code that tells search engines and AI engines what the content on a web page means. People can look at HTML and immediately tell "Is this an FAQ, a review, or a guide?", but that judgment isn't easy for machines. Schema markup helps them make it[1]. Pages with schema can appear in search results as rich snippets such as star ratings, FAQ accordions, and step lists, and these rich snippets tend to get higher click-through rates than regular results.
What you need before you start
- Basic HTML knowledge (knowing what a script tag is is enough)
- CMS editing access, or an environment where you can edit code directly
- Access to Google Rich Results Test (for validation)
Five steps to apply it
Step 1: Choose the right schema type
| Content type | Suitable schema | Rich snippet effect |
|---|---|---|
| Blog post | Article | Shows publish date, author, image |
| Post with an FAQ | FAQPage | Can show an FAQ accordion |
| Step-by-step guide | HowTo | Shows a step list and time required |
| Product review | Review + Product | Shows star rating and price |
| Term definition | DefinedTerm | Definition snippet |
For most blogs, starting with the Article and FAQPage combination is enough.
Step 2: Write the basic JSON-LD structure
JSON-LD is a JSON format you place inside an HTML <script> tag. It's the method Google officially recommends[1].
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Post title",
"author": {
"@type": "Person",
"name": "Author name"
},
"datePublished": "2026-09-01",
"dateModified": "2026-09-08"
}
</script>
JSON-LD works whether you put it in <head> or <body>, but Google recommends putting it inside <head>.
Step 3: Apply Article schema
Here's the Article schema to apply to blog posts by default.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "On-page SEO checklist 2026",
"description": "An 8-step checklist from title tags to schema markup",
"author": {
"@type": "Person",
"name": "Author name",
"url": "https://example.com/about"
},
"publisher": {
"@type": "Organization",
"name": "Brand name",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
},
"datePublished": "2026-09-01",
"dateModified": "2026-09-08",
"mainEntityOfPage": "https://example.com/blog/on-page-seo-checklist-2026"
}
Step 4: Apply FAQ schema
Add this to posts that have an FAQ section.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Is schema markup required for SEO?",
"acceptedAnswer": {
"@type": "Answer",
"text": "It isn't required, but applying it improves your chances of getting rich snippets."
}
}
]
}
Note: The questions and answers in your FAQ schema must also be displayed as-is in the actual page body. Applying schema only to hidden content is a policy violation[2]. It also won't always show up as a rich result. Google decides whether to show it based on the query and the page's credibility, so adding schema correctly doesn't guarantee an accordion.
Step 5: Test and deploy
- Validate by entering a URL or code in Google Rich Results Test.
- Fix any errors. Missing required fields are the most common cause.
- After deploying, check recognition in Search Console's "Rich results" reports.
- It can take anywhere from a few days to a few weeks for rich snippets to show up.
Code examples by schema type
HowTo schema
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to apply schema markup",
"totalTime": "PT1H",
"step": [
{
"@type": "HowToStep",
"name": "Choose a schema type",
"text": "Choose the schema type that fits your content."
},
{
"@type": "HowToStep",
"name": "Write the JSON-LD",
"text": "Write JSON-LD code that matches the type you chose."
}
]
}
Applying multiple schemas at once
You can put multiple schemas on one page. To apply Article and FAQPage together, wrap them in an array like this.
<script type="application/ld+json">
[
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "..."
},
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [ ... ]
}
]
</script>
What schema means for GEO
Schema markup isn't just about decorating search results. In the AI era, it also becomes a reference signal as AI engines work to understand content.
AI systems can consult structured data when parsing web content, and when Article schema states the author, publish date, and affiliation, it can help AI identify the source more accurately. Providing trust signals such as author information, publish date, and organization information through schema also works in your favor in credibility assessments.
Keep in mind, though, that schema by itself doesn't guarantee AI citations. Schema matters more when it's used together with a body structure that answers questions directly, evidence and sources, and external trust signals. We cover this relationship in more detail from the perspective of treating schema as technical hygiene rather than an AI citation lever.
Practical tips
If your CMS has a plugin that auto-generates Article and FAQ schema, it can reduce the burden of hand-coding. The required and recommended fields for each type are clearly defined in the official schema.org documentation, so it's worth checking[3]. Overusing schema can backfire. Attaching schema that doesn't fit, like adding Review schema to a post that isn't a review, can actually put the page under review. Update the dateModified field every time you update the content. That date can act as a signal that the content is current.
Where people often get stuck
Rich Results Test shows an error. The most common cause is a missing required field. Article schema requires headline, author, and datePublished. Check the error message for the missing field and add it.
I applied schema but don't see rich snippets. Google doesn't guarantee that rich snippets will appear. Even if the schema is correct, it may not be shown if it's judged unsuitable for a particular query. Wait at least 2–4 weeks, then check Search Console.
I keep getting JSON-LD syntax errors. Most are missing commas or mismatched quotes. Paste your code into a JSON validator first to catch syntax errors, then validate the schema with Rich Results Test.
Schema markup is a fundamental that, once set up, lasts a long time. The safest approach is to apply Article and FAQPage accurately first, then add types that fit each page one at a time.
For related reading, see Does schema markup increase AI citations? The problem with JSON-LD that doesn't match the body, FAQ rich results are gone: should you delete FAQ schema? Moving to an in-body Q&A evidence structure, and What is GEO (Generative Engine Optimization)? Which pages to start with, and in what order.
Frequently asked questions
Is schema markup required for SEO?
It isn't required, but applying it helps both search engines and AI engines understand what the page means more accurately. Google doesn't guarantee rich results, but adding accurate structured data improves your chances of being eligible.
If I add FAQ schema, will it always appear as an accordion?
No. Search engines decide whether and how rich results appear based on the query and the page's credibility. The questions and answers in your FAQ schema must also appear as-is in the page body, and applying schema only to hidden content can be treated as a policy violation[2].
Can I put multiple schemas on one page at the same time?
Yes. You can include several @type entries together as an array inside a single script tag. Applying Article and FAQPage together is the most common combination for blog posts.
References
Summary
- Schema markup is JSON-LD code that clearly tells machines what a page means (a post, an FAQ, a guide), which is hard to tell from HTML alone.
- It's enough to start with Article for blog posts, FAQPage for pages with an FAQ, and HowTo for step-by-step guides.
- The questions and answers in FAQ schema must also be shown as-is in the body, and schema must not be applied to hidden content only.
- After applying it, the safe order is to validate with Google Rich Results Test, then check recognition in Search Console's rich results reports after deployment.
Produce the content this post covers from your brand standard
TRAIL Studio registers the brand standard once and produces cardnews, detail pages, product photos, shorts and blog posts from it. Generated output is reviewed and edited by a person before it ships.
More posts
Best AI Search Optimization Tools 2026: 6 GEO Tools Ranked
We compared six tools that check whether ChatGPT and other AI answers mention your brand, on measurement, action, engines, Korea support, and price.

Why Does ChatGPT Cite Listicles? Format vs. Hierarchy
Listicles split items cleanly, so AI can extract just what it needs. How to write citable listicles, whether format alone is enough, and how to build hierarchy.

What is GEO? Which pages to start with, and in what order
GEO structures content so generative search like ChatGPT and AI Overviews cites it. Does it replace SEO, what order to run it in, and how to measure it.
Keep reading on this topic
- Topical authority: why pillar-cluster beats a single postTopical authority comes from content clusters, not single posts: the pillar-cluster model, how to design one, why it wins in AI search, and when it's enough.
- A 4-step framework for SEO and GEO: split teams or merge?SEO and GEO work best on one content quality foundation. Whether to split or merge teams, a 4-step framework, why unified plans fail, and one shared metric.
- SEO and GEO top spots: high rankings, missing in AI answersReaching the top now covers how AI answers mention you, not just rankings. What changed, how to manage both tops, and why competitor comparison matters.
This post is part of the Content category, which collects all 41 posts on the topic. See all posts in Content