AI crawlers allowed in robots.txt
Site settings → General → Robots.txt, then publish. Framer's default lets crawlers through, so a block here is one somebody added.
Site platforms
Framer sites are static and server-rendered, which clears the check that catches most design-tool sites: the copy is in the HTML, so a crawler that never runs JavaScript reads the whole page. Titles, descriptions and canonicals come from per-page settings and are usually already right.
What is left is the same shape as Webflow. There is no site root to put a file in, so llms.txt needs a proxy, and custom head code — which is where JSON-LD has to go — is a paid feature. On a free Framer site the schema checks cannot be passed.
How we recognise it: a Framer generator tag, or assets on framerusercontent.com. Run the free readiness check and the fixes it gives you are the Framer ones below.
Site settings → General → Custom code. Framer runs it on every page, which is what you want for this one — an Organization statement belongs everywhere, and the sameAs links are what connect your name to a company the engines already know about.
Site settings → General → Custom code → End of <head>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Your company",
"url": "https://yourdomain.com",
"sameAs": ["https://www.linkedin.com/company/yourcompany"]
}
</script>Right-click the page in the Pages panel → Settings. Framer will not invent a description from your content, and a page with no description gives an engine nothing to quote back when it names you.
It is a warn rather than a failure, and the only way to serve it on Framer is a worker in front of the site. Worth doing if you are already there; not worth building infrastructure for.
CueScout runs eight checks on whether an answer engine can read a site at all. These are the ones whose answer is different on Framer — the rest are the same everywhere.
Site settings → General → Robots.txt, then publish. Framer's default lets crawlers through, so a block here is one somebody added.
Framer serves your site as static pages and gives you no root-level file slot, so /llms.txt needs a proxy on your own domain.
Site settings → General → Custom code → End of <head>, in a <script type="application/ld+json"> block. Available on paid sites only.
Per page: right-click the page in the Pages panel → Settings, where the title, description and canonical live.
These describe Framer’s own settings, which move without warning us. Last checked against the product on 2026-08-14.
Yes. Framer pre-renders, so the copy is in the HTML rather than assembled by JavaScript. That is the check most design-tool sites fail and Framer passes it by default.
Page settings have their own custom code slot. Site settings covers every page — use it for Organization, and the per-page slot for anything that describes one page, like FAQ markup.
No. Every check is an HTTP request against your public site.
Webflow
The robots.txt setting that only works on a custom domain, where JSON-LD goes, and why /llms.txt needs a proxy.
Site platformsNext.js
app/robots.ts, a route handler for llms.txt, JSON-LD in the layout, and the client-component trap.
Site platformsSquarespace
Two checks Squarespace makes impossible, and the schema ones you can still pass through code injection.
The readiness check is free, needs no signup, and takes about half a minute. It works out what your site is built on and gives you the fixes written for it.