How a Migration Makes You Invisible to AI

Most replatforming checklists end at "the new site is live and looks right." The part that quietly decides whether an AI assistant can still find you is the part nobody demos: what happens to every old URL after cutover.
AI assistants — ChatGPT, Gemini, Perplexity, Claude — don't rediscover your catalog from scratch each morning. They lean on what they already learned and on what they can fetch right now: your old product URLs, the pages that linked to them, the directories and marketplaces that cited them. Replatform without a redirect map and every one of those becomes a 404. The model asks for the page it knew about, gets nothing, and the next time a buyer asks it "who supplies this," your name isn't in the answer. You didn't get outranked. You disappeared.
#The number nobody checks: old URLs that now 404
On a recent WooCommerce to Shopify B2B migration for a Dutch wholesale distributor, moved through a partner agency, the old store had 6,735 /product/* URLs. The new Shopify catalog had 3,469 products — fewer, because the old URL count included variants and discontinued items. That gap is normal. What is not normal is leaving the 6,735 old addresses to rot.
So before cutover we went through the old collection links one by one. 174 of 175 now 301-redirect to a live, 200-status page. The one that didn't — a single /sale-5-2 still returning 404 — is on the fix list, not hidden. Another 15 old product URLs pointed at a product that no longer exists; rather than 404, each sends the visitor (and the crawler) back to its parent collection, which is a live page that answers "we still sell this kind of thing." Internal links on the English storefront: 158 of 158 resolve to 200.
None of that is glamorous. Nobody claps for a redirect. But a redirect is the difference between an AI agent following a known link to a live page it can read, and following it into a wall.
#Redirects are necessary, not sufficient — the page has to be readable
A 301 gets the agent to a live URL. Whether the agent can use that page is a second question, and it's where B2B stores lose the thread.
A wholesale storefront is built for logged-in buyers: catalog behind login, per-group pricing, trade accounts. An AI assistant arrives logged out. If the destination page is a "log in to see price" wall with no structured data, the agent reached a live URL and still learned nothing. So the post-migration page needs three things the old one often had by accident and the new one has to earn on purpose:
- Product and Offer structured data on the logged-out view — enough for an agent to parse what the product is and that you sell it, even when the exact trade price stays behind login.
- An honest price signal — "pricing shown to approved trade accounts," not an empty field an agent reads as "no price, probably unavailable."
- Language consistency. On this migration, 743 products still carried Dutch variant names after the first import; all 743 are now corrected. A German buyer's agent reading Dutch size labels on an English page is one more reason to pick someone else.
One caution from the same job, stated plainly because it's the common trap: a storefront can look gated while price still leaks through /products.json or /cart/add.js. If your pricing model is the thing you're protecting, verify the data endpoints, not just the rendered page. (On this build that hardening is still open — which is exactly why we don't claim it's done.)
#The gate, in order
- Export every old URL (products, collections, CMS) before you touch DNS. The count is your denominator.
- Map each one to a live 200: product→product where it survived, product→parent collection where it didn't.
- Crawl the old list after cutover and catch the stragglers — the 1-in-175 that 404s is invisible until you look.
- Check the logged-out destination: does it carry Product/Offer schema and an honest price signal, or is it a dead wall to a crawler?
- Re-run the count. "Imported successfully" is not a number; "174 of 175 live, 1 on the fix list" is.
An AI agent can only recommend a store it can reach and read. A migration is the moment you decide whether it still can.
Want to know whether an AI agent can find and read your store right now? Send one store URL and we'll run a free async AI-correctness read and send back a named punch-list of where agents hit a dead end or misread you: luma-e.com/ai-readiness. No call required. More migration write-ups on our work page.