Bridge SEO · part of Bridge CDN
Some pages on your site have no description. AI SEO writes the missing ones.
The tags you wrote stay exactly as they are. Everything else is filled at the edge, with no plugin and no code change.
Included in Bridge CDN Pro · Off per domain until you switch it on
Where machines read your tags
Four places your tags show up before anyone visits
Before a person opens the page, four kinds of screen have already shown it, and each one is built from the tags at the top.
-
Search result
Google, Bing and other engines show a title and a snippet under each result. Without a description, the snippet is whatever line the engine picks from the page.
-
AI answer
ChatGPT, Claude and Perplexity fetch pages while they answer a question, and read what the page says about itself in its tags.
-
Link in chat
Slack, LinkedIn, WhatsApp and iMessage draw a preview from Open Graph. Pasted without a card, the link shows as a grey box.
-
Social post
X reads its own card tags and falls back to Open Graph for the rest. With neither, a post shows the bare link.
Meta description at scale
You wrote the first fifty. The site kept growing.
Tags get written while a site is small enough for one person to know every page. After that, new pages ship with a title and whatever the template adds.
A description for every page is not a writing job. It is enumeration, and enumeration is the work nobody gets around to.
- URLs
- 1,000
- written by someone
- nobody will writefilled
- 962
How AI SEO enrichment works
It fills what’s empty. It never rewrites what’s there.
- A crawler or AI agent requests a page.
- The edge reads the head and finds what is missing.
- Missing tags are written from the page and your brand profile. Yours ship untouched.
What a machine receives now
- title
- description
- empty
- og:title
- empty
- og:image
- empty
- twitter:card
- empty
- JSON-LD
- empty
The same head after enrichment
- title
- description
- How billing works for a team, and what each plan includes.
- og:title
- Pricing · Example Docs
- og:image
- default image from the brand profile
- twitter:card
- summary_large_image
- JSON-LD
- WebPage, with name and description
Invisible from your own browser. The page looks finished to everyone who opens it.
Filled where it was empty. Untouched where it was not.
Enrichment fills the tags a page is missing (meta title and description, Open Graph, Twitter and X cards, JSON-LD) in the rendered copy machines receive. It never touches a tag somebody already wrote. An authored tag is kept exactly as it stands, and a generated one appears only where that tag is absent, so writing your own description later does not invite the generated version back over it.
Boundaries
What this never does
Nothing on the path is blocked or slowed
Crawlers and AI agents are served, not screened.
Google does not participate in IndexNow
Submission reaches the engines that do, and the scope there is narrow: discovered and changed URLs only, no history imported, full-site submission manual.
It does not move a page up or down
A filled tag describes a page. An engine still decides whether to show that description at all, and where the page ranks.
Meta tags, Open Graph, JSON-LD
Four tag families, one composed card
Each family opens its page: what the tags declare and what enrichment fills. IndexNow is the step after them.
Meta title and description
Meta title and description. The pair a result is built from. Where a page has no description, one is written from what the page says; where it has no title, a title is written too, ending with the site name when the brand profile says so. How meta title and description work
- title
- meta description
- How billing works for a team, and what each plan includes. filled
Open Graph
Open Graph. What a pasted link unfolds into. Missing properties are written from the page and the brand profile: the site’s name, and a default image where one is set. How Open Graph works
- og:title
- Pricing · Example Docs filled
- og:description
- How billing works for a team, and what each plan includes. filled
- og:image
- default image from the brand profile filled
- og:site_name
- Example Docs filled
X cards
X cards. X reads its own card tags first. Where they are absent, they are written from the page and the brand profile, including the handle where you have set one, and the card shape is chosen to match the image the page has. How X cards work
- twitter:card
- summary_large_image filled
- twitter:site
- @exampledocs, from the brand profile filled
JSON-LD
JSON-LD. A structured statement of what the page is. The type comes from what the page is, the organisation and site from the brand profile, and the breadcrumb from the path. A block somebody wrote is never edited. How JSON-LD works
- @type
- WebPage filled
- publisher
- Organization, from the brand profile filled
- breadcrumb
- Home › Pricing filled
IndexNow
IndexNow. The step after the tags: when a page’s tags change, that page can be announced to the engines that accept such announcements.
- announced
- https://example.com/pricing sent
Every generated tag carries data-bb-seo="1": fetch the page the way a machine does, and you can tell what was filled from what you wrote.
Where one is missing, a card can be composed at 1200 by 630 from three things you already have: the brand colour, the typeface, and a picture of the page itself. Nothing in it is invented, and a page that already has an image keeps it.
The frame around the screenshot can be drawn in the Windows style or the macOS one, which sounds like a detail until the card is sitting in somebody’s feed next to four others.
Cards stay switched off even after enrichment is on, until you ask for them.
Preview card · 1200 × 630
Pasted link, no image
The same link with the composed card
JavaScript SEO
If your site renders in the browser, fix that first
A site that assembles its content in the browser sends a shell first, and not every reader runs what comes after. Enrichment cannot fill a page that arrives empty, so prerendering comes first; how it works is explained on BotBridge.
Switch between the three states below to see what changes.
What the crawler receives
Is this you
Is this worth switching on for your site?
Enrichment is worth switching on for a large site built from templates, where the missing tags are the ones nobody got to; a small site with every description written by hand gains nothing.
-
Worth switching on
Hundreds or thousands of pages, most of them built from templates, each with a title somebody did write. The missing tags are the ones nobody got to, and filling those is the whole job.
See what is included -
Look at rendering first
A site assembled in the browser may be sending machines a shell. Prerendering answers that part; enrichment only helps once the content actually arrives.
See what is included -
Not worth it
A small site where somebody writes every description by hand and keeps them current. Enrichment would find nothing missing and change nothing.
Nothing to switch on here, and that is a fine answer.
Edge SEO
A plugin lives in your CMS. This lives in the path the page takes.
There are two places to put a missing tag: inside the system that builds the page, or on the way the page travels to whoever asked for it. The comparison below sets those two forms side by side and names no product.
A plugin in the CMS → visitor or crawler
- CMS pluginpage with its tags
- Static export out of reachpage without tags
- Second app on the domain out of reachpage without tags
A layer in the serving path → visitor or crawler
- CMSpage with its tags
- Static exportpage with its tags
- Second app on the domainpage with its tags
| Question | A plugin in your CMS | A layer in the serving path |
|---|---|---|
| Where it runs | Inside the CMS, as part of building the page | At the edge, on the copy served to machines |
| What you install | The plugin, on each site, kept in step with the CMS | Nothing on the site; switched on per domain |
| Pages built outside the CMS | Out of its reach: a static export or a second app on the same domain | Covered, because it works on whatever the domain serves |
| A page rendered in the browser | Tags reach machines only if the framework puts them in the first HTML | Tags sit in the rendered copy machines receive |
| Moving to another CMS | The setup moves with you or starts again | Nothing to move; the layer is not part of the CMS |
| Tags somebody already wrote | Depends on how the plugin is configured | Kept exactly as written, always |
| Seeing the tags while you edit | Yes, next to the page in the editor | No; they exist only in what machines receive |
One thing a plugin does better: it shows its tags in the editor, next to the page. Filled tags never appear in your CMS, only in the copy machines receive, so the way to see them is to fetch the page the way a machine does.
Brand profile
Two settings decide what it writes
Two settings decide what it writes: a brand profile that is copied word for word, and a description of the site that steers the wording. Generated text is only as trustworthy as the facts it is given, and both settings are yours to write.
A brand profile, used word for word
What the site is called, the Open Graph site name where it differs, the social handle, the postfix on a title, a default image and its alt text. These do not change from page to page, so they are copied as written rather than guessed.
A description of the site and how it should sound
What you do, who reads it, and the rules the copy follows: plain rather than eager, British spelling, no superlatives. This steers the wording and is never published on any page. It is there so the tags it writes sound like yours.
Enrichment, page by page
What was filled, and when
- 09:14:02/docs/billing/Filled: description, og:imageIndexNow: submitted
- 09:14:05/blog/release-notes/Filled: description, JSON-LDIndexNow: submitted
- 09:14:09/docs/api/errors/Filled: nothing missingIndexNow: —
- 09:14:13/pricing/Filled: og:title, twitter:cardIndexNow: submitted
- 09:14:18/changelog/Filled: descriptionIndexNow: submitted
- 09:14:22/docs/sso/Filled: description, Open Graph, JSON-LDIndexNow: submitted
- 09:14:27/about/Filled: nothing missingIndexNow: —
- 09:14:31/blog/migrating-docs/Filled: og:imageIndexNow: submitted
- 09:14:36/docs/webhooks/Filled: description, twitter:cardIndexNow: submitted
- 09:14:40/careers/Filled: JSON-LDIndexNow: submitted
- 09:14:44/docs/rate-limits/Filled: descriptionIndexNow: submitted
- 09:14:49/status/Filled: description, og:titleIndexNow: submitted
Two pages in twelve got nothing, because nothing on them was missing. Every title in the list is still the one somebody wrote.
Where it is included
Included in Bridge CDN Pro
Pro and above
AI SEO has no price of its own. It is part of Bridge CDN on Pro and above, and it stays off for each domain until you switch it on. Plans and prices live on Bridge CDN.
- Missing meta title and description filled
- Open Graph, X card and JSON-LD filled where absent
- Brand profile and site voice
- Preview cards, off until you switch them on
- IndexNow announcement when tags change
Off per domain until you switch it on.
Questions
What people ask first
Does my JavaScript site get indexed?
Not reliably on its own. A page assembled in the browser sends a shell first, and any reader that does not execute that step receives the shell. Prerendering addresses this by serving rendered HTML to crawlers and AI agents, so what they receive already contains the content.
Are meta descriptions a ranking factor?
No. Google has said since 2009 that it does not use the description meta tag for ranking, even though it sometimes uses it for the snippet shown under a result. That snippet is what somebody reads before deciding to click. Google builds it mostly from the page itself and takes the description when it describes the page better, so a missing one leaves that choice with nothing to choose from.
Is it safe to generate descriptions automatically?
Yes, where writing them by hand is not realistic. Google's own documentation on snippets says that on large database-driven sites, programmatic generation of descriptions can be appropriate and is encouraged. Enrichment works in that space: it writes only where no description exists.
Do I need to install a plugin?
No, and there is nothing to add to your codebase either. The work happens at the edge, on the copy assembled for machines, and that is also why it works the same on a site rendered in the browser as on one rendered by a server: the plugin ecosystem your CMS does or does not have never comes into it.
What happens if I write my own description later?
Yours ships. A generated tag is added only where that tag is absent, so the moment your description exists, machines receive it exactly as you wrote it, and the generated version does not come back over it. Availability is Pro and above, and it stays off for a domain until you turn it on.
What does the model know about my brand, and does any of it end up on my pages?
It knows what you put in the brand profile, and those facts are used exactly as written. The short account of how your copy should sound steers the wording and is never published: it is read while a tag is written and goes nowhere near the page. Preview cards are composed from your own colour, typeface and screenshot.
What are AEO and GEO?
Two names for one concern: whether answer engines and generative search can read a page well enough to use it. AEO stands for answer engine optimization and GEO for generative engine optimization, and the industry has not settled on either term. Both start from a page that states what it is in tags a machine can read without running scripts; the AEO and GEO page goes further.
Are crawlers or AI agents blocked or slowed down?
No. Nothing on this path blocks automated readers, throttles them, or asks them to prove anything. A crawler or AI agent that requests a page is served that page, and where prerendering is on it receives rendered HTML instead of a shell.
Does IndexNow tell Google about my pages?
No. Google does not participate in IndexNow; it finds changed pages through its own crawling and the sitemaps you give it. Submission reaches the engines that do participate, and the scope is specific: discovered and changed URLs only, no history imported, full-site submission manual.
What else runs alongside it?
Two more mechanisms of Bridge CDN are live. Prerendering serves rendered HTML to crawlers and AI agents instead of a shell. IndexNow submission tells the engines that participate about discovered and changed URLs; enabling it imports no history, and full-site submission is manual.
Documentation
Everything above has a page behind it
Below AEO and GEO sit ordinary technical signals, and a findability problem is often one of them declared wrongly.
Switch it on for one domain
Pick one domain, turn enrichment on, and read what machines receive from its pages. Accounts are created on Bridge CDN.