---
title: "Domain verification — warmup.rocks Docs"
description: "Prove domain ownership with a DNS TXT record or a response header before warmup.rocks warms your site on a schedule."
canonical: https://warmup.rocks/docs/domain-verification
---

# Domain verification

We only warm sites whose owners asked for it. Before scheduled warming starts, every project proves domain ownership — via DNS or a response header. Pick whichever is easier for your setup.

## Why verification is required

A cache warmer sends real traffic from many IP addresses. Without verification, anyone could point warming traffic at a site they don't own. Verification keeps the network clean: unverified projects can't run on a schedule, and scheduled warming stops if verification is removed.

## Option A: DNS TXT record (recommended)

In your project's verification card you'll find a unique token. Create a TXT record:

```
Host:   _warmup-rocks.example.com
Type:   TXT
Value:  warmup-rocks-verify=<your-token>
```

-   The record goes on the **apex domain without `www`** — for `https://www.example.com` the host is still `_warmup-rocks.example.com`.
-   A TXT record directly on `example.com` works too, if your DNS provider doesn't support underscore-prefixed hosts.
-   DNS verification survives redeployments and CDN changes — set it once, forget it.

## Option B: Response header

If you'd rather not touch DNS, send the token as a response header on your base URL:

```
x-warmup-verify: <your-token>
```

Where to set it:

-   **Cloudflare:** Rules → Transform Rules → Modify Response Header, or set the header in your Worker.
-   **Nginx:** `add_header x-warmup-verify "<token>";`
-   **Vercel / Netlify:** a `headers` entry in the project config.

## Running the check

Click _Verify now_ in the dashboard. We check DNS first, then the header, and store whichever method succeeded. After that, _Warm now_ and scheduled runs are unlocked.

**Note:** changing the project's base URL to a different domain resets verification — you'll verify the new domain the same way.

## Troubleshooting

-   **TXT not found:** DNS changes can take a few minutes to propagate. Check with `dig TXT _warmup-rocks.example.com +short`.
-   **Header not seen:** make sure the header is sent on the base URL itself (after redirects) and not stripped by a proxy or CDN in front of your origin.
