Editorial

How often Shopify storefronts put shipping and returns where you can find them

Updated

StoreAtlas editors

methodshippingreturnsdataset
Travel bags against a pale field — the object a shipping and returns link is supposed to explain

Read as Markdown · Before you buy

Travel bags against a pale field — the object a shipping and returns link is supposed to explain

A little over half of the Shopify storefronts we opened put both shipping and returns where a shopper can click them. We attempted 160 official homepages from the StoreAtlas directory and fetched 150 first HTML responses on 17 September 2026. Eighty-three of those 150 had both links; thirty-nine had one; twenty-eight had neither. Ten hosts blocked or throttled the request and are out of the percentages. This is not a quality score and not a Best of list. It means the rule that decides whether the object can arrive is often one footer click away — and about one time in five it was not in the first HTML we saw.

How we sampled (and what “discoverable” meant)

This is an original count, not a scraped ranking and not a map of every Shopify theme. The directory file stores.json held 1,102 brand rows on the day we sampled. Those rows have no shipping_url or returns_url field. Editorial notes in review_en mention shipping on hundreds of files because we write that sentence — our habit, not a storefront measurement. We did not use note text as the headline.

We took a reproducible slice of the public homepages those rows already point at. Excluded the sexual-wellness category. Sorted the remaining twelve category slugs A–Z, then stores by slug A–Z inside each. Took the first fourteen rows from art-craft, beauty, electronics, and fashion, and the first thirteen from the other eight categories: 160 official URLs. No favorites, no brands that are not in the file.

On 17 September 2026 we requested each homepage with a short timeout and a StoreAtlas bot user-agent, followed redirects, and read the first HTML. We did not log in, open checkout, collect emails, or invent GMV.

A rule counted as discoverable when that first HTML contained an <a> whose visible text or path looked like a policy, not a promo tile. Typical hits: /policies/shipping-policy, /policies/refund-policy, /pages/shipping, /pages/returns, /pages/shipping-returns, and link text such as “Shipping”, “Returns”, “Shipping & Returns”, “Refund Policy”, or “Start a Return”. A combined shipping-and-returns page counted as both. Collection tiles that only said “Free shipping” did not. Login URLs that only carried return_to= did not. “Return to top” did not. Privacy and terms-only links did not.

What this misses on purpose: a footer injected only after JavaScript; a default /policies/ path that is not linked from the homepage; a table that appears after a postcode; a locale switcher that rewrites the story. Those are real shopper paths. They are not in this first-HTML count. If a host returned 403 or 429, we dropped it from the denominator instead of guessing.

How to read a table once you find it — locale, thresholds, duties, final sale — is the older method note: How to check shipping and returns on a Shopify store. This page only asks whether the door to that table was in the first HTML.

What the 150 homepages showed

Percentages below are whole-number shares of the 150 pages we actually fetched. They are not precise to a tenth, and they are not a Shopify-wide rate.

What we counted in the first HTMLHomepagesShare of 150
Shipping policy link90about 3 in 5
Returns policy link115about 3 in 4
Both83a little over half
Either122about 4 in 5
Neither28about 1 in 5

Returns labels showed up more often than shipping labels. That is not “returns are better.” A returns portal (“Start a Return”) is easy to name in a footer. Shipping is often a banner, a locale picker, or a postcode field that this method does not award.

Category cells in this slice were 11–14 homepages each. That is too small to rank categories. The only observation worth keeping is the shape, not a trophy: food-and-drink was the sparsest cell (4 of 13 had either link). Outdoor and kids were dense (12 of 13 and 11 of 12 with either). Fitness often had a returns link without a shipping policy link (10 of 11 either; 4 of 11 both). Treat those as this sample, not a law of grocery or gym brands.

Two directory files illustrate the gap without becoming a score. Allbirds had a returns-and-exchanges page in the first HTML we fetched; a shipping policy link was not in that same first response. Away linked a returns-and-exchanges page. Neither file is a winner. Both still send you to the official locale the day you pay. Pair this note with how to evaluate a Shopify store: findability is one check, not the whole room.

What this is not

This is a method note with a dated sample. It is not a ranking, not a star score, and not a Best of shipping pages list. We will not invent a rate, a restock, or an email list. We will not turn 83/150 into “55.33% of Shopify.” The directory is edited brands we could already file, not a random draw of every .myshopify.com theme.

A missing homepage link does not prove the merchant has no policy. It proves we did not see a policy-shaped link in the first HTML. The footer may load later. The PDP may carry a tab. A default /policies/shipping-policy path may still 200 if you type it. None of that is the same as finding the rule before the cart.

A present link does not prove the rule is kind. We do not score return windows. A long window you cannot find is not a longer window — that sentence still belongs on the shipping and returns method. A combined “Shipping & Returns” page can still hide final sale at pay.

If the object is a locale, use how to check whether a brand storefront ships to your locale. If the first screen is a club door, use membership versus guest checkout.

What to check yourself on a storefront

Open the official homepage you will actually use — the host in the address bar, not a marketplace tile and not a lookalike domain. The official storefront versus lookalike note is the domain check.

Find a shipping link and a returns link before you treat a tile as in stock. Footer, header, and the product-page tab are the usual doors. A banner that only says “Free shipping” is merchandising until it points at a table.

Open the locale or country you will pay in, then read the table again. Region is part of the product. A US homepage is not the contract for every country.

Find the return window and any final-sale line on the same pass. Intimate, food, and freight objects often carry a stricter rule than a tee.

If a tile price looks too cheap, look for a membership or threshold split before checkout. Guest and member catalogs are different rooms.

Then open the official PDP for the SKU. Confirm ship-to and the window the day you buy. StoreAtlas will not invent the number. The short brand file, when we have one, stays on /s/{slug} — use it for who the room is for, not as a substitute table.

Questions

Did you crawl every Shopify store?
No. We attempted 160 official homepages already listed in this repo and fetched 150 on 17 September 2026. The directory is not all of Shopify. Ten hosts were blocked or throttled and are not in the percentages.
Does a missing homepage link mean there is no policy?
No. It means we did not see a policy-shaped link in the first HTML. A JavaScript footer, a PDP tab, or a default `/policies/` path can still exist. Confirm on the official host.
Do you score return generosity?
No. We notice whether a shipping or returns door was findable in that first HTML. We do not invent star scores, discount badges, or a Best of list. A long window you cannot find is not a longer window.
How should I check a store myself?
Open the official locale you will pay on. Find the shipping table and the return window before the cart. Then read [how to check shipping and returns on a Shopify store](/blog/reading-shipping-and-returns-on-shopify-stores) and [how to evaluate a Shopify store](/blog/how-to-evaluate-a-shopify-store). Confirm the live rule the day you buy.