A site on 1C-Bitrix takes 4–8 seconds to load? LCP >4s, CLS >0.2, INP >200ms — a typical picture for stores on this CMS. Google factors Core Web Vitals into rankings, and users leave after a delay of more than 3 seconds. We conduct an end-to-end audit and optimization: from diagnostics to final testing with a guaranteed PageSpeed Insights pass. Our experience covers 5+ years and over 50 projects. In one project, we worked with an auto parts store on Bitrix: LCP was 6.2s, CLS 0.3, INP 250ms. After optimization — LCP 1.8s, CLS 0.05, INP 120ms. Conversion rose by 22%, bounce rate dropped by 25%. Investment in optimization pays for itself in 3–6 months through higher conversion and lower abandonment. Typical optimization cost for an e-commerce Bitrix site ranges from $1,500 to $3,000, providing an estimated monthly revenue increase of $2,000–$5,000 for stores with 10,000+ visitors.
Why Core Web Vitals are critical for a Bitrix site
Google uses these metrics to evaluate user experience. Poor Core Web Vitals reduce conversion by 20–40% and hurt rankings. For Bitrix sites, the main sources of issues:
- LCP: slow TTFB + large images in the main banner
- CLS: images without width/height, fonts without font-display, dynamic blocks (cart, banners)
- INP: heavy JavaScript, blocking scripts in the head, excessive event listeners
In practice, every second store on Bitrix fails Google's assessment. We solve these problems with a guaranteed result.
According to Google's recommendations, LCP should be under 2.5 seconds, CLS under 0.1, and INP under 200 milliseconds.
What the Core Web Vitals optimization includes
Diagnostics
We use Chrome DevTools Lighthouse for synthetic testing and PageSpeed Insights for real user data (CrUX). We evaluate TTFB, JS/CSS size, images, and cache settings. The result is a detailed priority report.
LCP: critical rendering path
The LCP element in a Bitrix store is usually the main banner or first image. The problem: the image is loaded via JavaScript after rendering. The solution — preload with fetchpriority="high":
<link rel="preload" as="image" href="/upload/banners/main.webp" imagesizes="100vw" fetchpriority="high"> Add this in <head> via AddHeadString() of the component. Sliders are the main enemy: Swiper.js adds 100–300 KB of JS. Optimization: first slide in static HTML, JS initialization via defer or requestIdleCallback.
CLS: layout shifts
Non-zero CLS in Bitrix is caused by:
-
Images without dimensions. Standard components often output
<img>without width/height. We add sizes:
// In template.php of catalog.element component $width = $arItem['PREVIEW_PICTURE']['WIDTH'] ?? 300; $height = $arItem['PREVIEW_PICTURE']['HEIGHT'] ?? 300; echo '<img src="' . $arItem['PREVIEW_PICTURE']['SRC'] . '" ' . 'width="' . $width . '" height="' . $height . '" ' . 'loading="lazy" decoding="async" alt="' . htmlspecialchars($arItem['NAME']) . '">'; -
Cart and counters. Reserve space via CSS:
min-width: 40px; min-height: 40px. -
Fonts. Use
font-display: swap.
JavaScript: render blocking and INP
In Bitrix, the <head> often includes 10–20 JS files via CJSCore::Init(). We switch to defer:
<script src="/bitrix/js/main/core.js" defer></script> In the module settings “Performance”, we enable moving scripts to the end of the page. We diagnose INP via DevTools Performance, analyzing long tasks and event handler latency.
Images: WebP and lazy loading
We configure the resize_image module in /bitrix/.settings.php:
'resize_image' => [ 'value' => [ 'webp' => true, 'webp_quality' => 80, ], ], Lazy loading for offscreen images: loading="lazy" decoding="async". LCP image — no lazy. WebP compresses images 30-50% better than JPEG without quality loss, speeding up load time.
CSS: critical path
We inline critical CSS in <style> in <head>, load the rest asynchronously with <link rel="preload" as="style" onload="this.rel='stylesheet'">. Use PurgeCSS to remove unused styles.
How to optimize LCP step by step
- Identify the LCP element via Chrome DevTools.
- Ensure this image is preloaded with
fetchpriority="high". - Optimize the image: WebP at quality 80%, size not exceeding 200 KB.
- Configure TTFB caching: use Bitrix tagged caching.
- Move blocking scripts to footer or use
defer.
How tagged caching affects TTFB
Tagged caching in Bitrix allows clearing cache only for changed blocks instead of a full reset. This reduces TTFB to 50ms vs 200-400ms without cache. Configuration is done via /bitrix/.settings.php and components with caching support.
Typical optimization mistakes
- Neglecting TTFB: without server and cache tuning, LCP won't improve.
- Using
loading="lazy"on the LCP image — this worsens LCP. - Not reserving space for dynamic blocks (cart, sliders) — CLS remains high.
Example cost savings calculation
With an average order of 2,000 rubles and a conversion of 3%, a 25% bounce reduction yields an additional 30 orders per month from 10,000 visitors. That's an extra 60,000 rubles in monthly revenue.
What you get after optimization
| Metric | Before | After | Improvement |
|---|---|---|---|
| LCP | 4–8 s | <2.5 s | 2–3x |
| CLS | 0.2–0.5 | <0.1 | 2–5x |
| INP | >200 ms | <200 ms | >30% |
Comparison of image optimization methods
| Method | Compression | Quality | Support |
|---|---|---|---|
| WebP | 30-50% | high | all modern browsers |
| JPEG | 10-20% | medium | universal |
| PNG | lossless | high | universal |
Why choose us
- 5+ years of experience with Bitrix
- 50+ completed projects
- Certified specialists
- Guaranteed PageSpeed Insights pass
Order an audit and get a detailed report with recommendations. Contact us for a consultation — we will assess your site and propose a Core Web Vitals optimization plan.
More about metrics: official page. Additional information on cache configuration: 1C-Bitrix documentation.

