Skip to content

Setting Up Your AI Subdomain Fresh

How to create ai.yoursite.com -- mirror your content, inject Schema.org markup, and set up the AI-optimized version of every page.

Layer 1 -- Advanced

What Is the AI Subdomain?

The AI subdomain (ai.yoursite.com) is an optional but powerful part of Layer 1. It's a parallel version of your website that's optimized specifically for AI crawlers and agents -- stripped of visual design, navigation clutter, and JavaScript complexity, leaving just pure structured content.

Think of it as "reader mode" for your website -- but built for machines instead of humans.

When an AI crawler hits ai.yoursite.com, it finds:

  • Clean HTML with semantic structure
  • Rich Schema.org JSON-LD on every page
  • No ads, popups, cookie banners, or navigation menus
  • Fast load times (no heavy JavaScript frameworks)
  • Consistent, predictable page structure

Is This Required?

No. You can achieve Layer 1 compliance by adding Schema.org markup to your main site. The AI subdomain is for those who want maximum AI readability without changing their main site's design or architecture.

Main Site vs. AI Subdomain

yoursite.com/about (human-facing):

html
<!DOCTYPE html>
<html>
<head>
  <title>About Us | Acme Dental</title>
  <link rel="stylesheet" href="/css/main.css">
  <script src="/js/analytics.js"></script>
  <script src="/js/chat-widget.js"></script>
</head>
<body>
  <nav>...50 lines of navigation...</nav>
  <div class="hero-banner">...</div>
  <main>
    <h1>About Acme Dental</h1>
    <p>Content buried here...</p>
  </main>
  <footer>...100 lines of footer...</footer>
  <div class="cookie-banner">...</div>
</body>
</html>

ai.yoursite.com/about (AI-facing):

html
<!DOCTYPE html>
<html>
<head>
  <title>About Us | Acme Dental</title>
  <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "AboutPage",
      "mainEntity": {
        "@type": "Dentist",
        "name": "Acme Dental"
      }
    }
  </script>
</head>
<body>
  <main>
    <h1>About Acme Dental</h1>
    <p>Clear, structured content...</p>
  </main>
</body>
</html>

Same content, dramatically different signal-to-noise ratio.


Architecture Options

Use Nginx, Cloudflare Workers, or similar to intercept requests to ai.yoursite.com, fetch content from your main site, strip unnecessary elements, and inject Schema.org.

  • No duplicate content to maintain
  • Requires server/edge configuration

Static Generation

Build a static site generator that pulls content from your CMS/main site and generates AI-optimized HTML files. Deploy to any static host.

  • Fast, cheap hosting (Netlify, Vercel, S3)
  • Needs rebuild when content changes

CMS Plugin/Theme

If you use WordPress, Webflow, or similar -- create a separate theme or use a plugin that renders AI-optimized versions at the ai. subdomain.

  • Integrated with existing workflow
  • Platform-specific implementation

Separate Application

Build a lightweight app that shares your database/API but renders AI-optimized templates.

  • Full control over output
  • Most development effort

Step-by-Step Setup

Step 1: Configure DNS

Add a CNAME or A record for the ai subdomain:

# If using same server as main site:
ai.yoursite.com.    CNAME    yoursite.com.

# If using separate hosting (e.g., Netlify):
ai.yoursite.com.    CNAME    your-ai-site.netlify.app.

DNS changes can take up to 48 hours to propagate.

Step 2: Create the Page Template

Design a minimal HTML template for all AI subdomain pages:

html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>{{page.title}} -- {{site.name}}</title>
  <meta name="description" content="{{page.description}}">

  <!-- Canonical points to main site -->
  <link rel="canonical" href="https://yoursite.com{{page.path}}">

  <!-- Schema.org JSON-LD -->
  <script type="application/ld+json">
    {{page.schema_json}}
  </script>

  <!-- Minimal styling for readability -->
  <style>
    body {
      font-family: system-ui, sans-serif;
      max-width: 800px;
      margin: 0 auto;
      padding: 20px;
      line-height: 1.6;
    }
  </style>
</head>
<body>
  <main>
    <article>
      <h1>{{page.title}}</h1>
      {{page.content}}
    </article>
  </main>
  <footer>
    <p>View this page on our main site: <a href="https://yoursite.com{{page.path}}">yoursite.com{{page.path}}</a></p>
  </footer>
</body>
</html>

Key elements:

  • Canonical tag -- Points to the main site to avoid duplicate content issues
  • Schema.org JSON-LD -- The structured data, injected per page
  • Minimal styling -- Just enough CSS for human readability
  • Semantic HTML -- <main>, <article>, proper headings

Step 3: Generate Schema.org for Each Page

Homepage:

json
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Your Business Name",
  "description": "What you do",
  "url": "https://yoursite.com",
  "telephone": "+1-555-123-4567",
  "address": { ... },
  "potentialAction": {
    "@type": "ReadAction",
    "target": "https://yoursite.com/ai-discovery"
  }
}

Service Page:

json
{
  "@context": "https://schema.org",
  "@type": "Service",
  "name": "Teeth Whitening",
  "description": "Professional teeth whitening service...",
  "provider": {"@type": "LocalBusiness", "name": "Acme Dental"},
  "areaServed": "Springfield, IL",
  "offers": {"@type": "Offer", "price": "299", "priceCurrency": "USD"}
}

Team/Person Page:

json
{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Dr. Jane Smith",
  "jobTitle": "Lead Dentist",
  "description": "Pediatric dentistry specialist with 15 years...",
  "worksFor": {"@type": "LocalBusiness", "name": "Acme Dental"},
  "hasCredential": [{"@type": "EducationalOccupationalCredential", "name": "DDS"}]
}

Step 4: Build Your Site Structure

Mirror your main site's URL structure:

ai.yoursite.com/
├── index.html              # Homepage
├── about/
│   └── index.html          # About page
├── services/
│   ├── index.html          # Services listing
│   ├── whitening.html      # Individual service
│   └── implants.html
├── team/
│   ├── index.html          # Team listing
│   └── dr-smith.html
├── contact.html
├── robots.txt              # AI-friendly robots.txt
├── .well-known/
│   └── llm-index.json      # If using Layer 3
└── sitemap.xml

Note

Your AI Discovery Page (/ai-discovery) lives on your main site, not the AI subdomain. It's the bridge that connects your human-facing site to the LLM Disco Network.

Step 5: Configure robots.txt

See the robots.txt guide for the complete configuration for both sites.

Quick summary:

  • Main site: block AI crawlers, allow /ai-discovery
  • AI subdomain: allow AI crawlers, block search engines

Step 6: Deploy and Verify

  • Visit ai.yoursite.com -- pages should load with minimal styling
  • Check page source -- Schema.org JSON-LD should be in <head>
  • Test that canonical tags point correctly to your main site
  • Verify yoursite.com/robots.txt blocks AI crawlers
  • Verify ai.yoursite.com/robots.txt welcomes AI crawlers
  • Ensure your AI Discovery Page links to llmdisco.com

Common Mistakes to Avoid

  • Forgetting the canonical tag -- Without it, search engines may see duplicate content
  • Inconsistent URLs -- Keep URL structure identical between main site and AI subdomain
  • Missing pages -- If a page exists on main site, it should exist on AI subdomain
  • Stale content -- Set up automated syncing so AI subdomain doesn't fall behind
  • Swapped robots.txt -- Double-check that main site blocks AI and AI subdomain welcomes AI
  • No AI Discovery Page -- The ADP is the bridge that connects everything

Maintenance

Your AI subdomain needs to stay in sync with your main site:

  • Reverse proxy: Automatic -- changes flow through in real-time
  • Static generation: Set up a build trigger when content changes
  • CMS plugin: Usually automatic with the same content database

Three Layer Architecture | llm-index.json Guide

LLM-LD is licensed under CC BY 4.0. Created by CAPXEL.