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

# Domain

> Connect a custom domain and understand how GEO page routing works

Domain settings let you serve GEO Pages from your own brand domain instead of the default Anymorph subdomain. This is critical for SEO authority: pages on your domain build **your** domain's backlink profile and citation authority, not Anymorph's.

## Why Domain Connection Matters

When an AI engine cites a page, the citation points to the **domain** where the page lives. If your GEO pages are on `yourdomain.com/a/best-crm-tools`, the citation authority flows to `yourdomain.com`. This strengthens your [domain authority](/concepts/how-geo-works), the #1 predictor of future AI citations.

## Three Routing Modes

Anymorph supports three ways to connect your domain, depending on your hosting platform:

### A Record Routing (Recommended for most)

For apex domains (e.g., `example.com`) or subdomains when your platform doesn't support URL rewrites.

**How it works:**

```
User visits yourdomain.com/a/page
    → DNS resolves to Anymorph proxy (via A records)
    → Anymorph checks path:
        /a/* → Serve GEO page
        other → Forward to your origin site
```

Anymorph acts as a **reverse proxy**. GEO page paths are served by Anymorph; all other paths are transparently forwarded to your original website. Your visitors never know the difference.

**DNS records required:**

| Type  | Name                             | Value                                                             | Purpose                                 |
| ----- | -------------------------------- | ----------------------------------------------------------------- | --------------------------------------- |
| A     | `@` or subdomain                 | `99.83.186.151`                                                   | Primary server (AWS Global Accelerator) |
| A     | `@` or subdomain                 | `75.2.96.173`                                                     | Secondary server (high availability)    |
| CNAME | `_acme-challenge.yourdomain.com` | `_acme-challenge.yourdomain.com.challenges.saascustomdomains.com` | SSL certificate provisioning            |

<Warning>
  Add **both** A records for high availability. Add the ACME challenge CNAME **before** the A records to enable zero-downtime SSL provisioning.
</Warning>

### CNAME Routing (For subdomains)

For subdomains like `blog.example.com` or `geo.example.com`.

**DNS record:**

| Type  | Name                    | Value                |
| ----- | ----------------------- | -------------------- |
| CNAME | subdomain (e.g., `geo`) | `proxy.anymorph.app` |

SSL is automatically provisioned via Cloudflare. Simpler setup but only works for subdomains (not apex domains).

### Path Routing (For Vercel, Netlify, etc.)

If your site runs on a platform that supports URL rewrites, you can route GEO page paths directly from your platform with no DNS changes needed.

**Supported platforms:**

| Platform             | Configuration                                                                                   |
| -------------------- | ----------------------------------------------------------------------------------------------- |
| **Vercel**           | Add rewrite in `vercel.json`: `"/a/:path*"` → `"https://your-slug.proxy.anymorph.app/a/:path*"` |
| **Netlify**          | Add to `netlify.toml` or `_redirects`: `/a/*` → proxy URL with status 200                       |
| **Cloudflare Pages** | Add to `_routes.json` or use a Worker                                                           |
| **AWS CloudFront**   | Add origin + cache behavior for `/a/*` path pattern                                             |

<Tip>
  Path routing is the fastest setup: no DNS changes, no SSL to wait for. If your platform supports it, start here.
</Tip>

## Origin URL Configuration

When using A Record or CNAME routing, you must specify your **Origin URL**, the original platform URL where your site lives. Anymorph forwards non-GEO traffic to this address.

| Platform    | Origin URL                            | Notes                                                |
| ----------- | ------------------------------------- | ---------------------------------------------------- |
| Webflow     | `https://your-site.webflow.io`        | Use `.webflow.io` staging URL, not `cdn.webflow.com` |
| Framer      | `https://your-site.framer.app`        | Base URL from Framer settings                        |
| Wix         | `https://username.wixsite.com/mysite` | Built-in domain                                      |
| Squarespace | `https://your-site.squarespace.com`   | Built-in domain                                      |
| Shopify     | `https://your-store.myshopify.com`    | Shopify subdomain                                    |

<Warning>
  For Webflow: do **not** use `cdn.webflow.com` as origin. When you change DNS from Webflow's CNAME to Anymorph's A records, Webflow deactivates your custom domain, resulting in 404 errors. The `.webflow.io` staging URL works regardless of DNS configuration.
</Warning>

## Domain Verification Status

After configuring DNS, your domain progresses through three stages:

| Status          | What's happening                                                                 | Typical duration |
| --------------- | -------------------------------------------------------------------------------- | ---------------- |
| **Pending SSL** | DNS records detected, ACME challenge is validating, SSL certificate being issued | 5–15 minutes     |
| **SSL Active**  | Certificate issued, proxy is being configured to serve your domain               | 1–5 minutes      |
| **Active**      | Fully connected. GEO pages are live on your domain.                              | Done             |

The dashboard polls status every 15 seconds and updates automatically.

<Note>
  DNS propagation typically takes 5–30 minutes but can take up to 48 hours depending on your DNS provider and TTL settings. If your domain is stuck on "Pending SSL" for more than an hour, double-check your DNS records.
</Note>

## IndexNow Integration

Once your domain is connected, you can enable **IndexNow**, a protocol that instantly notifies search engines (Bing, Yandex, etc.) when new GEO pages are published. This accelerates indexing from days to hours.

## Testing Your Connection

After setup, verify with the health check endpoint:

```bash theme={null}
curl https://yourdomain.com/__check__
```

| Response                     | Meaning                   |
| ---------------------------- | ------------------------- |
| `"status": "connected"`      | Working correctly         |
| `"status": "not_configured"` | Domain not found in proxy |
| `"status": "disabled"`       | Domain disabled           |

## Troubleshooting

<AccordionGroup>
  <Accordion title="Domain stuck on Pending SSL">
    * Verify the `_acme-challenge` CNAME is exactly correct (including the `.challenges.saascustomdomains.com` suffix)
    * If using Cloudflare, set the CNAME to **DNS Only** (gray cloud), not Proxied
    * Check for CAA records that might block certificate issuance
    * Wait up to 48 hours for full DNS propagation
  </Accordion>

  <Accordion title="Pages loading on Anymorph but not on custom domain">
    * Confirm domain status shows **Active** in settings
    * Verify A records point to `99.83.186.151` and `75.2.96.173`
    * Check that GEO pages are actually [published](/dashboard/geo-pages)
  </Accordion>

  <Accordion title="Origin site not loading (non-GEO paths broken)">
    * Verify your **Origin URL** is correct (use staging/default URL, not CDN)
    * For Webflow, use `.webflow.io` not `cdn.webflow.com`
    * Test the origin URL directly in your browser to confirm it's accessible
  </Accordion>

  <Accordion title="Mixed content or HTTPS errors">
    * Wait for SSL status to show **Active**
    * Ensure your origin site supports HTTPS
    * If using Cloudflare, disable the proxy (use DNS Only mode)
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="GEO Pages" icon="file-lines" href="/dashboard/geo-pages">
    Create and publish pages to serve on your custom domain.
  </Card>

  <Card title="How GEO Works" icon="gears" href="/concepts/how-geo-works">
    Understand why domain authority drives AI citations.
  </Card>
</CardGroup>
