Insights performance

Shopify Hero Section Speed: Why Your Banner Wrecks Core Web Vitals

Your Shopify hero section is usually the first thing a shopper sees and the single element most likely to fail your Core Web Vitals, because the big image, slider, or video at the top of the page is almost always what Google measures as your Largest Contentful Paint.

Key takeaways

  • The hero is normally your Largest Contentful Paint (LCP) element, so its load time is what Google grades, and a slow hero drags down the score for the whole page.
  • Oversized and wrong-format hero images are the most common cause, often shipping a 2 MB desktop image to a phone.
  • Carousels and autoplay video multiply the cost, loading assets and scripts the shopper may never see.
  • Lazy-loading the hero image is a frequent self-inflicted wound, because the browser delays the very thing it should load first.
  • A few design constraints (one strong image, explicit dimensions, a preload, no carousel) keep the hero fast without losing impact, and you can confirm the win against your Core Web Vitals benchmarks.

Why the hero controls your LCP score

Largest Contentful Paint measures how long it takes for the biggest visible element to render. On a Shopify homepage or landing page, that element is almost always the hero: a full-width banner image, a large headline, or a background video. Google uses LCP as a ranking-relevant signal and as a core part of the page experience score.

The hero has an outsized effect because it sits above the fold and is large by design. A product thumbnail loading slowly costs you little. A hero image loading slowly costs you the entire LCP measurement, because nothing bigger paints before it. Fix the hero and the metric usually moves more than any other single change.

The frustrating part is that heroes are also where merchants push hardest visually. Big imagery, motion, overlaid text, multiple slides. Every one of those choices adds weight or delay. The goal is not a boring hero. The goal is a hero that looks the same to the shopper but loads in a fraction of the time.

Image weight is the usual culprit

Most slow heroes come down to one thing: the image is too big and in the wrong format. A designer exports a crisp 2500 pixel wide JPEG, it looks great on a retina laptop, and then it gets served untouched to a phone on mobile data. The phone downloads two megabytes to fill a 400 pixel wide screen.

Fix the format first. Modern formats like WebP and AVIF deliver the same visual quality at a fraction of the file size. Shopify serves WebP automatically through its image CDN when you use the correct image tags and size parameters, so a hero that goes through the theme image helpers is usually already converted. A hero hard-coded with a raw upload URL often is not.

Fix the dimensions second. Serve an image sized for the device, not for the largest screen you can imagine. Responsive image markup with a srcset lets the browser pick the right size. A phone gets a small file, a desktop gets a larger one, and neither downloads more than it needs.

Then set explicit width and height on the image. This does not speed up the download, but it reserves the space so the page does not jump when the image arrives. That protects your Cumulative Layout Shift, the other Core Web Vitals metric a hero commonly breaks.

Carousels, sliders, and video: pay only for what shows

A hero carousel feels like a way to say more without taking more space. In performance terms it is the opposite. A three-slide carousel often loads all three images up front, plus the slider library and its scripts, even though most shoppers only ever see the first slide.

If you keep a carousel, load the first slide eagerly and defer the rest. The shopper sees the first image immediately, and the remaining slides load only when needed. Better still, question whether you need a carousel at all. One strong image with a clear message usually converts as well or better than three competing ones, and it loads far faster.

Background video is the heaviest hero of all. Autoplaying video pulls megabytes and competes for bandwidth with everything else on the page. If you must use video, show a lightweight poster image first (that becomes your LCP element), keep the clip short and compressed, and never autoplay a large file on mobile. Many stores get the same feel from a still image and a subtle CSS animation at a tiny fraction of the cost.

The lazy-load trap and the preload fix

Lazy-loading is a good performance habit for images below the fold, because the browser skips them until the shopper scrolls near. Applied to the hero, it backfires. The hero is the first thing on screen, so telling the browser to wait delays your LCP element on purpose.

Never lazy-load the hero image. Load it eagerly. If your theme adds loading equals lazy to every image by default, override it for the hero specifically.

Go one step further and preload the hero image. A preload hint tells the browser to fetch the image early, before it has finished reading the rest of the page. On image-led homepages this often takes a full second off LCP, because the download starts sooner instead of waiting its turn. Combine an eager load, correct sizing, and a preload, and the hero stops being the bottleneck.

Fonts deserve a mention here too. If your hero headline uses a custom web font that blocks rendering, the text can stall even when the image is ready. Limit the hero to one or two font weights, and use a font-display setting that shows text immediately with a fallback while the custom font loads.

A hero checklist you can hand to any designer

You do not need to compromise the design. You need a few constraints that a designer and developer can follow every time.

Use one strong hero image rather than a carousel wherever possible. Export it in WebP or AVIF, sized for the actual display width, with responsive srcset for smaller screens. Set explicit width and height. Load it eagerly and add a preload. Avoid autoplay video on mobile, and if you use video on desktop, lead with a poster image. Keep overlaid text to one or two font weights with an immediate fallback. Then measure.

Measuring is the part most stores skip. After every hero change, check LCP and CLS on a real mobile profile, not just on your fast office connection. When you scan the page with Store Auditor, you can see the hero’s contribution to LCP and confirm the fix landed instead of hoping it did. If the numbers still lag, work through the broader mobile speed fixes that affect the rest of the page. For teams that want the hero and the theme optimized together, Defyn handles this as part of a storefront performance build.

Common questions

What makes a Shopify hero image slow?

Almost always the file itself: too large in pixel dimensions, in an older format like a full-resolution JPEG, and served at the same size to every device. A phone ends up downloading a desktop-sized image over mobile data. The other frequent causes are lazy-loading the hero (which delays the one image that should load first), stacking a slider or autoplay video on top, and blocking web fonts for the headline. Serve a correctly sized WebP or AVIF, load it eagerly, add a preload, and most slow heroes become fast heroes.

Usually no, at least not for speed. A carousel typically loads every slide and a slider library up front, even though most shoppers only see the first slide, so you pay for content that never shows. A single strong image with a clear message loads faster and often converts as well. If you keep a carousel for business reasons, load only the first slide eagerly and defer the rest so the shopper is not waiting on images they may never reach.

Why does my homepage fail Core Web Vitals even after I compress images?

Because the hero is more than just image size. If you compressed the file but still lazy-load it, or the browser only fetches it late because there is no preload, LCP stays slow. If the image has no set dimensions, the layout shifts when it arrives and breaks CLS. Autoplay video, heavy sliders, and render-blocking fonts each add their own delay. Compression is one part. Load order, dimensions, and removing extra hero elements are the rest.

Wrap-up

The Shopify hero section carries your first impression and, in most cases, your Core Web Vitals score. That makes it the highest-leverage place to optimize. Serve one right-sized image in a modern format, give it explicit dimensions, load it eagerly, and preload it so the browser fetches it first. Drop the carousel and the autoplay video unless they earn their weight, and keep the headline font light. None of this dulls the design. It just stops the hero from being the reason the page feels slow. Make the change, then measure it against your Core Web Vitals benchmarks so you know the improvement is real.

Run an audit

See the same analysis on your own store.

Install Store Auditor free. Get a per-app audit of your Shopify storefront in 90 seconds, no theme edits, no separate account.