---
title: "Cumulative Layout Shift is high (perf/cls-high)"
description: "perf/cls-high: Content that moves after it renders makes people mis-tap and lose their place."
canonical: https://void-design.vercel.app/rules/perf/cls-high
lastModified: 2026-09-16
---

# Cumulative Layout Shift is high

`perf/cls-high` · severity **error** · category Performance · detected by `void perf` and `void audit`

## Why it matters

Content that moves after it renders makes people mis-tap and lose their place. CLS above 0.1 fails Core Web Vitals.

## How to fix it

Reserve space for late content: width/height or aspect-ratio on media, min-height on slots for banners/ads/embeds, position fixed/sticky for toasts and consent bars, and metric-matched fallback fonts.

## Example

```
.banner-slot { min-height: 56px; }
img, video { height: auto; } /* with width+height attributes */
```

## References

- https://web.dev/articles/optimize-cls

## More performance rules

`void perf` reports 25 rules in this category. Core Web Vitals and bytes: LCP, CLS, TBT, TTFB, JavaScript, CSS, fonts, images, caching and compression, measured as the median of several runs on a throttled mobile and a desktop profile.

- `lcp-slow` Largest Contentful Paint is slow — [perf/lcp-slow](https://void-design.vercel.app/rules/perf/lcp-slow)
- `ttfb-slow` Server response (TTFB) is slow — [perf/ttfb-slow](https://void-design.vercel.app/rules/perf/ttfb-slow)
- `fcp-slow` First Contentful Paint is slow — [perf/fcp-slow](https://void-design.vercel.app/rules/perf/fcp-slow)
- `tbt-high` Main thread is blocked by long tasks during load — [perf/tbt-high](https://void-design.vercel.app/rules/perf/tbt-high)
- `js-budget` First-load JavaScript exceeds the budget — [perf/js-budget](https://void-design.vercel.app/rules/perf/js-budget)
- `css-budget` CSS transfer exceeds the budget — [perf/css-budget](https://void-design.vercel.app/rules/perf/css-budget)
- `font-budget` Web font transfer exceeds the budget — [perf/font-budget](https://void-design.vercel.app/rules/perf/font-budget)
- `too-many-fonts` Too many font files are downloaded — [perf/too-many-fonts](https://void-design.vercel.app/rules/perf/too-many-fonts)

Detected by `void perf` and `void audit`. Explain it in a terminal: `void rules perf/cls-high`
