<?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: Heorhii Lavrynenko</title>
    <description>The latest articles on DEV Community by Heorhii Lavrynenko (@mapalocal).</description>
    <link>https://dev.to/mapalocal</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4205307%2Fb7f8d239-c4f7-47b3-b11c-069e0718f5a4.png</url>
      <title>DEV Community: Heorhii Lavrynenko</title>
      <link>https://dev.to/mapalocal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mapalocal"/>
    <language>en</language>
    <item>
      <title>Performance-first WordPress for a real business site: decisions that helped us reach 98 on mobile</title>
      <dc:creator>Heorhii Lavrynenko</dc:creator>
      <pubDate>Sat, 24 Oct 2026 18:48:13 +0000</pubDate>
      <link>https://dev.to/mapalocal/performance-first-wordpress-for-a-real-business-site-decisions-that-helped-us-reach-98-on-mobile-1bhp</link>
      <guid>https://dev.to/mapalocal/performance-first-wordpress-for-a-real-business-site-decisions-that-helped-us-reach-98-on-mobile-1bhp</guid>
      <description>&lt;p&gt;Editorial note: publish as a technical story. Keep the single homepage benchmark in scope, rather than implying site-wide 98 scores. If DEV requests a canonical for a close duplicate, set it to the case URL; this is a distinct English adaptation.&lt;/p&gt;

&lt;p&gt;I recently worked on the website for a small digital-marketing project in Spain. It needed the things most business websites need: service landing pages, an editorial section, contact forms, analytics, a consent interface, and room to grow.&lt;/p&gt;

&lt;p&gt;We used WordPress, Kadence, and the Gutenberg editor. One of my goals was to avoid turning performance into a separate rescue project after the design was finished.&lt;/p&gt;

&lt;p&gt;The homepage eventually recorded a 98/100 mobile Performance score and 98/100 desktop score in PageSpeed Insights on October 22, 2026. GTmetrix rated it A in a separate test.&lt;/p&gt;

&lt;p&gt;Here are the choices I think mattered most.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. A familiar theme, but controlled components
&lt;/h3&gt;

&lt;p&gt;We did not build a CMS from scratch. Kadence gave us the foundation, and Gutenberg made content editing practical.&lt;/p&gt;

&lt;p&gt;For shared interface elements such as the header and footer, we used small custom modules rather than introducing an all-purpose visual builder for every detail.&lt;/p&gt;

&lt;p&gt;We also reused page patterns for services, sectors, and locations without making every landing page identical. The same structure can support very different content, but each page should still answer its own question.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. CSS before another JavaScript dependency
&lt;/h3&gt;

&lt;p&gt;Menus, forms, consent, and some components require JavaScript. That is fine.&lt;/p&gt;

&lt;p&gt;For animations and responsive layout, though, I preferred native CSS whenever it could do the job. I wanted to avoid adding a whole library for a small visual effect.&lt;/p&gt;

&lt;p&gt;The important question was not "Can I remove every script?" It was "What work does this script do, and does every page need it?"&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Images are a layout and loading problem, not just a format problem
&lt;/h3&gt;

&lt;p&gt;We prepared most content images in WebP and used different hero assets for mobile and desktop where needed.&lt;/p&gt;

&lt;p&gt;Above-the-fold imagery received a different loading priority from images lower down the page.&lt;/p&gt;

&lt;p&gt;The goal was not just a smaller file. It was to give the browser the right asset early enough for the first screen to make sense.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Self-hosted fonts
&lt;/h3&gt;

&lt;p&gt;We used locally hosted Inter WOFF2 files, with font-display: swap and a priority for the font needed early in the page.&lt;/p&gt;

&lt;p&gt;Fonts are easy to ignore in performance discussions, but their loading behavior affects how the first content appears.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Third-party tags need deliberate placement
&lt;/h3&gt;

&lt;p&gt;Business sites need measurement. Ours also needed Google Tag Manager and a consent flow.&lt;/p&gt;

&lt;p&gt;We separated early consent initialization from later analytics loading and controlled how third-party code entered the page.&lt;/p&gt;

&lt;p&gt;This comes with a trade-off: delaying tracking can affect the capture of short visits and early interactions. That is why I treat measurement integrity as part of the performance work, not something to sacrifice for the score.&lt;/p&gt;

&lt;h3&gt;
  
  
  Results and context
&lt;/h3&gt;

&lt;p&gt;The homepage test on October 22 showed 98/100 in mobile Performance, 98/100 in desktop Performance, and 100/100 in the Lighthouse SEO category. GTmetrix gave the homepage an A grade in its October 20 report.&lt;/p&gt;

&lt;p&gt;Those are snapshots of a specific page, not a universal score for every URL or real-user metric.&lt;/p&gt;

&lt;p&gt;Separately, Google Search Console recorded 106 organic clicks and 14,785 impressions between September 17 and October 20. We also worked on the site's content and SEO architecture, so I would not attribute that search growth to speed alone.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I'd repeat
&lt;/h3&gt;

&lt;p&gt;Start with the actual page types and the user journey. Define the components you need, think about loading priorities early, and measure the resulting pages.&lt;/p&gt;

&lt;p&gt;It's much easier to stay disciplined with a WordPress site when performance is part of the design process rather than a late plugin-shopping exercise.&lt;/p&gt;

&lt;p&gt;The full case, including screenshots and the Spanish write-up, is here:&lt;br&gt;
&lt;a href="https://mapalocal.es/casos-de-exito/mapalocal-wordpress-pagespeed-98/" rel="noopener noreferrer"&gt;https://mapalocal.es/casos-de-exito/mapalocal-wordpress-pagespeed-98/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm curious how other WordPress developers balance analytics and consent requirements with fast initial rendering.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>performance</category>
      <category>seo</category>
    </item>
  </channel>
</rss>
