Introduction
Framer optimizes a great deal on its own, including image serving and code splitting, so most slow Framer sites are slow for narrower reasons than people assume: an image Resolution setting that was changed off Auto, too many font weights, and effects stacked where they are not needed.
Everything below is something you control, and none of it requires touching code.
Images Are Almost Always the Problem
Framer's own guidance is to upload images as they are. It generates resized variants at 512, 1024 and 2048 pixels, emits the srcset so each device takes the one it needs, converts to modern formats such as AVIF, and lazy loads anything below the fold. A 4000 pixel photograph is not what reaches a phone.
The thing to actually check is that Resolution is set to Auto in the Fill options, because that is the setting which activates all of it. Pinning an image to a fixed resolution opts you out of the variants and is the common way a Framer site ends up serving something far larger than it needs to. Note also that the free plan caps uploads at 5 MB.
Font Weights Add Up Quietly
Every weight and style is a separate file to download. Text styles are the place to control this, in the same way breakpoints control layout rather than each layer doing its own thing. Three weights of one family is a design decision; seven weights across two families is a performance decision that nobody made deliberately.
Cheap | Expensive |
|---|---|
Two or three font weights total | Every weight of two families |
Image Resolution left on Auto | Resolution pinned to a fixed size |
Effects on a few focal elements | Blur and shadow on everything |
Video that loads on interaction | Autoplaying background video |
Effects Cost More Than They Look
Blur, especially large area background blur, is the most expensive common effect, and it costs most on the low end phones that are already having the worst time. Used on one focal element it is fine; applied across a page it is what makes scrolling feel heavy.
Video Is the Biggest Single Decision
An autoplaying background video is usually the heaviest thing on any page that has one, and it is worth checking against a template that already made the decision deliberately. Framer always serves an uploaded video at its original resolution, unlike YouTube or Vimeo, so a self hosted background video is the full file every time. If you need video, the YouTube and Vimeo components in the Insert menu hand the streaming off to someone built for it.
The Check Nobody Runs
Open Site Settings, then Versions, and confirm the latest version is marked Optimized. That is the Framer specific check nobody runs. After that, test the published URL on a simulated mobile connection rather than your own machine, and fix whatever the report names as the largest asset.




































