GEO-017·Issue 02·Strategy & Market·17 / 132
DTC, Shopify, and Amazon: GEO Accessibility Across Three Storefronts
A control map for DTC, Shopify, and Amazon: which GEO layers you can actually edit, what each AI surface reads, and how to set one goal per storefront.
Issue focusGet Seen First: Crawling, Rendering, and AI Bot Accessibility
At a US pet-supply brand’s standup, the growth lead reads a ChatGPT answer to “best fountain for a cat that won’t drink from a bowl”: it names two competitors’ DTC sites and a Reddit thread. The brand’s DTC store is missing, and so is its Amazon listing — the one outselling both competitors. Engineering blames robots.txt; operations blames the listing. Both are right, about different storefronts.
The three storefronts differ less in traffic than in how far down you can edit — server, theme, or input fields only — so each needs its own GEO goal.
Ask what you can edit before what you should do
The GEO checklist has a dozen items, each assuming a layer is yours. On a self-hosted DTC site, robots.txt, rendering, structured data, and raw logs live in your repo. On Shopify you own the theme and product data, not hosted checkout or origin logs. On Amazon you own backend attributes, price, stock, and review responses; rendering and crawling are the platform’s call.
| Layer | Self-hosted DTC | Shopify | Amazon |
|---|---|---|---|
| Crawler rules | Yours, per bot | Theme-editable; platform default | No entry point |
| Rendering | Server or client | Theme editable; apps render in-browser | Platform template |
| Structured data | Any schema | Theme or apps; watch duplicates | No entry point |
| Price and stock | Your feed and API | Admin and apps | Backend fields |
| Access logs | Raw logs | Platform reports | Seller reports |
Defaults move; as of early 2026, check each platform’s docs, not a copied list. This is not a scorecard: more editable layers do not justify more budget; order work by what you can verify. The DTC site is forensic: change robots, read the log, replay the fetch without JavaScript. Amazon sits next to the transaction, but every action stops at the input layer. Storefront choice is strategy first; see the strategy and market hub.
In-platform and off-site assistants read different sources
Ask “which one should I buy?” on Amazon and the assistant reads attributes, reviews, Q&A, price, stock, and fulfillment — the seller-editable inputs. So the work is concrete: write attributes a sentence can lift whole, put use cases in Q&A, shrink recurring return reasons.
Off-site assistants read public pages and third-party corpora. How much of an Amazon page they may read is Amazon’s call. “Get ChatGPT to cite my Amazon listing” is rarely executable; “get ChatGPT to cite my DTC comparison page” is.
The reverse failure is easy to miss: a Shopify or DTC store can be crawlable and still arrive as an empty shell, because app-injected ratings and spec tables never reach a no-JavaScript fetch. If you cannot tell whether the cause is permission, rendering, or parsing, run a full AI crawl audit first; the render check and the third-party corpus audit cover the rest.
One SKU, two evidence sources: the actions cannot be shared.
Three storefronts cost consistency, not headcount
The hard part is rarely labor. One product gets three descriptions: a different title stem, model-number format, capacity in fluid ounces here and liters there, VAT included here and sales tax added at checkout there, a warranty written three ways. An assistant must merge those records into one entity; conflicting names lower its confidence: three storefronts seen separately, none as one brand.
The first parallel step is a shared fact sheet: brand and series names, model numbers, key attributes, price basis, warranty and return rules. Storefronts differ in expression, never facts; conflicts outrank new content.
Difference should be used, not flattened. The DTC site carries comparisons, scenarios, and explainers, which need long text and crawlable structure; Shopify is where rendering and structured data get clean; Amazon is where attributes, Q&A, and reviews get thick.
Five steps, one goal per storefront
| Step | What to do | Owner | Passes when |
|---|---|---|---|
| 1 Group | Split live SKUs; mark marketplace or off-site questions | Merchandising | One row per group |
| 2 One goal | DTC = cited off-site; Shopify = crawlable and parseable; Amazon = complete inputs | Growth lead | One testable sentence each |
| 3 Fact sheet | Unify names, model numbers, attributes, price basis, warranty | Brand and ops | Ten SKUs, zero conflicts |
| 4 Boundary | Keep uneditable layers out of KPIs | Owner | No off-site citation KPI for marketplace pages |
| 5 Retest | Separate off-site and in-platform prompt sets | Growth | A before and after each |
Step 2 is easy to fake: if the goal fails, can you diagnose why? If not, it isn’t a goal. Step 5 needs a prompt-set baseline per surface, not one blended number.
Example: one SKU group, three columns
Example: a hypothetical cross-border pet-supply brand with a self-hosted DTC store and Amazon US; no real brand or numbers. A thirty-minute check found two failures. On the DTC store, ratings, filter-replacement interval, and common-fault answers were injected by apps, so a no-JavaScript fetch returned title and price only, with no Product schema. On Amazon, backend attributes were complete, but off-site assistants could not read the page.
Fixes split three ways. The DTC store moved ratings, filter life, noise level, and cleaning steps into server-rendered text, added Product and Offer schema matching the visible price, and built pages for “two-cat household” and “rental apartment, no drilling”. Amazon got attributes and Q&A only. The fact sheet aligned model number, capacity, and warranty.
Acceptance stayed separate: off-site, whether the DTC domain appeared among cited sources; in-platform, Q&A coverage and return-reason mix. Crawl recovery was confirmed in logs, not vendor reports.
Where this breaks
First, marketplace-only sellers. One row applies: work the listing, Q&A, and reviews; a storefront built only for GEO rarely pays back.
Second, hosted-platform rules move: default robots sections, checkout, script injection points. Freeze today’s limitation into a permanent SOP and it blocks you within two quarters.
Third, some categories are decided in-marketplace. For commodity goods where buyers sort by price, an off-site citation barely affects the order; prioritize inputs.
Fourth, none of the storefronts works yet. Fixing three at once fixes none; get one evidence chain working first.
Fifth, market concentration reorders the list. Where one local marketplace takes most of a category’s demand, the self-hosted row matters less than that marketplace’s listing fields, and the order must be rebuilt.
This month, pick one action: sort live SKUs into three storefront columns, five per column, spend thirty minutes on evidence — curl the DTC product page with JavaScript off, open the Shopify page with JavaScript disabled, and check five ASINs for backend attribute completeness. Fix only the leakiest column.