All posts

May 22, 2026 · 4 min read

How to set up a satellite domain for marketplace URL indexing

Full setup guide: register a subdomain, configure DNS through Cloudflare, verify in Google Search Console, host satellite pages, and submit marketplace URLs via canonical-link delegation.

By Imad Benzrak · Founder, Rapid Indexer

satellite-domainmarketplace-seotutorial

If you sell on marketplaces (Etsy, Amazon, eBay, Redbubble), Google's Indexing API is technically off-limits — you can't verify ownership of marketplace domains. The professional workaround is hosting satellite pages on a domain you DO own and using canonical-link delegation to redirect Google's attention to the marketplace listing.

This tutorial walks through the entire setup: from picking a subdomain to shipping the first satellite. Total time: ~45 minutes, $12/year domain cost if you don't already own one.

Why a SUBDOMAIN, not the main domain

Satellite pages are functional, not branded. They exist to delegate canonical authority to marketplace URLs. You don't want them mixed with your main site's content because:

  1. Crawl budget pollution — every satellite consumes Google's crawl resources for your main domain. With 1000 satellites that's 1000 fewer crawl events for your real product/blog pages.
  2. Link graph contamination — internal links between satellites and real pages confuse Google's signal attribution.
  3. Brand consistencyyourdomain.com/p/etsy-product-slug looks spammy and reflects on the brand. s.yourdomain.com/p/... is clearly a separate utility namespace.

Use a subdomain. s.yourdomain.com, pages.yourdomain.com, hub.yourdomain.com — any of these are fine.

Choosing the right hosting

Your satellite-domain needs:

  • HTTPS (Let's Encrypt is free)
  • Server-side rendering (NOT a static SPA — Google bot doesn't reliably execute JS for canonical extraction)
  • A simple URL routing scheme like /p/{slug} for each satellite
  • A bare-root / that returns HTML (for GSC verification — JSON responses don't work)

Options:

  • Same server as your main site (cheapest, requires reverse proxy config)
  • Separate VPS ($5/month on DigitalOcean / Linode)
  • Static hosting (Cloudflare Pages, Vercel) — works if you pre-generate satellites; harder for dynamic generation

The canonical link is everything

Each satellite page must include:

<link rel="canonical" href="https://www.etsy.com/listing/4500519502/your-product">

This is the magic that makes the entire approach work. Google reads the canonical, understands "the real version of this content lives at the Etsy URL," and consolidates ranking signals onto the marketplace URL instead of the satellite.

Without the canonical, you'd be creating duplicate content (the satellite competes with the marketplace listing) which Google penalizes both URLs for.

What content goes on the satellite

Minimum viable satellite page:

  • <title> matching the marketplace listing's title
  • Meta description from the listing
  • The hero image (img tag)
  • 100-300 words of content (the listing's description, paraphrased or enhanced with related context)
  • The canonical link
  • A visible "Read more →" link to the marketplace URL (for the rare human visitor who lands on the satellite)

Don't over-engineer. The page exists to give Google a crawlable URL with a canonical link — not to rank in search itself.

GSC verification + service account permission

Two steps that catch newcomers:

  1. GSC property verification: pick HTML tag method (paste meta tag in satellite root's HEAD). Or use DNS TXT method if you control DNS through Cloudflare.

  2. Service account Owner role: this is the step everyone misses. The SA must have "Owner" role in Users and Permissions — NOT "Full." Full access lets the SA read data but NOT authorize Indexing API calls.

After both done, wait 5-10 min for propagation before the first API call.

Multiple satellite domains for crawl scaling

Each Google Cloud project has a default 200/day Indexing API quota. If you need >200 satellite submissions per day, the easiest path is multiple SAs in multiple projects, all verified as Owners on the same satellite domain.

You can also run multiple satellite DOMAINS — s1.yourdomain.com, s2.yourdomain.com, etc. — to further distribute load. Each domain needs its own GSC verification but they share the same canonical-delegation approach.

Risks + how to mitigate

Risk #1: Google reclassifies satellite pages as "doorway pages" and penalizes the satellite domain.

Mitigation: include real content on satellites (not just empty templates), keep page count proportional to legitimate use (don't host millions), and ensure canonical links always point to LIVE marketplace URLs (404 satellites without canonical targets look spammy).

Risk #2: Marketplace platforms update their robots.txt to disallow canonical delegation crawls.

Mitigation: rare in practice but possible. Diversify across multiple marketplace platforms. The technique works because Etsy/Amazon WANT their URLs indexed — they don't fight legitimate canonical delegation.

Risk #3: Your satellite domain gets associated with low-quality content and loses trust signals.

Mitigation: keep the satellite domain CLEAN. Don't use it for any other content. The fewer non-satellite pages on it, the more Google trusts the narrow purpose.

When to skip DIY

If you'll submit fewer than 100 marketplace URLs/month, DIY satellite hosting isn't worth the 1-2 hours/month of maintenance. Use an indexing service like Rapid Indexer in Apex mode ($3/URL) and they handle the satellite generation + canonical + Indexing API submission end-to-end.

If you're submitting 1000+/month, DIY hosting saves substantial money but requires real engineering investment.

Bottom line

A satellite domain is the legal, Google-sanctioned workaround that turns "can't submit Etsy URLs" into "can submit Etsy URLs in seconds." Setup is straightforward once you avoid the GSC role gotcha. Ongoing maintenance is minimal as long as you keep the satellite domain narrowly focused.

Try Rapid Indexer free

25 credits on signup. No card. Submit your first URL and see indexation in hours, not weeks.

Get started