Product Schema vs Article Schema: When to Use Which
A decision tree for the confusing cases — shop product pages, blogs, review posts. When you need both at once, and real-world mistakes to avoid.
The one-line answer
Selling =
Product. Reading =Article.
That single rule decides 90% of cases. Look at the page's primary intent (transactional vs informational) and you'll know.
1. When to use Product schema
Use it for a single item that the page lets you buy, book, or directly inquire about.
{
"@type": "Product",
"name": "iPhone 17 Pro",
"image": "https://example.com/iphone17.jpg",
"description": "...",
"brand": { "@type": "Brand", "name": "Apple" },
"offers": {
"@type": "Offer",
"price": "1490000",
"priceCurrency": "KRW",
"availability": "https://schema.org/InStock",
"url": "https://example.com/iphone17"
}
}
offers is the key. Without price, currency, and availability, it's not really a Product. Marking a no-price page as Product is meaningless.
Typical Product pages:
- E-commerce product detail
- A single plan on a SaaS pricing page
- Real estate listing (RealEstateListing is more precise, but Product works)
- Digital download
2. When to use Article schema
Use it for content made to be read — blog posts, news articles, tutorials, review pieces, etc.
{
"@type": "Article",
"headline": "iPhone 17 Pro After One Month — A Camera-First Review",
"description": "...",
"author": { "@type": "Person", "name": "Kyungchan Yang" },
"datePublished": "2026-05-04",
"image": "https://example.com/review-cover.jpg",
"publisher": {
"@type": "Organization",
"name": "Schema:LAB"
}
}
The keys are headline, author, datePublished, publisher. Without an author and publish date, it's not really an Article. AI search uses these to phrase citations like "According to Kyungchan Yang's piece from May 4, 2026…"
Typical Article pages:
- Blog posts
- News articles
- Reviews and user experiences
- Guides and tutorials
- Interviews
3. Decision tree
For confusing cases, walk through this:
1. Is the primary action on this page "buying/booking" or "reading"?
→ Buying: Product
→ Reading: Article — continue to question 2
2. (If Article) Are prices and stock visible on the page,
so the user can buy right there?
→ Yes: Article + Product (Article is main)
→ No: Article only
3. Does the page compare or showcase multiple products?
→ Yes: Article + `ItemList<Product>`
→ Single product: decide via question 1
4. Four confusing cases
A. Affiliate / review blog
Article (BlogPosting) is the main type. Wrap the reviewed products in an ItemList, and mark each entry as a Product.
{
"@type": "BlogPosting",
"headline": "Top 5 Wireless Earbuds of 2026",
"author": {...},
"datePublished": "...",
"mainEntity": {
"@type": "ItemList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"item": {
"@type": "Product",
"name": "AirPods Pro 3",
"offers": { "@type": "Offer", "price": "...", "url": "..." }
}
},
...
]
}
}
This gives the search engine the right context: "this post is a review by Kyungchan Yang comparing 5 products." If you mark the page as Product alone, it gets read as "you can buy AirPods here directly," and your affiliate links to external sites can get flagged as spam.
B. E-commerce product detail with blog-style copy
Product is the main type. Even if the body has long "product story" prose, if the page's primary intent is purchase, Product is the main entity. Don't bolt Article on as a supporting type — just write a rich description on the Product.
C. SaaS pricing page
For a single plan, Product works. For multiple plans, don't mark up each as a separate Product — keep the page as WebPage and represent each plan as an Offer (or OfferCatalog). Usually a SaaS pricing page just needs Organization + WebPage with no further markup.
D. News-site product recommendation article
NewsArticle is the main type + recommended products as Product or ItemList<Product>. This gives you NewsArticle's trust signal and Product's rich data.
5. Three mistakes you'll see in the wild
! Common real-world errors
- Marking a blog review with Product as the main entity → Google reads it as "buy here directly," and affiliate pages get classified as ad content
- Product markup on a shop detail page without a price → Google won't process it as a rich result; the markup is wasted
- One random Product on a category page (the first item) → doesn't match the page intent, gets ignored or penalized
6. What you get when you mark it up correctly
| Page type | Wrong markup | Correct result |
|---|---|---|
| Affiliate review | Product only | Article + ItemList → AI answers cite as "According to Kyungchan Yang's comparison review…" |
| Shop detail | Article only | Product + Offer → price, stars, stock visible in search results |
| Blog post | Product only | Article → cited with author and date, higher trust |
| News article | Generic Article | NewsArticle → qualifies for Google News surfaces |
Apply this to your site
If you're not sure, start with a diagnosis. We auto-detect page type and recommend the right schema.
Paste a URL and we auto-analyze the page type to recommend Product or Article. From the recommendation, one click takes you to auto-generation.
→ Get a schema recommendation from a diagnosticWe analyze OG tags and page metadata to pick the right type automatically. Not happy with the result? Open it in the form builder and edit.
→ Auto-generate from URL (auto-detects Article vs Product)