Online shoppers today expect websites to load instantly. If your nopCommerce store takes more than 3 seconds, customers may leave and Google may push your rankings down.
Speed isnβt just a technical metric β it directly impacts:
Conversion rates π
Search engine rankings π
Bounce rate & session duration β±
Customer trust & brand perception πΌ
nopCommerce is a powerful enterprise-grade eCommerce system, but like any platform, it requires proper optimisation to deliver peak performance.
In this guide, youβll learn practical, real-world strategies to improve load times, boost Core Web Vitals, and improve SEO β without sacrificing design or functionality.
Key Optimisation Techniques for nopCommerce
1) Convert All Images to WebP/AVIF
Older JPG/PNG files are heavy and slow down product & category pages.
Solution:
Convert to WebP or AVIF (40β80% smaller images)
Maintain proper width/height attributes to avoid layout shifts
Lazy load images below the fold
Example:
<picture>
<source srcset="/media/products/widget.webp" type="image/webp">
<img src="/media/products/widget.jpg" alt="Product Name" width="800" height="800" loading="lazy">
</picture>
Pro Tip: Preload your hero (main banner) image β not all product thumbnails.
2) Load JavaScript Only Where Needed
Most stores load jQuery, Bootstrap, Owl, Fancybox, and other scripts on every page, even when unused.
This kills performance.
Fix: Use conditional script sections.
@section JsContentBody {
<script src="~/js/homepage.js" defer></script>
}
Load only what each page truly needs.
Result: Reduced JavaScript β Faster rendering β Improved INP.
3) Remove Unused Plugins & Themes
Every plugin adds:
SQL queries
Assemblies
View components
JS & CSS
If youβre not using it β Uninstall it.
Steps:
Disable plugin in Admin > Configuration > Local Plugins
Remove folders from
/Plugins/and/Themes/Rebuild in Release mode
Lean sites load faster. Always.
4) Enable Compression + Browser Caching
Add Brotli/Gzip for smaller asset transfers:
builder.Services.AddResponseCompression(options =>
{
options.EnableForHttps = true;
options.Providers.Add<BrotliCompressionProvider>();
});
Set static caching:
ctx.Context.Response.Headers.Append("Cache-Control", "public,max-age=31536000,immutable");
5) Minify & Bundle CSS/JS
Enable bundling in Admin > General Settings.
For heavy themes, use Webpack to split critical CSS from non-critical JS.
6) Database Optimisation
Rebuild SQL indexes regularly
Avoid unnecessary
Include()queries in EF CoreOffload frequently accessed data to caching
If your catalogue is > 5,000 products β caching becomes essential.
7) Use Redis Distributed Cache
Big performance win for medium to large catalogues.
"RedisCachingEnabled": true,
"RedisCachingConnectionString": "localhost:6379"
Reduces DB load and speeds up category and product pages significantly.
8) Output Cache Full HTML for Anonymous Pages
Extremely effective for:
Home page
Category pages
Manufacturer pages
app.MapControllerRoute("Home", "/", new { controller = "Home", action = "Index" })
.CacheOutput(x => x.Expire(TimeSpan.FromMinutes(10)));
9) Lazy Load & Use a CDN
Serve:
Images
CSS
JS
Fonts
From a dedicated CDN domain like:
cdn.yourstore.com
This reduces server load and improves global response time.
10) Enable HTTP/3 & TLS Resumption
Modern CDN + HTTP/3 = faster load on 4G/5G networks.
Especially important for shoppers browsing on mobile.
11) Essential nopCommerce Settings
Go to Admin β Configuration β App Settings β Performance
Enable:
β Bundling / Minification
β Caching (in-memory or Redis)
β Response Compression
β Lazy Loading (if theme supports it)
12) Keep nopCommerce & .NET Updated
Latest versions include:
Performance enhancements
Security improvements
Modern runtime optimisations
If you're still on nopCommerce 4.3 β 4.4 β 4.5β 4.6β 4.7β 4.8β 4.9, upgrading can instantly boost speed.