# Verifying Domain Ownership



Domain verification proves that you control a domain. Some modules check the pages of your site with the VitalSentinel crawler. These modules start only after you verify the domain.

## Which Modules Need It [#which-modules-need-it]

| Module                                              | Needs verification |
| --------------------------------------------------- | ------------------ |
| [Site Health Monitoring](/site-health/introduction) | Yes                |
| [Page Monitoring](/page-monitoring/introduction)    | Yes                |
| [Sitemap Monitoring](/features/sitemap-monitoring)  | No                 |

All other modules work without verification. VitalSentinel does not fetch or store pages for Site Health Monitoring or Page Monitoring before the domain is verified.

You verify each domain one time. After that, VitalSentinel checks your proof again every day. See [When Verification Lapses](#when-verification-lapses).

## Who Can Verify [#who-can-verify]

Workspace owners and admins can verify a domain. Members can see the verification status, but they cannot change it. A member sees the message "Ask a workspace owner or admin to verify this domain."

See [Team Members](/workspace/team-members) for the roles.

## Where to Verify [#where-to-verify]

You can verify a domain in two places:

* **Domain Settings.** Open the domain and select **Settings** in the **Domain** group of the sidebar. The **Domain verification** card is the first card on the page.
* **The module page.** Open **Site Health Monitoring** or **Page Monitoring** in the sidebar. For an unverified domain, the page shows **Verify your domain** with the same methods as numbered steps.

The **Domain verification** card shows **Verified with** and the method name, or **Not verified**. Each method has a status chip, for example **Verified**, **Not verified**, **Could not check**, or **Not checked yet**. Each method also shows when VitalSentinel last checked it. A **Primary** chip marks the method that verifies the domain.

<Callout type="info">
  Verification is automatic when Google Search Console, or Cloudflare through Server Log Monitoring, is connected to a property or zone that covers the domain.
</Callout>

## Verification Methods [#verification-methods]

You need only one method that passes. You can set up more than one method. Then the domain stays verified if one method stops passing.

### Google Search Console [#google-search-console]

This method is automatic.

1. Connect Google Search Console to the workspace. See [Workspace Integrations](/workspace/integrations).
2. Link a Search Console property to the domain. See [Google Search Console](/features/google-search-console).
3. On the **Domain verification** card, click **Check now**.

The property must cover the full site. Use a Domain property, or a URL-prefix property for the root of the site. Your Google account needs **Owner** or **Full user** access to the property.

### Cloudflare [#cloudflare]

This method is automatic. It uses the Cloudflare connection of [Server Log Monitoring](/server-logs/introduction).

1. Connect Cloudflare as a log source in Server Log Monitoring.
2. Make sure that the connected Cloudflare account has an active zone for the domain.
3. On the **Domain verification** card, click **Check now**.

A zone that is not active yet does not verify the domain.

### DNS TXT Record [#dns-txt-record]

1. On the **Domain verification** card, click **Set up a DNS record**. On the module page, click **Show my TXT record**.
2. Copy the **Type**, the host name, and the **Value** that VitalSentinel shows.
3. Open the DNS settings at your domain provider. This is where you bought the domain, or where it is managed.
4. Add the TXT record with these values.
5. Click **Check now**.

DNS changes can take a few minutes to spread. If VitalSentinel does not find the record, wait and click **Check now** again.

You can add the record on your main domain instead. Then the record covers every host under that domain.

### HTML Meta Tag [#html-meta-tag]

1. On the **Domain verification** card, click **Set up an HTML meta tag**. On the module page, click **Show my tag**.
2. Copy the **Meta tag**.
3. Paste the tag between the `<head>` and `</head>` tags of your homepage. Most site builders and SEO plugins have a field for extra head code.
4. Publish the change.
5. Click **Check now**.

Keep the tag on your homepage. VitalSentinel looks for it again about once a day.

### HTML File [#html-file]

1. On the **Domain verification** card, click **Set up an HTML file**. On the module page, click **Show my file**.
2. Click the **Download** button with the file name to get the file. You can also create a plain text file with the **File name** and **File content** that VitalSentinel shows.
3. Upload the file to a `.well-known` folder at the root of your site.
4. Open the **Address** that VitalSentinel shows. Make sure that the file opens without a login.
5. Click **Check now**.

Keep the file on your site. VitalSentinel looks for it again about once a day.

### Results of the Meta Tag and File Checks [#results-of-the-meta-tag-and-file-checks]

The VitalSentinel crawler visits your site to find the tag or the file. The check usually takes about a minute.

* **Found.** The card shows "We found the tag. This domain is confirmed." or the same message for the file.
* **Not found yet.** The card tells you what to check. Fix the problem and click **Check now** again.
* **Blocked.** Your firewall or bot protection did not let the crawler through. Open **How to let our crawler through** for the steps. A blocked check is not counted against you.

If the check takes longer than usual, you can leave the page. VitalSentinel continues the check and shows the result when you come back.

### Send the Steps to Someone Else [#send-the-steps-to-someone-else]

Your developer or DNS provider can add the record, tag, or file for you.

1. On the **Domain verification** card, click **Email me these instructions**.
2. Select the **Method**: **DNS TXT record**, **HTML meta tag**, or **HTML file**.
3. In **Send to**, type the email address.
4. Click **Send instructions**.

When the record, tag, or file is in place, click **Check now**.

## Phone Site [#phone-site]

Some sites show a different host to visitors on phones, for example `m.example.com`. After you verify the domain, the card can show "Your site serves visitors on phones from" and the host name.

To check that host as part of the same site, click **Also check** and the host name. The card then shows **Added as phone site**. To stop, click **Remove**.

Your proof must cover the phone host. Use a Search Console Domain property, a DNS record on your main domain, or a Cloudflare zone.

## When Verification Lapses [#when-verification-lapses]

VitalSentinel checks every method that you set up again about once a day. A manual **Check now** that fails does not count against you.

If no method passes, the domain stays verified for a short grace period. During this period:

* The **Domain verification** card shows "No method is passing right now. Verification lapses in N days unless one passes again."
* Workspace owners and admins get a notification and an email.

If no method passes before the grace period ends, verification lapses. Owners and admins get a second notification and email. Then:

* **Page Monitoring** pauses every watched page on the domain. The page status shows **Paused – not verified**.
* **Site Health Monitoring** stops checking pages. The module page shows **Verify your domain** again.
* **Sitemap Monitoring** and all other modules continue as before.

To restore verification, fix a method and click **Check now**. When a method passes, the paused pages start checking again.

<Callout type="info">
  If you rename a domain, you must verify it again.
</Callout>

## Troubleshooting [#troubleshooting]

### Search Console Is Connected, but the Domain Is Not Verified [#search-console-is-connected-but-the-domain-is-not-verified]

* The linked property covers only part of the site, for example a URL-prefix property with a path. Link a Domain property or a root URL-prefix property, or use a DNS record.
* Your Google access to the property is below **Full user**. Ask the property owner for **Full user** or **Owner** access.
* The Google account needs to be reconnected. See [Workspace Integrations](/workspace/integrations).

### Cloudflare Is Connected, but the Domain Is Not Verified [#cloudflare-is-connected-but-the-domain-is-not-verified]

* The connected Cloudflare account has no zone for this site. Connect the account that holds the zone.
* The zone is not active yet. Finish the zone setup in Cloudflare, then click **Check now**.

### The TXT Record Is Not Found [#the-txt-record-is-not-found]

* Wait a few minutes. DNS changes can take time to spread.
* Make sure that you copied the host name and the value exactly.
* Make sure that you added the record at the DNS provider that manages the domain now.

### The Meta Tag or File Is Not Found [#the-meta-tag-or-file-is-not-found]

* Make sure that the tag is inside the `<head>` of the homepage, not in the `<body>`.
* Make sure that the file is at the exact address shown, and that its only content is the text shown.
* Clear your site cache or CDN cache. A cache can serve an older copy of the page.
* Make sure that the homepage or the file opens without a login.

### The Check Is Blocked [#the-check-is-blocked]

A firewall, a CDN, or bot protection can block the VitalSentinel crawler. Allow the crawler, then click **Check now**. See [How to allowlist](/others/monitoring-ips#how-to-allowlist).

## Related [#related]

<Cards>
  <Card title="Adding a Domain" href="/getting-started/adding-domain">
    Add a domain and configure its settings
  </Card>

  <Card title="Site Health Monitoring" href="/site-health/introduction">
    Check a sample of your site all day
  </Card>

  <Card title="Page Monitoring" href="/page-monitoring/introduction">
    Find out when your important pages change
  </Card>
</Cards>
