BYBOWU > Blog > SEO

Google’s Shipping Policy Structured Data: What Now

blog hero image
Google just gave every online store two new knobs to surface shipping and returns in Search: org‑level shipping policy structured data and a Search Console setting that doesn’t require Merchant Center. The kicker? The Search Console setting overrides your markup. If you run ecommerce, this changes how you model shipping data, where you host policy pages, and how you validate eligibility for rich displays. Below is a tight, real‑world playbook—what changed, why it matters, how to imple...
📅
Published
Nov 30, 2025
🏷️
Category
SEO
⏱️
Read Time
9 min

Google expanded support for shipping policy structured data and opened a new Search Console setting so merchants can declare shipping and returns without a Merchant Center account. The Search Console configuration rolls out globally over the coming weeks and explicitly takes precedence over site markup—so your data model and governance need an update. (developers.google.com)

Developer adding JSON-LD shipping policy structured data to a site

What exactly changed on November 12, 2025?

Two practical changes for ecommerce teams:

First, Google now lets any site it identifies as a merchant configure Shipping and returns directly in Search Console. Previously, this UI was limited to sites with Merchant Center. Second, Google added organization‑level support for shipping policy markup so you can specify standard shipping once under Organization—no more copy‑pasting per product. If a product has its own shipping details, those still override the org default. (developers.google.com)

Three precedence rules matter:

• Product‑level shipping overrides organization‑level shipping for that product.

• The new Search Console shipping/returns setting overrides your structured data.

• Rolling rollout, all countries and languages, so expect staggered availability across properties. (developers.google.com)

Why developers and ecommerce leads should care

This is less about SEO “rankings” and more about eligibility and clarity. By centralizing shipping and returns, you reduce markup sprawl, align policy language across markets, and increase the chance Google can display fulfillment signals in product results, brand profiles, and knowledge panels. That visibility influences click‑through for price‑sensitive and speed‑sensitive shoppers. Google’s documentation frames this as broader display eligibility rather than a ranking factor; treat it like conversion UX at the SERP layer. (developers.google.com)

Primary keyword: shipping policy structured data—how to implement it cleanly

Let’s get practical. You’ll implement the shipping default on a single, canonical policy page and nest ShippingService under Organization via hasShippingService. Keep it specific, but don’t bake in volatile promotions (like a 3‑day free‑shipping sale). Those belong at product level or in campaigns. (developers.google.com)

Recommended JSON‑LD scaffold

Place this on your shipping policy page (for example, /shipping), and ensure your Organization entity is the same one you use site‑wide:

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Example Store",
  "url": "https://www.example.com",
  "hasShippingService": [{
    "@type": "ShippingService",
    "name": "Standard US Shipping",
    "areaServed": { "@type": "Country", "name": "US" },
    "shippingRate": {
      "@type": "MonetaryAmount",
      "value": "5.00",
      "currency": "USD"
    },
    "deliveryTime": {
      "@type": "ShippingDeliveryTime",
      "handlingTime": {"@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "d"},
      "transitTime": {"@type": "QuantitativeValue", "minValue": 3, "maxValue": 5, "unitCode": "d"}
    }
  },{
    "@type": "ShippingService",
    "name": "Free Shipping over $50",
    "areaServed": { "@type": "Country", "name": "US" },
    "shippingRate": {
      "@type": "MonetaryAmount",
      "value": "0",
      "currency": "USD"
    }
  }],
  "hasMerchantReturnPolicy": {
    "@type": "MerchantReturnPolicy",
    "applicableCountry": "US",
    "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
    "merchantReturnDays": 30,
    "returnMethod": "ReturnByMail",
    "returnFees": "FreeReturn"
  }
}

Then, for a product that needs special handling (say, oversized furniture), provide OfferShippingDetails at the product level so it overrides the org default for that SKU. (developers.google.com)

Where to host and how to validate

Host a single, crawlable shipping policy page linked in your footer and XML sitemap. Validate with the Rich Results Test by URL or code paste to verify the Organization entity and ShippingService instances parse cleanly. Monitor the Merchant Listings report in Search Console for warnings on missing or conflicting policies. (developers.google.com)

Search Console vs. markup: when to use which?

Use the Search Console setting if you want a non‑developer path to publish updates quickly or you’re mid‑CMS migration. Use shipping policy structured data for durable defaults that live with your content and version control. Remember: if both exist, Search Console wins. Plan your governance so you don’t accidentally mask a code change with a stale UI setting. (developers.google.com)

Decision matrix

• Small catalog, uniform policies: set an org‑level default via markup and keep Search Console empty. Simple and bulletproof.

• Seasonal promos: apply temporary overrides in Search Console with dated reminders, or apply product‑level overrides in code.

• High‑variance catalog: keep org‑level defaults minimal and push most details to product‑level offers to avoid global conflicts.

Pitfalls and edge cases I’ve seen in audits

• Conflicting areas served: Don’t claim worldwide shipping org‑wide while product pages restrict to US only; the product might still display the right override, but you’ll create hard‑to‑debug warnings.

• Dynamic paywalls: If the shipping page requires login or geolocation to render prices, Google may not see your rates. Server‑side render the core policy block for bots.

• Duplicate Organizations: Many templates emit multiple Organization entities. Consolidate to one canonical entity that owns hasShippingService and hasMerchantReturnPolicy.

• Inconsistent currencies: Keep ISO currency codes consistent with your feed and payment processor; mixed USD/US$ strings can fail parsing.

• Stale overrides in Search Console: Teams forget they set a holiday policy in the UI. Make it a runbook step to clear or update after promo windows.

People also ask

Does this change rankings?

Google frames these policy surfaces as display and eligibility features, not ranking systems. Treat them like richer snippets that improve clarity and CTR rather than positions. (developers.google.com)

Where should I put the markup?

On a single, public page that describes your shipping policy, with Organization as the top entity and your ShippingService instances nested beneath via hasShippingService. (developers.google.com)

Can I support multiple countries and tiers?

Yes. Use multiple ShippingService entries with areaServed, rates, and delivery windows per region. Pair with product‑level overrides for edge SKUs (hazmat, bulky items). (developers.google.com)

Do I still need Merchant Center?

No, not to publish shipping/returns via Search Console or org‑level markup. Merchant Center remains valuable for feeds and shopping programs, but isn’t required for these settings anymore. (developers.google.com)

A quick migration playbook

Here’s a pragmatic way to ship this in a week without thrash:

Day 1: Inventory policy surfaces. Collect current shipping/returns texts, per‑market variations, and any SKU‑level exceptions. Decide on one canonical shipping page URL.

Day 2: Add Organization JSON‑LD with hasShippingService and hasMerchantReturnPolicy. Keep it conservative (standard rates and windows) and defer edge cases to products. Validate in the Rich Results Test. (developers.google.com)

Day 3: Wire product‑level overrides for the top 20 SKUs with unusual shipping (oversized, restrictions). QA with structured data testing.

Day 4: Update footer/header links to the shipping and returns pages. Ensure canonical tags and sitemap entries exist.

Day 5: Decide whether to use the Search Console UI. If yes, replicate the same defaults there and set a reminder to review after major promos. Note that the UI will override your code if values conflict. (developers.google.com)

Day 6–7: Monitor Merchant Listings in Search Console, spot‑check with site: queries, and confirm no warnings on conflicting policies. Document your governance in your runbooks.

Validation and monitoring (without guesswork)

• Rich Results Test: Validate the shipping policy URL and a handful of sample product URLs. Confirm Organization → hasShippingService → ShippingService resolves with expected properties. (developers.google.com)

• Search Console: Watch the Merchant Listings report and the new Shipping and returns settings page for coverage and misconfigurations. (developers.google.com)

• Versioning: Commit JSON‑LD as code alongside the policy page. Avoid hiding policies behind client‑side rendering for bots.

Connect this to broader structured data housekeeping

If you haven’t audited markup since mid‑2025, add it to your backlog. Google has been simplifying the SERP and phasing out lesser‑used schema types, which can leave dead payloads in your templates. It won’t tank rankings, but it adds noise and maintenance risk. Clean templates are easier to reason about when new displays like shipping and returns appear. (developers.google.com)

Bonus: annotate your change in Search Console

Right‑click on the Performance chart’s date you deploy and add a short note like “Org‑level ShippingService live.” In a month, when clicks rise on branded queries or product impressions change, you’ll know why. Yes, Google quietly shipped custom annotations in mid‑November—use them to correlate policy updates with traffic. (developers.google.com)

Search Console chart with a custom annotation marker

Governance framework for multi‑team ecommerce orgs

If marketing controls promotions and engineering controls markup, you need a simple RACI:

• Policy owner (Legal/Operations): approves baseline copy and return windows per country.

• Engineering: owns Organization JSON‑LD, product‑level overrides, and validation.

• SEO/Content: owns internal linking and policy clarity for users; requests overrides.

• Growth/CRM: requests temporary Search Console settings for limited‑time offers; schedules end dates.

• Analytics: adds a custom annotation on deployment; reports on impressions/CTR deltas by brand and product entities.

What to do next

• Publish a single, crawlable shipping policy page and add Organization‑level JSON‑LD.

• Decide whether to also set the Search Console shipping/returns UI; don’t let it drift out of sync with code.

• Add product‑level shipping overrides only where truly needed; keep org defaults clean.

• Validate with the Rich Results Test and monitor Merchant Listings weekly for the first month.

• Add a Search Console annotation on the deployment date for future analysis.

• Put a maintenance reminder on your calendar to revisit policies ahead of seasonal spikes.

Need a second set of eyes?

If you want a fast audit of your policy markup, we do this work weekly for teams shipping at pace. See our technical SEO and web development services, browse a few relevant wins in our portfolio, and catch our other field guides on the blog including a deep dive on 2025 structured data changes. Or just DM us via contacts and we’ll send a punch‑list for your stack.

Precedence flowchart: product overrides org, Search Console overrides markup
Written by Viktoria Sulzhyk · BYBOWU
4,396 views

Work with a Phoenix-based web & app team

If this article resonated with your goals, our Phoenix, AZ team can help turn it into a real project for your business.

Explore Phoenix Web & App Services Get a Free Phoenix Web Development Quote

Get in Touch

Ready to start your next project? Let's discuss how we can help bring your vision to life

Email Us

[email protected]

We typically respond within 5 minutes – 4 hours (America/Phoenix time), wherever you are

Call Us

+1 (602) 748-9530

Available Mon–Fri, 9AM–6PM (America/Phoenix)

Live Chat

Start a conversation

Get instant answers

Visit Us

Phoenix, AZ / Spain / Ukraine

Digital Innovation Hub

Send us a message

Tell us about your project and we'll get back to you from Phoenix HQ within a few business hours. You can also ask for a free website/app audit.

💻
🎯
🚀
💎
🔥