The visibility CDN
Your website. Ready for search. Readable by AI.
Give crawlers the content your visitors already see. BetterEO turns JavaScript pages into rendered HTML, with optional Markdown for AI assistants.
14-day trialNo card neededNo base fee
Crawler view
Exampleexample.com/guides/getting-started
<div id="root"></div> <script src="/app.js"></script>
<main> <h1>A guide to better visibility</h1> <p>Make your content readable.</p> <ul> <li>Render your pages</li> <li>Measure the difference</li> </ul> </main>
# A guide to better visibility Make your content readable. - Render your pages - Measure the difference
Page content available without JavaScript
Illustrative response · not a live website scan
Connect with two DNS records
Keep your existing site code
Choose the automations you enable
Render. Improve. Understand.
A better way for machines to read your site.
Delivery and visibility insights, together in one place.
-
Deliver the complete page
Serve cached HTML to search crawlers. Enable Markdown and bot files for AI assistants.
Learn moreHTML · Markdown · llms.txt
-
Improve what matters
Choose SEO, AEO, and security enhancements per domain. Each automation starts off.
Learn moreYour site. Your controls.
-
See what changes
Compare page scores, inspect bot activity, and see visits referred by AI answers.
70 → 95 Security score of bettereo.com, at its origin and with BetterEO’s protections turned on
Learn moreInsights from your own pages
Why BetterEO
Prerendering services stop at cached HTML for search engines.
AI-visibility tools report how you appear in AI answers but don’t change what crawlers get. BetterEO does the prerendering, makes your site easy for AI assistants to read, and measures the difference on your own pages, in one service.
Full comparison| BetterEO | Prerendering service | AI-visibility tool | |
|---|---|---|---|
| Rendered HTML for search engines | Yes | Yes | No |
| Markdown and llms.txt for AI assistants | Yes | No | No |
| SEO and AEO scores, without and with BetterEO | Yes | No | No |
| Security scans and opt-in protections | Yes | No | No |
| Coding assistants (MCP) | Yes | No | No |
A straightforward setup
Keep your website. Add a visibility layer.
Start with a preview address. Rendering begins when your domain is activated.
-
Add your domain and explore
Inspect responses with Fetch as crawler before changing DNS.
-
Connect your DNS
Verify ownership and point your domain to BetterEO. Your sitemap guides page discovery.
-
Choose improvements. Track results.
Enable useful automations, then review page findings and crawler traffic.
Built for your workflow
Give your AI assistant the missing context.
Connect your coding assistant through MCP to read your project’s findings and help you turn them into code changes.
Set up your assistantBetterEO MCPRead-only access
claude mcp add --transport http bettereo https://mcp.bettereo.com/mcp --header "Authorization: Bearer <token>"- “Find the pages with the lowest AEO score on my site and suggest fixes.”
- “Which AI crawlers visited last week, and which pages did they read?”
Pricing that follows your usage
Start small. Pay for what your site uses.
Rendering is billed by time. Analyses, bot file generation, and additional domains are separate usage items.
Pay as you go
No base fee- Render time billed per second
- Every render and what it cost in your console
- Start with a 14-day trial, no card needed
Your card is only charged once what you owe reaches €10.
Before you begin
A few useful answers.
Twenty answers, grouped in four topics.
Getting started
What does BetterEO do?
BetterEO is a visibility CDN. It sits in front of your website, renders your pages ahead of time in a real browser, and serves that fully rendered HTML to search engines and AI assistants, or clean Markdown to the AI assistants that ask for it. Your visitors keep going straight to your site.
How do I set it up?
Add your domain in the BetterEO console, then create two DNS records at your DNS provider: a CNAME that points your domain to edge.bettereo.com (on a root domain, use CNAME flattening, ALIAS or ANAME), and a TXT record at _bettereo-verify on your domain that proves you own it. Once both are found, BetterEO activates the domain and renders the pages in your sitemap. The console's Check DNS button shows which record is missing or wrong.
Can I look around before switching DNS?
Yes. As soon as you add a domain, it gets a preview address that serves your site the way BetterEO will once your DNS points here, and Fetch as crawler shows what each crawler gets for any URL. BetterEO renders your pages once your DNS points here.
Can I check what crawlers will see before I switch DNS?
Yes. As soon as you add a domain, it gets a preview address such as www-example-com-3f9a1c2e.bettereo.com that serves your site the way BetterEO will once your DNS points here. Search engines are told not to index it. On the domain’s page, Fetch as crawler shows what Googlebot, Bingbot, GPTBot, ClaudeBot, PerplexityBot or a normal browser gets for any URL of your domain: the status, the headers, the HTML or the Markdown, and whether it came from BetterEO’s cache or from your site. BetterEO renders your pages once your DNS points here, so until then crawlers get your site’s own response. After the switch, fetch again to see what BetterEO serves on your domain. Each user can run 30 fetches per hour in a project.
I already use another prerendering service. What changes if I switch?
Crawlers keep getting fully rendered HTML, served the way search engines already accept. What changes: setup is two DNS records instead of middleware, server rules or CDN configuration; AI assistants also get clean Markdown and a generated llms.txt; you see SEO, AEO and security scores without and with BetterEO; and you pay for render time by the second instead of a plan, with unchanged pages checked rather than rendered again. Keep your current setup until BetterEO has rendered your pages, then remove it.
Crawlers & AI
Which crawlers get the prerendered pages?
Search engine crawlers such as Googlebot, Bingbot, DuckDuckBot, Applebot and YandexBot; AI crawlers and assistants such as GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, PerplexityBot, Amazonbot and Common Crawl; and the link-preview bots of apps such as LinkedIn, Slack and WhatsApp. Everyone else is sent to your site.
Isn't showing crawlers a different page cloaking?
Cloaking means showing crawlers different content from what visitors see. BetterEO serves crawlers a snapshot of the same page your visitors get, rendered by a real browser, and the Markdown version is a conversion of that same content. Nothing is added or hidden, and your page's noindex, canonical and language signals are kept. Google calls this dynamic rendering: it accepts it when the content matches, but describes it as a workaround and recommends server-side rendering for the long term.
Which bots does BetterEO use, and do I need to allow them?
BetterEO fetches pages with three bots that name themselves in their user agent: BettereoRenderer renders the pages of the sites connected to BetterEO, BettereoAnalyzer fetches the pages you ask BetterEO to analyse, and BettereoSecurityScanner checks your site’s security headers when you run a security scan. If your site uses bot protection or a web application firewall, allow requests whose user agent contains BettereoRenderer, BettereoAnalyzer or BettereoSecurityScanner, or BetterEO may get a challenge page instead of your content. BetterEO bots describes all three.
Do I still need an AI-visibility tool?
BetterEO changes what AI assistants get, with Markdown and llms.txt, and measures the result: AEO scores without and with BetterEO, the pages AI assistants fetch to answer prompts and the visits their answers send you, all from your site's real traffic. It doesn't track how often your brand is mentioned in AI answers to prompts you choose; if you need that, an AI-visibility tool complements BetterEO.
What does “with BetterEO” mean in the scores?
For SEO and AEO, without BetterEO is what a crawler that doesn't run JavaScript gets from your own server, and with BetterEO is what BetterEO serves crawlers. For security, your origin is scanned directly, bypassing BetterEO, and compared with your site as visitors get it through BetterEO. The difference is what BetterEO changes; anything it can't fix is marked as needing a change on your site.
Reliability & control
What changes for human visitors?
Nothing they need to notice. Visitors are always forwarded to your own server, so rendering is never in their path, and they only get the security protections you turn on. Search engines and AI assistants get the cached render.
Is my site down if BetterEO has a problem?
No. Visitors are always forwarded to your own server, so rendering is never in their path. If a page hasn't been rendered yet, or its cached copy is too old or can't be read, crawlers get your server's response, just as they would without BetterEO. BetterEO's edge runs on a global CDN network, so, as with any CDN, your domain's traffic does pass through it.
Will security headers break my site?
They can, which is why each protection is off until you choose it and shows its risk first. Most are low risk. HSTS and anti-framing are medium risk, so HSTS moves up in stages from 5 minutes to 1 year, and anti-framing lets you list the sites that may still show your pages in a frame. A protection is never added when your site already sends it. You can turn any protection off at any time, although browsers remember HSTS until its current stage ends.
Are the automations enabled automatically?
No. Every SEO, AEO and security automation, including Markdown serving and the generated llms.txt and robots.txt, is off until you turn it on for a domain, and you can turn each one off again at any time. What is always part of the service is the prerendering itself, the redirect from HTTP to HTTPS, and a generated sitemap.xml that is only served when your site has none.
How fresh are the cached pages, and do I pay to keep them fresh?
Pages are checked on the schedule you set. Before a scheduled render, BetterEO checks with a single request to your site whether the page changed since its last render: an unchanged page keeps its render and only the check is billed, as render time, at 50% of the time it takes, because a check mostly waits on the network rather than using the CPU. A changed page, a sitemap lastmod that moves or a render you ask for gets a full render. Content that JavaScript loads later may not be detected, so you can re-render a page, or clear the cache for a page or the whole domain, at any time.
Pricing & assistants
How does pricing work?
There are no plans and no base fee. Each month a project is billed for what it has and uses: its domains beyond the ones included, the render time of its pages (billed per second), and the analyses and llms.txt generations it runs, each at its own unit price shown in the console. Your first project starts with a 14-day trial with every feature and no card needed. If no payment method is added by the end of the trial, the project is paused: renders, analyses and llms.txt generations stop and crawlers and visitors go straight to your site, nothing is deleted, and adding a payment method resumes it. Usage limits protect every account; contact us to raise them.
When is my card charged?
Only once what you owe reaches €10. Every month still gets its invoice, but while the amount you owe is below €10 nothing is charged: it is carried over and added to the next month, so a small project may only be charged every few months. The console shows what is carried over and labels each invoice carried over or charged. When a project ends, what it still owes is charged then, even below €10; amounts under €0.50, too small for a card payment, are not charged.
How do the generated llms.txt and robots.txt work, and what do they cost?
robots.txt is built from a template, with your choice of which AI training and AI search crawlers may read your site, and costs nothing extra. llms.txt and llms-full.txt are written from your home, about and privacy pages, with an AI model summarising the site, when you ask for it or on a weekly or monthly schedule you choose. Each llms.txt generation is billed on its own, separate from renders. Each file is only served when your site doesn't have its own.
Does my coding assistant get write access?
No. The BetterEO MCP server is read-only: each token reads one project and can’t change anything, and you can revoke it at any time. Your assistant suggests fixes, and the code changes happen in your own codebase.
Can I use BetterEO from my AI coding assistant?
Yes. BetterEO runs an MCP server at mcp.bettereo.com. Create a read-only token for a project in the console and add the server to Claude Code, Cursor, VS Code or any other MCP client. Your assistant can then read your bot analytics, SEO and AEO scores and findings, security scan results and the pages BetterEO serves crawlers, and suggest fixes in your code. Each token only reads its own project, and you can revoke it at any time.
Get started
Your next chapter in search starts with your content.
Sign up to connect your first domain. Questions? Use our contact form.