Panduan OfferShippingDetails Schema
cara implement schema.org/OfferShippingDetails — shippingRate, shippingDestination, dan deliveryTime — setelah Google's November 2025 restructure itu dibuat ini per-product override dari sebuah org-tingkat ShippingService default. mencakup precedence stack, silent-failure trap, dan berfungsi JSON-LD.
OfferShippingDetails (schema.org/OfferShippingDetails) adalah data terstruktur nested di dalam sebuah Offer itu tells Google apa sebuah product costs untuk ship (shippingRate, sebuah MonetaryAmount), di mana ini ships (shippingDestination, sebuah DefinedRegion), dan bagaimana panjang pengiriman takes (deliveryTime, yang adalah handlingTime + transitTime). sebagai dari November 2025 ini adalah satu half dari sebuah dua-tier sistem: Google now recommends declaring sebuah catalog-wide default setelah di organization tingkat dengan ShippingService (Organization.hasShippingService), dan menggunakan OfferShippingDetails di bawah sebuah spesifik Offer hanya sebagai per-product override — yang sama org-tingkat/offer-tingkat split ini sudah digunakan untuk MerchantReturnPolicy. Dua hal trip orang up. pertama, 'author Anda default di org tingkat' dan 'product-tingkat markup outranks org-tingkat markup di sebuah conflict' adalah keduanya benar — mereka're berbeda pertanyaan. kedua, silent-failure trap: markup dapat validate perfectly di Rich hasil Test sementara menjadi fully overridden oleh sebuah Merchant Center feed nilai atau sebuah Search Console shipping setting, dengan Tidak error until sebuah eventual listing rejection. shippingDetails adalah recommended, tidak diperlukan, untuk Product rich hasil, tetapi shipping info dari beberapa form adalah diperlukan untuk free listings di ~30 countries. dan like semua data terstruktur, ini adalah eligibility, tidak sebuah peringkat factor.
TL;DR — OfferShippingDetails adalah sebuah kecil block dari code Anda tambahkan untuk sebuah product’s markup itu tells Google three hal: apa ini costs untuk ship, di mana ini ships untuk, dan bagaimana panjang ini takes. Google dapat lalu tampilkan itu shipping line right di penelusuran hasil. sebagai dari late 2025 ada dua places untuk put shipping info — satu di store tingkat (sebuah single default untuk Anda seluruh catalog) dan satu di product tingkat (ini jenis, untuk products itu differ) — dan OfferShippingDetails adalah product-tingkat satu.
Apa OfferShippingDetails adalah
Ketika seseorang looks di sebuah product halaman, mereka dapat baca shipping cost dan “arrives di 3–5 days” (terjemahan) “arrives di 3–5 days” line hanya oleh looking. sebuah mesin pencari sees plain text dan memiliki untuk guess. OfferShippingDetails adalah code Anda tambahkan — biasanya sebagai JSON-LD — itu spells ini out menggunakan shared schema.org vocabulary: “shipping costs $5,” (terjemahan) “shipping costs 5 USD” “it ships to the US,” (terjemahan) “ini ships untuk US,” “it takes 3–5 business days.” (terjemahan) “ini takes 3–5 business days.”
ini lives di dalam Offer pada sebuah product halaman — yang sama Offer itu sudah holds
price dan availability (see product schema).
Google membaca ini dan dapat tampilkan sebuah shipping-cost atau pengiriman-estimate line di Anda
penelusuran listing, terutama di Shopping-style hasil.
three hal ini mendeskripsikan
OfferShippingDetails bundles three ideas:
- Bagaimana banyak — shipping cost (
shippingRate). - Di mana untuk — destination ini applies untuk, like sebuah country atau sebuah postal-code
range (
shippingDestination). - Bagaimana panjang — pengiriman time (
deliveryTime), yang adalah benar-benar dua angka ditambahkan together: bagaimana panjang Anda warehouse takes untuk kirim ini out (menangani time) plus bagaimana panjang carrier takes untuk deliver ini (transit time).
big perubahan di late 2025
Until recently, ini product-tingkat markup adalah main cara untuk declare shipping di
data terstruktur. di November 2025 Google ditambahkan sebuah kedua, store-tingkat option: Anda
dapat now declare satu shipping policy untuk Anda seluruh business setelah (sebuah jenis called
ShippingService), alih-alih repeating ini pada setiap product. Google now recommends
melakukan itu sebagai Anda default, dan menggunakan OfferShippingDetails hanya untuk products milik siapa
shipping adalah berbeda dari default.
So sederhana versi:
- Satu shipping policy untuk semuanya? Declare ini setelah di store tingkat dengan ShippingService.
- sebuah spesifik product ships differently? Override ini pada itu product dengan OfferShippingDetails.
Dua honest cautions
- ini adalah tidak diperlukan, dan ini tidak akan lift Anda rankings. menambahkan shipping markup membuat Anda eligible untuk shipping line di penelusuran — ini tidak move Anda up hasil. data terstruktur tidak pernah melakukan itu.
- menambahkan ini tidak jaminan ini menampilkan. jika Anda juga memiliki sebuah Google Merchant Center feed atau sebuah shipping setting di Search Console, itu dapat diam-diam win di atas Anda markup — dengan Tidak error untuk warn Anda. Lebih pada itu trap di Advanced tab.
ingin penuh versi — setiap property, November 2025 restructure, yang sumber wins ketika several disagree, silent-failure trap, dan berfungsi JSON-LD? Switch untuk Advanced tab.
TL;DR — OfferShippingDetails adalah schema.org jenis nested di bawah
Offer(melaluishippingDetails) itu declaresshippingRate(sebuahMonetaryAmount),shippingDestination(sebuahDefinedRegion), dandeliveryTime(handlingTime+transitTime). sebagai dari November 2025 ini adalah offer-tingkat override half dari sebuah dua-tier sistem: Google now recommends declaring sebuah catalog-wide default setelah di organization tingkat denganShippingService(Organization.hasShippingService), dan reservingOfferShippingDetailsuntuk products itu differ — yang sama org-tingkat/offer-tingkat split ini digunakan untukMerchantReturnPolicy. Dua hal confuse everyone. (1) “Author your default at the org level” (terjemahan) “Author Anda default di org tingkat” dan “product-level markup outranks org-level markup in a conflict” (terjemahan) “product-tingkat markup outranks org-tingkat markup di sebuah conflict” adalah keduanya benar — berbeda axes. (2) silent-failure trap: markup validates di Rich hasil Test tetapi mendapatkan fully overridden oleh sebuah Merchant Center feed nilai atau sebuah Search Console setting, dengan Tidak error until sebuah listing rejection.shippingDetailsadalah recommended, tidak diperlukan; ini adalah eligibility, tidak sebuah peringkat factor.
Apa OfferShippingDetails sebenarnya adalah
schema.org’s own satu-liner adalah terse: “OfferShippingDetails represents information
about shipping destinations.” (terjemahan) “OfferShippingDetails mewakili informasi
tentang shipping destinations.” dalam praktik ini adalah object Anda nest di dalam sebuah Offer
melalui shippingDetails property —
schema.org mendeskripsikan itu property sebagai indicating “information about the shipping
policies and options associated with an Offer.” (terjemahan) “informasi tentang shipping
policies dan options associated dengan sebuah Offer.” ini sits right alongside price,
priceCurrency, dan availability di yang sama Offer itu powers Anda
product schema.
Anda dapat declare multiple OfferShippingDetails instances pada satu product — itu’s yang diharapkan, tidak sebuah error — karena sebuah product dapat ship di berbeda rates untuk berbeda places, atau di berbeda rate/speed tiers untuk yang sama place.
November 2025 restructure: OfferShippingDetails vs. ShippingService
ini adalah bagian hampir Tidak existing guide memiliki folded di, so ini adalah worth melakukan
dengan hati-hati. pada November 12, 2025 Google announced dua expanded cara untuk share
shipping dan mengembalikan policies (Google Search Central blog,
covered yang sama day oleh mesin pencari Journal):
Anda dapat now configure shipping secara langsung di Search Console settings (opened up untuk
apa pun situs Google’s classifiers identify sebagai sebuah merchant, tidak hanya itu dengan sebuah ditautkan
Merchant Center account), dan Anda dapat declare sebuah organization-tingkat ShippingService
di data terstruktur.
«ShippingService is a new schema.org type — declared via
Organization.hasShippingService — that lets you state a standard shipping policy
once, on a single page describing your business’s shipping, instead of repeating
it on every product. Google’s own ShippingService documentation
frames the relationship from that side: “If you need to override your standard
shipping policy for a specific product, specify one or more instances of the
OfferShippingDetails type,” nested under Offer — and notes that product-level
policies support “a more limited set of properties than those described here for
shipping policies specified under Organization.”
» (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian dua puluh tujuh, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)
So authoring guidance adalah:
«- Org level (ShippingService) — the recommended default. Declare your standard
policy once. Google’s merchant-listing docs
say it directly: “We recommend you provide a global shipping policy for your
business under Organization markup instead… Only if some of your products have
specific shipping policies for which you need to override your global shipping
policy, or if you don’t provide a standard shipping policy for your business, use
this property under Offer.”
- Offer level (
OfferShippingDetails) — the override. Use it for the products that genuinely ship differently, or as the fallback if you never declared an org-level default. » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian dua puluh sembilan, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)
Google dibangun ini untuk reduce per-product markup maintenance untuk besar catalogs itu
semua share satu policy. jika Anda know MerchantReturnPolicy
pattern — sebuah default di Organization.hasMerchantReturnPolicy, sebuah override di bawah
Offer — ini adalah yang sama architecture applied untuk shipping. Google memiliki telah actively
tightening ini seluruh property cluster: ini dibuat returnPolicyCountry sebuah explicitly
diperlukan field pada kembalikan-policy sibling di March 2025,
lalu ditambahkan entire ShippingService layer di November 2025.
schema.org proposal behind perubahan (GitHub issue #3617,
initiated oleh Google Shopping engineer Irina Tuduce) adalah jelas itu ini “introduces a
new type, ShippingService, that groups shipping constraints,” (terjemahan) “introduces sebuah
baru jenis, ShippingService, itu groups shipping constraints,” dan itu “redundant
fields from ShippingRateSettings are therefore… deprecated.” (terjemahan) “redundant
fields dari ShippingRateSettings adalah karena itu… deprecated.” Note apa itu melakukan dan
tidak berarti: OfferShippingDetails itself adalah tidak deprecated — ini adalah
repositioned. hanya certain redundant fields di dalam related ShippingRateSettings
jenis adalah dropped.
properties, satu oleh satu
Di dalam sebuah OfferShippingDetails object:
shippingRate— sebuahMonetaryAmount(atauShippingRateSettings). schema.org: “The shipping rate is the cost of shipping to the specified destination.” (terjemahan) “ shipping rate adalah cost dari shipping untuk specified destination.” ini adalah di mana sebuahvaluedari0marks free shipping.ShippingRateSettingsadalah apa 2025 restructure extended untuk mendukung percentage-dari-order-nilai dan percentage-dari-weight rates.shippingDestination— sebuahDefinedRegion. schema.org: ini “indicates (possibly multiple) shipping destinations. These can be defined in several ways, e.g. postalCode ranges.” (terjemahan) “indicates (possibly multiple) shipping destinations. ini dapat menjadi didefinisikan di several cara, e.g. postalCode ranges.” Anda express ini sebagai sebuah country (addressCountry), sebuah region, atau sebuah postal-code range — yang adalah mengapa satu product dapat carry severalOfferShippingDetailsentries untuk berbeda regions.shippingOrigin— juga sebuahDefinedRegion: “Indicates the origin of a shipment, i.e. where it should be coming from.” (terjemahan) “Indicates origin dari sebuah shipment, i.e. di mana ini seharusnya menjadi coming dari.”deliveryTime— sebuahShippingDeliveryTimeobject. schema.org panggilan ini “The total delay between the receipt of the order and the goods reaching the final customer.” (terjemahan) “ total delay antara receipt dari order dan goods reaching akhir customer.” Crucially, ini adalah tidak satu angka — ini adalah sum dari dua sub-properties (di bawah).doesNotShip— sebuah Boolean: “Indicates when shipping to a particular shippingDestination is not available.” (terjemahan) “Indicates ketika shipping untuk sebuah particular shippingDestination adalah tidak tersedia.”hasShippingService— sebuahShippingService( baru org-tingkat jenis; ini adalah tautan antara dua tiers).validForMemberTier— ties sebuah shipping option untuk sebuah loyalty/membership tier (e.g. free shipping untuk members).weight/height/width/depth— package dimensions digunakan untuk rate-matching.
deliveryTime = handlingTime + transitTime
single sebagian besar-missed detail. deliveryTime (sebuah ShippingDeliveryTime) adalah dibuat dari:
handlingTime— schema.org: “The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup.” (terjemahan) “ typical delay antara receipt dari order dan goods either leaving warehouse atau menjadi prepared untuk pickup.” ini adalah Anda processing delay sebelum apa pun ships.transitTime— “The typical delay the order has been sent for delivery and the goods reach the final customer.” (terjemahan) “ typical delay order memiliki telah dikirim untuk pengiriman dan goods reach akhir customer.” ini adalah carrier’s delay setelah ini ships.cutoffTime— “Order cutoff time allows merchants to describe the time after which they will no longer process orders received on that day. For orders processed after cutoff time, one day gets added to the delivery time estimate.” (terjemahan) “Order cutoff time memungkinkan merchants untuk deskripsikan time setelah yang mereka akan Tidak lebih lama proses orders diterima pada itu day. untuk orders processed setelah cutoff time, satu day mendapatkan ditambahkan untuk pengiriman time estimate.”businessDays— days dari week Anda sebenarnya proses orders.
jika sebuah buyer sees “arrives in 4–7 business days,” (terjemahan) “arrives di 4–7 business days,” itu’s menangani (say 1–2 days) plus
transit (3–5 days), dengan cutoffTime bumping estimate sebuah day untuk late orders.
Collapsing dua ke sebuah single dibuat-up transit angka adalah sebuah umum mistake.
adalah ini diperlukan?
Tidak — dan ini adalah sebuah persistent myth. shippingDetails adalah sebuah recommended, tidak
diperlukan, property untuk merchant-listing data terstruktur. satu-satunya diperlukan
merchant-listing properties adalah price (yang untuk merchant listings harus menjadi “greater
than zero” (terjemahan) “greater
daripada zero”) dan priceCurrency (ISO 4217). Anda dapat earn sebuah valid Product rich hasil
dengan Tidak shipping markup di semua.
ada sebuah terpisah requirement orang conflate dengan ini satu: shipping informasi dari
beberapa form — markup, sebuah Merchant Center feed nilai, atau sebuah Search Console setting — adalah
diperlukan untuk eligibility di Google’s free product listings di seluruh roughly 30
countries (per Google Merchant Center Help;
list spans Australia, Brazil, Canada, sebagian besar dari Western Europe, India, Japan, South
Korea, UK, US, dan lebih). itu’s “you must supply shipping info somehow,” (terjemahan) “Anda harus supply shipping info somehow,” tidak
“itu shippingDetails schema property adalah mandatory.” (terjemahan) “ tidak terdefinisi schema property adalah mandatory.” Dua berbeda requirements.
Multiple options dan Google’s tie-break logic
Karena Anda dapat (dan sering seharusnya) list several rate/speed combos — say 5 USD untuk 5–7 days dan 15 USD untuk 1–2 days — Google perlu sebuah aturan untuk yang satu untuk surface. Per -nya ShippingService docs dan SEJ’s coverage: ketika several entries dapat apply untuk yang sama buyer dan destination, Google menampilkan lowest-cost option dan -nya associated speed, breaking cost ties oleh fastest speed. So listing sebuah cheap-tetapi-slow option berarti Google dapat tampilkan itu satu — worth knowing sebelum Anda list ini.
Precedence: apa wins ketika sources conflict
Merchant API atau konten API nilai adalah strongest. Merchant Center atau Search Console shipping settings come berikutnya. Product-tingkat OfferShippingDetails overrides organization markup. Organization-tingkat ShippingService adalah recommended place untuk author default tetapi adalah weakest sumber ketika nilai conflict.
Di sini’s confusion itu trips up nearly everyone, dan ini adalah worth stating sebagai dua terpisah pertanyaan:
pertanyaan sebuah — di mana seharusnya I author my default? di org tingkat
(ShippingService). itu’s authoring recommendation di atas.
pertanyaan B — ketika several sources declare shipping untuk yang sama product, yang nilai melakukan Google sebenarnya gunakan? sebuah berbeda pertanyaan dengan sebuah berbeda jawaban. Google’s own Merchant Center documentation establishes dua tautan di ini chain secara langsung: item-tingkat shipping settings dapat override account-tingkat settings, dan memperbarui pushed melalui konten API untuk Shopping atau Merchant API dapat overwrite manual Merchant Center edits. penuh four-tier stack di bawah — yang folds di data terstruktur too — adalah magstags’ practitioner synthesis, consistent dengan itu dua terdokumentasi tautan tetapi tidak itself sebuah single official Google sumber, strongest untuk weakest:
- konten API untuk Shopping / Merchant API (account-tingkat settings) — strongest.
- Merchant Center atau Search Console shipping settings.
- Product-tingkat
OfferShippingDetailsmarkup. - Org-tingkat
ShippingServicemarkup — weakest.
«Notice the apparent inversion: ShippingService is the recommended thing to author,
but in a conflict, product-level OfferShippingDetails outranks it. Both are true.
“Where should my default live” and “what wins in a fight” are different axes, and
conflating them is the top practitioner error here. As magstags puts it: “Stronger
sources override weaker ones completely. There is no blending.”
» (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian lima puluh, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)
silent-failure trap
ini adalah single sebagian besar valuable pattern untuk internalize — tetapi ini adalah worth menjadi precise tentang apa Google documents secara langsung versus apa sebuah well-corroborated practitioner observation. Google’s own docs konfirmasi underlying mechanism: item- dan account-tingkat settings dapat silently override Anda markup ( precedence stack di atas), dan Merchant Center dapat disapprove sebuah listing untuk inaccurate atau missing shipping informasi. Apa Google’s docs jangan spell out end-untuk-end adalah tepat failure sequence magstags reports: Anda OfferShippingDetails markup validates perfectly di Rich hasil Test, lalu mendapatkan completely overridden oleh sebuah Merchant Center feed nilai atau sebuah Penelusuran Console shipping setting sitting lebih tinggi di itu precedence stack — dengan Tidak error surfaced anywhere. satu-satunya symptom adalah sebuah eventual listing rejection jika displayed shipping cost tidak match apa sebuah buyer sees di checkout. Treat itu sequence sebagai sebuah strong practitioner pattern untuk periksa untuk, tidak sebuah official Google jaminan. magstags juga flags related gotcha itu shipping/mengembalikan policies edited di Merchant Center become baca-hanya di Search Console untuk 30 days. jika Anda markup “isn’t showing,” (terjemahan) “tidak menunjukkan,” periksa lebih tinggi tiers dari stack sebelum Anda touch markup.
Google vs. Bing
asymmetry adalah stark. Bing memiliki Tidak dedicated shipping-schema documentation paralleling
Google’s merchant-listing / ShippingService docs, Tidak OfferShippingDetails atau
ShippingService diperlukan-property tables, dan Tidak equivalent untuk Google’s
free-listings shipping requirement. Bing Webmaster alat validates schema.org markup
generically, tetapi tidak publish sebuah bespoke shipping fitur. ini adalah yang sama pattern
commerce schema hub sudah
documents untuk ProductGroup — treat Bing sebagai “generic schema.org support, no bespoke
shipping feature” (terjemahan) “generic schema.org mendukung, Tidak bespoke
shipping fitur” until sebuah Bing rep says jika tidak, alih-alih assuming parity dengan
Google.
melakukan ini help rankings?
Tidak — sama caveat sebagai semua data terstruktur. ini buys eligibility untuk shipping line di sebuah merchant listing atau knowledge panel; ini adalah tidak sebuah sinyal peringkat. John Mueller memiliki telah blunt pada umum poin: “Structured data won’t make your site rank better,” (terjemahan) “data terstruktur tidak akan membuat Anda situs peringkat better,” dan itu menggunakan ini untuk lainnya purposes “tidak akan penyebab problems, tetapi Anda unlikely untuk see any visible ubah dari it di Google Search” (terjemahan) “tidak akan penyebab masalah, tetapi Anda’re unlikely untuk see apa pun terlihat perubahan dari ini di Google Search” (relayed melalui mesin pencari Roundtable).
”Is schema dying?” (terjemahan) “adalah schema dying?” — sebuah quick disambiguation
Anda dapat memiliki seen late-2025 coverage itu Google akan “remove dukung untuk [certain]
structured data types di Search Console dan its API” (terjemahan) “hapus mendukung untuk [certain]
data terstruktur jenis di Search Console dan -nya API” starting January 2026 (per
SEJ).
itu adalah sebuah kecil set dari unrelated, underused jenis — ini memiliki tidak ada apa pun untuk melakukan dengan
shipping schema. opposite happened di sini: shipping schema adalah expanded
(ShippingService ditambahkan) di November 2025, yang sama season “schema is dying” (terjemahan) “schema adalah dying”
narrative adalah circulating. Mueller’s framing itu week — “markup types come and go,
but a precious few you should hold on to” (terjemahan) “markup jenis come dan go,
tetapi sebuah precious sedikit Anda harus hold pada untuk” (SER)
— adalah right lens: jangan strip valid shipping markup pada sebuah salah alarm.
Di mana ini sits
OfferShippingDetails adalah sebuah property-tingkat jenis di
data terstruktur sub-cluster, nested di bawah
commerce schema hub alongside
Product dan ProductGroup. -nya closest sibling adalah MerchantReturnPolicy — yang sama
org-tingkat-default / offer-tingkat-override architecture applied untuk mengembalikan alih-alih
shipping. untuk lebih luas vocabulary, deprecation cycles, dan cara choose sebuah jenis,
see schema markup; untuk
format itself, JSON-LD.
AI summary
sebuah condensed take pada Advanced versi:
- Apa ini adalah.
OfferShippingDetails(schema.org) adalah data terstruktur nested di bawah sebuahOffermelaluishippingDetails. ini declaresshippingRate(sebuahMonetaryAmount),shippingDestination(sebuahDefinedRegion), dandeliveryTime. Anda dapat list multiple instances per product (berbeda regions atau rate/speed tiers). - ** Nov 2025 dua-tier sistem.** Google now recommends declaring sebuah catalog-wide
default setelah di org tingkat dengan
ShippingService(Organization.hasShippingService), dan menggunakanOfferShippingDetailshanya sebagai per-product override — yang sama split ini menggunakan untukMerchantReturnPolicy.OfferShippingDetailsadalah repositioned, tidak deprecated; hanya redundant fields diShippingRateSettingsadalah dropped. - deliveryTime = handlingTime + transitTime. Menangani adalah Anda warehouse delay
sebelum shipping; transit adalah carrier delay setelah.
cutoffTimemenambahkan sebuah day untuk late orders. ini adalah tidak sebuah single angka. - Recommended, tidak diperlukan. hanya
price(>0 untuk merchant listings) danpriceCurrencyadalah diperlukan untuk sebuah merchant listing. Secara terpisah, shipping info dari beberapa form adalah diperlukan untuk free product listings di ~30 countries — sebuah berbeda requirement. - Dua axes orang conflate. (sebuah) Di mana untuk author Anda default → org tingkat. (B)
Apa wins di sebuah conflict → precedence adalah konten/Merchant API → Merchant
Center/Search Console settings → product-tingkat
OfferShippingDetails→ org-tingkatShippingService. So offer-tingkat override outranks org-tingkat default di sebuah fight, bahkan though default adalah apa Anda’re told untuk author. - ** silent-failure trap.** Markup dapat validate di Rich hasil Test namun menjadi fully overridden oleh sebuah feed nilai atau Search Console setting dengan Tidak error — hanya sebuah kemudian listing rejection jika ditampilkan cost mismatches checkout. Policies edited di Merchant Center go baca-hanya di Search Console untuk 30 days.
- Tie-break. dengan multiple options, Google menampilkan lowest cost (fastest speed breaks ties).
- Tidak sebuah peringkat factor; Bing memiliki Tidak bespoke shipping fitur. Eligibility hanya (Mueller). Jan 2026 Search Console jenis sunset adalah unrelated — shipping schema adalah expanded, tidak cut.
Dokumentasi resmi
Utama-sumber documentation dari Google dan schema.org.
schema.org
- OfferShippingDetails — jenis itself dan -nya penuh property table.
- shippingDetails —
Offerproperty itu nests ini. - ShippingDeliveryTime —
handlingTime,transitTime,cutoffTime,businessDays. - ShippingService — org-tingkat jenis ditambahkan di November 2025 restructure.
- Merchant listing (product) data terstruktur — diperlukan vs. recommended properties, dan “provide a global shipping policy under Organization instead” (terjemahan) “menyediakan sebuah global shipping policy di bawah Organization alih-alih” callout.
- Shipping policy (ShippingService) data terstruktur — November 2025 org-tingkat doc, override hubungan, dan
ShippingConditions. - kembalikan policy (MerchantReturnPolicy) data terstruktur — architecturally parallel sibling jenis.
- Product data terstruktur (overview) — di mana
OfferdanshippingDetailsfit di sebuah Product. - Free listings — country requirements (Merchant Center Help) — ~30-country shipping-info requirement.
- didukung data terstruktur attributes dan nilai (Merchant Center Help) — bagaimana feed attributes map untuk schema.
Google — blog announcements
- Lebih cara untuk share Anda shipping dan mengembalikan policies (Nov 12, 2025) — saat ini-state announcement (Search Console settings + org-tingkat
ShippingService). - baru Schema.org mendukung untuk retailer shipping data (Sept 2020) — original
shippingDetailsannouncement.
schema.org project
- Issue #3617 — org-tingkat shipping proposal — Irina Tuduce’s proposal itu introduced
ShippingService.
developers.google.com/search/blog/* posts (including Sept
2020 dan Nov 2025 announcements) render melalui JavaScript dan resisted direct fetching;
claims drawn dari them adalah corroborated di seluruh dated, bylined sekunder coverage
(SEJ, ppc.land, Etavrian, Pemavor) dan seharusnya menjadi confirmed terhadap langsung halaman
sebelum treating apa pun wording sebagai verbatim. schema.org jenis halaman dan three
/structured-data/* reference docs dirender cleanly dan adalah quoted secara langsung. Quotes dari sumber
pada—record statements dari schema.org dan Google. Di mana sebuah halaman exposes text, tautan adalah sebuah deep tautan itu jumps untuk quoted passage.
schema.org — jenis dan -nya properties
- “OfferShippingDetails represents information about shipping destinations.” (terjemahan) “OfferShippingDetails mewakili informasi tentang shipping destinations.” Jump untuk quote
- pada
shippingDetails: “Indicates information about the shipping policies and options associated with an Offer.” (terjemahan) “Indicates informasi tentang shipping policies dan options associated dengan sebuah Offer.” Jump untuk quote - pada
deliveryTime: “The total delay between the receipt of the order and the goods reaching the final customer.” (terjemahan) “ total delay antara receipt dari order dan goods reaching akhir customer.” Jump untuk quote - pada
handlingTime: “The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup.” (terjemahan) “ typical delay antara receipt dari order dan goods either leaving warehouse atau menjadi prepared untuk pickup.” Jump untuk quote - pada
transitTime: “The typical delay the order has been sent for delivery and the goods reach the final customer.” (terjemahan) “ typical delay order memiliki telah dikirim untuk pengiriman dan goods reach akhir customer.” Jump untuk quote
Google — org-tingkat recommendation ( 2025 repositioning)
- “We merekomendasikan Anda sediakan a global shipping policy untuk Anda business under
Organizationmarkup alih-alih… Hanya jika some dari Anda products memiliki specific shipping policies untuk yang Anda perlu untuk override Anda global shipping policy, atau jika Anda jangan sediakan a standard shipping policy untuk Anda business, gunakan ini property underOffer.” (terjemahan) “kami merekomendasikan Anda menyediakan sebuah global shipping policy untuk Anda business di bawah tidak terdefinisi markup alih-alih… hanya jika beberapa dari Anda products memiliki spesifik shipping policies untuk yang Anda perlu override Anda global shipping policy, atau jika Anda tidak menyediakan sebuah standard shipping policy untuk Anda business, gunakan ini property di bawah tidak terdefinisi.” — Google Search Central, merchant-listing docs. Jump untuk quote Relayed melalui fetch alat’s text extraction dari langsung halaman ini session; konfirmasi tepat#:~:text=fragment di-browser sebelum treating sebagai akhir.
Google — override hubungan (dari ShippingService side)
«- “If you need to override your standard shipping policy for a specific product, specify one or more instances of the OfferShippingDetails type.”
— Google Search Central, shipping-policy docs.
Jump to quote
» (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian delapan puluh empat, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)
«- “Many merchants have shipping policies that outline the process of shipping purchased products for customers. When you add ShippingService structured data to your site, Google Search can use this information to display shipping information alongside your products.”
Jump to quote
» (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian delapan puluh empat, bagian kecil dua: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)
John Mueller, Google — ini adalah tidak sebuah peringkat factor
- “Structured data won’t make your site rank better.” (terjemahan) “data terstruktur tidak akan membuat Anda situs peringkat better.” Baca coverage
- “Exactly. Understand that markup types come and go, but a precious few you should hold on to (like title, and meta robots).” (terjemahan) “Persis. memahami itu markup jenis come dan go, tetapi sebuah precious sedikit Anda harus hold pada untuk (like judul, dan meta robots).” Baca coverage
schema.org GitHub proposal (#3617) — restructure rationale
- “This change introduces a new type, ShippingService, that groups shipping constraints… Redundant fields from ShippingRateSettings are therefore… deprecated.” (terjemahan) “ini perubahan introduces sebuah baru jenis, ShippingService, itu groups shipping constraints… Redundant fields dari ShippingRateSettings adalah karena itu… deprecated.” Baca proposal
Yang shipping jenis seharusnya I gunakan?
seluruh “OfferShippingDetails vs. ShippingService vs. do nothing” (terjemahan) “OfferShippingDetails vs. ShippingService vs. melakukan tidak ada apa pun” pertanyaan di satu path. Remember: ini adalah authoring pertanyaan (“where do I put it” (terjemahan) “di mana melakukan I put ini”), yang adalah terpisah dari precedence (“what wins in a conflict” (terjemahan) “apa wins di sebuah conflict”) — see Cheat Sheet untuk itu.
Di mana seharusnya Anda shipping info langsung?
OfferShippingDetails — cheat sheet
Dua tiers, dua jobs
| Tier | jenis | Declared melalui | gunakan ini untuk |
|---|---|---|---|
| Organization | ShippingService | Organization.hasShippingService | Anda recommended default — satu catalog-wide policy, stated setelah |
| Offer (product) | OfferShippingDetails | Offer.shippingDetails | override — products itu ship differently, atau fallback jika Tidak default ada |
** core properties (di dalam OfferShippingDetails)**
| Property | jenis | Apa ini says |
|---|---|---|
shippingRate | MonetaryAmount | Cost dari shipping (value: 0 = free) |
shippingDestination | DefinedRegion | Country / region / postal-code range ini applies untuk |
shippingOrigin | DefinedRegion | Di mana shipment muncul dari |
deliveryTime | ShippingDeliveryTime | Total delay = handlingTime + transitTime |
doesNotShip | Boolean | ini destination tidak disajikan |
deliveryTime breakdown
| Sub-property | Meaning |
|---|---|
handlingTime | Anda warehouse delay sebelum ini ships |
transitTime | carrier delay setelah ini ships |
cutoffTime | Late orders (setelah ini time) tambahkan sebuah day |
businessDays | Days Anda sebenarnya proses orders |
Precedence — apa wins di sebuah conflict (strongest → weakest)
- konten API untuk Shopping / Merchant API
- Merchant Center / Search Console settings
- Product-tingkat
OfferShippingDetails - Org-tingkat
ShippingService
«> Two different questions: where to author your default (org level) vs. *what wins
in a fight* (offer level outranks org level). Both true. “Stronger sources override weaker ones completely. There is no blending.” » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian seratus enam, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)
Fast facts
shippingDetailsadalah recommended, tidak diperlukan — hanyaprice(>0) danpriceCurrencyadalah diperlukan untuk sebuah merchant listing.- Shipping info dari beberapa form adalah diperlukan untuk free listings di ~30 countries — sebuah terpisah requirement.
- Multiple entries welcome; Google menampilkan lowest cost (fastest speed breaks ties).
- Tidak sebuah peringkat factor — eligibility hanya.
- Silent-failure trap: validates di Rich hasil Test, masih overridden oleh sebuah feed / Search Console setting dengan Tidak error. Policies edited di Merchant Center adalah baca-hanya di Search Console untuk 30 days.
OfferShippingDetailsadalah repositioned, tidak deprecated, di Nov 2025.
berfungsi JSON-LD
Illustrative contoh — validate Anda own di Rich hasil Test dan schema.org validator sebelum shipping, dan pastikan nilai match Anda feed dan checkout persis.
1. Offer-tingkat OfferShippingDetails ( per-product override)
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Merino Wool Beanie",
"offers": {
"@type": "Offer",
"price": 29.00,
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": 5.00,
"currency": "USD"
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "US"
},
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": {
"@type": "QuantitativeValue",
"minValue": 0,
"maxValue": 1,
"unitCode": "DAY"
},
"transitTime": {
"@type": "QuantitativeValue",
"minValue": 2,
"maxValue": 5,
"unitCode": "DAY"
}
}
}
}
}itu advertises 5 USD US shipping dengan sebuah 0–1 day menangani window plus 2–5 days di transit — i.e. “arrives di tentang 2–6 business days.” (terjemahan) “arrives di tentang 2–6 business days.”
«2. Multiple shipping options (standard vs. expedited) » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian seratus lima belas, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)
shippingDetails takes sebuah array — list setiap tier dan let Google apply -nya tie-break
(lowest cost, fastest speed breaks ties):
"shippingDetails": [
{
"@type": "OfferShippingDetails",
"shippingRate": { "@type": "MonetaryAmount", "value": 5.00, "currency": "USD" },
"shippingDestination": { "@type": "DefinedRegion", "addressCountry": "US" },
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"transitTime": { "@type": "QuantitativeValue", "minValue": 5, "maxValue": 7, "unitCode": "DAY" }
}
},
{
"@type": "OfferShippingDetails",
"shippingRate": { "@type": "MonetaryAmount", "value": 15.00, "currency": "USD" },
"shippingDestination": { "@type": "DefinedRegion", "addressCountry": "US" },
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"transitTime": { "@type": "QuantitativeValue", "minValue": 1, "maxValue": 2, "unitCode": "DAY" }
}
}
]3. Free shipping
Free shipping adalah hanya sebuah shippingRate dengan sebuah value dari 0:
"shippingRate": { "@type": "MonetaryAmount", "value": 0, "currency": "USD" }4. tidak ship untuk sebuah region
{
"@type": "OfferShippingDetails",
"shippingDestination": { "@type": "DefinedRegion", "addressCountry": "AU" },
"doesNotShip": true
}org-tingkat ShippingService (declared di bawah Organization.hasShippingService) adalah
recommended default untuk author ketika Anda seluruh catalog shares satu policy — reserve
offer-tingkat blocks di atas untuk products itu genuinely differ.
Mistakes dan myths
recurring cara OfferShippingDetails goes wrong:
- “
shippingDetailsadalah wajib untuk Product rich hasil.” (terjemahan) “tidak terdefinisi adalah diperlukan untuk Product rich hasil.” ini tidak — ini adalah sebuah recommended property untuk shipping-detail enhancement. hanyaprice(>0 untuk merchant listings) danpriceCurrencyadalah diperlukan. (Secara terpisah, shipping info dari beberapa form adalah diperlukan untuk free listings di ~30 countries — sebuah berbeda hal.) - “Adding OfferShippingDetails guarantees my shipping cost shows.” (terjemahan) “menambahkan OfferShippingDetails jaminan my shipping cost menampilkan.” Tidak. sebuah Merchant Center feed nilai atau sebuah Search Console setting sits lebih tinggi di precedence stack dan dapat silently override valid markup — dengan Tidak error until sebuah eventual listing rejection. periksa lebih tinggi tiers sebelum Anda touch markup.
- “
ShippingServicereplaces / deprecatesOfferShippingDetails.” (terjemahan) “tidak terdefinisi replaces / deprecates tidak terdefinisi.” Tidak.OfferShippingDetailsadalah ongoing override di bawahOffer. hanya certain redundant fields di dalamShippingRateSettingsadalah deprecated — tidak jenis. - Conflating dua axes. “Author your default at the org level” (terjemahan) “Author Anda default di org tingkat” (authoring) dan “product-level markup outranks org-level in a conflict” (terjemahan) “product-tingkat markup outranks org-tingkat di sebuah conflict” (precedence) adalah keduanya benar dan jawaban berbeda pertanyaan. jangan alasan sebagai jika satu contradicts lainnya.
- Collapsing
deliveryTimeke satu angka. ini adalahhandlingTime(Anda processing delay) plustransitTime( carrier’s delay). Penerbitan sebuah single dibuat-up “shipping time” (terjemahan) “shipping time” misstates keduanya — dan jika ini disagrees dengan checkout, risks rejection. - Markup itu disagrees dengan feed atau checkout. Karena stronger sources override completely, sebuah shipping cost di Anda markup itu tidak match Anda feed atau sebenarnya checkout adalah sebuah rejection risk, tidak sebuah harmless duplicate. pertahankan them identical.
- “Schema is dying, so skip shipping markup.” (terjemahan) “Schema adalah dying, so skip shipping markup.” ini conflates January 2026 Search Console sunset dari sebuah sedikit unrelated, underused jenis dengan shipping schema — yang adalah expanded di November 2025, tidak cut.
- “Structured data like this will help rankings.” (terjemahan) “data terstruktur like ini akan help rankings.” Tidak — ini earns rich-hasil eligibility, tidak pernah sebuah peringkat boost (Mueller, repeatedly).
umum shipping-markup issues
Validator accepts JSON-LD tetapi shipping data adalah wrong
Penyebab: valid syntax dapat masih berisi stale regions, rates, atau timing. Perbaiki: reconcile markup dengan checkout dan feed/business-policy data.
Shipping detail muncul untuk wrong destination
Penyebab: destination constraints adalah missing atau modeled di wrong tingkat. Perbaiki: map setiap service dan destination explicitly dan test representative addresses.
Multiple shipping sources disagree
Penyebab: halaman markup, Merchant Center, dan account settings adalah maintained secara terpisah. Perbaiki: choose sebuah operational sumber kebenaran dan synchronize setiap surface.
Validation tests
Test published shipping markup
Test untuk jalankan — validate representative product halaman dan bandingkan parsed destinations, rates, menangani, dan transit nilai dengan checkout. Yang diharapkan hasil — eligible markup matches apa sebuah pengguna menerima. Failure interpretation — mapping atau sumber data adalah incomplete. Monitoring window — immediate. Rollback trigger — hapus rollout jika ini publishes materially wrong shipping promises.
Test sumber consistency
Test untuk jalankan — bandingkan halaman JSON-LD, feed/account shipping settings, dan checkout untuk yang sama products dan destinations. Yang diharapkan hasil — Tidak unexplained conflict. Failure interpretation — terpisah sistem memiliki drifted. Monitoring window — setelah setiap policy perubahan. Rollback trigger — restore terakhir consistent configuration jika sebuah perubahan membuat mismatches.
Uji pemahaman Anda: OfferShippingDetails Schema
Five quick pertanyaan pada bagaimana OfferShippingDetails berfungsi dan di mana ini fits setelah November 2025 restructure. Pick sebuah jawaban untuk setiap, lalu periksa.
Resources worth Anda time
My related writing
- data terstruktur: Apa ini adalah dan cara gunakan ini — my Ahrefs guide untuk schema jenis, implementation, validation, dan
sameAsrisk; lebih luas context ini shipping jenis sits di dalam. - Beginner’s Guide untuk SEO teknis — di mana data terstruktur fits di wider teknis picture.
My speaking
- Bagaimana Penelusuran berfungsi (SlideShare) — my walkthrough dari crawling, rendering, pengindeksan, dan bagaimana markup adalah consumed. (My standing disclaimer applies: “Ini adalah my understanding dari sistem… tidak going untuk menjadi 100% menyelesaikan atau accurate.” (terjemahan) “ini adalah my understanding dari sistem… tidak going untuk menjadi 100% menyelesaikan atau accurate.”)
Official
- Google — Merchant listing data terstruktur dan Shipping policy (ShippingService) — dua reference docs itu define diperlukan/recommended properties dan org-tingkat/offer-tingkat hubungan.
- Google — Lebih cara untuk share Anda shipping dan mengembalikan policies (Nov 12, 2025) — announcement dari Search Console settings + org-tingkat
ShippingService. - schema.org — OfferShippingDetails · ShippingDeliveryTime · ShippingService — vocabulary itself.
- schema.org proposal #3617 — GitHub issue (Irina Tuduce, Google) behind restructure.
dari sekitar industry
- Google Launches data terstruktur untuk Merchant Shipping Policies (mesin pencari Journal, Matt G. Southern, Nov 12 2025) — clearest bylined tulis-up dari November 2025 launch dan tie-break logic.
- Google adalah Tidak Diminishing gunakan dari data terstruktur di 2026 (mesin pencari Journal, Roger Montti, Nov 11 2025) — disambiguates January 2026 Search Console jenis sunset dari shipping-schema expansion.
- Google Memperbarui data terstruktur Requirements untuk kembalikan Policies (mesin pencari Journal, Mar 14 2025) — March 2025
returnPolicyCountrytightening pada sibling kembalikan-policy jenis. - Google shipping dan mengembalikan policies di Search Console atau menggunakan baru markup (mesin pencari Land) — Search Console-vs-markup options laid out.
- Google Shipping & kembalikan Settings (magstags) — strongest practitioner piece pada precedence stack (“there is no blending” (terjemahan) “tidak ada blending”) dan silent-failure trap.
- Google expands shipping policy options untuk online merchants (ppc.land) — corroborating coverage dari November 2025 perubahan.
Log perubahan
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.