Sec. 02 — Findings
The pages that don't exist
A 275-store retailer's biggest local-SEO asset is a page per store. Today there is none — and the locator hides the data from crawlers entirely.
A dropdown, not links
/store-locator has no H1, no LocalBusiness markup; stores are a 274-option <select> of hashed IDs with zero crawlable links.
Evidence: /store-locator sourceJSON, not pages
/stores/ returns raw JSON — 275 stores, 268 active — with id/address/city/state/zip/phone but no hours or lat-lng. No store URLs in any sitemap; /stores/troy-mi → 404.
Evidence: /stores/ ; sitemap.xmlFake freshness
39,819 product URLs all stamped lastmod 2026-08-27; robots.txt still carries Demandware rules from the pre-Shopware platform.
Evidence: sitemap_product.xml.gz ; robots.txtSlug collisions
The migration left duplicate category URLs — both self-canonical, both in the sitemap, both indexed by Google — while the clean slug 404s. Ranking signals split across two URLs instead of consolidating on one.
| Clean slug | Live duplicates | Google indexes | Fix |
|---|---|---|---|
| /apparel/ 404 | /apparel-1/ · /apparel-2/ both 200 | both, different titles | 301 → /apparel/ |
| /footwear/ 404 | /footwear-1/ · /footwear-2/ both 200 | yes | 301 → /footwear/ |
| /accessories/ 404 | /accessories-1/ · /accessories-2/ both 200 | yes | 301 → /accessories/ |
Evidence: fetched each URL, Sep 19, 2026; sitemap_category.xml.gz (41 “-1” URLs); Google SERP shows both apparel URLs with different titles. Also: 13/20 sampled categories have empty meta descriptions; /under-armour/ua-men/shorts/ and /champion/men/shorts/ share the title “Shorts | Dunham's Sports”; no application/ld+json on any page.