Home / guides / Framer
Core Web Vitals for Framer
Updated · by RankVitals
Framer publishes your design as pre-rendered static HTML and CSS served from a global edge CDN, hydrating only the interactive parts — which is why fresh Framer sites often post excellent scores. The risks are design-shaped: effects and parallax on every section, autoplaying video heroes, heavy code components, and embeds. This guide covers keeping Framer’s naturally strong Core Web Vitals intact as a site grows.
Real-world measurements, July 2026
Mobile lab results for well-known Framer sites, measured with Lighthouse — the same engine behind Google PageSpeed Insights and RankVitals tests. Snapshot taken July 19, 2026 — your numbers will differ, which is the point: measure your own site.
| Site | Perf score | LCP (lab) | TBT | CLS |
|---|---|---|---|---|
| framer.com | 57/100 | 4.1 s | 1951 ms | 0.07 |
| superlist.com | 57/100 | 3.6 s | 967 ms | 0 |
Lab data: Lighthouse 13, emulated Moto G Power over simulated 4G — the identical methodology PageSpeed Insights uses for its lab section. Single runs; lab numbers vary a few percent between runs.
What real Framer sites measure
We measured Framer’s own site and Superlist, a high-profile production site built with Framer, using Lighthouse 13 (mobile emulation) in July 2026. Both scored 57/100 — a suggestive coincidence. framer.com came in at LCP 4.1 s, TBT 1,951 ms, CLS 0.08; superlist.com at LCP 3.6 s, TBT 967 ms, CLS 0.00. Both are motion-heavy showcases — closer to the ceiling of what teams build in Framer than the floor — and the shape of the cost is consistent: effects JavaScript inflates blocking time and pushes hero rendering past the 2.5 s LCP threshold, while layout stability stays excellent. A restrained Framer site starts far above these numbers; the sections below are about keeping motion where it earns its milliseconds.
Framer’s architecture works in your favor
Unlike the builder generation before it, Framer does not ship your whole site as a JavaScript application. Pages are pre-rendered to static HTML and CSS at publish time and served from Framer’s edge CDN; JavaScript hydrates the parts that need it (effects, interactive components) after the initial paint. Text and images are visible without waiting on a bundle, TTFB is short from anywhere, and images get automatic srcset variants and modern formats.
The practical implication mirrors other managed platforms but with a higher ceiling: there is no server to tune, no cache plugin to install, and platform-level findings are not yours to fix. Your levers are design decisions — how much motion, how much media, how many code components — and Framer will faithfully render either a fast site or a heavy one from them.
Effects and motion: spend them deliberately
Framer makes scroll transforms, parallax, appear effects, and text animations one click away, and that convenience is how fast sites become slow ones. Every animated layer hydrates JavaScript and runs work on the main thread; appear effects additionally hide content until the animation fires, which on a throttled phone means your headline — possibly your LCP element — renders late by design.
The discipline that keeps scores intact: keep the first viewport static so the hero and headline paint immediately, apply appear effects from the second section down, and prefer transform/opacity animations (compositor-friendly) over anything that changes layout. Looping tickers and infinite marquees are the worst offenders per byte — they run continuously, not just during load. A site that animates three deliberate moments feels more premium than one that animates everything, and measures dramatically better.
Media: heroes, video, and intrinsic sizes
Framer handles the image pipeline — responsive variants, modern formats, lazy loading below the fold — but it renders what you place at the size you place it. Upload sources at roughly 2x their largest rendered size rather than camera originals, and give media layers fixed intrinsic dimensions so nothing reflows when assets arrive.
Video is the decision that moves numbers most. An autoplaying hero video competes with every other resource during the exact window LCP is measured, and Framer will not stop you. If the design calls for motion in the hero, use a short clip, compressed hard, with a poster image — or better, a static hero with video below the fold. For embedded YouTube or Vimeo, use a thumbnail-plus-click pattern (a facade) instead of a live iframe; a YouTube embed loads more JavaScript than the rest of a typical Framer page combined.
Code components and embeds: the unbounded cost center
Framer’s escape hatches — code components and the embed element — are real React shipped to the client, outside the platform’s optimization guarantees. A code component pulling in a charting library or a widget SDK can add more JavaScript than your entire designed site; an embed pasting a third-party script does the same with less visibility. Both are legitimate tools; both should be treated as line items in a budget.
Audit them: each code component’s dependencies ship to every visitor of every page that uses it, so keep dependencies minimal and components below the fold where possible. For analytics and marketing tags added in Site Settings → custom code, the same head-versus-body logic applies as everywhere — nothing render-blocking in the head start, defer what can defer, and remove tags that no longer earn their place.
SEO settings and measuring correctly
Framer covers the mechanical SEO layer: per-page titles and descriptions, open-graph images, automatic sitemap.xml and robots.txt, canonical tags, and semantic tag assignment (which element is the H1) in the properties panel. The gaps to check by hand: exactly one H1 per page (easy to violate in a design tool), alt text on meaningful images, and structured data — Framer emits little JSON-LD by itself, and a custom-code block with your Organization markup fills that gap.
Measure the published site — your custom domain — not the editor preview, which carries the editing runtime. Framer publishes are instant, so the iteration loop is fast: change one thing (kill a hero animation, facade an embed, compress a video), publish, re-test. Watch results on a mobile profile; Framer sites are designed on large screens, and the gap between desktop and mobile scores is where the work usually hides.
What our audit checks on Framer sites
These are real checks from the RankVitals SEO audit that most often fire on Framer sites. Run the audit to see which ones apply to yours.
h1_multipleHeading tags in Framer are set per text layer in the properties panel — design-led pages often end up with several H1s or none.structured_data_missingFramer ships almost no JSON-LD by default; a custom-code block with Organization/WebSite markup is the standard fix.meta_description_missingPer-page descriptions are a manual field in Framer’s page settings, and pages duplicated from templates commonly launch without one.content_freshnessFramer blogs and changelogs rarely emit datePublished/dateModified signals — undated articles get cited less by search and AI engines.org_schema_missingEstablishing entity identity on the homepage matters for AI-answer visibility, and Framer sites almost never include it out of the box.
Frequently asked questions
Are Framer sites fast by default?
Generally yes — pre-rendered static pages on an edge CDN with optimized images is a strong starting point, and simple Framer sites routinely score in the 90s on mobile. The variance comes from design choices: heavy motion, autoplay video heroes, embeds, and code components can push an identical layout down 30+ points.
Do Framer effects hurt Core Web Vitals?
Above the fold, yes: appear effects delay when your headline and hero render (hurting LCP), and every animated layer adds main-thread JavaScript. Below the fold the cost is minor. Keep the first viewport static and spend effects from the second section down.
Can I use custom code without tanking my score?
Yes, within a budget. Code components ship real React to the client, so keep their dependencies small and their placement below the fold. For third-party embeds, use a click-to-load facade for video and chat. One disciplined code component is fine; five embed blocks with external SDKs is a rebuilt-in-JavaScript site.
Does Framer handle technical SEO for me?
The mechanical layer, yes: sitemaps, robots.txt, canonicals, per-page meta, OG images, and clean pre-rendered HTML that crawlers read without executing JavaScript. You still own the judgment layer: one H1 per page, alt text, meta descriptions actually filled in, and structured data via custom code.
Measure your Framer site now
Free speed test with waterfall + filmstrip, and an SEO audit in the same tool.