Why it matters
Without robots.txt crawlers get a 404, you can't point them at the sitemap, and there is no explicit policy for AI crawlers (GPTBot, ClaudeBot, PerplexityBot).
How to fix it
Add app/robots.ts with the sitemap URL, an explicit AI-crawler policy and a preview-environment guard.
Example
export default function robots(): MetadataRoute.Robots {
return { rules: [{ userAgent: '*', allow: '/' }], sitemap: 'https://example.com/sitemap.xml' }
}References
More lint rules
void lint reports 67 rules in this category. Static source checks with no browser: Tailwind v4 silent failures, Next.js 16 API traps, React render-body bugs, accessibility markup, SEO files and motion hygiene.
canonical-in-root-layoutCanonical URL set in the root layoutog-merge-drops-parentPage `openGraph` replaces the layout's (shallow merge drops images/siteName)not-found-in-suspense`notFound()`/`redirect()` inside a component rendered under `<Suspense>`missing-sitemapNo sitemapmissing-og-imageNo Open Graph image anywheremissing-iconNo favicon / app iconmissing-llms-txtNo `/llms.txt`dynamic-metadata-streamingRequest-time `generateMetadata` without `htmlLimitedBots`