Site platforms

Framer, and what an answer engine can read of it

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.

What to do

  1. 1.Put the Organization block in end-of-head custom code

    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>
  2. 2.Set the per-page SEO fields on every page that matters

    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.

  3. 3.Leave llms.txt alone unless you already proxy the domain

    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.

The readiness checks on Framer

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.

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.

llms.txt present and parseable

Not possible here

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.

Organization schema with sameAs links

Site settings → General → Custom code → End of <head>, in a <script type="application/ld+json"> block. Available on paid sites only.

Canonical, title and meta description set

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.

What this does not do

  • No root-level file access, so /llms.txt requires a reverse proxy.
  • Custom code is a paid-site feature. On a free Framer site the schema checks cannot be passed.
  • CueScout reads your published site over HTTP. It does not connect to your Framer account and cannot publish for you.

Frequently asked questions

Do Framer sites get read properly by AI crawlers?

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.

Where does per-page schema go?

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.

Does CueScout need access to my Framer project?

No. Every check is an HTTP request against your public site.

Related

Every integration we publish

See where your Framer site stands

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.