Fix JavaScript Forced Reflows

How to optimize tokyoportfolio.frontend.stg.vercel.app

Next.js SiteScore: 76/100Analyzed March 2026Re-analyze this site

Fix JavaScript Forced Reflows

High Impact+10 points estimated

Why It Matters

JavaScript is causing 149ms of forced reflows by reading layout properties after DOM changes, blocking the main thread.

How to Fix

Batch DOM reads and writes to avoid layout thrashing. Use React's useLayoutEffect sparingly and prefer useEffect. Implement virtual scrolling for large lists using libraries like react-window. Cache DOM measurements and avoid accessing offsetWidth/offsetHeight in loops.

0Needs Improvement

What This Score Means

A score of 76 falls in the "Needs Improvement" range (50-89). While it is better than poor (0-49), you should aim for 90+ to provide an optimal user experience and maximize SEO benefits.

This site is slower than approximately 35% of similar sites. The main issues affecting performance are image optimization, JavaScript execution time, and layout stability.

Addressing these issues could improve your conversion rate by 15-20% and boost your search engine rankings.

Core Web Vitals Analysis

LCP

Largest Contentful Paint

4.9s
Poor

Good: < 2.5s

Measures how long it takes for the main content to appear on screen

INP

Interaction to Next Paint

187ms
Good

Good: < 200ms

Measures how quickly the page responds to user interactions

CLS

Cumulative Layout Shift

0.00
Good

Good: < 0.1

Measures visual stability - how much content shifts during page load

AI Performance Analysis

This Next.js site has below-average performance with a score of 76/100. The biggest problem is render-blocking CSS files that are delaying your First Contentful Paint by 600ms, with one stylesheet containing 87% unused CSS rules that could save 18KB. Additionally, your Largest Contentful Paint is suffering at 4.9 seconds and Time to Interactive is extremely slow at 10.5 seconds, largely due to forced reflows in your JavaScript and inefficient resource loading. Eliminating unused CSS, optimizing JavaScript execution, and implementing better caching strategies could improve your Core Web Vitals significantly and provide a much better user experience.

Other Optimization Recommendations

Eliminate Render Blocking CSS

High Impact+12 points estimated

Why It Matters:

CSS files are blocking initial render by 580ms, directly delaying FCP and potentially LCP.

How to Fix:

In your Next.js app, inline critical above-the-fold CSS using next/dynamic with ssr: false for non-critical components. Split CSS by route using Next.js automatic code splitting. Use next/head to preload CSS files or consider CSS-in-JS solutions like styled-components for better performance.

Remove Unused CSS Rules

Medium Impact+8 points estimated

Why It Matters:

87% of your main CSS bundle (18KB) is unused, wasting bandwidth and parse time.

How to Fix:

Use PurgeCSS with Next.js to automatically remove unused styles during build. Configure Tailwind CSS purging properly in your tailwind.config.js. Implement CSS modules or styled-components to ensure only component-specific styles are loaded. Use Next.js built-in CSS optimization features.

Keep Your Site Fast After Optimization

Once your site is optimized, maintain that speed. Use DeployHQ for zero-downtime, automated deployments—so performance fixes and updates go live safely every time, without breaking your site.

Explore DeployHQ →Trusted by engineering teams shipping high-performance sites

Want to Analyze YOUR Website?

Get AI-powered performance insights with actionable fixes in 30 seconds

More Next.js Speed Tests

Next.js Performance Resources

Frequently Asked Questions