Largest Contentful Paint
Good: < 2.5s
Measures how long it takes for the main content to appear on screen
How to optimize tokyoportfolio.frontend.stg.vercel.app
JavaScript is causing 149ms of forced reflows by reading layout properties after DOM changes, blocking the main thread.
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.
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.
Largest Contentful Paint
Good: < 2.5s
Measures how long it takes for the main content to appear on screen
Interaction to Next Paint
Good: < 200ms
Measures how quickly the page responds to user interactions
Cumulative Layout Shift
Good: < 0.1
Measures visual stability - how much content shifts during page load
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.
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.
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.
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.
Get AI-powered performance insights with actionable fixes in 30 seconds
More Next.js Speed Tests
Hero image and other assets waste 20 KiB and delay LCP by 150ms due to insufficient compression.
317 KiB of unused JavaScript delays LCP by 300ms, primarily from Google Ads and GTM scripts that aren't fully utilized.
The redirect from solares.do to www.solares.do adds 780ms delay to both LCP and FCP, significantly impacting page load time.
CSS files are blocking initial page render by 320ms, directly impacting First Contentful Paint and user experience.