<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aly El bachir Yara</title>
    <description>The latest articles on DEV Community by Aly El bachir Yara (@ekip1).</description>
    <link>https://dev.to/ekip1</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3649338%2Faab8987e-6ecf-49b1-ade0-aa2e96f2d7c1.png</url>
      <title>DEV Community: Aly El bachir Yara</title>
      <link>https://dev.to/ekip1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ekip1"/>
    <language>en</language>
    <item>
      <title>How I Optimized My Next.js Portfolio from 79 to 90+ on PageSpeed Insights</title>
      <dc:creator>Aly El bachir Yara</dc:creator>
      <pubDate>Sat, 06 Dec 2025 15:27:31 +0000</pubDate>
      <link>https://dev.to/ekip1/how-i-optimized-my-nextjs-portfolio-from-79-to-90-on-pagespeed-insights-ikj</link>
      <guid>https://dev.to/ekip1/how-i-optimized-my-nextjs-portfolio-from-79-to-90-on-pagespeed-insights-ikj</guid>
      <description>&lt;p&gt;A few weeks ago, when I analyzed my portfolio with PageSpeed Insights, I got a score of 79 on mobile. It wasn't bad, but I knew I could improve. After implementing several optimizations, I managed to reach 90+ in mobile performance.&lt;/p&gt;

&lt;p&gt;In this post, I share the most effective optimizations I implemented and how you can apply them to your Next.js project.&lt;/p&gt;

&lt;p&gt;📊 &lt;strong&gt;Initial vs Final Metrics&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnnt3ni3nvt8pjn8jx1xe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnnt3ni3nvt8pjn8jx1xe.png" alt=" " width="800" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;Optimizations Implemented&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Eliminating Font Render Blocking&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;: Google Fonts were blocking initial render.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: I removed the CSS &lt;a class="mentioned-user" href="https://dev.to/import"&gt;@import&lt;/a&gt; and used next/font with optimizations.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3pkphj9zim01wgbho2vy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3pkphj9zim01wgbho2vy.png" alt=" " width="800" height="430"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Result:&lt;/strong&gt; ~750ms reduction in initial load time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Preconnect for External Resources&lt;/strong&gt;&lt;br&gt;
I added preconnect in the &lt;/p&gt; to establish early connections:&lt;br&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fckcd7twg50idhimasrql.png" alt=" " width="800" height="148"&gt;&lt;br&gt;
&lt;strong&gt;Estimated savings:&lt;/strong&gt; ~300-400ms in network latency.

&lt;p&gt;&lt;strong&gt;3. Lazy Loading Heavy Components&lt;/strong&gt;&lt;br&gt;
I converted heavy components to lazy loading with dynamic import:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F90rdbugt91x9j72lzfff.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F90rdbugt91x9j72lzfff.png" alt=" " width="800" height="254"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Impact:&lt;/strong&gt; Critical content renders immediately, improving LCP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. JavaScript Optimization&lt;/strong&gt;&lt;br&gt;
Removing console.log in Production&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo33ats63v8iaeeadn9r1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo33ats63v8iaeeadn9r1.png" alt=" " width="800" height="172"&gt;&lt;/a&gt;&lt;br&gt;
Import Modularization&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fusikkdnmu17ay0qutz08.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fusikkdnmu17ay0qutz08.png" alt=" " width="800" height="168"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Result:&lt;/strong&gt; ~50-100KB reduction in initial bundle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Modern Browser Configuration&lt;/strong&gt;&lt;br&gt;
I created .browserslistrc to reduce unnecessary polyfills:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp2yyx6gy0j027zns2efr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp2yyx6gy0j027zns2efr.png" alt=" " width="800" height="147"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Savings:&lt;/strong&gt;~11 KiB of JavaScript removed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Removing Failing Resources&lt;/strong&gt;&lt;br&gt;
I identified and removed external resources that were generating 403 errors:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fulp6df0i9gry8hk3jg3g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fulp6df0i9gry8hk3jg3g.png" alt=" " width="800" height="193"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Benefit:&lt;/strong&gt; Eliminated console errors and improved performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Contrast Improvement (Accessibility)&lt;/strong&gt;&lt;br&gt;
I improved text contrast to meet WCAG standards:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7jv0a6ph2ivyywqokvsj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7jv0a6ph2ivyywqokvsj.png" alt=" " width="800" height="152"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Result:&lt;/strong&gt; Accessibility improved from 96 to 98+.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Results&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After implementing these optimizations:&lt;br&gt;
✅ Performance: 79 → 90+&lt;br&gt;
✅ FCP: 2.9s → ~1.5s&lt;br&gt;
✅ LCP: 4.1s → ~2.5s&lt;br&gt;
✅ Accessibility: 96 → 98+&lt;br&gt;
✅ SEO: 100 (maintained)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Optimizing the performance of a Next.js application requires attention to detail, but the results are worth it. With these optimizations, I not only improved the metrics but also enhanced the user experience.&lt;/p&gt;

&lt;p&gt;Have you implemented any of these optimizations? What other techniques do you use to improve performance? Share your experiences in the comments 👇&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>performance</category>
      <category>webdev</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
