Framer site speed best practices
Framer automatically applies multiple optimizations to keep sites fast – but it can’t figure out everything. If your website is not loading as fast as you want it to, try applying the suggestions below.
Images
Framer optimizes most images automatically, so you don’t need to resize or convert them to WebP manually.
Most images: Upload the images as they are and set the resolution to Auto in the “Fill” section under Image. Framer will handle WebP conversion and resizing automatically.
AVIF images: Ensure these aren’t too large since they are served as-is and not optimized. Alternatively, convert them to JPEG, PNG, or WebP before uploading.
SVG images: Upload them as image by drawing a frame and selecting the “Fill” option, then choosing Image.
If you notice poor image compression, please post on our community channel – our engineers would love to learn about what we can improve.
If you notice poor image compression, share feedback on our community channel. For technical details, visit How images are optimized in Framer.
Fonts
Use font weights between Light and Extra Bold: This prevents text from being hidden during font loading, thanks to
font-display: swap
.Prefer Google Fonts: These load faster because they’re subsetted by alphabet, so unused characters aren’t downloaded.
Re-upload custom fonts uploaded before Nov 2023: This converts them to WOFF2, reducing their size.
For more information, see How fonts are optimized in Framer.
Videos
Refer to How videos are optimized in Framer. Here are some tips:
Prefer YouTube or Vimeo: These platforms adjust video quality based on network speed and screen size. In contrast, Framer serves videos at their original resolution, even on small screens.
You can find YouTube and Vimeo components in the Insert menu:
Avoid auto-playing videos: Auto-play forces videos to compete for bandwidth with images, fonts, and scripts.
Use muted, looped videos without controls: These lazy-load and only play when visible, leaving more bandwidth for other assets.
Optimization
To confirm your site is optimized, go to Menu → Site Settings → Versions and check that the latest version is marked “Optimized.”
Custom Code
Framer allows you to add custom code in the head or body tags. Follow these best practices:
Add custom code only where necessary: For example, only load the MailChimp script on pages that use it. Use Project settings → Custom code for site-wide scripts and Page settings → Custom code for page-specific scripts.
Place
<script>
tags at the end of the<body>
tag or adddefer
:
Use async instead of defer if the script needs to load as quickly as possible. Avoid omitting defer or async, as it can delay page visibility and hurt performance. Inline scripts and those with type="module" are already optimized.
Effects
Use Appear effects for animating critical elements at the top of your site, as they run before JavaScript loads. Avoid using Scroll Animation effects for these elements.
Shadows and Blurs
Shadows and blurs are resource-intensive. For better performance, use them sparingly and keep blur values below 10. Excessive use can slow animations and scrolling performance, even if it doesn’t affect page loading times.
External Embeds and Iframes
Embedding content like HubSpot forms or Spline 3D illustrations can degrade performance scores. While Framer lazy-loads embeds, they still run additional code. Test removing embeds (on a duplicate of your site) to see how performance is affected.
Still experiencing the issue after following the steps above? Create a support ticket in the Community.