Flatsome performance
Flatsome Speed Optimization: Product Grids, Lazy Loading and the Uncacheable Checkout
Flatsome's homepage shows a mobile PageSpeed score of 98 and then, to its credit, labels it as not a measured audit. Take the hint. A Flatsome store is fast or slow on its category grids, product pages, cart and checkout, and each of those needs its own measurement.
October 12, 2026 · 10 min read
The short answer
To speed up Flatsome, measure category, product, cart and checkout pages separately, keep image lazy loading on but stop it delaying a hero banner, confirm fonts are served locally (Flatsome 3.16 and later), cut UX Builder sliders and sections, and run one cache plugin with cart and checkout excluded. Hosting and WooCommerce plugins set the floor.
On this page
- How Flatsome Classic ships CSS, scripts, images and fonts
- Why a Flatsome store slows down in its second year
- Smart Lazy Loading, by the vendor's description and on your store
- Cart and checkout: the pages no cache can hold
- Tuning a Flatsome store, ten steps in order
- Core Web Vitals on product and category pages
- Limits inside Flatsome, and what Site Builder changes
- When store speed justifies leaving Flatsome for Next.js
How Flatsome Classic ships CSS, scripts, images and fonts
UX-Themes makes three speed claims for Classic: its CSS was written for minimum file size, it is the fastest multi-purpose theme on ThemeForest, and its Smart Lazy Loading delays images and backgrounds until they are needed. For the new Site Builder beta, the vendor says page speed is up by a wide margin with better Core Web Vitals out of the box. All of those are the vendor's words. What follows is what you can find, set and check yourself on Classic 3.20.11.
| What happens | Where you control it | What to watch | |
|---|---|---|---|
| Image lazy loading | The vendor's Smart Lazy Loading delays images until they near the screen | Flatsome > Advanced > Performance (the vendor's older demo page calls it Advanced > Optimize) | The first product photo or hero should not wait for it |
| Banner and section backgrounds | A separate option, added in 3.0, lazy-loads banner and section backgrounds | Same Advanced panel | A homepage hero built as a banner is often the LCP element |
| Google Fonts | Since 3.16, downloaded to /wp-content/fonts/ and served from your server | Theme Options > Style > Typography, which can also switch Google Fonts off | Flatsome's docs mention a fallback to the old loading method; leave it off |
| Page layouts | UX Builder saves pages as Flatsome shortcodes, rendered into nested rows, columns and elements | UX Builder | Every section, row and banner adds markup and often an image |
| Sliders | Flatsome's sliders run on the Flickity library | Slider elements in UX Builder | A slider's first slide waits for its script |
| Mega menus | UX Blocks assigned to menu items (3.13.0 and later) | Menus plus UX Blocks | The block's markup and images can ship in the header of every page |
Two things are missing from that table on purpose. Flatsome's public docs do not describe a jQuery option or a choice between inline and file-based CSS, so we will not invent one. If your waterfall shows jQuery and several WooCommerce scripts, assume they are needed until a staging test proves otherwise. Our list of themes with the least CSS and JavaScript puts Flatsome's footprint in context.
Why a Flatsome store slows down in its second year
A new Flatsome store usually tests well. The slowdown arrives with success: more products per category, more apps on the product page, and a homepage that every campaign adds a section to. The usual suspects, in the order we find them:
Category grids at full resolution
Twenty-four products per page, each photo uploaded at camera size and scaled down in the browser. Lazy loading hides the cost below the fold, but the first row still downloads in full.
A homepage built one campaign at a time
Sliders, banners with background images, countdowns and product carousels, stacked in UX Builder. Each one made sense on its launch day.
Apps on the product page
Reviews widgets, payment messaging, upsells, swatches and wishlists each bring scripts. Some inject content after load, which also moves the layout.
Optimizers fighting each other
UX-Themes' own first troubleshooting step is to reset or disable all cache and minify plugins. That tells you how often an optimization layer is the thing that broke the store.
Our repair checklist for a store that is already crawling is Flatsome slow website. This page is the tuning plan for owners who want to stay ahead of it.
Smart Lazy Loading, by the vendor's description and on your store
Lazy loading is a trade. Images below the fold wait, so the first screen gets the bandwidth. That is a good trade for a category grid. It is a bad one for the image a shopper came to see. If the main banner or the first product photo is lazy-loaded, the browser learns about it late, and Largest Contentful Paint waits. The fix is to look at what your LCP element is on each template, then make sure that one element loads immediately.
Because banner and section backgrounds have their own lazy-load option, you can keep image lazy loading on for grids while turning background lazy loading off if your hero is a banner. Test the change on the homepage and a category page and keep whichever measures better.
Run one lazy-loading system, not three. WordPress adds native lazy loading to content images, and many optimization plugins add their own. Stacking them can leave images waiting on two scripts, or never appearing. Lazy loading can also clash with content that updates without a page reload: one store owner reported a payment provider's logo vanishing from the cart after quantities changed with Flatsome's lazy loading on. If something disappears, switch lazy loading off on staging and see whether it comes back.
Cart and checkout: the pages no cache can hold
Page caching is the cheapest speed win WordPress has, and WooCommerce takes it away exactly where money changes hands. Cart, checkout and account pages show one shopper's data, so every cache plugin worth installing excludes them. Each of those visits runs PHP and database queries from scratch. A header mini-cart that updates live typically adds a background request too; look for get_refreshed_fragments in your browser's network panel.
- Hosting decides these pages. PHP version, PHP workers and an object cache matter more at checkout than any theme option.
- Payment scripts load where they please. Each gateway and payment-messaging widget brings its own code, often on product pages as well as checkout.
- Fewer checkout plugins, faster checkout. Field editors, upsell popups and address autocomplete all run on the slowest page you have.
- Catalog Mode removes the problem outright for businesses that take inquiries instead of orders, because it hides the cart and checkout.
Flatsome's shop settings by name are in our Flatsome WooCommerce guide. If checkout is failing rather than slow, go to Flatsome WooCommerce checkout issues. The structural argument about stores on WordPress versus a coded front end is in WooCommerce vs Next.js.
Tuning a Flatsome store, ten steps in order
Work on a staging copy of the store, change one thing at a time, and retest the same pages after each step. A store is no place for a batch of changes nobody can unpick.
- 1
Measure four store templates
Run a category page, a product page, the cart and checkout through PageSpeed Insights, plus the homepage. Record field data where Google has it. Our guide to running a fair theme speed test keeps the runs comparable.
- 2
Update Classic and clear template warnings
Move to the current Classic release and fix any outdated WooCommerce template warnings before tuning. If registration blocks the update, see Flatsome update and registration problems.
- 3
Settle on one cache and one optimizer
One page cache with cart, checkout and account excluded, and one minify layer. If styles stop changing afterwards, work through Flatsome CSS not updating.
- 4
Check fonts are local
Confirm font files load from /wp-content/fonts/ and that the fallback to the old loading method is off. Cut families and weights in Theme Options > Style > Typography, or turn Google Fonts off and use system fonts. Missing typefaces afterwards: Flatsome fonts not loading.
- 5
Set lazy loading per template
Keep image lazy loading on for grids. If the homepage hero is a banner background, test with background lazy loading off. Remove any second lazy-load plugin.
- 6
Resize product photos
Upload photos close to the largest size the theme displays, regenerate thumbnails and serve WebP through one image plugin.
- 7
Put the homepage on a diet
Replace the slider with one banner, delete sections no campaign uses, and keep the mega menu UX Block to text links and one small image.
- 8
Audit product-page apps
List every script on a product page and who added it. Keep what sells; remove or delay the rest.
- 9
Give uncached pages a better server
Current PHP, enough workers for peak traffic and an object cache. Ask your host what the plan includes before buying a bigger one.
- 10
Retest, then watch
Run the same pages again. Field data lags by up to 28 days, so check again next month.
Core Web Vitals on product and category pages
LCP: the product photo or the banner
On product pages the LCP element is almost always the main photo; on the homepage and categories, a banner. Make it a correctly sized image, keep it out of lazy loading and give it a stable box. Our slow LCP checklist has the mechanics, and LCP on WordPress versus Next.js shows how a framework handles the same image.
CLS: widgets that arrive late
Store layout shift comes from content that shows up after the page: payment messaging under the price, review stars, free-shipping bars, cookie notices and lazy images without dimensions. Reserve space for each one. Theme layout shift explains the fix, and CLS compared with Next.js explains why it keeps coming back on plugin-built pages.
INP: swatches, quick view and add to cart
Interaction delay shows up when a shopper taps a variation swatch, opens quick view or adds to cart while tracking and chat scripts still hold the main thread. Measure on a mid-range phone, not a laptop. INP on WordPress versus Next.js covers the structural side.
Limits inside Flatsome, and what Site Builder changes
- Uncached checkout. No theme setting makes WooCommerce's dynamic pages cacheable.
- WooCommerce and gateway scripts. They load on WooCommerce's terms, not Flatsome's.
- UX Builder markup. Shortcode layouts render into nested wrappers; only rebuilding the page with fewer elements reduces them.
- Third-party apps. Reviews, chat, pixels and payment widgets bring their own weight.
- The server. Slow PHP or a starved database slows every uncached request.
The Site Builder beta, announced September 30, 2026, is UX-Themes' answer to some of this: native blocks and theme.json instead of shortcodes, with the vendor promising faster first paint and less layout shift. It is beta, sold yearly per site, and moving to it means rebuilding UX Builder pages. Test it on staging if you are curious. Do not move a live store for speed alone until it reaches 1.0 and you have measured it on your own catalog. When you would rather have experts tune Classic, our theme speed optimization service and our Flatsome developers do that work; the Flatsome repair hub collects the fixes.
Every cache plugin skips the checkout, which is the one page a store cannot afford to be slow.
When store speed justifies leaving Flatsome for Next.js
Most Flatsome stores should tune, not move. A catalog in the hundreds, a short plugin list and decent hosting can pass Core Web Vitals on Classic. The case for a rebuild is a store where paid traffic lands on product pages, where mobile conversion lags desktop and the limits above are why, or where a redesign is coming anyway and rebuilding UX Builder pages is unavoidable either way.
A Next.js storefront prerenders category and product pages, sizes every photo with next/image and sends cart logic only where it is used. It costs more up front and needs a developer for structural changes. Flatsome vs Next.js lays out the three roads, Flatsome to Next.js covers products, orders and every product URL, and WooCommerce to Next.js explains the commerce side.
Our stores run on Athena CMS, which includes e-commerce, plain fields and every version kept, with Picasso keeping product photos described and sized. Start with a free site audit to see which road costs less, browse the other WordPress theme reviews, or ask about financing for ecommerce builds.
Questions people ask before they call
The vendor calls it the fastest multi-purpose theme on ThemeForest and shows a PageSpeed score it labels as not a measured audit. In practice, a Flatsome store's speed depends on product photo sizes, UX Builder sections, store apps and hosting. The theme gives you image and background lazy loading and local fonts; the rest is setup.
Under Flatsome > Advanced > Performance, where images and banner or section backgrounds have separate lazy-load options. The vendor's older performance page calls the panel Advanced > Optimize. Keep image lazy loading on for grids, and test with background lazy loading off if your homepage hero is a banner, since that image is often the LCP element.
Yes, from version 3.16.0. Fonts chosen in the Typography settings are downloaded to /wp-content/fonts/ and served from your server. Flatsome's docs mention a fallback to the old loading method; leave it off. You can also switch Google Fonts off in Theme Options > Style > Typography and use system fonts. If fonts break, see Flatsome fonts not loading.
Because checkout cannot be page-cached. It shows one shopper's cart, so every visit runs PHP and database queries from scratch, and payment scripts load on top. Better PHP hosting, an object cache and fewer checkout plugins help most. No Flatsome setting changes this; it is how WooCommerce works.
The vendor says so, citing faster first paint and lower layout shift. It is in beta as of October 2026, sold yearly per site, and moving means rebuilding UX Builder pages. Test it on a staging copy and measure your own product pages before committing a live store. Our Flatsome review compares Classic and Site Builder.
Keep reading
- Theme review: FlatsomeFlatsome Theme Review (2026): Classic, the Site Builder Beta and Which One a Store Should BuyFlatsome theme review for WooCommerce store owners, checked October 2026: Classic vs the Site Builder beta, UX Builder, pricing, speed and who should skip it.
- WooCommerce at a crossroadsFlatsome vs Next.js: A Store Owner's Fork in the RoadFlatsome vs Next.js for WooCommerce stores: Classic vs the new Site Builder, UX Builder lock-in, renewals, speed and what leaving costs. Updated October 2026.
- Flatsome on phonesFlatsome Mobile Menu Not Working: Why the Sidebar Stays ShutFlatsome mobile menu not working? Check script optimizers, the Nav Icon, Menu Elements and the Main Menu - Mobile location, in that order, then fix it.
- Store migration: FlatsomeFlatsome to Next.js: How to Migrate a Flatsome WooCommerce StoreMigrate a Flatsome WooCommerce store to Next.js: UX Builder shortcodes, template overrides, products, orders, customers, product URLs and payments.
- Two Flatsomes, two billsFlatsome Price in 2026: $59 Once for Classic, or a Yearly Site Builder PlanFlatsome Classic is $59 once. Site Builder runs $44.50 to $249.50 until October 14, 2026, then $89 to $499 a year. Renewals, refunds and a store's real bill.
- Store theme head-to-headFlatsome vs Astra for a WooCommerce Store: Who Builds the ShopFlatsome vs Astra for a WooCommerce store: shop features, checkout tools, license costs as of October 2026, known bugs, and which store each suits.
- Everything in WordPress ThemesSee the section
Get your Flatsome store measured page by page
Send us the store URL. We test category, product, cart and checkout pages, name the heaviest items and give you a fixed quote for tuning, or tell you when a rebuild costs less.
Which of these sounds like you? (pick any)
Rather talk now? Call (210) 346-0848.