RealSiteWorth
Share
  1. Home
  2. Field notes
  3. DNS, zones, workers, and 301 vs 410 — the real stack behind parked-domain SEO
Layered edge-routing blueprint showing DNS, Worker, and status-code path decisions.
InfrastructureBacklinks

DNS, zones, workers, and 301 vs 410 — the real stack behind parked-domain SEO

Five layers sit between an expired domain and what Google sees. Touch one, assume the rest are inert, and the redirect gets demoted.

In this piece · 8 sections
  1. The five layers, explained simply
  2. What 'proxied' actually means, and why parked domains point at 192.0.2.1
  3. 410 vs 301 vs 302 vs 404 — the equity-pass comparison
  4. The Cloudflare request pipeline — phase order matters
  5. The surgical pattern — one Worker, two verdicts per domain
  6. Advanced routing gotchas — sidebar for portfolio workflows
  7. Real example: severing 159k inbound links while preserving an editorial subdomain
  8. Monthly checklist for portfolio managers

The five layers, explained simply

Comparison chart of registrar, DNS, edge, and Worker routing responsibilities.
Illustrative comparison of routing layers. The post text is the source of truth for implementation details. The chart stayed calm so nobody else had to.

When you type a domain into a browser, five things have to agree before a single byte of HTML comes back. Most SEO advice treats the chain as a single thing called 'the redirect.' It is not. Knowing which layer you are touching is the difference between a fix that lasts and one that silently breaks the next time anyone touches a registrar panel.

Layer
What it controls
Where you change it
Registrar
Who legally owns the domain name and which nameservers it points at
Your registrar's control panel (Namecheap, GoDaddy, Porkbun, etc.)
DNS zone
The file that maps hostnames to records (A, AAAA, CNAME, MX, TXT) for the domain
Wherever the nameservers live — usually Cloudflare, Route 53, or the registrar itself
Nameservers
The DNS servers the registrar points the world to for this domain
Set at the registrar; the network they belong to determines who answers DNS queries
Edge / CDN
What sits between the public internet and your origin server — TLS termination, caching, rules, Workers
Cloudflare dashboard, or whatever CDN's control plane the proxied DNS records hand traffic to
Worker / rules
The code or config that decides per-request what status code and body to return
Cloudflare Workers, Redirect Rules, Page Rules, or origin server config

The trap: a registrar 'URL forwarding' toggle changes layer one's nameserver and inserts the registrar's redirect service. A Cloudflare redirect rule changes layer four. A Worker changes layer five. All three look like 'a redirect' from the outside; they fire in completely different parts of the request lifecycle and they fail in completely different ways. See our domain forwarding explainer for when a simple 301 is fine and when it is not.

If you do not know which one is currently serving the response, you do not know what will happen the next time the registrar's parking service gets revamped.

What 'proxied' actually means, and why parked domains point at 192.0.2.1

On Cloudflare, every DNS record has an orange-or-grey cloud icon. Orange means 'proxied' — DNS queries return Cloudflare's anycast IPs, traffic flows through Cloudflare's edge, and Workers / Rules can intercept it. Grey means 'DNS only' — Cloudflare returns the real IP and gets out of the way; nothing edge-level fires.

A parked domain has no origin server. There is nothing to point an A record at — and yet, a Worker can only run on a hostname that resolves through Cloudflare's edge, which requires a proxied DNS record. The widely-used solution is to point A records at 192.0.2.1, an address from RFC 5737's TEST-NET-1 range reserved for documentation.

The IP does not route anywhere on the real internet. Cloudflare proxies the record (so Workers fire), but no traffic ever reaches the placeholder — every request is terminated at the edge and answered by the Worker.

The parked-domain stack explainer covers the strategy side of when this setup pays off.

Failure mode #1: a grey-cloud (DNS-only) record. The Worker never fires; the browser asks 192.0.2.1 for the page, the connection hangs, the user sees a timeout. Always orange-cloud for parked-domain placeholders.

Failure mode #2: a real IP from before the domain was parked, left in the zone. The Worker fires for the proxied records but a stray A record pointing at an old VPS that has since been re-leased to somebody else is now serving whatever that VPS serves on your hostname. Audit the zone every time a domain enters the parked portfolio — delete anything that is not the placeholder.

410 vs 301 vs 302 vs 404 — the equity-pass comparison

Vertical infographic showing domain routing choices and their SEO consequences.
A simplified routing decision tree: 410 toxic paths, 301 clean paths, and avoid accidental 302 drift. The chart stayed calm so nobody else had to.

All four are HTTP response codes. All four can be served from any of the layers above. The difference is what each one signals to a crawler and how long the URL stays in the index.

Code
What it signals
Use when
301 Moved Permanently
URL has a new permanent address; consolidate signals into the target
You want the receiving site to inherit the domain's history and link equity
302 Found (temporary)
URL is temporarily elsewhere; keep both URLs around, may split signals
Almost never — if the redirect will be there for the foreseeable future, it is structurally a 301
404 Not Found
URL does not currently exist; might come back; index slowly
When you genuinely do not know whether the URL will return — rare on a parked domain
410 Gone
URL is permanently gone; drop it from the index, do not pass equity
Toxic backlink profiles, hack-injection paths, parasite-SEO URLs from a previous owner

The boring truth: 410 is the most under-used code in SEO. People reach for 404 because they have heard of it, or 301 because 'redirects can never hurt' — both wrong defaults for severing a toxic profile.

410 is the only code that explicitly tells Google 'do not keep this URL around, do not pass signals through it, drop it.' Per RFC 9110 (the current HTTP semantics spec) and Google's own crawling documentation, 410 is processed faster than 404 and does not pass PageRank.

The Cloudflare request pipeline — phase order matters

Close-up routing diagram with edge nodes and Worker flow cards.
Phase order decides which rule fires. Workers belong in the request pipeline, not in registrar guesswork. The numbers are serious; the props are coping mechanisms.

If a domain has more than one rule (a Redirect Rule and a Worker, or a Page Rule and a Worker, etc.), which one wins? Cloudflare's request pipeline runs in a fixed published order. Earlier phases can short-circuit later ones, but later phases can override earlier ones if the request still reaches them.

The simplified phase order for a parked-domain stack:

Why this matters for a portfolio: people set up a 'redirect all paths to canonical' Redirect Rule in the dashboard years ago, then deploy a Worker that is supposed to 410 a few toxic paths. The Redirect Rule short-circuits the Worker — every path 301s, the Worker never runs, the toxic 410 list is dead code. The fix is to delete the dashboard rule and let the Worker handle everything. One source of truth per domain.

The corollary: a Worker that fires before the cache means responses can be customised per-request but cannot be cached cheaply by default. For a parked-domain Worker that returns small bodies (a 410 message, a short HTML handoff page, a 301 with a Location header), this is fine — the response is tiny and the Worker invocation budget is generous. For a Worker that does heavier work, add explicit cache-control headers.

The surgical pattern — one Worker, two verdicts per domain

Redirect map showing separated safe paths and severed toxic paths.
The surgical pattern keeps safe paths separate from toxic paths instead of treating a domain as one blob. The chart stayed calm so nobody else had to.

The reason a Worker beats every other layer for parked-domain work is that one domain frequently needs different verdicts on different paths. The apex got hit with an injection attack and inherited 100,000 Indonesian-gambling URLs; the /blog/ subdirectory is clean editorial content with real inbound editorial links. A single dashboard-level 301 cannot express that. A Worker can.

The pattern, shape-only (your routing table will be domain-specific):

Rule ordering is the whole game. The toxic-pattern matchers go first — they are the only rules that should be allowed to 410 a path. The path-specific 301s (e.g. keep /blog/ alive) go next. The default 301 to canonical runs only if nothing earlier matched. Every new toxic pattern you discover is one regex added to the top of the list; one re-deploy and the rule is live on every domain in the portfolio that includes that pattern set.

Image-extension 410s are a quiet hero. Spam-injection attacks frequently create hotlinked-image URLs (/wp-content/uploads/2019/random-spam.jpg) that show up in Google Images and inherit a long tail of crawl. A single image-extension regex in the rules array kills the lot.

Advanced routing gotchas — sidebar for portfolio workflows

If you manage a parked portfolio through an automated control plane instead of clicking each domain manually, there are four traps worth knowing before they cost you an afternoon.

Two more, less common but expensive when they bite: not every management interface exposes every routing surface, so confirm that the surface you are using can actually read and change the records you care about. And a pending zone can exist in configuration while registrar nameserver changes are still propagating, which makes the route look correct but inert.

Monthly checklist for portfolio managers

Portfolio checklist scene with DNS cards, routing arrows, and infrastructure layers.
Monthly review keeps DNS, edge rules, and Worker behavior aligned before redirects start drifting. A tiny panic, but make it editorial.

A parked-domain portfolio is not a one-time setup. The injection vectors evolve, the registrar UIs change defaults, the NS pairs rotate. Run this checklist once a month on every defensive domain you own — the whole pass takes 15 minutes for a small portfolio and an hour for a large one.

One. dig NS for every domain → confirm the nameservers still point at the edge you expect. Registrars occasionally flip a domain to their parking nameservers if a credit-card renewal fails or a policy changes.

Two. curl -sI https://domain/ for every domain → confirm the status line is the one you expect (301 to canonical OR 410 OR 200 with the human-handoff page). Any unexpected status is a configuration drift.

Three. Review the DNS records in each zone → confirm there are no stray A/AAAA records pointing at an unexpected real IP. Anything unexpected is either an oversight or somebody else's box answering on your hostname.

Four. Pull a Search Console impression report for each apex → look for query clusters in languages or topics you do not own. A spike of foreign-language queries on a domain that has not had real content in five years is the early-warning signal for a new injection vector.

Five. Refresh the toxic-pattern list → add any new tokens you saw in the audit. One policy update, every domain in the portfolio inherits the protection. The renew-forever rule covers the registrar-side calendar that keeps the policy operational year over year.

Six. Verify the routing layer is still active. Account-level changes or dashboard edits can silently change response behavior. The smoke test is the curl from step two — if the status line changes, inspect the routing surface first.

Sources cited
  1. Google Search Central — Redirects and Google Searchdevelopers.google.com
  2. Google Search Central — How HTTP status codes affect Google Searchdevelopers.google.com
  3. RFC 9110 — HTTP Semantics (status code definitions, incl. 410)rfc-editor.org
  4. RFC 5737 — IPv4 Address Blocks Reserved for Documentationrfc-editor.org
  5. Cloudflare — Workers documentationdevelopers.cloudflare.com
  6. Cloudflare — Request pipeline / traffic sequencedevelopers.cloudflare.com
Alex Tarlescu

Alex Tarlescu

Co-founder, Real Site Worth

Alex helps run Real Site Worth from Cleveland. He brings 20+ years across sales, marketing, paid acquisition, email, automation, and SEO, with hands-on experience building, scaling, and selling sites.