# Add a domain

A domain is a website that VitalSentinel monitors. When you add a domain, a short setup flow opens. It helps you connect the data sources of the domain and verify that you own it. This page explains each step of the domain setup flow.

## Before you start [#before-you-start]

- Only workspace owners and admins can add domains. A member sees "Only workspace owners and admins can add domains" and a button that copies a message for an admin. See [Members](/workspace/members).
- Each plan has a limit of domains: Free 1, Starter 3, Lite 5, Standard 25 and Advanced 50. See [Plans and limits](/workspace/plans-and-limits).
- Have the address of your site ready, for example `example.com`.

To start the flow, use one of these ways:

- On the **Dashboard** with no domains, click **Add your first domain**.
- On the **Dashboard**, click **Add a domain**.
- On the **Done** step of an earlier setup, click **Add another domain**.

## The steps of the setup flow [#the-steps-of-the-setup-flow]

The setup flow shows outside the normal app layout. A stepper at the top shows six steps. Under each step name, a short line tells you the status of the step.

| Step | Required | What it does |
|---|---|---|
| 1. **Domain** | Yes | Adds the address of your site to a workspace. |
| 2. **Tracking** | No | Gives you the script for RUM Monitoring and Web Analytics. |
| 3. **Google Search Console** | No | Links a Google Search Console property. |
| 4. **Server Log Monitoring** | No | Connects your server logs. |
| 5. **Verify** | To start monitoring | Proves that you own the domain. |
| 6. **Done** | No | Shows what runs and what is still open. |

[Theo](/theo/introduction), the AI assistant, shows a short message for each step at the left side of the page.

### Stepper status labels [#stepper-status-labels]

| Label under the step | Meaning |
|---|---|
| **Required** or **Optional** | You did not finish this step yet. |
| **Done** | The step is complete. A check mark shows. |
| **Waiting for data** | The source is connected, but no data has arrived yet. A clock shows. |
| **Skipped** | You clicked **Skip for now**. A dashed circle shows, so a skipped step looks different from a finished step. |
| **Summary** | The **Done** step, which you did not open yet. |

After the domain exists, you can click any step in the stepper to open it again. Each step has **Back** at the bottom left and its actions at the bottom right.

## Step 1: Domain [#step-1-domain]

The page has the title **Add your domain** and the line "Paste your site's address. We check it and tidy up the format."

1. In **Domain**, type or paste the address of your site, for example `example.com` or `https://www.example.com`.
2. Wait for the check. VitalSentinel checks that the site answers. The field shows a check mark or the reason for a problem.
3. If you manage more than one workspace, select the workspace in **Adding to**.
4. Click **Add domain**.

VitalSentinel removes the parts that it does not need, such as `https://`. If the saved address is different from what you typed, the page shows the address that it will save. A meter shows how many domains the workspace uses of its limit. When the domain is added, the toast says the domain name and "added". Then the **Tracking** step opens.

### What comes next [#what-comes-next]

The card **What comes next** lists the three optional steps. The **?** next to the title explains that nothing is checked or collected until VitalSentinel knows the site is yours.

The subtitle of the card is "Three optional steps, about a minute each. Skip any of them and add it later."

### If the workspace has reached its domain limit [#if-the-workspace-has-reached-its-domain-limit]

The page shows the workspace name and **has reached its domain limit**. It also says how many domains the workspace monitors. Then you can:

- Select another workspace in **Adding to**.
- If you are the workspace owner, click **Compare plans** to move to a larger plan.
- If you are an admin, click **Ask your workspace owner** to copy a message for the owner.

## Step 2: Tracking [#step-2-tracking]

The **Install tracking** step gives you one snippet for [RUM Monitoring](/rum-monitoring/overview) and [Web Analytics](/web-analytics/overview). Both scripts use the same tracking ID. The subtitle is "Paste one snippet on your site and RUM Monitoring and Web Analytics start filling in."

1. In **What to measure**, select **RUM Monitoring**, **Web Analytics** or both. Both are selected at first.
2. In **Paste it on every page**, select **HTML** or **Google Tag Manager**.
3. Click **Copy** to copy the **Tracking snippet**.
4. For **HTML**, paste the snippet just before the closing `</head>` tag of your site template. For **Google Tag Manager**, add a Custom HTML tag with the code and fire it on all pages.
5. Open any page of your site.
6. Click **Check installation**.
7. Click **Continue**, or click **Skip for now**.

For platform guides and all script options, see [Tracking scripts](/connect/tracking-scripts) and [Platforms](/connect/platforms).

### Consent banner option [#consent-banner-option]

By default, the scripts save nothing on the visitor's device: no cookies, no local storage and no session storage. If your site has a consent banner, select **My site has a consent banner**. The page then shows the code to call from your banner when a visitor accepts or rejects. You can change this later in the domain settings.

### Is it working? [#is-it-working]

The card **Is it working?** shows a status chip for each selected script:

| Chip | Meaning |
|---|---|
| **Receiving data** | Visits arrive. |
| **Script found, waiting for the first visit** | The script is on the page, but no visit has arrived yet. |
| **Found with a different tracking ID** | A script is on the page, but it belongs to a different domain. Use the snippet of this domain. |
| **Not found on your page** | The check did not find the script. |
| **Not detected yet** | No check has run yet. |

You do not have to wait on this page. The chip turns green by itself when the first visit arrives. If the check finds a Google Tag Manager container, the page explains that scripts added there are not visible to the check. Publish the container, open your site one time, and check again.

## Step 3: Google Search Console [#step-3-google-search-console]

The **Connect Google Search Console** step shows clicks, positions and indexing data from Google for your domain. The access is read-only.

1. Click **Connect Google**.
2. Sign in to Google and approve read-only access. You come back to this page.
3. Select the property for the domain.
4. Click **Link property and continue**.

If the Google sign-in expired, the button says **Reconnect Google**. A property with owner or full-user access also proves that you own the domain. Then you have nothing more to do on the **Verify** step. For details, see [Google Search Console](/connect/search-console).

If you do not want to connect now, click **Skip for now**. Members see "A workspace admin connects Google" and a button that copies a message for an admin.

## Step 4: Server Log Monitoring [#step-4-server-log-monitoring]

The **Connect Server Log Monitoring** step shows what Googlebot and AI crawlers really fetch on your site. Select how your logs reach VitalSentinel:

| Method | When data arrives |
|---|---|
| **Cloudflare Worker**: a small Worker in your Cloudflare account, for sites behind Cloudflare, on every plan | **Real time** |
| **SFTP or FTPS**: VitalSentinel fetches new log files from your server | **On a schedule** |
| **Cloud storage bucket**: new log files from S3, R2 or Google Cloud Storage | **On a schedule** |
| **Upload a log file**: an exported access log for a first look | **One-off** |

File sources have the chip **On paid plans**. Click the button of the method, for example **Connect Cloudflare**, and follow the steps in the panel. When the source sends data, the page shows **Your log source is delivering**. For details, see [Server logs](/connect/server-logs).

If you do not want to connect now, click **Skip for now**.

## Step 5: Verify [#step-5-verify]

The **Verify** step proves that you own the domain. It has the chip **Required to start**. VitalSentinel checks or collects nothing for the domain until it is verified.

When the step opens, VitalSentinel checks every method at the same time. Google Search Console, Cloudflare or the tracking script from the earlier steps often verify the domain with no more work. If one of them passes, the page shows that the domain is verified. Click **Continue**.

If no method passes, set up one method from **Ways to verify**, for example a DNS TXT record. For all methods, see [Verify ownership](/getting-started/domain-setup/verify-ownership).

If the domain is already verified when you reach this step, the flow goes past it to **Done**.

If you cannot verify now, click **Verify later**. The page says "Verify later? That's fine, but we won't monitor anything until the domain is verified."

## Step 6: Done [#step-6-done]

The **Done** step shows a summary of the setup.

- If the domain is verified, the title says **Congratulations!** and that the domain is set up. The line under it is "We're watching it now. First results arrive within minutes." Click **Open** and the domain name to open the domain **Overview**.
- If the domain is not verified, the title says that the domain is added. Click **Verify now** to go back to the **Verify** step, or open the domain.

### The Done step cards [#the-done-step-cards]

| Card | What it shows |
|---|---|
| **Running now** | Each module and its status: **Running**, **Waiting for data**, **Needs attention**, **Monthly limit reached**, **Not running** or **Checking**. A module that does not run has a **Set up** button. If the domain is not verified, the card title is **Starts once verified**. |
| **Your optional steps** | The optional steps that you skipped or did not finish, each with a **Set up** button. |
| **Want a guided look?** | **Show me everything** starts the walkthrough of every page. **Quick tour** starts a short tour. See [Using the app](/getting-started/using-the-app). |

## Leave and resume the setup [#leave-and-resume-the-setup]

You can leave the setup flow at any step. Click **Exit setup** at the top right. The domain **Overview** opens. The domain stays in the workspace, and the steps that you finished stay finished.

To finish the setup later, use the **Set up more** card on the domain **Overview**, or the **Setup** card in the domain settings. Each **Set up** button opens a setup panel on the page. When you skip a step, the toast says "Skipped – you can set it up later from the domain settings". See [Finish the setup](/getting-started/domain-setup/finish-setup).

## Troubleshooting [#troubleshooting]

### Why does the Domain step say that my site is not reachable? [#why-does-the-domain-step-say-that-my-site-is-not-reachable]

VitalSentinel could not get an answer from the address. Check that the address is correct and that the site is public. A firewall or bot protection can block the check. See [Monitoring IPs](/help/monitoring-ips).

### Why is the Add domain button not available? [#why-is-the-add-domain-button-not-available]

The address is not valid, the reachability check failed, or the workspace has reached its domain limit. Correct the address, or select a workspace with free room.

### Why does the Tracking step show "Not found on your page"? [#why-does-the-tracking-step-show-not-found-on-your-page]

The script is not in the HTML of the page. Paste the snippet into the `<head>` of every page, publish the change and click **Check installation** again. A script added through Google Tag Manager is not visible to this check, but it can still send data.

### Why does the setup say "We couldn't find this domain"? [#why-does-the-setup-say-we-couldnt-find-this-domain]

The domain was removed, or it belongs to a workspace that you are not a member of. Click **Back to dashboard**.

## Related [#related]

- [Verify ownership](/getting-started/domain-setup/verify-ownership) - all ways to prove that the domain is yours
- [Finish the setup](/getting-started/domain-setup/finish-setup) - connect the sources that you skipped
- [Tracking scripts](/connect/tracking-scripts) - script options and platform guides
- [Connect Search Console](/connect/search-console) - link a Google Search Console property
- [Plans and limits](/workspace/plans-and-limits) - the domain limit of each plan
