<?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: brown97 loong</title>
    <description>The latest articles on DEV Community by brown97 loong (@brown97_loong_ce64cbba32c).</description>
    <link>https://dev.to/brown97_loong_ce64cbba32c</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%2F3603301%2F011c9ca3-36b9-4c6e-8546-2d85d9eb5d6d.png</url>
      <title>DEV Community: brown97 loong</title>
      <link>https://dev.to/brown97_loong_ce64cbba32c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/brown97_loong_ce64cbba32c"/>
    <language>en</language>
    <item>
      <title>How I Cut My WordPress Load Time from 8.7s to 1.8s (Real Case Study)</title>
      <dc:creator>brown97 loong</dc:creator>
      <pubDate>Fri, 06 Mar 2026 07:47:36 +0000</pubDate>
      <link>https://dev.to/brown97_loong_ce64cbba32c/how-i-cut-my-wordpress-load-time-from-87s-to-18s-real-case-study-l8p</link>
      <guid>https://dev.to/brown97_loong_ce64cbba32c/how-i-cut-my-wordpress-load-time-from-87s-to-18s-real-case-study-l8p</guid>
      <description>&lt;p&gt;Back in 2018, I ran a content site doing 500K page views/month — and made almost nothing from AdSense.&lt;/p&gt;

&lt;p&gt;I thought it was a content problem. It wasn't. It was &lt;strong&gt;8.7 seconds&lt;/strong&gt; of load time. By the time the page finished loading, users had already left, and ads never finished rendering.&lt;/p&gt;

&lt;p&gt;Here's exactly what I did to fix it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 0: Diagnose First, Don't Guess
&lt;/h2&gt;

&lt;p&gt;Most people jump straight to installing caching plugins. Wrong order.&lt;/p&gt;

&lt;p&gt;Look at the red items. Fix the worst ones first. &lt;strong&gt;Always test mobile AND desktop&lt;/strong&gt; — Google uses mobile-first indexing, and mobile scores are almost always 20–30 points lower.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1: Fix Your Hosting
&lt;/h2&gt;

&lt;p&gt;Shared hosting is a silent killer. In 2019 I ran several image sites on shared hosting; at 10K daily visitors, TTFB hit 2+ seconds regularly.&lt;/p&gt;

&lt;p&gt;After switching to a VPS (Cloudways), TTFB dropped to &lt;strong&gt;under 200ms&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick wins:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Move to VPS if you're still on shared hosting (Hostinger, Vultr, Cloudways are all solid)&lt;/li&gt;
&lt;li&gt;Pick a server region close to your target audience&lt;/li&gt;
&lt;li&gt;Upgrade PHP to 8.0+ immediately — it's a free performance gain that many older sites skip&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 2: Fix Your Images (This Alone Fixes 70% of Cases)
&lt;/h2&gt;

&lt;p&gt;Images are responsible for slow performance on most WordPress sites. People upload raw 5MB JPGs and wonder why their page weighs 8MB.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Convert to WebP.&lt;/strong&gt; After migrating one of my content sites, total page size dropped from 4.2MB → 1.8MB, and load time improved by ~1 second instantly.&lt;/p&gt;

&lt;p&gt;I use &lt;a href="https://www.imagetrix.app/tools/image-converter/png-to-webp" rel="noopener noreferrer"&gt;Imagetrix&lt;/a&gt; to batch convert — free, no login required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Other image rules I follow:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Max width: 1200px for article images&lt;/li&gt;
&lt;li&gt;Max file size: under 200KB per image&lt;/li&gt;
&lt;li&gt;Compress before upload: &lt;a href="https://www.imagetrix.app/tools/image-compressor" rel="noopener noreferrer"&gt;Imagetrix compressor&lt;/a&gt; handles this well&lt;/li&gt;
&lt;li&gt;Enable lazy loading (WP Rocket or native WordPress, but verify it's actually working in DevTools)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 3: Set Up Caching
&lt;/h2&gt;

&lt;p&gt;This is where you get the biggest speed jump.&lt;/p&gt;

&lt;p&gt;Caching pre-generates static HTML so WordPress doesn't run PHP + database queries on every request.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My current stack:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WP Rocket&lt;/strong&gt; ($59/yr) — page cache, browser cache, minification, lazy loading, preloading all in one. Worth every dollar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Budget alternative:&lt;/strong&gt; LiteSpeed Cache (free, excellent if your host runs LiteSpeed) or W3 Total Cache&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ &lt;strong&gt;WooCommerce note:&lt;/strong&gt; Exclude cart and checkout pages from caching — caching these breaks them.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4: Add a CDN
&lt;/h2&gt;

&lt;p&gt;CDN serves your static files (images, CSS, JS) from nodes closest to each user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My setup:&lt;/strong&gt; Cloudflare free tier for everything. Change your nameservers, enable proxy mode, done — about 10 minutes.&lt;/p&gt;

&lt;p&gt;Bonus: you also get DDoS protection, free SSL, and bot filtering.&lt;/p&gt;

&lt;p&gt;For sites with heavy Asian traffic, &lt;strong&gt;BunnyCDN&lt;/strong&gt; has better node coverage and is very cheap (pay-per-GB).&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 5: Code-Level Cleanup
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Remove Unused Plugins (Delete, Not Disable)
&lt;/h3&gt;

&lt;p&gt;Every plugin loads extra CSS/JS. Disabled plugins still exist on disk and some themes still load their assets. &lt;strong&gt;Delete&lt;/strong&gt; what you don't use.&lt;/p&gt;

&lt;h3&gt;
  
  
  Minify + Defer JS
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Enable CSS/JS minification via WP Rocket or Autoptimize&lt;/li&gt;
&lt;li&gt;Be careful with JS merging — it can break things, test individually&lt;/li&gt;
&lt;li&gt;Enable "Delay JavaScript execution" in WP Rocket — this usually boosts PageSpeed score significantly&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 6: Clean Your Database
&lt;/h2&gt;

&lt;p&gt;After years of running, WordPress accumulates post revisions, spam comments, and stale transient data.&lt;/p&gt;

&lt;p&gt;One of my 6-year-old sites had &lt;strong&gt;40,000+ revision records&lt;/strong&gt;. After cleanup with &lt;a href="https://wordpress.org/plugins/wp-optimize/" rel="noopener noreferrer"&gt;WP-Optimize&lt;/a&gt; (free), database query speed improved ~30%.&lt;/p&gt;

&lt;p&gt;Set it to auto-clean weekly. Done.&lt;/p&gt;

&lt;p&gt;If your host supports &lt;strong&gt;Redis&lt;/strong&gt;, configure Redis object caching — major win for DB-heavy sites.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Result
&lt;/h2&gt;

&lt;p&gt;For that 2018 site that loaded in 8.7 seconds:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Impact&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Switched to Cloudways VPS&lt;/td&gt;
&lt;td&gt;TTFB: 2.1s → 0.18s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Converted all images to WebP&lt;/td&gt;
&lt;td&gt;Page size: -58%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Installed WP Rocket&lt;/td&gt;
&lt;td&gt;Full page caching enabled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Added Cloudflare CDN&lt;/td&gt;
&lt;td&gt;Global static asset delivery&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cleaned DB + removed 30+ plugins&lt;/td&gt;
&lt;td&gt;Query speed +30%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Final result: 1.8 second load time. PageSpeed mobile score: 31 → 95.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Takeaway
&lt;/h2&gt;

&lt;p&gt;Performance optimization isn't a one-time task — it's an ongoing process. But the order matters:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Measure first&lt;/li&gt;
&lt;li&gt;Fix hosting&lt;/li&gt;
&lt;li&gt;Fix images&lt;/li&gt;
&lt;li&gt;Add caching&lt;/li&gt;
&lt;li&gt;Add CDN&lt;/li&gt;
&lt;li&gt;Clean up code and database&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Speed alone won't save bad content, and great content can't overcome 8-second load times. You need both.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Tools I use for image optimization: &lt;a href="https://www.imagetrix.app" rel="noopener noreferrer"&gt;Imagetrix.app&lt;/a&gt; — free WebP conversion, compression, resizing, and more.&lt;/em&gt;``&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Should I upgrade the server configuration?</title>
      <dc:creator>brown97 loong</dc:creator>
      <pubDate>Thu, 12 Feb 2026 08:47:52 +0000</pubDate>
      <link>https://dev.to/brown97_loong_ce64cbba32c/should-i-upgrade-the-server-configuration-il9</link>
      <guid>https://dev.to/brown97_loong_ce64cbba32c/should-i-upgrade-the-server-configuration-il9</guid>
      <description>&lt;p&gt;I have a 4-core, 4GB RAM server currently running a Next.js project. I've installed Sharp and am currently using pm2 to run the program. I have two questions: 1. Can I only use pm2 to run the program? 2. If concurrency increases, can my server handle the load?&lt;/p&gt;

</description>
      <category>help</category>
      <category>nextjs</category>
      <category>node</category>
      <category>performance</category>
    </item>
  </channel>
</rss>
