> ## Documentation Index
> Fetch the complete documentation index at: https://docs.seocrawler.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Adding Domains

> Add and configure domains for link health monitoring

## Overview

Domains are the foundation of SEO Crawler. Each domain represents a website you want to monitor for broken links, SEO issues, and performance problems.

## Adding Your First Domain

<Steps>
  <Step title="Navigate to Domains">
    From your dashboard, click **Domains** in the sidebar, then click the **Add Domain** button.
  </Step>

  <Step title="Enter Domain Name">
    Enter your domain name in the input field:

    ```
    mysite.com
    ```

    <Note>
      Enter just the domain name. We'll automatically strip any `https://`, `www.`, ports, or paths you include.
    </Note>
  </Step>

  <Step title="Submit for Verification">
    Click **Continue** to create the domain. You'll be directed to the DNS verification page.
  </Step>
</Steps>

## Input Normalization

SEO Crawler automatically cleans up your domain input:

| You Enter                         | We Use       |
| --------------------------------- | ------------ |
| `https://mysite.com`              | `mysite.com` |
| `www.mysite.com`                  | `mysite.com` |
| `mysite.com/page`                 | `mysite.com` |
| `mysite.com:8080`                 | `mysite.com` |
| `MYSITE.COM`                      | `mysite.com` |
| `https://www.mysite.com/page?q=1` | `mysite.com` |

## Domain Requirements

### Supported Domain Types

| Type           | Example             | Supported |
| -------------- | ------------------- | --------- |
| Root domain    | `mysite.com`        | ✅         |
| Subdomain      | `blog.mysite.com`   | ✅         |
| Deep subdomain | `app.us.mysite.com` | ✅         |
| With numbers   | `site123.com`       | ✅         |
| With hyphens   | `my-cool-site.com`  | ✅         |

### Not Supported

The following domain types cannot be monitored:

| Type                | Example           | Reason                           |
| ------------------- | ----------------- | -------------------------------- |
| IP addresses        | `192.168.1.1`     | Must be a domain name            |
| Localhost           | `localhost:3000`  | Not publicly accessible          |
| Local network       | `mypc.local`      | Not publicly accessible          |
| Internal domains    | `server.internal` | Not publicly accessible          |
| Tor hidden services | `site.onion`      | Not accessible via standard HTTP |
| Reserved domains    | `example.com`     | IANA reserved for documentation  |

<Tip>
  Domains must be publicly accessible on the internet for SEO Crawler to monitor them.
</Tip>

### Plan Limits

| Plan   | Max Domains |
| ------ | ----------- |
| Free   | 1           |
| Solo   | 3           |
| Pro    | 10          |
| Agency | Unlimited   |

<Warning>
  Each subdomain counts as a separate domain toward your plan limit.
</Warning>

## Validation Error Messages

When adding a domain, you may see specific error messages:

<AccordionGroup>
  <Accordion title="IP addresses cannot be monitored">
    You entered an IP address like `192.168.1.1` or `127.0.0.1`. Please enter a domain name like `mysite.com` instead.
  </Accordion>

  <Accordion title="Localhost cannot be monitored">
    You entered `localhost` or a localhost subdomain. Please enter a publicly accessible domain that SEO Crawler can reach over the internet.
  </Accordion>

  <Accordion title="Reserved example domain">
    You entered `example.com`, `example.org`, or similar IANA-reserved domains. These are reserved for documentation purposes. Please enter your actual domain.
  </Accordion>

  <Accordion title="Reserved test domain">
    You entered `test.com` or a `.test` domain. Please enter your actual production domain.
  </Accordion>

  <Accordion title="Local/internal network domains">
    You entered a domain ending in `.local`, `.internal`, `.lan`, `.home`, or `.corp`. These are private network domains that aren't publicly accessible.
  </Accordion>

  <Accordion title="Domain contains invalid characters">
    Your domain has invalid formatting like double dots (`..`). Please check for typos.
  </Accordion>

  <Accordion title="Domain part cannot start/end with hyphen">
    Domain labels (parts between dots) cannot begin or end with a hyphen. For example, `-mysite.com` and `mysite-.com` are invalid.
  </Accordion>

  <Accordion title="Domain already added">
    This exact domain is already in your account. Check your domain list to find it.
  </Accordion>

  <Accordion title="Domain limit reached">
    You've reached the maximum number of domains for your plan. Upgrade your plan or remove unused domains to add more.
  </Accordion>
</AccordionGroup>

## After Adding a Domain

Once you add a domain, you'll need to verify ownership before you can start crawling:

1. **DNS Verification** - Add a TXT record to prove you own the domain
2. **Wait for Propagation** - DNS changes can take up to 48 hours (usually much faster)
3. **Verify** - Click "Check DNS" to confirm verification
4. **Start Crawling** - Once verified, run your first crawl

## Managing Domains

### Domain Dashboard

Your domain list shows:

| Column         | Description                                |
| -------------- | ------------------------------------------ |
| **Domain**     | Domain name and verification status        |
| **Health**     | Overall health score based on latest crawl |
| **Last Crawl** | When the domain was last crawled           |
| **Actions**    | Start crawl, view details, settings        |

### Domain Details

Click on any domain to see:

* **Overview** - Health score, total links, broken links count
* **Crawl History** - List of all previous crawls with results
* **Settings** - Domain configuration and danger zone

## Removing Domains

To remove a domain:

<Steps>
  <Step title="Open Domain Details">
    Navigate to the domain you want to remove.
  </Step>

  <Step title="Scroll to Danger Zone">
    At the bottom of the page, find the **Danger Zone** section.
  </Step>

  <Step title="Click Delete Domain">
    Click **Delete Domain** and confirm the action.
  </Step>
</Steps>

<Warning>
  Removing a domain deletes all associated crawl history, results, and reports. This action cannot be undone.
</Warning>

## Troubleshooting

<AccordionGroup>
  <Accordion title="I can't add my domain">
    Check that your domain:

    * Is a valid domain format (e.g., `mysite.com`)
    * Is not an IP address or localhost
    * Is not a reserved domain like `example.com`
    * Doesn't use a blocked TLD like `.local` or `.internal`
    * You haven't reached your plan's domain limit
  </Accordion>

  <Accordion title="My domain shows as unverified">
    You need to complete DNS verification before crawling. Go to your domain's verification page and follow the instructions to add a TXT record.
  </Accordion>

  <Accordion title="I accidentally added the wrong domain">
    You can delete the domain from the domain details page and add the correct one. If you've already verified it, you'll need to verify the new domain as well.
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="DNS Verification" icon="shield-check" href="/domains/dns-verification">
    Verify domain ownership to start crawling.
  </Card>

  <Card title="Start Your First Crawl" icon="spider-web" href="/crawling/starting-crawls">
    Run your first crawl after verification.
  </Card>
</CardGroup>
