Shopify SEO that actually ranks.
Shopify SEO agency for DTC and Plus merchants. Technical audits, product and collection optimization, topical authority, migration SEO, measurement.
What we cover
Shopify SEO, end to end.
Every Shopify store has the same structural SEO problems. Our retainer works through them in priority order — technical fixes first, topical authority second, measurement throughout.
Technical SEO
Canonicals, variants, pagination, schema, Core Web Vitals, crawl budget — the Shopify-specific gotchas.
Product + collection
Metafield-driven SEO fields, collection copy, variant canonicals, faceted nav decisions.
Topical authority
Pillar-and-cluster content, entity coverage, editorial briefs, human-written drafts.
Internal linking
Hub-and-spoke architecture, anchor diversity, orphan fixes, breadcrumb schema.
Migration SEO
301 maps, schema parity, canonical reconciliation, launch monitoring, 30/60/90 recovery.
International SEO
Multi-market storefronts, hreflang, currency/language routing, localization strategy.
Measurement
GSC + GA4 ground truth, rank tracking, forecasting, algorithm-update diagnosis.
Reporting
Monthly against baseline. Organic revenue, contribution margin, MER — not vanity rank.
Shopify technical SEO
Shopify hides its hardest SEO problems behind an easy admin. The store loads, the product feed works, the theme renders — everything looks fine. Meanwhile five structural issues are quietly wasting crawl budget, diluting link equity, and making every other SEO investment work harder than it should.
The five we audit first on every engagement:
Variant and product URL canonicals. Shopify sets default canonicals correctly for most cases, but variant URLs (?variant=12345), collection-scoped product URLs (/collections/x/products/y), and search parameters each need a decision. Most stores have inconsistent handling across templates.
Collection pagination. The default pagination (?page=2, ?page=3) is indexable. For a collection with 60 pages, that’s 60 indexable URLs competing for the same intent. Decide per store: noindex,follow deep pages, self-canonical page 1, or a view-all implementation.
Speed and Core Web Vitals. LCP under 2.5s, INP under 200ms, CLS under 0.1. On Shopify that means Liquid render-time profiling, an image pipeline (AVIF/WebP with responsive srcset), aggressive font strategy (preload critical, font-display: swap), and lazy hydration for interactive widgets. We enforce CWV budgets at PR time, not after launch.
Structured data. Product schema with offers, aggregateRating, brand, sku. Organization with sameAs and knowsAbout. BreadcrumbList on every non-home page. FAQPage where FAQs live. Most themes ship partial schema that validates in the Rich Results test with warnings — we ship it complete and clean.
Sitemaps and robots.txt. Shopify generates sitemaps automatically. They often include URLs that shouldn’t rank — tag pages, vendor collections, internal search. On Plus you can override robots.txt.liquid for finer control. Audit once per quarter; adjust when catalog shape changes.
Beyond the top five: facet canonicals, search page blocking, thank-you page SEO (yes, it matters), and Shopify’s default redirect behavior on collection changes. Nothing flashy — just the work that compounds.
Product and collection optimization at scale
A store with 5,000 SKUs can’t hand-edit every PDP, and a store with 50 SKUs shouldn’t. Two different strategies; same metafield-driven backbone.
For large catalogs, we build metafield-driven SEO fields: overrides for meta title, meta description, H1, and hero copy on products and collections. Templates fill defaults from product data; the metafields handle the long tail of manual overrides for pages that actually drive revenue. The merchandising team gets a custom admin view and never sees the word “Liquid.”
For small catalogs, we go the other way: every PDP is hand-written, with product-specific schema (including FAQPage where product-specific Q&A makes sense), dedicated photography, and deliberate internal linking to the collection(s) that matter.
The variant decision is its own workstream. Default behavior: product-level canonical, variant URLs parameter-handled. Custom behavior (rare but sometimes right): variant-specific landing pages when variants have distinct search intent (a color-specific product, a bundle vs. single). Decided per catalog in discovery, not a default.
Out-of-stock handling is another quiet SEO problem. Default Shopify leaves sold-out products indexable — fine for seasonal return, wasteful for permanently discontinued SKUs. We build a simple tag-driven rule: discontinued products get noindex; sold-out-seasonal stays indexable; permanently gone products 301 to the closest collection parent.
Faceted navigation on Shopify is the biggest trap for large catalogs. Combinations of filters generate infinite URL space. Our default: canonicalize facet combinations to the unfiltered collection, block indexing of specific problem patterns via robots.txt, and let Google’s heuristics handle the rest. Custom crawl budget work for catalogs above 10k SKUs.
Content and topical authority for DTC brands
Modern search is vectorized. Google and the AI systems it powers convert content into mathematical representations that capture meaning, not exact word matches. Writing comprehensively about a topic has a much better chance of surfacing for related queries than it used to. Repeating a keyphrase forty times — worse than useless, actively hurts.
This changes how we plan content on Shopify:
Pillar + cluster architecture. Pick a topic you want to own (say, “Shopify SEO”). Build one comprehensive pillar page — the service page you’re reading. Supporting cluster content (blog posts, case studies, collection copy) links back to the pillar and to siblings in the cluster. The cluster, not any individual page, earns the authority.
Entity coverage per article. Every piece of content names the related concepts, tools, standards, platforms, and measurements that Google already associates with the topic. A post about migration SEO that doesn’t mention 301 redirects, canonical URLs, schema parity, and staging-crawl testing isn’t covering the topic — it’s mentioning it.
Editorial briefs, not AI prompts. We write human briefs: topic, sub-topics, entities to cover, questions to answer (from Google’s “People Also Ask”), target audience, voice reference, internal links, word count. Humans write drafts from briefs. Editors review. No pattern-matched AI text anywhere.
Internal linking woven in, not added later. Every article links up to its pillar, sideways to siblings, down to conversion pages (service pages, PDPs). Anchor text describes the topical relationship — “how we approach migration SEO” not “click here.” Anchor variety is higher signal than anchor repetition.
E-E-A-T signals on the org and author. Organization schema with knowsAbout, publishingPrinciples, copyrightHolder, and sameAs links to real social profiles. Author bios on blog posts with Person schema, real credentials, real professional histories. Not decoration — these show up in how engines rank and AI systems cite.
Site architecture and internal linking on Shopify
Link architecture is topical architecture. Most Shopify sites orphan product pages three clicks deep, leave key collection pages off the main nav, and rely on automatic related-products widgets for the rest. Google’s crawler hits the same dead ends your customers do.
Our audit:
- Crawl-based architecture map. Screaming Frog crawl with internal-link density mapped. Identify orphaned pages (any PDP with under three inbound internal links), over-linked pages (typically the home), and under-linked high-revenue pages.
- Nav depth review. Most important collections in the main nav. Secondary collections in drop-downs or footer. Long-tail collections reachable from parent collection pages, not the nav.
- Collection → product link density. PDP visibility from its parent collection at reasonable scroll depth. Large collections get hand-curated “featured” positions.
- Blog → PDP linking. Editorial content links to specific products and collections. Auto-linking rules for high-frequency terms; editorial links for context.
- Breadcrumbs with schema. Every non-home page. BreadcrumbList JSON-LD that references the topical hierarchy.
The result is a graph that looks less like a tree and more like a well-clustered map. Customers navigate it faster. Crawlers index it deeper. Pagerank concentrates where it earns revenue.
Migration SEO
If you’re replatforming, SEO is where the money leaks. A bad migration costs 20%+ of organic traffic for six months. A well-run migration dips 5–15% for 2–6 weeks, then recovers and often clears the prior baseline.
We run migration SEO as a parallel workstream with development:
- Pre-migration URL audit from GSC + crawl data + Ahrefs backlink export
- 301 map (bulk-importable to Shopify), tested in staging against real URLs
- Schema parity — every structured data type on the old site gets a matching implementation on Shopify
- Canonical reconciliation — Shopify defaults reviewed per template
- Staging crawls comparing coverage to prod
- Launch-day monitoring — GSC coverage, analytics, rank tracking in real time for 48 hours
- 30/60/90 day recovery with weekly checkpoints
Full playbook: migration SEO deep-dive. Migration service detail: replatforming without losing traffic.
International Shopify SEO
Multi-market storefronts on Shopify Plus are powerful and easy to misconfigure. Five configuration decisions shape whether you rank in each target market or cannibalize yourself across them:
- URL structure — subdirectory (
/en-gb/), subdomain (uk.), or ccTLD (.co.uk). Plus supports all three; we default to subdirectory for ease of management and consolidated domain authority. - hreflang implementation — reciprocal tags across all markets,
x-defaultfor fallback, correct language/region codes. Mistakes here silently hand rankings to the wrong market. - Currency and language routing — market-aware routing via Shopify Markets, with IP-based suggestion (not forced redirect).
- Content localization — machine translation is a baseline; human localization for key markets earns rankings.
- Duplicate content across markets — same English content on US and UK storefronts needs hreflang and distinct local signals (local phone, local address if applicable, local reviews).
We’ve shipped international programs for brands across US / UK / EU / AU.
Measurement and forecasting
Ranking is a vanity metric. Organic revenue, contribution margin, and blended MER — the numbers your CFO already cares about — are what we report on.
The monthly report rolls up:
- Organic traffic + revenue from GA4 + GSC (ground truth for impressions, clicks, queries)
- Rank tracking for top 100 commercial queries (directional only; GSC for precise position)
- Coverage + crawl health from GSC (index errors, coverage trend)
- Core Web Vitals trend from CrUX field data
- Share of voice against named competitors in Ahrefs or Semrush
Quarterly forecasts use the same data plus forward content calendar and expected technical fixes. We set a baseline in week 1 and are measured against it — no retrospective goalpost moves.
When an algorithm update hits, we run the same playbook: diagnose with GSC (which queries, which pages, which intent), isolate the technical or content factor that changed, ship a fix, measure recovery. No panic rebuilds.
How we engage
Two-track engagement, in order:
Track 1: Audit + roadmap (4–6 weeks, fixed scope, $12k–$25k depending on store size). A full technical audit (crawl, CWV, schema, canonicals). Content gap analysis against competitors. Internal link graph audit. Keyword and entity research. A prioritized roadmap with effort and revenue estimates for each fix.
Output: a written roadmap document you can share internally. Even if we don’t continue together, you have the map.
Track 2: Execution retainer ($8k–$20k/mo, month-to-month after 3-month initial). Technical fixes. Content program (briefs + human-written drafts or review of your in-house drafts). Internal linking. Monthly reporting. Quarterly strategy review.
Scope scales with store complexity — a Plus merchant with 10k SKUs and an international program lands at the top of the range; a DTC brand with 200 SKUs lands at the bottom.
Selected outcomes
- CLIENT, Magento → Plus migration — +18% organic traffic in 90 days post-launch, LCP 4.1s → 1.6s.
- CLIENT, DTC redesign + SEO engine — +47% organic sessions in 6 months, email attribution to SEO-driven traffic up 2.3×.
- Full portfolio: selected work.
Two-track engagement, in order.
Audit first. Retainer second. Each has a fixed scope, so you know what you're buying.
Technical + content audit
4–6 weeks, fixed scope. Full crawl, CWV, schema, canonicals, content gaps, internal-link graph, keyword + entity research.
- Written roadmap you can share
- Effort + revenue per fix
- Shareable on day one
Prioritized fixes + content plan
Output of audit: the ordered list of technical fixes + a 90-day content calendar tied to topical clusters.
- Prioritized by revenue impact
- Named quick wins
- 90-day content calendar
Monthly retainer
$8k–$20k/mo depending on scope. Technical fixes, content program (briefs + human-written drafts), internal linking, month-end report.
- Monthly reporting against baseline
- Content brief + draft cycle
- Internal linking continuous
Measure + forecast
Monthly report ties spend to contribution margin. Quarterly strategy review with forecast for next quarter.
- Attribution in the CFO's language
- Quarterly forecast
- Algorithm-update diagnostics
Recent results
Selected work using this service.
Related services
Next steps in the same engagement.
Frequently asked
Common questions about this service.
Audit your Shopify SEO.
First call is a 30-min working session. We arrive with a baseline audit on your store.