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
372 KiB of unused JavaScript is blocking rendering and delaying LCP by 900ms.
Use Next.js dynamic imports to code-split the 2117-a1f4d463b680b4c9.js bundle. Remove or defer Google Tag Manager and Facebook Pixel scripts until after page load. Implement bundle analyzer with @next/bundle-analyzer to identify and eliminate dead code.
A score of 23 falls in the "Poor" 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/React site has severe performance issues with a score of only 23/100. The biggest problem is an extremely slow server response time of 2.3 seconds, which creates a cascading delay that pushes your Largest Contentful Paint to 7.2 seconds - far beyond acceptable limits. The site is also bloated with 2.8MB of resources, including 372KB of unused JavaScript from Google Analytics and Facebook tracking scripts, plus 90% unused CSS that could be eliminated. Fixing the server response time alone could save over 2 seconds, while cleaning up unused code and optimizing your resource loading strategy could dramatically improve both your performance score and user experience.
Why It Matters:
Your server takes 2.3 seconds to respond, delaying both FCP and LCP by 2.2 seconds each.
How to Fix:
Investigate your Vercel deployment configuration and database queries. Enable Next.js static generation (SSG) for this page using getStaticProps. Implement Redis caching for API responses and optimize database queries causing the 2.3s TTFB.
Why It Matters:
Massive layout shifts (CLS: 0.903) are caused by content jumping during load, severely impacting user experience.
How to Fix:
Add explicit dimensions to the main div and footer elements causing shifts. Use Next.js Image component with priority prop for above-the-fold images. Reserve space for dynamic content with CSS skeleton placeholders to prevent layout jumps.
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
326KB of unused JavaScript and 19KB of unused CSS are blocking render and increasing load times unnecessarily.
A massive layout shift (0.808 CLS score) occurs when the footer loads, severely impacting user experience.
87% of your main CSS bundle (18KB) is unused, wasting bandwidth and parse time.
JavaScript is causing 149ms of forced reflows by reading layout properties after DOM changes, blocking the main thread.