Problem
One market had its own folder in the URL, which created copies of the same pages and gave Google prices in the wrong currency. In the US store, custom fonts returned 404 and fell back to system fonts. Product links with a collection path were indexed as duplicates. Bots testing cards also filled the store with junk checkouts.
Solution
I researched each task before changing anything: search data, Admin API, live HTML and sitemap. For the market clean-up I prepared a runbook with backups, four CSV files of one-to-one redirects and a before-and-after check. The redirects were uploaded first, so they work from the moment the folder is removed. In the theme, fonts moved to theme assets and product links became canonical.
Key decisions
Chose one-to-one redirects uploaded before the switch
Why Shopify redirects only fire on a 404, so redirects uploaded early take over exactly when the old folder is removed, with no gap of errors.
Chose to test Shopify's behaviour on an earlier removed folder first
Why It gave proof of how redirects, query strings and live pages interact, without risk to the store.
Chose fonts as theme assets, not as files in Content
Why Theme assets load reliably from the theme and travel with it.
Chose to report a request that did not match the data
Why The brief sent one folder to /en/, but that path returns 404, so those URLs go to the root.
Results
- About nine thousand redirects uploaded and checked, each reaching a live page in one step with query strings kept.
- hreflang now lists only real language variants, and the extra market folders are gone from the sitemap.
- A product with 574 variants works end to end, including colours past the 250th variant.
- Theme upgraded earlier in the year without losing customisation.
- A Shopify Flow rule designed to stop bot carts from triggering recovery emails.
