robots.txt blocks AI crawlers in Next.js
If your robots.txt disallows AI crawlers — GPTBot, ClaudeBot, PerplexityBot, Google-Extended and friends — then assistants can’t read your content and won’t cite you in their answers. This is often accidental: a blanket Disallow, or a default that shipped with a template, quietly cuts you out of the fastest-growing discovery channel. (If the block is deliberate, that’s a valid choice — just make sure it is.)
Framework fixes
Symptoms
How VibeCheck catches it
In your widget · Problems
robots.txt blocks AI crawlers
To your coding agent · MCP
agent › get_detected_issues
→ { detector: "aeo", issue: "robots.txt blocks AI crawlers", threshold: "robots.txt has Disallow: / for * or a known AI bot (GPTBot, ClaudeBot, PerplexityBot, …)" }
The same string in your widget and in your agent’s context — no screenshot, no copy-paste.
Root causes
The fix for Next.js
Generate robots.txt from app/robots.ts with MetadataRoute.Robots so the allow/disallow rules live in code and stay reviewable.
import type { MetadataRoute } from 'next'
export default function robots(): MetadataRoute.Robots {
return {
rules: [{ userAgent: '*', allow: '/', disallow: '/admin/' }],
sitemap: 'https://acme.com/sitemap.xml',
}
}Steps
- Open
robots.txtand find anyDisallow: /affecting*or AI bots - Allow the AI crawlers you want to appear in answers
- Scope remaining
Disallowrules to private paths only
FAQ
- Which user-agents are the AI crawlers?
- The common ones include
GPTBotandOAI-SearchBot(OpenAI),ClaudeBot(Anthropic),PerplexityBot(Perplexity),Google-Extended(Google’s AI training), andCCBot(Common Crawl). VibeCheck names the specific ones yourrobots.txtblocks. - Should I allow AI crawlers?
- It’s a business decision. If you want visibility and citations in AI answers, allow them. If you want to keep content out of AI training/answers, block them deliberately. The point is to choose, not to block by accident.
- Does blocking
Google-Extendedaffect normal Google Search? - No.
Google-Extendedcontrols AI/Gemini training and AI features; it’s separate fromGooglebot’s normal indexing. You can allowGooglebotand still blockGoogle-Extendedif you prefer.