Can AI crawlers read Framer sites?
Static HTML
AI crawlers can read this platform by default.
v2 scoring Estimated on the four-pillar score. A default Framer install earns 25/35 for raw-HTML readability; schema depth, llms.txt and AI-crawler rules depend on your setup, so they start at 0. The Fix Kit supplies those three (up to 65 points) but cannot change how Framer renders.
Framer publishes static HTML with text included, so it reads reasonably well — though heavy use of effects and CMS components thins out the raw content.
What is actually happening
Framer generates static pages at publish time, so text placed in text layers is present in the HTML before any script runs. What does not survive is anything produced at runtime: code components that fetch their own data, and content bound to sources Framer resolves in the browser. Because Framer is a design-first tool, the other common loss is text that was never text — a headline set inside an exported graphic reads as an empty image to a crawler.
13 of the major AI crawlers — including GPTBot, OAI-SearchBot, ChatGPT-User — fetch your HTML and parse it without running a JavaScript engine. Anything your page adds after hydration is not part of what they read.
What to do on Framer
- 01Prefer CMS collections over runtime fetches inside code components. Collection content is baked into the published HTML; a fetch inside a component is not.
- 02Set per-page SEO titles and descriptions in page settings rather than relying on the site-level defaults, which repeat across pages.
- 03Add Organization JSON-LD through the custom-code section in site settings, and per-page schema on templates that warrant it.
- 04Keep the sentence that explains what the page is in a text layer, not baked into an image, a vector or a video.
- 05Give long pages real heading layers rather than styling large text to look like a heading. Visual hierarchy is not document structure, and only the second one chunks.
What trips people up
- Code components calling fetch() at runtime produce no server-rendered content, so the section renders empty in the raw HTML however good it looks in the browser.
- Framer's generated markup is deeply nested, which lowers the text-to-markup ratio even when all the text is present, and can make a healthy page look thin in automated reports.
- Scroll-triggered effects do not hide content from crawlers — the text is in the document regardless of whether it has animated into view. This one worries people unnecessarily.
Where the files go on Framer
Site settings → General → robots.txt. llms.txt can be added as a custom page at the /llms.txt path.
Stop guessing where your site sits
The baseline above is the platform. The free scan measures your actual site: how many words a crawler reads, whether your pages come back as empty shells, and which crawlers your robots.txt lets in.
Scan my Framer siteFurther reading
- How to Make React Apps Crawlable for AI Search: SSR, Prerendering and Dynamic Rendering
Google can render React; ChatGPT, Claude and Perplexity crawlers can't. Code for Vite SSR, Next.js and Astro prerendering, dynamic rendering, and a curl check.
- What GPTBot Actually Sees When Your Site Relies on Client-Side JavaScript
AI crawlers like GPTBot and OAI-SearchBot fetch raw HTML without executing client-side JS. Here is what they actually extract from SPAs.
- Why AI Search Engines Can’t Read Client-Side Rendered (CSR) Sites
Most AI crawlers fetch raw HTML and never run your JavaScript. Here's what they actually see on a client-rendered site, how to test it, and how to fix it.
- What is Generative Engine Optimization (GEO)? The Complete 2026 Guide
How ChatGPT Search, Perplexity and Claude find, read and cite pages, why that differs from Googlebot, and what the research says actually improves AI visibility.