Website & app builders · Web hosting platform · Checked 2026-10-21
Netlify SEO for ChatGPT, Perplexity & AI search
Built your site with Netlify? Here is what Netlify's own documentation says about how AI crawlers see it, and the exact settings for robots.txt, llms.txt, structured data and your sitemap. Sources are listed at the bottom.
Is your Netlify site visible to AI? Check it free
Paste your live URL. RankRoot checks your robots.txt rules for the ChatGPT, Perplexity and Claude crawlers, whether your page text is in the HTML without JavaScript, and your llms.txt and JSON-LD.
Free, no signup. 20+ checks across ChatGPT, Perplexity, Claude, Google AI and AI agents.
How Netlify delivers pages to crawlers
Netlify serves the files your build puts in the publish directory, and server-side rendered pages run on Netlify Functions. Both send crawlers real HTML. A single-page app built with React, Vue or Angular is different: Netlify's own docs say SPAs leave "the HTML body mostly empty" and that many AI agents, chat services and crawlers can't run JavaScript. For those, Netlify offers the Prerender extension, which serves rendered HTML to crawlers and agents while visitors get the normal app. Run RankRoot's audit to see which case you're in.
Why it matters: many AI crawlers don't run JavaScript. If your text only appears after scripts run, they may see an empty page.
Make your content readable without JavaScript
- If your site is a client-side SPA, install the Netlify Prerender extension (a Team Owner installs it), open Extensions > Prerender in the project, check Enable prerendering, save and redeploy. Netlify says it needs Node.js 20 or later and is free on all plans, apart from normal billing for the functions it runs.
- If you still use Netlify's legacy prerendering setting, turn it off under Project configuration > Build & deploy > Prerendering first. Netlify has deprecated it in favor of the extension.
- Connect your custom domain. Netlify says
yoursite.netlify.appURLs keep working after you add one, so put a canonical tag pointing to your domain on every page. - Run the free audit on your live URL to confirm crawlers see your text without JavaScript.
robots.txt: let AI search crawlers in
- Put
robots.txtin your publish directory, or in your framework's static folder so the build copies it there. Netlify says only files in the publish directory are deployed. - On Next.js, Astro or another framework that generates
robots.txt, use the framework's own option instead (for Next.js,app/robots.ts). - Deploy and open
yourdomain.com/robots.txtto confirm the live file. The AI crawler checker tests each AI bot against it.
User-agent: OAI-SearchBot Allow: / User-agent: ChatGPT-User Allow: / User-agent: PerplexityBot Allow: / User-agent: Claude-SearchBot Allow: / User-agent: Claude-User Allow: / User-agent: * Allow: / Sitemap: https://yourdomain.com/sitemap.xml
Which bots to allow or block: robots.txt for AI crawlers and the AI crawler list.
Add llms.txt
- Netlify has no llms.txt setting, but it serves any file in your publish directory. Write the file with the llms.txt generator and save it as
llms.txtnext torobots.txt. - Deploy, open
yourdomain.com/llms.txtand check it with the llms.txt validator.
Add JSON-LD and head code
- Set titles, meta descriptions and JSON-LD in your framework's layout or head component. That works on every kind of page.
- No access to the code? Netlify's snippet injection adds code before
</head>or</body>when pages are served: Project configuration > Developer settings > Post processing > Snippet Injection > Add Snippet. No redeploy is needed. - Netlify says snippets are not injected on routes handled by a function, on SSR pages (they run on Netlify Functions) or on proxied content. Use it for static HTML only.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Your brand",
"url": "https://yourdomain.com/",
"description": "One sentence on what you do and who it's for."
}
</script>Sitemap
- Netlify's docs don't describe a built-in sitemap generator. Use your framework's sitemap option (for Next.js,
app/sitemap.ts) or a staticsitemap.xmlin the publish directory. - Add a
Sitemap:line torobots.txtand submit the sitemap in Google Search Console and Bing Webmaster Tools.
Common mistakes
- Deploying a React or Vite SPA without the Prerender extension and assuming AI crawlers see the content. Netlify's own docs say many AI tools can't run JavaScript.
- Adding headers in
_headersornetlify.tomland expecting them on SSR or function routes. Netlify says custom headers only apply to files it serves from its own storage; functions must return their own headers. - Treating
X-Robots-Tag: noindexon previews as protection. Netlify adds it to Deploy Previews and older branch deploys but not to the latest deploy of each branch, and says the header is not a guarantee. Use password protection or private project visibility for previews you must keep out. - Forgetting that
yoursite.netlify.appkeeps working after you add a custom domain. Use canonical tags so search engines credit your domain.
Rather have this done for you?
The AI Visibility Employee looks after AI visibility for your Netlify site every month, fully by email, no calls:
- Weekly tracking of how ChatGPT, Perplexity, Gemini and Claude mention you for your buyers' questions
- 4 answer-ready pages a month, published through our WordPress plugin or a GitHub pull request, or delivered as drafts you add in Netlify
- Ongoing llms.txt, robots.txt and JSON-LD fixes wherever your setup allows them, and a monthly report
$149/month, cancel anytime. The first 10 customers pay $99/month with code FOUNDING10.
See the AI Visibility EmployeeFAQ
Is my Netlify site visible to ChatGPT?
If your pages are static HTML or server-rendered, yes, as long as robots.txt allows OAI-SearchBot. A client-side SPA may look empty to AI crawlers; Netlify's Prerender extension fixes that. Run the free audit to check.
Where does robots.txt go on Netlify?
In your publish directory (for example dist/robots.txt), or in your framework's static folder so the build copies it there. Only files in the publish directory are deployed.
Does Netlify Prerender work for AI crawlers?
Netlify says the extension serves pre-rendered HTML to crawlers, AI agents and preview services, while visitors get your normal JavaScript app. Install it, enable it in the project and redeploy. It needs Node.js 20 or later.
Are Netlify Deploy Previews indexed?
Netlify adds X-Robots-Tag: noindex to Deploy Previews and older branch deploys, but not to the latest deploy of each branch. It recommends password protection or private visibility to keep previews out of search.
Sources
- Netlify Docs: Prerendering (read 2026-10-21)
- Netlify blog: Prerendering for AI crawlers and modern SPAs (Dec 16, 2025) (read 2026-10-21)
- Netlify Docs: User-Agent categories (read 2026-10-21)
- Netlify Docs: Build configuration overview (publish directory) (read 2026-10-21)
- Netlify Docs: Custom headers (read 2026-10-21)
- Netlify Docs: Snippet injection (read 2026-10-21)
- Netlify Docs: Deploy overview (search engine indexing) (read 2026-10-21)
- Netlify Docs: Understand domains (read 2026-10-21)
- RFC 9309: Robots Exclusion Protocol (read 2026-10-19)
Facts checked against Netlify's documentation on 2026-10-21. RankRoot is not affiliated with Netlify. Settings move around; if a step has changed, email rankroot.support@proton.me.
Other builders
Lovable · Bolt.new · Replit · v0 · Framer · Webflow · Wix · Squarespace · Shopify · WordPress · Ghost · GitHub Pages · Carrd · Hostinger AI Builder · Notion Sites · Vercel · Cloudflare Pages & Workers