A slow Odoo site is probably the number one reason for calls we receive in audits. The client has tried to optimise on their own, has already paid another agency for an 'optimisation plan' that yielded nothing, and arrives frustrated. Good news: in 9 out of 10, it is not Odoo that is slow. It is what has been added on top. Here are the 10 causes we encounter, and how each can be resolved.
Measure before touching.
The golden rule of optimisation: no intervention without a baseline measurement. Otherwise, you are tinkering in the dark. Three free tools are sufficient to properly measure an Odoo site:
PageSpeed Insights (pagespeed.web.dev) — the official Google test. Provides the Core Web Vitals (LCP, INP, CLS) measured on real visitors, plus a synthetic Lighthouse audit. This is the tool to use first.
GTmetrix— provides a detailed breakdown of loading (waterfall) that allows you to precisely identify which resource is blocking the display.
WebPageTest— for in-depth audits. Allows testing from multiple geographic locations and browsers, and comparing multiple runs.
On a well-made Odoo site, we aim for an LCP of less than 1.8 seconds on mobile, a Lighthouse performance score above 90, and a CLS below 0.1. If you are far from these figures, there is almost always one of the 10 causes below.
The 10 most common causes.
Unoptimised images
By far the number one cause. 2 MB PNGs, full-resolution JPEGs displayed at 400px wide. Solution: WebP recompression, resizing to display size, attributeloading="lazy"on images below the fold.
Accumulated native Odoo snippets
When building a site with the builder, each snippet adds its share of CSS and JS. After 30 snippets, the bundle becomes heavy. Solution: streamline the snippets used or replace them with a lighter custom QWeb template.
−15% page weightUnused Odoo modules activated
E-commerce, blog, events, recruitment modules activated even though they are not used. Each module adds its assets to the frontend bundle. Solution: disable unused modules in Apps. Measurable test before/after.
−10% bundle sizePoorly loaded web fonts
Several Google Fonts loaded in bulk, sometimes with all weights and all Latin characters.Solution:only load the weights used, usefont-display: swap, preload the critical font for the hero.
Unoptimised autoplay videos
Heavy MP4 video autoplaying on the hero, without a poster, without controlled preload. Solution: compress the video, host externally (Cloudflare Stream, Mux), or replace with a CSS animation if possible.
−2s LCPThird-party scripts (chat, analytics, pixel)
Google Tag Manager, Crisp Chat, Meta Pixel, Hotjar: stacked, they block rendering. Solution: load these scripts withdefer, delay their execution until user scroll, remove those that are non-essential.
Unminified custom CSS / JS
Custom CSS added in plain text in the back office, without minification or concatenation. Solution: use Odoo's native stylesheets which are automatically minified and concatenated in the bundle.
−12% CSS weightDeveloper mode enabled in production
Classic error: developer mode remains enabled after going live. Odoo then disables asset concatenation and everything becomes slow. Solution: check the asset URL in the network console. If it containsnonce, developer mode is on. Disable it.
Poorly configured browser cache
On Odoo Online, the cache is generally well set. On Odoo SH or self-hosted, the headersCache-Controlare sometimes forgotten. Solution: ensure that assets (CSS, JS, images, fonts) have a long cache (minimum 1 year).
Under-dimensioned hosting
If all other causes are eliminated and the site remains slow, it is the hosting. Solution: upgrade to a more powerful Odoo SH plan, or switch from standard Odoo Online to a higher plan.
Variable depending on the planOptimising an Odoo site is remove things, not add to them. Performance arises from simplicity.
Odoo Online vs Odoo SH.
On the subject of hosting, there is often confusion. Here are the actual scales in 2026.
Odoo Online is Odoo's turnkey hosting. Ideal for a showcase site or an e-commerce site with up to 1,000 visitors/day. Cost: €24-80/month depending on the plan. On this type of well-optimised site, the LCP easily runs between 1.2 and 1.8 seconds. This is sufficient for 80% of projects.
Odoo SH is managed hosting on isolated infrastructure. Relevant from 2,000 visitors/day, or if you want staging, Git, development branches. Cost: €50-200/month depending on the plan. Similar performance on the frontend, but with more technical control.
The trap: choosing SH when Online would suffice. It's more expensive and more complex. Conversely, staying on Online when traffic explodes and the site struggles during peak hours: you need to upgrade.
What you can check yourself.
Before calling an agency for an audit (and paying €800 to €1,500), you can do these 4 checks yourself in 30 minutes:
1. Run PageSpeed Insights on your homepage and on a product page (if e-commerce). Note the mobile and desktop scores.
2. Open Chrome DevTools (F12), go to the Network tab, refresh the page. Sort by size. Identify resources over 500 KB. This is often where the problem lies.
3. Check the developer mode. If an asset URL containsnonceor if the network is loading 50 separate CSS files, developer mode is still enabled.
4. List your enabled modules in Apps. Uninstall those you do not use (make a backup first).
On 60% of the Odoo sites we audit, causes 1, 7, and 8 (images, custom CSS, developer mode) already resolve two-thirds of the problem. Before paying for heavy optimisation, check these three.
When to call an agency.
If you have completed the 4 checks above and your LCP remains above 3 seconds, it is probably structural. Four situations justify a professional audit:
1. You are using a purchased theme or a heavy builder. The structural weight is too significant to be corrected marginally. Key pages need to be redesigned.
2. Your site has accumulated 3-5 years of changes without cleaning. CSS and JS added gradually, of which no one knows the purpose anymore. An audit + cleaning is worthwhile.
3. You have an e-commerce site with a substantial catalogue. Product pages require special attention (lazy load, schema, responsive images). A specialised developer makes a difference.
4. SEO is degrading for no apparent reason. Google is increasingly weighing Core Web Vitals. A gradual slowdown may explain an unexplained loss of positions.
At WebNest, we conduct a free Odoo performance audit on public sites. We send you the report within 48 hours, with the measured figures and our recommendations. If you then want us to intervene, it will be based on a quote. If you want to do it yourself, the report is sufficient.