Skip to content
Measure your brand's Ai visibility score for free

VibeToGeoBot and why it reads your site

VibeToGeoBot is the VIBE TO GEO reader bot. It reads your pages when someone asks for it, to measure how Ai bots see your site. It doesn't crawl on its own or build a search index, and we don't train models on what it reads.

Identity

User-agent
VibeToGeoBot/1.0 (+https://vibetogeo.com/bot)
robots.txt name
VibeToGeoBot
When it visits
Only when someone asks: when an audit starts in the dashboard or the free tool, when Ai-ready pages are prepared, when a brand is added and for the free score.
What it reads
The home page, robots.txt, llms.txt, the sitemap and up to 9 more pages. It sends at most 3 requests at a time so your site isn't strained.
What it doesn't do
It doesn't run JavaScript, keep cookies, log in or fill in forms.

How does it treat robots.txt?

VibeToGeoBot follows only the rules written for it by name. To keep us off your whole site, add this to robots.txt:

User-agent: VibeToGeoBot
Disallow: /

To close only part of the site, use a path such as Disallow: /dashboard/. If you close the home page, the audit won't start and the dashboard says why.

We don't treat User-agent: * rules as binding, because a person starts every read by hand. Google's user-triggered fetchers generally ignore robots.txt the same way. Rules you write for other bots we measure: if you block GPTBot, the report shows it.

Source: developers.google.com/search/docs/crawling-indexing/google-user-triggered-fetchers

Does our bot see what Ai sees?

On most sites, yes. What we see depends on how your site builds its pages.

  1. 1

    Sites that build pages on the server

    WordPress, Shopify and most company sites send everyone the same HTML. Our bot sees what Ai bots see; you don't need to do anything. The one exception is a firewall that blocks bots (below).

  2. 2

    Sites that draw pages only in the browser

    If the text is created later by JavaScript, most Ai bots see an empty page too, because they don't run JavaScript. The audit measures this correctly and "Readable content" comes out low. The fix is server-side rendering or static generation.

  3. 3

    Sites that serve ready pages only to bots they know

    When Prerender.io, Rendertron or a hand-written nginx rule sends a full page to listed bots and an empty shell to everyone else, our bot sees the shell. The audit comes out worse than it should and shows a "returned the same content" note. Add our bot to your list.

Add it to your ready-page list

Add VibeToGeoBot to your list. Make sure the Ai answer bots are on it as well; some stock templates leave them out, so they get the empty shell too:

OAI-SearchBot · ChatGPT-User · Claude-SearchBot · Claude-User · PerplexityBot · Perplexity-User · VibeToGeoBot

nginx (map rule)

If you sort bots with a map block, add the lines. ~* ignores case; map belongs in the http block only. Save and reload nginx. Prerender.io's nginx template uses this form, and its default list has no GPTBot, OAI-SearchBot, ClaudeBot or PerplexityBot.

map $http_user_agent $prerender_ua {
    default 0;
    "~*googlebot" 1;
    # ...
    "~*oai-searchbot" 1;
    "~*chatgpt-user" 1;
    "~*claude-searchbot" 1;
    "~*claude-user" 1;
    "~*perplexitybot" 1;
    "~*perplexity-user" 1;
    "~*vibetogeobot" 1;
}

Source: nginx.org/en/docs/http/ngx_http_map_module.html

Prerender.io (Express, prerender-node)

addUserAgents adds to the default list without removing it (versions after 3.8.2). set('crawlerUserAgents', …) replaces the whole list; don't use it for this.

app.use(
  require('prerender-node')
    .set('prerenderToken', 'TOKEN')
    .addUserAgents("VibeToGeoBot")
);

Source: docs.prerender.io/docs/how-to-add-additional-bots

Rendertron

Extend the default list with userAgentPattern. Rendertron's default list has no Ai bots, and the project is no longer maintained.

const rendertron = require('rendertron-middleware');
app.use(rendertron.makeMiddleware({
  proxyUrl: 'https://RENDERTRON/render',
  userAgentPattern: new RegExp(
    [...rendertron.botUserAgents, 'OAI-SearchBot', 'ChatGPT-User', 'Claude-SearchBot', 'Claude-User', 'PerplexityBot', 'Perplexity-User', 'VibeToGeoBot'].join('|'),
    'i',
  ),
}));

Source: github.com/GoogleChrome/rendertron

If a firewall blocks our bot

If pages return 403 or 429 in the audit, your bot protection may be stopping VibeToGeoBot. The audit then counts those pages as not loading.

Cloudflare Super Bot Fight Mode (Pro and up)

In Security rules, create a custom rule with the expression below. Choose Skip as the action and tick All Super Bot Fight Mode rules. Cloudflare string comparisons are case-sensitive; type the name exactly.

(http.user_agent contains "VibeToGeoBot")

Source: developers.cloudflare.com/waf/custom-rules/skip/options/

Cloudflare Bot Fight Mode (free plan)

Cloudflare's documentation says Bot Fight Mode can't be skipped with a custom rule; only an IP access rule gets ahead of it. Turn Bot Fight Mode off while the audit runs, or write to info@vibetogeo.com for our server's IP address.

Source: developers.cloudflare.com/bots/get-started/bot-fight-mode/

WordPress security plugins

Wordfence's rate-limiting rules are off by default. If you set a page-view limit: our bot reads at most 10 pages and sends at most 3 requests at a time. Wordfence has no user-agent allowlist; use the IP allowlist if needed.

How to check

See what your server sends our bot with this command. Replace the address with one of your pages; the output should contain the page's text.

curl -s -A "VibeToGeoBot/1.0 (+https://vibetogeo.com/bot)" https://example.com/your-page

After the change, restart the audit in the dashboard. The "returned the same content" or "refused our bot" note should be gone.

For a problem or question about the bot, write to info@vibetogeo.com.