---
title: "Render-blocking resources delay first paint (perf/render-blocking)"
description: "perf/render-blocking: Synchronous scripts in <head> and large stylesheets stop the browser from painting until they are fetched and executed."
canonical: https://void-design.vercel.app/rules/perf/render-blocking
lastModified: 2026-09-16
---

# Render-blocking resources delay first paint

`perf/render-blocking` · severity **warn** · category Performance · detected by `void perf` and `void audit`

## Why it matters

Synchronous scripts in <head> and large stylesheets stop the browser from painting until they are fetched and executed.

## How to fix it

Add defer or type="module" to scripts, load third-party tags async/lazily, and keep blocking CSS small.

## Example

```
<script src="/app.js" defer></script>
```

## 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-background-image` LCP element is a CSS background image — [perf/lcp-background-image](https://void-design.vercel.app/rules/perf/lcp-background-image)
- `image-oversized` Image is much larger than its rendered size — [perf/image-oversized](https://void-design.vercel.app/rules/perf/image-oversized)
- `image-legacy-format` Image served in a legacy format — [perf/image-legacy-format](https://void-design.vercel.app/rules/perf/image-legacy-format)
- `images-missing-dimensions` Images without width/height or aspect-ratio — [perf/images-missing-dimensions](https://void-design.vercel.app/rules/perf/images-missing-dimensions)
- `no-text-compression` Text resources are served uncompressed — [perf/no-text-compression](https://void-design.vercel.app/rules/perf/no-text-compression)
- `cache-headers` Hashed static assets are not cached long-term — [perf/cache-headers](https://void-design.vercel.app/rules/perf/cache-headers)
- `third-party-heavy` Heavy third-party footprint — [perf/third-party-heavy](https://void-design.vercel.app/rules/perf/third-party-heavy)
- `dom-size` DOM is very large — [perf/dom-size](https://void-design.vercel.app/rules/perf/dom-size)

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