If you are serious about frontend performance, you must understand the Critical Rendering Path (CRP). This is not optional knowledge — this is foundational.
- What is Critical Rendering Path?
Critical Rendering Path (CRP) is the sequence of steps the browser performs to convert HTML, CSS, and JavaScript into pixels on the screen.
In simple terms:
CRP = How browser turns your code into visible UI.
The goal of optimizing CRP is:
- Reduce time to first render
- Reduce Time to First Contentful Paint (FCP)
- Improve Largest Contentful Paint (LCP)
- Improve overall perceived performance
- Step-by-Step Breakdown of Critical Rendering Path
Let’s break this into technical phases.
Step 1: HTML Parsing → DOM Construction
When browser receives HTML:
<html>
<body>
<h1>Hello</h1>
</body>
</html>
Browser parses it and builds a DOM (Document Object Model) tree.
What is DOM?
A tree structure representing HTML elements.
Important:
HTML parsing is incremental
Parsing stops when browser encounters blocking scripts
Step 2: CSS Parsing → CSSOM Construction
Browser then processes CSS:
h1 {
color: red;
}
It creates a CSSOM (CSS Object Model).
Why CSSOM matters?
Because browser needs:
DOM + CSSOM → to know what to render and how to style it.
Important:
CSS is render-blocking.
Browser cannot render until CSSOM is built.
Step 3: JavaScript Execution
When browser encounters:
<script src="app.js"></script>
Default behavior:
- Stop HTML parsing
- Download JS
- Execute JS
- Resume parsing
- This is why JavaScript is parser-blocking.
If JS modifies DOM or CSSOM, browser may need to recalculate layout.
Step 4: Render Tree Construction
Now browser combines:
- DOM
- CSSOM
- Into a Render Tree
Render tree includes only visible elements.
Example:
- display: none elements → NOT included
- → NOT included
Step 5: Layout (Reflow)
Browser calculates:
- Element dimensions
- Position on screen
- Box model
- Flow
This process is called:
Layout or Reflow
This step is expensive.
If layout changes, browser recalculates positions again.
Step 6: Paint
Browser converts layout tree into pixels.
It paints:
- Text
- Colors
- Borders
- Shadows
- Images
Step 7: Compositing
If elements use:
- transform
- opacity
- position: fixed
- z-index layers
Browser creates separate layers and composites them together.
- What Causes Performance Issues in CRP?
Now let’s get serious.
These are real-world performance killers.
Render Blocking CSS
Problem:
Large CSS files
Multiple CSS files
CSS in
blocking renderingWhy bad?
Browser must build CSSOM before painting anything.
Fix:
- Minify CSS
- Remove unused CSS
- Use Critical CSS
- Load non-critical CSS async
Example:
<link rel="preload" href="styles.css" as="style" onload="this.rel='stylesheet'">
Parser Blocking JavaScript
Problem:
<script src="app.js"></script>
Browser stops parsing.
Fix:
Use:
<script src="app.js" defer></script>
Large DOM Size
Huge DOM = slow layout.
Example:
- Thousands of nodes
- Deep nested trees
Fix:
- Avoid unnecessary wrappers
- Use virtualization (e.g., infinite lists)
- Remove unused elements
Layout Thrashing (Forced Synchronous Layout)
Example:
element.style.width = "100px";
element.offsetHeight;
element.style.width = "200px";
You are:
- Writing
- Reading layout
- Writing again
Browser recalculates layout multiple times.
Fix:
Batch reads and writes.
Use:
- requestAnimationFrame
- Avoid measuring immediately after mutating
Large Images Without Optimization
Huge images delay paint and LCP.
Fix:
- Use WebP/AVIF
- Lazy load below-fold images
- Compress assets
<img src="hero.webp" loading="lazy">
Please feel free to add more in comments
Final Summary
Critical Rendering Path is:
The pipeline that turns your HTML, CSS, and JS into pixels.
If you optimize CRP:
- Your site loads faster
- Users stay longer
- SEO improves
- Conversions increase
Want More Content Like This?
If you found this helpful and want practical developer insights, performance tips, and real-world coding content, make sure to check out my:
Instagram for short, actionable tech reels
YouTube channel for in-depth coding and system design videos
More valuable content is coming soon, see you there.
Top comments (0)