Index of every page on this site: llms.txt

Control Web Crawlers and Crawl Budget in Vue

Configure robots.txt, sitemaps, canonicals, and redirects in Vue to control crawl budget and block unwanted AI bots.
Harlan Wilton8 mins read Published Updated

Web crawlers discover and fetch pages. Search engines decide which pages to index. Controlling them affects your crawl budget: the set of URLs Google can and wants to crawl on your site. It also means guiding AI bots to your best content while blocking the ones that scrape it for training.

Most sites don't need to worry about crawl budget. Large, rapidly changing sites may need crawl-budget controls. AI crawler preferences are a separate concern.

Types of Crawlers

Search engines: Index your pages for search results

Social platforms: Generate link previews when shared

AI training crawlers and usage controls: Providers use crawlers and robots.txt control tokens for different purposes

AI search and user fetches: Search crawlers build indexes. User agents can fetch pages after a user request. Provider rules differ

Malicious: Ignore robots.txt, spoof user agents, scan for vulnerabilities. Block these at the firewall level, not with robots.txt.

Training crawlers collect content for model development. Search crawlers support search discovery. User-triggered fetchers serve a separate role. You can block one without the other: disallow GPTBot in robots.txt while leaving OAI-SearchBot untouched if you want your site cited in ChatGPT Search.

Control Mechanisms

MechanismUse When
robots.txtBlock site sections, manage crawl budget, block AI bots
SitemapsHelp crawlers discover pages, especially on large sites
Meta robotsControl indexing per page (noindex, nofollow)
Canonical URLsConsolidate duplicate content, handle URL parameters
RedirectsSend moved pages to relevant replacement URLs
llms.txtGuide AI tools to your documentation (MCP servers, coding assistants)
X-Robots-TagControl non-HTML files (PDFs, images)
FirewallBlock malicious bots at network level

Quick Recipes

Block page from indexing: Full guide

pages/admin.vue
<script setup lang="ts">
import { useSeoMeta } from '@unhead/vue'

useSeoMeta({ robots: 'noindex, follow' })
</script>

Block AI training bots: Full guide

public/robots.txt
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Applebot-Extended
User-agent: Google-Extended
Disallow: /

Fix duplicate content: Full guide

pages/products/[id].vue
<script setup lang="ts">
import { useHead } from '@unhead/vue'
import { useRoute } from 'vue-router'

const route = useRoute()

useHead({
  link: [{ rel: 'canonical', href: () => new URL(route.path, 'https://mysite.com').href }]
})
</script>

Redirect moved page: Express middleware excerpt; install Express and register this before your page handler. Full guide

server.ts
app.get('/old-url', (req, res) => res.redirect(301, '/new-url'))

When Crawler Control Matters

Most small sites don't need to optimize crawler behavior, but it matters when:

Crawl budget concerns: Large sites with rapidly changing pages may need crawl inventory controls. Google's size estimates are examples, not exact thresholds. Block low-value pages (search results, filtered products, admin areas) so crawlers focus on what matters.

Duplicate content: URLs like /about and /about/ can expose duplicate content, as can ?sort=price variations. Canonical tags consolidate these.

Staging environments: Protect private staging with authentication. Use crawlable noindex when a public staging page must stay out of search. robots.txt alone does not prevent indexing.

AI training opt-out: GPTBot is the most frequently blocked AI crawler, disallowed by more than 300 of the top 10,000 domains per Cloudflare's 2025 analysis. Configure each provider's training controls separately from its search controls.

Server costs: Bots consume CPU, and heavy pages (maps, infinite scroll, SSR) cost money per request. Blocking unnecessary crawlers reduces load.

Using Nuxt? Nuxt SEO handles much of this automatically. See the Nuxt controlling crawlers guide for details.

Was this page helpful?