Panduan Product Schema
cara implement schema.org/Product markup untuk Google's product snippet dan merchant listing rich hasil — diperlukan vs. recommended properties, availability enum, why Product schema isn't yang sama sebagai sebuah Merchant Center feed, dan cara fix umum Search Console errors.
Bahasa
Product schema (schema.org/Product) adalah data terstruktur itu tells mesin pencari sebuah halaman's product name, price, availability, dan reviews, so halaman dapat qualify untuk Shopping-style rich hasil. minimum untuk sebuah product snippet — lighter dari Google's two experiences — adalah name plus setidaknya one dari offers, review, atau aggregateRating; sebuah merchant listing perlu offers outright, not sebagai one option among three. Google splits ini ke two experiences dengan berbeda strictness — product snippets (price/reviews pada apa pun product halaman; priceCurrency hanya recommended, price dari 0 allowed) dan merchant listings (transactional halaman; memerlukan image, offers, dan sebuah price greater daripada zero dengan priceCurrency). single biggest confusion I see: Product schema markup dan sebuah Google Merchant Center feed adalah separate sistem dengan separate validators — passing Rich hasil Test doesn't validate Anda feed, dan price/availability harus match di seluruh Anda markup, Anda feed, dan Anda actual checkout atau Google flags sebuah mismatch. Valid markup hanya membuat Anda eligible; Google masih decides whether untuk tampilkan hasil.
TL;DR — Product schema adalah code Anda tambahkan untuk sebuah product halaman itu labels product detail untuk mesin pencari — “this is the name,” (terjemahan) “ini adalah name,” “this is the price,” (terjemahan) “ini adalah price,” “this is in stock,” (terjemahan) “ini adalah di stock,” “these are the review stars.” (terjemahan) “ini adalah review stars.” menambahkan ini correctly membuat halaman eligible untuk richer search listings Anda see pada shopping hasil (price, availability, star ratings). ini melakukan not guarantee itu extras tampilkan up, dan ini adalah not yang sama thing sebagai uploading sebuah product feed untuk Google Merchant Center.
What Product schema adalah
When Anda lihat sebuah product halaman, Anda dapat tell price dari product name dari
“In stock” (terjemahan) “di stock” label hanya oleh reading. sebuah mesin pencari sees plain text dan memiliki untuk
guess. Product schema spells ini out di code, menggunakan shared
schema.org vocabulary — ini tags setiap piece dari
halaman dengan what ini actually adalah: name, sebuah image, price dan currency,
whether ini adalah InStock, dan apa pun review ratings.
ini adalah almost selalu written sebagai JSON-LD — sebuah kecil block dari code itu sits di halaman tanpa mengubah how halaman looks.
Why ini adalah worth doing
payoff adalah rich hasil: enhanced search listings pada product kueri. Two jenis:
- ⭐ Product snippets — star ratings dan sebuah price di bawah sebuah normal product halaman.
- 🛒 Merchant listings — fuller, shopping-style hasil (price, availability, sometimes shipping dan mengembalikan) pada halaman where item dapat menjadi bought right there. Evidence for this claim Google uses Product structured data for product snippets and merchant listing experiences when applicable requirements are met. Scope: Google Search Product documentation; eligibility does not guarantee display. Confidence: high · Verified: Google: Product structured data
sebuah more eye-catching listing dapat earn more clicks. There’s juga sebuah growing practitioner theory — not something Google documents — itu AI shopping alat read ini sama markup untuk memahami Anda products. ini adalah unproven, tetapi getting markup right costs nothing extra, so ini adalah worth doing regardless.
four things Anda almost selalu perlu
untuk menjadi eligible untuk lighter product snippet experience, Anda perlu product’s name dan setidaknya one dari ini three: sebuah offer (price info), sebuah review, atau sebuah aggregate rating (sebuah average star score). stricter merchant listing experience selalu perlu sebuah offer — ini isn’t optional there cara ini adalah untuk sebuah snippet. dalam praktik sebagian besar stores sertakan semua four:
- name — product’s name.
- image — sebuah baik product photo (diperlukan untuk shopping-style listing).
- offers — dengan sebuah price dan priceCurrency (like
USD) dan sebuah availability (likeInStockatauOutOfStock). - review / aggregateRating — jika Anda memiliki genuine customer ratings.
thing sebagian besar people get wrong
Product schema dan sebuah Google Merchant Center feed adalah not yang sama thing. schema goes pada Anda halaman. sebuah Merchant Center feed adalah sebuah separate file Anda submit untuk Google. mereka influence overlapping shopping hasil, dan Google cross-memeriksa them — tetapi mereka’re validated separately, dan fixing one doesn’t fix lainnya. More pada itu di Advanced tab.
Two more beginner traps:
- Valid markup ≠ guaranteed rich hasil. ini membuat Anda eligible; Google masih decides whether untuk display ini.
- hanya mark up what’s really pada halaman, dan pertahankan price dan stock di Anda markup matching what sebuah shopper actually sees. Mismatches get flagged.
ingin full versi — snippet-vs-merchant-listing split, availability nilai, feed relationship, dan cara fix Search Console errors? Switch untuk Advanced tab.
Evidence for this claim For the current product-snippet feature, Product requires name plus at least one of review, aggregateRating or offers. This is not a universal minimum for every Product use, merchant listing, or Schema.org validator. Scope: product snippets Confidence: high · Verified: Product snippet structured dataTL;DR — schema.org/Product markup (biasanya JSON-LD) membuat sebuah product halaman eligible untuk two distinct Google experiences: product snippets (price/reviews pada apa pun product halaman —
priceCurrencyhanya recommended,price: 0allowed) dan merchant listings (transactional halaman — memerlukanimage,offers, dan sebuahprice> 0 denganpriceCurrency). Minimum untuk sebuah product snippet:name+ setidaknya one darioffers/review/aggregateRating— sebuah merchant listing perluoffersoutright, not sebagai one option among three. biggest trap adalah conflating ini pada-halaman markup dengan sebuah Google Merchant Center feed — separate sistem, separate validator; Google reconciles them, dan price/availability harus match di seluruh markup, feed, dan checkout atau Google flags sebuah mismatch. Valid markup hanya earns eligibility; Google’s sistem masih decide whether untuk tampilkan hasil. Whether ini artikel’s implementation angle atau broader ecommerce-SEO angle adalah what Anda’re here untuk, both live di yang sama place — ini topic adalah cross-listed di bawah data terstruktur dan di bawah ecommerce SEO untuk exactly itu alasan.
What Product schema melakukan — two experiences, not one
sebagian besar guides flatten “Product schema” (terjemahan) “Product schema” ke sebuah single requirements list. Google actually splits ini ke two rich-hasil experiences dengan berbeda strictness, dan knowing which one Anda’re aiming untuk adalah half battle:
Evidence for this claim Google documents separate product snippet and merchant listing experiences with different property requirements. Scope: Google Search Product documentation; validate against the intended experience. Confidence: high · Verified: Google: Product structured data- Product snippets — untuk non-transactional atau umum product halaman, emphasizing reviews dan price. Lighter requirements.
- Merchant listings — untuk halaman where product dapat menjadi purchased directly, emphasizing full shopping detail (price, availability, shipping, mengembalikan). Stricter requirements. Evidence for this claim Google documents separate product snippet and merchant listing experiences with different property requirements. Scope: Google Search Product documentation; validate against the intended experience. Confidence: high · Verified: Google: Product structured data
Google’s own framing: “Two markup types exist: Product snippets for non-purchase
pages, emphasizing reviews, and Merchant listings for purchase pages, highlighting
product details like sizing and shipping.” (terjemahan) “Two markup jenis exist: Product snippets untuk non-purchase
halaman, emphasizing reviews, dan Merchant listings untuk purchase halaman, highlighting
product detail like sizing dan shipping.” sama schema.org/Product vocabulary
underneath — difference adalah which properties Google memerlukan untuk setiap.
diperlukan vs. recommended properties
** minimum untuk sebuah product snippet** — Google’s lighter dari two experiences:
Product.name, plus setidaknya one dari offers, review, atau aggregateRating.
itu “one of three” (terjemahan) “one dari three” flexibility adalah spesifik untuk product snippets. sebuah merchant
listing selalu perlu offers — Google’s own diperlukan-property table lists
name, image, dan offers sebagai diperlukan, full stop, dengan no either/atau. dan sebuah
scoping aturan worth internalizing — Google: “product rich results only support
pages that focus on a single product (or multiple variants of the same
product).” (terjemahan) “product rich hasil hanya mendukung
halaman itu focus pada sebuah single product (atau multiple variants dari yang sama
product).” sebuah category halaman (“shoes in our shop” (terjemahan) “shoes di kami shop”) adalah not sebuah product; untuk sebuah line
dari variants, reach untuk ProductGroup markup instead (sebuah direct sibling topic).
ProductGroup seharusnya describe genuine variants di catalog, not setiap
theoretical configuration sebuah selector dapat calculate. sebuah variant seharusnya memiliki sebuah
stable identity, nyata attributes, sebuah reachable atau selectable state, dan sebuah offer
commerce sistem dapat pertahankan saat ini. Emitting Cartesian product dari setiap
option dapat produce valid-looking markup itu invents products shoppers cannot
select atau buy. detailed inclusion aturan live di
Product Variant SEO.
Product tingkat
| Property | Product snippet | Merchant listing |
|---|---|---|
name | diperlukan | diperlukan |
image | Recommended | diperlukan |
offers | (one dari offers/review/rating) | diperlukan |
description | Recommended | Recommended |
sku | Recommended | Recommended |
gtin / mpn | Recommended | Recommended |
brand | Recommended | Recommended (brand.name) |
aggregateRating | Recommended | Recommended |
review | Recommended | Recommended |
Offer tingkat (offers, sebuah Offer object)
| Property | Product snippet | Merchant listing |
|---|---|---|
price | diperlukan (0 allowed untuk free items) | diperlukan (harus menjadi > 0) |
priceCurrency | Recommended | diperlukan |
availability | Recommended | Recommended |
priceValidUntil | Recommended | Recommended |
itemCondition | Recommended | Recommended |
hasMerchantReturnPolicy | — | Recommended |
shippingDetails | — | Recommended |
url | Recommended | Recommended |
two aturan people miss sebagian besar: untuk merchant listings, “merchant listing
experiences require a price greater than zero” (terjemahan) “merchant listing
experiences memerlukan sebuah price greater daripada zero” (product snippets tolerate 0), dan
priceCurrency adalah diperlukan untuk merchant listings tetapi hanya “currently
recommended” (terjemahan) “currently
recommended” untuk basic product snippets.
availability property dan -nya enum nilai
availability isn’t strictly diperlukan untuk eligibility, tetapi treat ini sebagai
essential — ini drives “In stock” (terjemahan) “di stock” / “Out of stock” (terjemahan) “Out dari stock” label pengguna see, dan ini adalah sebuah
key field Google matches terhadap Anda Merchant Center feed. ini takes sebuah schema.org
enum, dan passing sebuah plain string like "in stock" alih-alih URL/enum nilai adalah
one dari paling umum validation errors.
full set Google documents untuk Product:
| nilai | Meaning |
|---|---|
InStock | Available untuk buy now |
OutOfStock | Not currently available |
PreOrder | Not released yet; orders accepted untuk future delivery |
PreSale | Available untuk order sebelum umum availability |
BackOrder | Ordered tetapi temporarily out dari stock |
OnlineOnly | hanya available online |
InStoreOnly | hanya available di physical stores |
LimitedAvailability | Limited quantity |
Discontinued | No longer produced |
SoldOut | Sold out (e.g., sebuah limited run) |
untuk SEO handling dari out-dari-stock dan discontinued items — whether untuk pertahankan, redirect, atau noindex them — out-dari-stock products artikel di ecommerce cluster goes deeper daripada markup alone.
ecommerce availability contract
availability adalah not sebuah direct copy dari sebuah warehouse quantity. sebuah product dapat physically
exist tetapi menjadi unsellable di sebuah market, unavailable untuk sebuah selected variant, restricted
untuk pickup, unable untuk reach sebuah postcode, atau temporarily blocked di checkout. Reconcile
whole decision chain:
| Layer | pertanyaan untuk reconcile |
|---|---|
| Inventory backend | How banyak units exist, dan untuk which SKU dan location? |
| Sellability service | dapat itu SKU menjadi offered di ini market dan channel now? |
| Fulfillment service | dapat selected quantity reach ini postcode oleh delivery, pickup, atau store transfer? |
| terlihat product halaman | What availability melakukan selected variant dan location tampilkan customer? |
| Product/Offer markup | Which schema.org nilai describes published offer pada ini URL? |
| Merchant atau agent feed | What saat ini item, market, channel, price, dan availability adalah submitted? |
| Cart dan checkout | dapat exact SKU actually menjadi purchased di bawah represented conditions? |
Choose sebuah authoritative commerce service untuk underlying decision, lalu map -nya
states deliberately ke smaller vocabularies diperlukan oleh schema.org, Google atau
Microsoft feeds, dan agentic-commerce integrations. melakukan not let setiap template dan feed
invent -nya own translation dari available, backorderable, pickup-only, atau
discontinued. Evidence for this claim Google treats on-page Product structured data and Merchant Center feeds as separate, complementary ways to provide product data. Scope: Google Search ecommerce guidance; the systems can be reconciled but are validated separately. Confidence: high · Verified: Google: Share product data
Postcode-dependent fulfillment perlu two tingkat dari truth. landing halaman, markup,
dan feed seharusnya state umumnya published offer accurately; setelah sebuah customer
supplies sebuah location, halaman dan checkout dapat tampilkan more spesifik fulfillment
outcome. melakukan not publish InStock merely because one warehouse memiliki sebuah unit when
represented market cannot buy ini, dan melakukan not mark entire parent product
OutOfStock because one size, store, atau delivery metode adalah unavailable.
Product Variant SEO URL contract
applies when availability perubahan dengan selected SKU.
Validate setidaknya ini representative states setelah catalog, template, feed, atau fulfillment perubahan:
- sebuah ordinary di-stock SKU;
- sebuah temporarily unavailable atau backorderable SKU;
- one unavailable variant inside sebuah otherwise available product group;
- sebuah postcode-restricted delivery dengan sebuah available pickup atau store option;
- sebuah discontinued item;
- sebuah recently restocked item sebelum dan setelah feed refresh.
untuk setiap one, capture terlihat selection, raw dan rendered markup, feed row, cart line, dan checkout hasil. sebuah passing Rich hasil Test proves markup eligibility; ini melakukan not prove feed freshness, personalized fulfillment, atau purchase success.
Evidence for this claim Google documents separate product snippet and merchant listing experiences with different property requirements. Scope: Google Search Product documentation; validate against the intended experience. Confidence: high · Verified: Google: Product structured dataProduct schema vs. Google Merchant Center feeds — validated separately
ini adalah confusion I sebagian besar ingin untuk kill. Product schema markup dan sebuah Merchant Center product feed adalah two separate sistem. Google reconciles them, tetapi mereka adalah not one submission dan mereka adalah not validated together.
Google spells out three options: “To provide rich product data to Google Search you can add Product structured data to your web pages, upload data feeds with Google Merchant Center and opt into free listings within the Merchant Center console, or both.” (terjemahan) “untuk menyediakan rich product data untuk Google Search Anda dapat tambahkan Product data terstruktur untuk Anda halaman web, upload data feeds dengan Google Merchant Center dan opt ke free listings di dalam Merchant Center console, atau both.” Evidence for this claim Google treats on-page Product structured data and Merchant Center feeds as separate, complementary ways to provide product data. Scope: Google Search ecommerce guidance; the systems can be reconciled but are validated separately. Confidence: high · Verified: Google: Share product data dan pada why Anda mungkin melakukan both: “Providing both data terstruktur pada halaman web dan sebuah Merchant Center feed maximizes Anda eligibility untuk experiences dan helps Google correctly memahami dan verify Anda data. beberapa experiences combine data dari data terstruktur dan Google Merchant Center feeds jika both adalah available. misalnya, product snippets dapat gunakan pricing data dari Anda merchant feed jika ini adalah not present di data terstruktur pada halaman.”
Read itu carefully: mereka’re combined when available, which adalah exactly why people assume mereka’re yang sama sistem. practical consequences:
- Two validators. Markup adalah diperiksa dengan Rich hasil Test dan monitored di Search Console; feed adalah diperiksa dengan Merchant Center diagnostics. Passing Rich hasil Test says nothing tentang whether Anda feed adalah valid, dan vice versa.
- Anda tidak perlu sebuah feed untuk earn sebuah merchant listing. pada-halaman data terstruktur alone dapat produce merchant-listing rich hasil. sebagai John Mueller framed ini, there’s juga “the possibility to submit a feed to your merchant center account, to show products there.” (terjemahan) “ possibility untuk submit sebuah feed untuk Anda merchant center account, untuk tampilkan products there.” feed adalah sebuah additive path, not sebuah prerequisite.
pertahankan price dan availability consistent di seluruh markup, feed, dan checkout
Merchant Center spec adalah explicit itu merchants harus “accurately submit the
product’s price and currency, and match with the price from your landing page,
structured data, and at checkout.” (terjemahan) “accurately submit
product’s price dan currency, dan match dengan price dari Anda landing halaman,
data terstruktur, dan di checkout.” So price dan availability memiliki untuk agree di
three places: Anda pada-halaman Offer, Anda Merchant Center feed, dan actual
checkout. jika mereka diverge, Google dapat flag sebuah mismatch atau suspend item bahkan
when Anda JSON-LD validates cleanly. Clean markup adalah necessary; consistency adalah
what mempertahankan listing live. jika Anda sell pada Bing too, yang sama discipline applies untuk
Microsoft Merchant Center — -nya feed sistem adalah Bing-side equivalent dari Google’s.
untuk variants, reconcile entire selected offer—not hanya price dan stock. Product
identity, SKU, group ID, selected attributes, price, currency, dan availability
seharusnya refer untuk yang sama sellable item pada terlihat PDP, di rendered JSON-LD,
di feed, dan melalui cart dan checkout.
Reviews dan ratings — dan self-serving-review myth
review dan aggregateRating remain documented, eligible Product properties untuk
star ratings — nothing tentang itu changed. Two aturan untuk get right:
- Reviewer names harus menjadi sebuah person atau team, not promotional text. Google’s contoh: “Not recommended: ‘50% off on Black Friday’. Recommended: ‘James Smith’ or ‘CNET Reviewers’.” (terjemahan) “Not recommended: ‘50% off pada Black Friday’. Recommended: ‘James Smith’ atau ‘CNET Reviewers’.”
- Pros dan cons data terstruktur adalah editorial-hanya. Google: “Only editorial product review pages are eligible for the pros and cons appearance in Search results.” (terjemahan) “hanya editorial product review halaman adalah eligible untuk pros dan cons appearance di Search hasil.” sebuah merchant describing -nya own product dapat’t gunakan ini.
Now myth I ingin untuk correct precisely, because ini gets mangled constantly:
“Google killed review stars for product pages the same way it did for business reviews.” (terjemahan) “Google killed review stars untuk product halaman yang sama cara ini melakukan untuk business reviews.” — salah, dan distinction penting.
self-serving-reviews restriction adalah scoped untuk LocalBusiness / Organization
markup, not Product. Google’s wording: “If the entity that’s being reviewed
controls the reviews about itself, their pages that use LocalBusiness or any other
type of Organization structured data are ineligible for star review feature.” (terjemahan) “jika entity itu’s menjadi reviewed
controls reviews tentang itself, mereka halaman itu gunakan LocalBusiness atau apa pun lainnya
jenis dari Organization data terstruktur adalah ineligible untuk star review fitur.” itu
policy dates untuk September 2019 dan targets sebuah business rating itself. Product
review/aggregateRating adalah masih eligible.
What memiliki tightened adalah genuine-review enforcement more broadly — Google’s Reviews sistem, Product Reviews updates, dan situs-reputation-abuse policy increasingly discount manipulated atau incentivized ratings bahkan where markup validates. So correct statement adalah: Product review stars adalah masih eligible, tetapi ratings harus menjadi genuine, pengguna-sourced, dan tentang product — not sebuah blanket structured-data ban. juga don’t aggregate ratings dari lainnya situs ke Anda own markup; Google’s guidance adalah sebuah flat “Don’t aggregate reviews or ratings from other websites.” (terjemahan) “Don’t aggregate reviews atau ratings dari lainnya situs web.” deeper eligibility discussion lives di Review schema dan AggregateRating schema siblings alih-alih here.
Identifiers dan trust signals: sku, gtin, mpn, brand
ini adalah “recommended,” (terjemahan) “recommended,” not “required,” (terjemahan) “diperlukan,” di Search’s own spec — tetapi mereka carry nyata weight pada Merchant Center / shopping side, where product matching terhadap global catalog depends pada them:
gtin— global identifier (UPC/EAN/ISBN). strongest matching signal; supply ini whenever product memiliki one.mpn— manufacturer bagian angka, untuk products without sebuah GTIN.brand— manufacturer/brand name (brand.name).sku— Anda own internal identifier.
Fill ini di bahkan though Search panggilan them optional; incomplete identifiers adalah sebuah umum alasan sebuah product adalah technically eligible yet underperforms di shopping surfaces where matching depends pada them.
kembalikan policy dan shipping
untuk merchant listings, hasMerchantReturnPolicy dan shippingDetails adalah
recommended. Google’s steer: define kembalikan policy once di Organization
tingkat, not per-offer — “We recommend you provide a global return policy for your
business under Organization markup instead… Only if some of your products have
specific return policies… use this property under Offer.” (terjemahan) “kami recommend Anda menyediakan sebuah global kembalikan policy untuk Anda
business di bawah Organization markup instead… hanya jika beberapa dari Anda products memiliki
spesifik kembalikan policies… gunakan ini property di bawah Offer.” itu’s where
Organization schema sibling comes di — situs-wide kembalikan policy belongs there,
dengan per-Offer overrides reserved untuk exceptions.
pada images, Google recommends “multiple high-resolution images (minimum of 50K pixels when multiplying width and height) with the following aspect ratios: 16x9, 4x3, and 1x1.” (terjemahan) “multiple tinggi-resolution images (minimum dari 50K pixels when multiplying width dan height) dengan following aspect ratios: 16x9, 4x3, dan 1x1.”
Why Anda valid markup masih menampilkan no rich hasil
Eligibility adalah not display. Mueller listed what ini takes: “It requires that the page be indexed, that the page has valid structured data on it, and that our systems have determined that it’s worth showing this structured data.” (terjemahan) “ini memerlukan itu halaman menjadi terindeks, itu halaman memiliki valid data terstruktur pada ini, dan itu kami sistem memiliki determined itu ini adalah worth showing ini data terstruktur.” itu last clause adalah one people forget — Anda dapat melakukan everything right dan Google dapat masih decide not untuk surface enhancement. Getting markup correct hanya puts Anda di running.
JSON-LD dan AI-shopping angle
gunakan JSON-LD — ini adalah Google’s recommended format dan oleh far paling maintainable di ecommerce scale (ini isn’t interleaved dengan Anda HTML dan dapat menjadi injected oleh Anda platform). Beyond classic rich hasil, there’s sebuah growing practitioner theory itu complete Product schema juga helps AI shopping alat read dan recommend products — worth flagging sebagai sebuah open, unverified angle alih-alih something Google’s Product structured-data documentation establishes atau promises. Getting markup right costs nothing extra either cara, so treat ini sebagai sebuah reasonable bet, not sebuah guaranteed payoff.
untuk where Product schema sits di wider structured-data picture, see broader Schema Markup dan data terstruktur hubs ini artikel nests di bawah; untuk full product halaman, see product halaman SEO berfungsi di ecommerce cluster.
AI summary
sebuah condensed take pada Advanced versi:
- What ini adalah:
schema.org/Productmarkup (biasanya JSON-LD) itu labels sebuah product halaman’s name, image, price, availability, identifiers, dan reviews so mesin pencari dapat produce shopping-style rich hasil. - Two experiences, berbeda strictness: product snippets (apa pun product halaman;
reviews/price;
priceCurrencyhanya recommended;price: 0allowed) vs. merchant listings (transactional halaman; memerlukanimage,offers, danprice> 0 denganpriceCurrency). - Minimum untuk sebuah product snippet:
name+ setidaknya one darioffers/review/aggregateRating. itu’s snippet-spesifik — sebuah merchant listing memerlukanoffersoutright, not sebagai one dari three options. hanya single-product (atau variants-dari-one) halaman qualify; gunakan ProductGroup untuk sebuah variant line. - Feed vs. markup ( key confusion): Product schema (pada-halaman, validated via Rich hasil Test / Search Console) adalah sebuah separate sistem dari sebuah Google Merchant Center feed (submitted, validated via Merchant Center diagnostics). Google reconciles them dan dapat borrow feed pricing; sebuah feed adalah additive, not diperlukan. Price/availability harus match di seluruh markup, feed, dan checkout atau Google flags sebuah mismatch bahkan jika JSON-LD adalah valid.
availabilityenum:InStock,OutOfStock,PreOrder,PreSale,BackOrder,OnlineOnly,InStoreOnly,LimitedAvailability,Discontinued,SoldOut. Passing sebuah plain string alih-alih enum adalah sebuah umum error.- Reviews:
review/aggregateRatingmasih eligible pada Product; reviewer names harus menjadi sebuah person/team, pros-dan-cons adalah editorial-hanya. Myth corrected: self-serving-review ban adalah scoped untuk LocalBusiness/Organization, not Product — tetapi genuine-review enforcement (Reviews sistem, Product Reviews updates) discounts manipulated ratings regardless dari markup validity. - Identifiers:
gtin(strongest match) >mpn>brand>sku— “recommended” (terjemahan) “recommended” di Search tetapi muat-bearing untuk shopping/Merchant Center matching. - kembalikan policy: default
hasMerchantReturnPolicydi Organization tingkat; per-Offerhanya untuk exceptions. - Eligibility ≠ display: valid markup + terindeks halaman + Google deciding ini adalah “worth showing.” (terjemahan) “worth showing.” Clean markup hanya membuat Anda eligible.
- AI angle (unverified): beberapa practitioners believe complete Product schema helps AI shopping alat read dan recommend products — Google’s own documentation doesn’t establish ini, so treat ini sebagai sebuah open pertanyaan, not sebuah documented mechanism.
Official documentation
Primary-source documentation dari mesin pencari.
Google — data terstruktur ( markup side)
- Intro untuk Product data terstruktur — two experiences (product snippets vs. merchant listings) dan “structured data, feed, or both” (terjemahan) “data terstruktur, feed, atau both” relationship.
- Product snippet (Review, AggregateRating, Offer) data terstruktur — diperlukan/recommended properties untuk lighter product-snippet experience.
- Merchant listing data terstruktur — stricter requirements, price-greater-daripada-zero aturan, kembalikan-policy dan image guidance.
- Review snippet (Review, AggregateRating) data terstruktur — self-serving-review scope (LocalBusiness/Organization) dan “don’t aggregate” (terjemahan) “don’t aggregate” aturan.
- Rich hasil Test — validate markup dan periksa rich-hasil eligibility.
Google — feed side (Merchant Center)
- Product data specification — diperlukan feed attributes dan price/currency consistency requirement di seluruh landing halaman, data terstruktur, dan checkout.
- siapkan data terstruktur untuk Merchant Center — how data terstruktur dan feed relate pada Merchant Center side.
Bing / Microsoft
- Marking up Anda situs dengan data terstruktur — Bing’s umum structured-data mendukung (schema.org, JSON-LD recommended).
Quotes dari source
pada—record statements dari Google. Where sebuah source halaman exposes text, tautan adalah sebuah deep tautan itu jumps untuk quoted passage.
Google docs — two experiences
- “Two markup types exist: Product snippets for non-purchase pages, emphasizing reviews, and Merchant listings for purchase pages, highlighting product details like sizing and shipping.” (terjemahan) “Two markup jenis exist: Product snippets untuk non-purchase halaman, emphasizing reviews, dan Merchant listings untuk purchase halaman, highlighting product detail like sizing dan shipping.” Jump untuk quote
- “Currently, product rich results only support pages that focus on a single product (or multiple variants of the same product).” (terjemahan) “Currently, product rich hasil hanya mendukung halaman itu focus pada sebuah single product (atau multiple variants dari yang sama product).” Jump untuk quote
Google docs — data terstruktur vs. Merchant Center feed
- “To provide rich product data to Google Search you can add Product structured data to your web pages, upload data feeds with Google Merchant Center and opt into free listings within the Merchant Center console, or both.” (terjemahan) “untuk menyediakan rich product data untuk Google Search Anda dapat tambahkan Product data terstruktur untuk Anda halaman web, upload data feeds dengan Google Merchant Center dan opt ke free listings di dalam Merchant Center console, atau both.” Jump untuk quote
- “Providing both structured data on web pages and a Merchant Center feed maximizes your eligibility to experiences and helps Google correctly understand and verify your data… product snippets may use pricing data from your merchant feed if it’s not present in the structured data on the page.” (terjemahan) “Providing both data terstruktur pada halaman web dan sebuah Merchant Center feed maximizes Anda eligibility untuk experiences dan helps Google correctly memahami dan verify Anda data… product snippets dapat gunakan pricing data dari Anda merchant feed jika ini adalah not present di data terstruktur pada halaman.” Jump untuk quote
Google docs — merchant listing aturan
- “Unlike product snippets, merchant listing experiences require a price greater than zero.” (terjemahan) “Unlike product snippets, merchant listing experiences memerlukan sebuah price greater daripada zero.” Jump untuk quote
- “We recommend you provide a global return policy for your business under Organization markup instead… Only if some of your products have specific return policies… use this property under Offer.” (terjemahan) “kami recommend Anda menyediakan sebuah global kembalikan policy untuk Anda business di bawah Organization markup instead… hanya jika beberapa dari Anda products memiliki spesifik kembalikan policies… gunakan ini property di bawah Offer.” Jump untuk quote
- “For best results, we recommend providing multiple high-resolution images (minimum of 50K pixels when multiplying width and height) with the following aspect ratios: 16x9, 4x3, and 1x1.” (terjemahan) “untuk best hasil, kami recommend providing multiple tinggi-resolution images (minimum dari 50K pixels when multiplying width dan height) dengan following aspect ratios: 16x9, 4x3, dan 1x1.” Jump untuk quote
Google docs — reviews
- pada reviewer names: “Not recommended: ‘50% off on Black Friday’. Recommended: ‘James Smith’ or ‘CNET Reviewers’.” (terjemahan) “Not recommended: ‘50% off pada Black Friday’. Recommended: ‘James Smith’ atau ‘CNET Reviewers’.” Jump untuk quote
- pada pros dan cons: “Only editorial product review pages are eligible for the pros and cons appearance in Search results.” (terjemahan) “hanya editorial product review halaman adalah eligible untuk pros dan cons appearance di hasil pencarian.” Jump untuk quote
- pada self-serving reviews (scoped untuk LocalBusiness/Organization): “If the entity that’s being reviewed controls the reviews about itself, their pages that use LocalBusiness or any other type of Organization structured data are ineligible for star review feature.” (terjemahan) “jika entity itu’s menjadi reviewed controls reviews tentang itself, mereka halaman itu gunakan LocalBusiness atau apa pun lainnya jenis dari Organization data terstruktur adalah ineligible untuk star review fitur.” Review snippet docs
- “Don’t aggregate reviews or ratings from other websites.” (terjemahan) “Don’t aggregate reviews atau ratings dari lainnya situs web.” Review snippet docs
Google — Merchant Center consistency
- Merchants harus “accurately submit the product’s price and currency, and match with the price from your landing page, structured data, and at checkout.” (terjemahan) “accurately submit product’s price dan currency, dan match dengan price dari Anda landing halaman, data terstruktur, dan di checkout.” Product data specification
John Mueller, Google (via mesin pencari Journal)
- “It requires that the page be indexed, that the page has valid structured data on it, and that our systems have determined that it’s worth showing this structured data.” (terjemahan) “ini memerlukan itu halaman menjadi terindeks, itu halaman memiliki valid data terstruktur pada ini, dan itu kami sistem memiliki determined itu ini adalah worth showing ini data terstruktur.” SEJ coverage
- “There’s also the possibility to submit a feed to your merchant center account, to show products there.” (terjemahan) “There’s juga possibility untuk submit sebuah feed untuk Anda merchant center account, untuk tampilkan products there.” SEJ coverage
Product schema cheat sheet
** minimum untuk sebuah product snippet**
Product.name + setidaknya one dari offers / review / aggregateRating. sebuah
merchant listing selalu perlu offers — itu flexibility doesn’t apply
there. Single-product halaman hanya (gunakan ProductGroup untuk sebuah variant line).
Snippet vs. merchant listing — where mereka differ
| Product snippet | Merchant listing | |
|---|---|---|
| halaman jenis | apa pun product halaman | Transactional (buy here) |
image | Recommended | diperlukan |
offers | one-dari trio | diperlukan |
price | diperlukan; 0 OK | diperlukan; > 0 |
priceCurrency | Recommended | diperlukan |
| kembalikan/shipping | — | Recommended |
availability enum nilai
InStock · OutOfStock · PreOrder · PreSale · BackOrder · OnlineOnly ·
InStoreOnly · LimitedAvailability · Discontinued · SoldOut
Markup vs. Merchant Center feed
| pada-halaman Product schema | Merchant Center feed | |
|---|---|---|
| Where ini lives | di halaman (JSON-LD) | Submitted file |
| Validated dengan | Rich hasil Test / Search Console | Merchant Center diagnostics |
| diperlukan untuk merchant listing? | dapat earn ini alone | Additive, not diperlukan |
| harus match | price/availability = feed = checkout | sama |
Identifiers, oleh matching strength: gtin > mpn > brand > sku.
Fast facts
- Format: JSON-LD (recommended, sebagian besar maintainable di scale).
- Valid markup = eligible, not guaranteed untuk tampilkan.
- kembalikan policy: default di Organization tingkat; per-
Offerhanya untuk exceptions. - Self-serving-review ban = LocalBusiness/Organization hanya, not Product.
- Images: multiple, min 50K px (w×h), aspect ratios 16x9 / 4x3 / 1x1.
melakukan I perlu Product schema, sebuah Merchant Center feed, atau both?
berfungsi down pertanyaan:
1. adalah halaman sebuah single product (atau one product’s variants)?
- No — ini adalah sebuah category/collection halaman → Product schema isn’t eligible. pertimbangkan ProductGroup untuk sebuah variant line, atau breadcrumb/collection markup instead.
- Yes → continue.
2. dapat product menjadi bought directly pada itu halaman?
- No (ini adalah sebuah informational atau editorial product halaman) → aim untuk sebuah product
snippet:
name+offersdan/ataureview/aggregateRating.priceCurrencyrecommended;price: 0adalah allowed untuk free items. - Yes → aim untuk sebuah merchant listing: tambahkan
image,offersdenganprice> 0 danpriceCurrency(diperlukan), plusavailability,itemCondition, dan ideallyshippingDetails.
3. melakukan Anda ingin Anda products di Google Shopping / free listings dan untuk maximize eligibility?
- tambahkan sebuah Google Merchant Center feed di addition untuk pada-halaman markup. ini adalah sebuah separate sistem, tetapi Google combines both dan ini broadens Anda eligibility. Not diperlukan untuk earn sebuah pada-halaman merchant listing — ini adalah additive.
- pertahankan ini markup-hanya jika Anda hanya ingin pada-halaman rich hasil dan don’t perlu Shopping surfaces.
4. Whichever path — sebelum Anda ship:
- Validate markup dengan Rich hasil Test dan watch Search Console.
- jika Anda memiliki sebuah feed, validate ini separately di Merchant Center.
- Confirm
price,priceCurrency, danavailabilitymatch di seluruh markup, feed, dan checkout. ini adalah langkah itu mempertahankan listings live setelah mereka validate.
aturan dari thumb: pada-halaman Product schema adalah baseline untuk everyone selling sebuah product; Merchant Center feed adalah additional layer untuk anyone who ingin Shopping/free-listings surfaces atau maximum eligibility.
Product schema myths dan mistakes untuk hindari
Myth: “Adding Product schema guarantees a rich result.” (terjemahan) “menambahkan Product schema guarantees sebuah rich hasil.” ini hanya membuat halaman eligible. Per Mueller, halaman juga memiliki untuk menjadi terindeks dan Google’s sistem memiliki untuk decide hasil adalah “worth showing.” (terjemahan) “worth showing.” Valid ≠ displayed.
Myth: “Product schema and my Merchant Center feed are the same submission.” (terjemahan) “Product schema dan my Merchant Center feed adalah yang sama submission.” mereka’re two sistem dengan two validators. Google reconciles them (dan dapat borrow feed pricing untuk sebuah snippet), tetapi fixing Anda JSON-LD melakukan nothing untuk sebuah broken feed, dan sebuah passing Rich hasil Test says nothing tentang feed validity.
Myth: “Google killed review stars on product pages like it did for business
reviews.” (terjemahan) “Google killed review stars pada product halaman like ini melakukan untuk business
reviews.”
self-serving-review ineligibility adalah scoped untuk LocalBusiness / Organization
(sebuah business rating itself, per September 2019 policy) — not Product.
Product review/aggregateRating adalah masih eligible. What’s tightening adalah
genuine-review enforcement (Reviews sistem, Product Reviews updates), which discounts
manipulated atau incentivized ratings bahkan when markup validates. Don’t conflate sebuah
konten-quality crackdown dengan sebuah structured-data ban.
Myth: “priceCurrency is always required.” (terjemahan) “undefined adalah selalu diperlukan.”
ini adalah diperlukan untuk merchant listings tetapi hanya “currently recommended” (terjemahan) “currently recommended” untuk basic
product snippets.
Myth: “You need Merchant Center to get Shopping-style results.” (terjemahan) “Anda perlu Merchant Center untuk get Shopping-style hasil.” pada-halaman data terstruktur alone dapat produce sebuah merchant-listing rich hasil. feed adalah sebuah additive path, not sebuah prerequisite.
Myth: “Any price format works as long as there’s a number.” (terjemahan) “apa pun price format berfungsi sebagai panjang sebagai there’s sebuah angka.”
Currency symbols, thousands separators, atau sebuah mis-nested priceSpecification routinely
break validation. pertahankan price sebuah bare angka/string dan priceCurrency sebuah separate
ISO code.
Mistake: marking up sebuah category halaman sebagai sebuah Product. Product rich hasil hanya cover single-product (atau single-product-variant) halaman.
Mistake: fabricating atau importing reviews. Reviewer names harus menjadi sebuah person/team (not “50% off” (terjemahan) “50% off”), pros-dan-cons adalah editorial-hanya, dan Anda harus not “aggregate reviews or ratings from other websites.” (terjemahan) “aggregate reviews atau ratings dari lainnya situs web.”
Mistake: markup itu doesn’t match halaman. jika price/availability di Anda JSON-LD disagrees dengan landing halaman, feed, atau checkout, Google dapat flag sebuah mismatch atau suspend item — bahkan dengan valid markup.
Clean vs. broken Product JSON-LD
sebuah clean merchant-listing-ready snippet
Single product, price greater daripada zero, correct currency, sebuah proper availability
enum URL, dan sebuah genuine aggregate rating:
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Trailhead 30L Hiking Backpack",
"image": [
"https://example.com/img/backpack-1x1.jpg",
"https://example.com/img/backpack-4x3.jpg",
"https://example.com/img/backpack-16x9.jpg"
],
"description": "Lightweight 30-liter pack with a ventilated back panel.",
"sku": "TH-30L-GRN",
"gtin": "0192341567890",
"brand": { "@type": "Brand", "name": "Trailhead" },
"offers": {
"@type": "Offer",
"url": "https://example.com/backpacks/trailhead-30l",
"price": "129.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition",
"priceValidUntil": "2026-12-31"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "218"
}
}yang sama snippet, broken
setiap line flagged below adalah sebuah nyata, umum Search Console failure:
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Trailhead 30L Hiking Backpack",
"offers": {
"@type": "Offer",
"price": "$1,129.00",
"priceCurrency": "dollars",
"availability": "in stock"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6"
}
}What’s wrong:
price: "$1,129.00"— sebuah currency symbol dan thousands separator break numeric parse. gunakan"1129.00".priceCurrency: "dollars"— harus menjadi sebuah valid ISO 4217 code:"USD".availability: "in stock"— not sebuah valid enum; gunakan URL form"https://schema.org/InStock". ini produces classic Invalid enum nilai di field “availability” (terjemahan) “availability” error.- No
image— diperlukan untuk sebuah merchant listing (ini akan fall back untuk sebuah product snippet di best). aggregateRatingdengan noreviewCount/ratingCount— sebuah aggregate rating perlu sebuah count untuk menjadi valid.
umum Search Console errors → fixes
| Error string | mungkin cause | Fix |
|---|---|---|
Invalid enum value in field "availability" | Plain string alih-alih enum | gunakan https://schema.org/InStock etc. |
Invalid enum value in field "itemCondition" | sama, untuk condition | gunakan https://schema.org/NewCondition etc. |
Missing field "priceCurrency" | Currency omitted, atau wrong nesting di bawah priceSpecification | tambahkan priceCurrency di right tingkat |
Missing field "priceValidUntil" | Recommended date absent | tambahkan sebuah ISO 8601 date |
| Price parses wrong / rejected | Symbol, separator, atau buruk priceSpecification nesting | Bare angka di price, ISO code di priceCurrency |
Test yourself: Product Schema
Five quick pertanyaan pada schema.org/Product, two rich-hasil experiences, dan feed-vs-markup distinction. Pick sebuah jawaban untuk setiap, lalu periksa.
Resources worth Anda time
My writing pada ini topic
I haven’t published sebuah standalone Product schema guide dari my own — so alih-alih poin Anda di something itu doesn’t exist, honest move adalah untuk kirim Anda untuk primary sources below dan untuk related structured-data berfungsi pada ini situs. untuk broader vocabulary dan where Product fits, see Schema Markup dan Structured data hubs; untuk AI angle, Schema Markup untuk AI.
dari sekitar industry
- Intro untuk Product data terstruktur (Google Search Central) — authoritative reference untuk two experiences dan feed relationship.
- Merchant listing data terstruktur (Google) — stricter transactional requirements, kembalikan-policy dan image guidance.
- Product snippet data terstruktur (Google) — lighter product-snippet property set dan reviewer-name aturan.
- Product data specification (Google Merchant Center Help) — feed-side attributes dan price-consistency requirement di seluruh landing halaman, data terstruktur, dan checkout.
- Google Says cara Get More Product Rich hasil (mesin pencari Journal) — Mueller quotes pada eligibility vs. display dan feed option.
- What adalah Schema Markup? cara tambahkan ini & mengapa ini penting (Ahrefs) — sebuah umum schema guide dengan sebuah berguna AI-agent/product-penemuan angle.
Log perubahan
Diperbarui 29 Jul 2026.
Ringkasan editorial dan detail perubahan yang tercatat.Detail perubahan
-
Catatan perubahan terperinci saat ini tersedia dalam bahasa Inggris.
Perbandingan lengkap tidak tersedia — tidak ada cuplikan sebelumnya yang diarsipkan untuk revisi ini.
Diperbarui 29 Jul 2026.
Ringkasan editorial dan detail perubahan yang tercatat.Detail perubahan
-
Catatan perubahan terperinci saat ini tersedia dalam bahasa Inggris.
-
Catatan perubahan terperinci saat ini tersedia dalam bahasa Inggris.
Perbandingan lengkap tidak tersedia — tidak ada cuplikan sebelumnya yang diarsipkan untuk revisi ini.
Diperbarui 18 Jul 2026.
Ringkasan editorial dan detail perubahan yang tercatat.Detail perubahan
-
Catatan perubahan terperinci saat ini tersedia dalam bahasa Inggris.
-
Catatan perubahan terperinci saat ini tersedia dalam bahasa Inggris.
Perbandingan lengkap tidak tersedia — tidak ada cuplikan sebelumnya yang diarsipkan untuk revisi ini.