Classify the request
40 named crawlers decide the lane. You can add up to 50 more. Humans stay on origin; bots enter the prerender path.
BotBridge · Bridge CDN
BotBridge is Bridge CDN’s layer for crawlers and AI agents. Named bots get a prerendered HTML snapshot when the edge has one ready. Humans always get your origin.
Prerendering, IndexNow and analytics are on every plan · AI SEO is Pro and up.
Prerender
Bot UAs get a server-rendered HTML snapshot from the edge. Humans get your origin, unmodified. If the UI hydrates in the browser, the crawler either sees a shell or a finished page.
Human lane
Origin
GET /pricing 200 <script src="/app.js"></script> path: origin
Bot lane
Snapshot
GET /pricing 200 X-BB-CDN-Cache: prerender-hit <script> stripped
Googlebot · Bingbot · GPTBot · ClaudeBot · PerplexityBot · Applebot · +34 more
Bots get prerendered HTML. Humans keep your origin.
Serve prerendered HTML snapshots to bots and crawlers.
Bridge is off. Bots receive origin only.
Chips mirror Rendering options below. Sample only.
Trigger lazy-loaded content before capture.
Fire scroll events used by scroll-based rendering.
Scroll back so the snapshot starts at the top.
Sample list. Real domains allow up to 50.
Demo only. Max 3 chips here.
Bridge CDN dashboard · Prerendering · sample data
Toggle opens settings. Demo.
40 named crawlers decide the lane. You can add up to 50 more. Humans stay on origin; bots enter the prerender path.
If no snapshot is ready, the edge serves origin immediately and warms the snapshot in the background. A bot is never held waiting on a live render.
When a snapshot is ready, bots receive server-rendered HTML from the edge. Humans still get your origin, unmodified.
Bots get a server-rendered snapshot. Scripts are stripped by default. JSON-LD and AMP scripts stay.
40 named crawlers built in. You can add up to 50 more.
Cold path serves origin now and warms the snapshot in the background. No bot waits on a live render.
IndexNow
Edge change detection queues URLs to Bing, Yandex, Seznam, Naver, Yep, and api.indexnow.org. Bulk posts run on a short interval. Google is not in IndexNow. Keep sitemaps.
Grouped per host and engine. Bulk POST on a short interval. Modes are fallback, balance, or all.
The edge serves the verification key at your own hostname. Nothing to upload to origin.
Include and exclude globs pick eligible paths. No rules means the whole domain. One include makes the domain opt-in.
Submit changed URLs to IndexNow engines. Indexing stays each engine’s call.
Submit changed URLs. On every plan.
IndexNow is off on this domain. No submissions. Sample.
| Engine | Share | HTTP status mix |
|---|---|---|
| Bing | ~50% | 200 heavy 429 rare |
| Yandex | ~30% | 200 |
| IndexNow (aggregator) | ~20% | 202 |
/blog/*
/docs/*
/blog/drafts/*
Rules decide where IndexNow is active. First match wins. No rules means the whole domain. Demo reorder and delete only.
Imitation highlight only. Not a live submit.
/blog/migrating-our-docs
Bing · 200
/docs/getting-started
Yandex · 200
/blog/edge-routing
Bing · 429
/
Aggregator · 202
Verification key is derived per hostname and served at your own domain by the edge. Nothing to upload to origin.
/{key}.txt on acme.com
Bridge CDN dashboard · IndexNow delivery · sample data
Tabs switch panels. Demo. Range changes chart shape only. Sample.
Google does not participate in IndexNow. Bulk POST on a short interval. Sample endpoint set, not live volume.
Range changes the chart shape (sample).
Illustrative sample data. Shape only. Not measured delivery volume.
AI SEO
Fills missing meta, Open Graph, Twitter, and JSON-LD in the bot snapshot only. Authored tags always win. Pro and up. Off per domain until you enable it.
Fill missing meta, OG, Twitter, and JSON-LD in the bot snapshot. Never overwrite yours.
Generate missing tags for the bot snapshot. Off by default.
Off on this domain (default). Pro and up.
Fill missing og:image with a 1200×630 card. Off by default.
Off. Pages that already have og:image keep it. Nothing is generated.
Approximation. Injected only when the page has no og:image.
Migrating our docs to the edge
Acme
Try a URL on this domain. Preview tags BotBridge would add if missing. Demo swaps two canned profiles.
| Group | Property | Value |
|---|---|---|
| Meta | title | Migrating our docs to the edge · Acme |
| Meta | description | How we moved the Acme docs behind Bridge CDN, and what changed for crawlers. |
| Open Graph | og:title | Migrating our docs to the edge |
| Open Graph | og:url | https://acme.com/blog/migrating-our-docs |
| Open Graph | og:image | generated 1200×630 card |
| twitter:card | summary_large_image |
Per URL, when JSON-LD is on. Organization and WebSite from the brand profile; BreadcrumbList, WebPage, and BlogPosting from this path. Existing JSON-LD stays.
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Acme Inc.",
"url": "https://acme.com/",
"sameAs": ["https://twitter.com/acme"]
}
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Acme Marketing Site",
"url": "https://acme.com/"
}
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://acme.com/" },
{ "@type": "ListItem", "position": 2, "name": "Blog", "item": "https://acme.com/blog" },
{ "@type": "ListItem", "position": 3, "name": "Migrating our docs to the edge", "item": "https://acme.com/blog/migrating-our-docs" }
]
}
{
"@context": "https://schema.org",
"@type": "WebPage",
"name": "Migrating our docs to the edge",
"url": "https://acme.com/blog/migrating-our-docs"
}
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Migrating our docs to the edge",
"url": "https://acme.com/blog/migrating-our-docs"
}
| Group | Property | Value |
|---|---|---|
| Meta | title | Acme · Marketing that ships |
| Meta | description | Acme helps teams publish at the edge. Product, docs, and blog on one origin. |
| Open Graph | og:title | Acme |
| Open Graph | og:type | website |
| Open Graph | og:image | generated 1200×630 card |
| twitter:card | summary |
Per URL, when JSON-LD is on. Organization and WebSite from the brand profile; WebPage from this path. Homepages skip BreadcrumbList. Existing JSON-LD stays.
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Acme Inc.",
"url": "https://acme.com/"
}
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Acme Marketing Site",
"url": "https://acme.com/"
}
{
"@context": "https://schema.org",
"@type": "WebPage",
"name": "Home",
"url": "https://acme.com/"
}
Bridge CDN dashboard · AI SEO enrichment · sample data
Pro mock. Flip to show enrichment panels. Family chips filter the table. Preview-image toggle shows the card.
Injection runs in three tiers: your brand profile, deterministic derived values, then the generated record. Your tag always wins. Injected nodes use data-bb-seo="1". Missing og:image can be filled with a 1200×630 card.
A self-hosted model, not a third-party API. Output is checked before it is stored. Invalid records are never injected.
Pro and up. AI SEO enrichment is off per domain until you enable it. Not available on Free or Hobby.
Illustrative sample proportions on a hypothetical site. Not measured coverage.
Analytics
Computed at the edge from the request. No script. No cookie. Humans and bots chart on separate planes.
Visitors only. GET + 2xx + text/html. Daily-rotating salted hash. 30-minute sliding sessions.
Same registry as the router names the crawler. Prerendered vs origin split. Crawl-infra hits first-class.
Analytics from HTTP only. No client JS. No cookies. Visitors vs bots and AI. Uniques deduped daily.
Cookieless, no client script. Planes stay separate so crawls never distort visitor counts.
Only GET 2xx text/html enter the visitor pipeline.
Crawl-infra hits (not pageviews). Category table below is bot request mix by category.
| Category | Share | Shape |
|---|---|---|
| AI assistant | 37.0% | largest |
| Search | 31.0% | high |
| AI crawler | 15.8% | mid |
| SEO tool | 7.6% | low |
| Other | 4.6% | low |
| Social | 2.4% | small |
| Monitoring | 1.6% | small |
No tag to install. No cookie set. Identity is a salted hash that rotates daily. Country is resolved locally. Mechanism only, not a compliance claim.
Bridge CDN dashboard · Bot and AI analytics · sample data
Tabs switch panels. Chips filter categories. Range changes the chart shape (sample).
Daily-rotating salted hash. Country resolved locally. No client JS.
Same registry as prerender. History length is plan-gated.
Illustrative sample data. Shape only. Not measured traffic.
How it fits
Four features on one request path, not four products bolted on. Classification picks the path. Everything after follows that decision.
| Capability | Free | Hobby | Pro | Business |
|---|---|---|---|---|
| Prerendering | Included | Included | Included | Included |
| IndexNow | Included | Included | Included | Included |
| IndexNow URLs per day | 500 | 2,000 | 10,000 | 25,000 |
| IndexNow route rules | 2 | 5 | 25 | 100 |
| Submission log retention | 7 days | 14 days | 30 days | 90 days |
| Analytics | Included | Included | Included | Included |
| Analytics history | 14 days | 90 days | 365 days | 1,825 days |
| AI SEO enrichment | — | — | Included | Included |
| Enrichments per month | — | — | 2,000 | 10,000 |
Plans and volumes are managed on Bridge CDN. Enterprise is arranged directly.
FAQ
No. The first bot to reach a path with no snapshot gets your origin, served immediately, while the snapshot is rendered in the background. The next crawler on that path gets the snapshot. A bot is never held waiting on a live render.
No. Google does not participate in IndexNow. IndexNow is an open standard supported by Bing, Yandex, Seznam, Naver, Yep, and the IndexNow aggregator, and BotBridge submits to all six. For Google, keep using sitemaps and on-page SEO.
No. Injection is fill-missing only. Every injected node is marked with the attribute data-bb-seo="1", and any tag you authored yourself is kept. The generated one is added only when that tag is absent. Change your own meta description later and the generated one never replaces it.
No. Humans are routed to your origin, unchanged. Prerendering, generated markup, and snapshot caching apply to the bot path only, so generated tags land in the snapshot served to crawlers rather than in the response your visitors receive.
Neither. Everything is computed at the edge from the request and response themselves, so there is no tag to install and no cookie is set. Visitor identity is a salted hash that rotates every day, uniques are counted and deduplicated daily, and country is resolved locally. Only pageviews, GET requests returning 2xx and text/html, enter the visitor pipeline.
A server-rendered HTML snapshot when the edge has one ready. Script tags are stripped by default. JSON-LD and AMP scripts stay. A page can declare its own HTTP status, and an origin 3xx is passed through as a real redirect.
Prerendering, IndexNow, and analytics are on every plan, including Free. AI SEO enrichment is Pro and up, and it stays off on each domain until you switch it on. Volumes are tiered: IndexNow allows 500 URLs a day on Free and 10,000 on Pro, and analytics history runs 14 days on Free and 365 days on Pro.
At bridge-cdn.com. BotBridge is the bot and AI-agent layer of Bridge CDN rather than a separate product, so you configure it from the Bridge, IndexNow, SEO, and Analytics tabs of the Bridge CDN dashboard, on the same account that manages your DNS, caching, and certificates.
Get started
Nothing separate to buy. Point DNS at Bridge CDN and enable Bridge. Bots get a finished page path.
Prerendering, IndexNow, and analytics on every plan · AI SEO enrichment on Pro and up.