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
Unsized images cause a massive 0.90 CLS score, creating jarring visual instability as content loads.
Add explicit width and height attributes to the Instagram icon and other footer images. Use Next.js Image component with proper dimensions for all carousel images. Set CSS aspect-ratio or min-height on image containers to reserve space before loading.
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 site has severe performance issues with a critically low score of 23/100. The biggest problem is an extremely slow server response time of 2.7 seconds, which cascades into poor Core Web Vitals including a 14-second Time to Interactive and massive layout shifts (0.9 CLS score). The site is also loading 372 KB of unused JavaScript and has render-blocking CSS that delays initial page rendering. Fixing the server response time and removing unused code could improve the score by 40+ points and dramatically enhance user experience.
Why It Matters:
Your server response takes 2.7 seconds, blocking all other page resources and severely delaying LCP by 2.6 seconds.
How to Fix:
Investigate the Next.js backend performance on Vercel - check for slow database queries, API calls, or server-side rendering issues. Enable Edge Runtime for faster cold starts. Consider implementing ISR (Incremental Static Regeneration) for this buy page if content allows.
Why It Matters:
The LCP image has lazy loading applied and lacks priority hints, causing a 4.8 second resource load delay.
How to Fix:
Remove loading='lazy' from the first carousel image and add fetchpriority='high'. Use Next.js Image component with priority={true} prop. Preload the LCP image in the document head using <link rel='preload' as='image'> for the first carousel slide.
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
Massive layout shifts (CLS: 0.903) are caused by content jumping during load, severely impacting user experience.
372 KiB of unused JavaScript is blocking rendering and delaying LCP by 900ms.
Your server takes 2.3 seconds to respond, delaying both FCP and LCP by 2.2 seconds each.
The LCP image has lazy loading applied and lacks priority hints, causing a 4.8 second resource load delay.