Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk12 min

How to Fix a Slow WordPress Site on a LEMP Server

A measurement-first guide to finding and fixing WordPress slowness on Nginx, PHP-FPM and MySQL/MariaDB, with cache rules, diagnostics and safe tuning steps.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A slow WordPress site on Linux, Nginx, MySQL (or MariaDB), and PHP-FPM is usually not fixed by one “magic” setting. First separate slow server response (high time to first byte, or TTFB) from slow browser rendering. Then measure Nginx, PHP-FPM, WordPress, the database, cache behavior, and machine resources in that order. For many public pages, a correctly configured full-page cache produces the largest improvement because Nginx can return HTML without starting PHP or querying the database. Personalized pages, POST requests, and query-string variants must bypass that cache.

The procedures below let you identify the bottleneck before changing configuration. Exact PHP-FPM worker counts, database buffer sizes, cache lifetimes, and Nginx directives depend on your traffic, memory, plugins, and content; copy them only after observing your workload.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

1. Establish a baseline before changing anything

Measure representative URLs while the site is anonymous and, separately, while logged in. Include the home page, a typical post, a search or filtered URL, and any important personalized endpoint. Repeat the measurements at quiet and busy times so a temporary traffic spike is not mistaken for a configuration defect.

Record the measurements that identify the layer at fault

What to record Why it matters
TTFB and total response time High TTFB indicates waiting on the network, Nginx, PHP-FPM, WordPress, the database, or a cache miss. A fast TTFB followed by a long total time points more often to browser assets.
HTTP status and redirect chain Unexpected redirects, 5xx errors, or retries add latency before a page can render.
Cache status Mark each request as HIT, MISS, BYPASS, or stale. A page that should be cached but is always a MISS needs a rule or purge investigation.
CPU, memory, swap, disk I/O and disk latency Resource pressure can make every software layer appear slow. Adding processes when RAM is exhausted can cause swapping and worsen latency.
PHP-FPM active and queued workers A full pool makes requests wait even when PHP scripts themselves are short.
Database latency and slow-query activity Repeated or expensive queries can dominate TTFB and consume PHP workers.

A simple repeatable header test is useful for a first comparison:

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
curl -s -o /dev/null -w 'status=%{http_code} ttfb=%{time_starttransfer} total=%{time_total}n' https://example.com/

Run it several times against the same URL, then repeat with a logged-in session using an appropriate authenticated test method. The command is a measurement aid, not a substitute for a real browser test: it does not show layout, image decoding, JavaScript, fonts, or third-party requests.

Classify the delay

  • High TTFB: investigate cache misses, Nginx routing, PHP-FPM queueing, WordPress execution, database work, network distance, and saturated hardware.
  • Fast TTFB but slow visual load: inspect image sizes, CSS, JavaScript, fonts, blocking scripts, and third-party requests.
  • Only logged-in pages are slow: compare the uncached WordPress path, admin-bar effects, personalized queries, and plugin behavior; these requests normally bypass public page cache.
  • Only one URL or feature is slow: look for a plugin, theme template, query-string rule, external API call, or unusually large response specific to that path.

2. Check Nginx before tuning PHP

Nginx should serve static files directly and pass only dynamic requests to PHP-FPM. A broad rewrite that sends images, CSS, JavaScript, or fonts through PHP adds needless work.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Inspect access and error logs

Review the access log for response times, status codes, repeated redirects, and whether static assets are being handled by the expected location block. In the error log, look for upstream timeouts, connection failures, retries, permission errors, and messages indicating that the PHP-FPM socket cannot be reached. Paths and log names vary by distribution, so use the locations configured on your server.

Validate configuration before reloading it:

nginx -t

Do not reload a configuration that fails the syntax test. If a change increases errors or latency, restore the previous version and rerun the baseline.

Verify the WordPress front controller

WordPress normally sends unknown, non-file paths to its front controller. Confirm that the rewrite does not create a redirect loop and that existing files are served without invoking PHP. Check that the FastCGI upstream socket is reachable and that SCRIPT_FILENAME maps to the actual document root. A wrong path can produce slow retries, 404s, or scripts executing from an unexpected location.

Improve static delivery safely

  • Enable compression for text-based responses when CPU capacity allows it.
  • Give versioned CSS, JavaScript, font, and image assets long-lived cache headers so browsers do not redownload unchanged files.
  • Do not apply a blanket rule that caches or compresses responses containing private user data.
  • Keep file permissions and ownership correct; repeated permission failures can look like application slowness.

3. Add full-page caching for public HTML

WordPress’s optimization guidance describes caching as the quickest high-benefit starting point for many installations. A reverse-proxy or Nginx FastCGI cache can return a stored HTML response without invoking PHP or querying the database for every anonymous request. A compatible WordPress page-cache plugin can provide similar behavior while adding purge integration from inside WordPress.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.

Nginx FastCGI cache versus a WordPress page-cache plugin

Consideration Nginx FastCGI cache WordPress page-cache plugin
Best fit Public pages where server-level control and low per-request overhead matter. Sites where editors need WordPress-visible cache controls and integrations.
Work avoided Can prevent the request from reaching PHP and the database at all. Can avoid PHP and database work when configured as a true page cache; some plugins also optimize assets.
Purge and publishing Requires reliable purge or invalidation hooks when posts, menus, widgets, or related pages change. Often exposes purge controls in WordPress, but the integration must still invalidate every affected URL.
Bypass rules Must be implemented in Nginx for cookies, methods, paths, and query strings. Must be checked in the plugin and any upstream Nginx or CDN layer; two layers can disagree.
Operational complexity More server administration and careful cache-key design. Less server configuration, but another application component to maintain and monitor.
Failure mode A bad rule can serve stale or private HTML to the wrong visitor. A bad rule can create stale content, cache loops, or plugin conflicts.
Observability Inspect response headers, cache files, and Nginx logs. Use plugin diagnostics plus response headers and origin logs.
Memory use Uses configured cache storage and metadata outside PHP. Uses plugin and server resources; exact usage depends on implementation.

Define what must bypass the page cache

Never treat every response as public HTML. Exclude at least:

  • POST and other state-changing methods.
  • Authenticated requests and responses carrying login or session cookies.
  • Cart, checkout, account, preview, and other personalized paths.
  • Requests whose query strings change the output, unless each variant has a deliberate cache key.
  • Administrative and diagnostic endpoints.

Test both the first request (expected MISS) and the next request (expected HIT), then verify that a logged-in browser receives its own response. Publish or edit a test post and confirm that the post, home page, feeds, category pages, and any related navigation are purged. A cache that is fast but serves yesterday’s content or another user’s data is a production defect.

Understand the cache chain

A typical chain is browser cache, CDN, reverse-proxy full-page cache, and a file-based page cache. More layers can reduce origin work, but they also multiply invalidation paths. Identify which layer generated each response and purge in the correct order. If a CDN or proxy is in front of Nginx, inspect its headers rather than assuming an origin MISS means the visitor missed every cache.

4. Use persistent object caching for repeated database reads

Page caching serves complete public responses. It does not help a logged-in dashboard, an uncached API request, or a cache-miss that still has to build the page. WordPress explains that without persistent object caching, the web server repeatedly reads options and other objects from the database on each request. A Redis- or Memcached-backed object cache keeps reusable objects between requests and can lower TTFB when database reads are the limiting factor.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Layer What it stores What it cannot replace
Full-page cache Finished HTML responses for eligible requests. Correct bypass rules, fresh content after publishing, and uncached or personalized work.
Persistent object cache Reusable WordPress objects such as options and query results. PHP execution, template rendering, and page-cache invalidation.

Object caching requires both a running cache service and a WordPress integration. Confirm that the integration reports a healthy connection, that hit rates are meaningful, and that evictions or memory exhaustion are not causing constant misses. Do not install it as a reflex when the public HTML is simply uncached: page caching addresses a different layer of work.

5. Diagnose PHP-FPM and the PHP runtime

WordPress executes through CGI/FastCGI, commonly managed by PHP-FPM. Inspect the pool while the site is slow rather than changing worker values in the dark.

Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by

Look for pool saturation

  • Active workers at the configured maximum indicate that new requests may be queued.
  • A growing listen queue indicates that PHP-FPM cannot accept work quickly enough.
  • Workers with very high CPU or memory use can point to a plugin, theme function, import, scheduled task, or runaway request.
  • Frequent child-process restarts, out-of-memory events, and slow-request notices indicate process-manager or application problems.

Worker counts must fit available RAM. More workers can increase concurrency until memory pressure triggers swapping; after that, response times usually get worse. Estimate the memory footprint of representative workers, leave room for Nginx, the database, the operating system, and filesystem cache, and change one limit at a time while watching queue length and swap.

Check opcode caching and version support

An opcode cache can prevent PHP from recompiling scripts on every request. Measure before and after enabling it, and verify that deployments invalidate old bytecode so changed code is actually executed. Keep PHP on a supported release after checking plugin and theme compatibility. A version upgrade that breaks an extension can create errors and retries instead of speed.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Find slow scripts rather than raising every limit

Enable appropriate PHP-FPM slow-request logging for a short diagnostic window, then correlate slow scripts with URLs and WordPress logs. A high timeout may hide a plugin waiting on an external API; it does not make that API faster. Fix or isolate the expensive operation before increasing process limits.

6. Profile WordPress plugins, themes, and scheduled work

Every active plugin and the theme can add PHP execution, database queries, remote calls, or output processing to a request. Compare an anonymous page with the same page while logged in, and compare a normal request with a controlled test in which demonstrably expensive components are disabled. Perform tests during a maintenance window or on staging when possible.

Common application-level causes

  • Plugins that perform many queries on every front-end request.
  • Theme code that builds large menus, related-post lists, or remote data synchronously.
  • Scheduled tasks running during visitor requests instead of a controlled background schedule.
  • External API calls with long timeouts or unavailable endpoints.
  • Admin-only tools accidentally loaded for public visitors.
  • Large autoloaded options that WordPress reads on nearly every request.

Disable or replace only a component that measurements identify as expensive. Record the change, retest the same URLs, and check functionality; removing a plugin without replacing a required feature can trade latency for errors.

Audit autoloaded options

Inspect the wp_options table for oversized or obsolete entries marked for autoload. WordPress Developer Resources gives the general guideline: “Keep your site’s autoloaded options under 800kb.” The page presents that figure as a diagnostic target, not a universal limit; the appropriate amount depends on the installation and request pattern. Remove stale data only after identifying which plugin owns it and backing up the database. A smaller total does not help if a remaining option is expensive to construct or queried repeatedly.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

7. Investigate MySQL or MariaDB bottlenecks

When TTFB rises on uncached requests, inspect database behavior instead of assuming PHP is at fault.

Check query patterns and contention

  • Use the slow-query log to find statements whose execution time or frequency is significant.
  • Look for the same query repeated many times in one request; persistent object caching may reduce those trips.
  • Check whether filters and joins use suitable indexes and whether an index change has been tested safely.
  • Inspect table locks, connection limits, temporary tables, and disk waits.
  • Review the database buffer pool and working set; an undersized pool can turn repeated reads into disk I/O.

Back up before changing schema, deleting data, or altering database settings. Test index or query changes with representative traffic because an improvement for one report can slow writes or another page.

8. Check capacity, versions, and storage

Before adding PHP workers or enlarging database buffers, verify the machine has enough CPU, RAM, fast storage, and network capacity. Watch memory and swap during peak traffic, disk latency during database activity, and CPU saturation during PHP execution. If the disk is slow or nearly full, cache writes, logs, and database reads can all suffer.

WordPress recommends current supported versions of the operating system, web server, database, and PHP. Its requirements guidance warns that old PHP and database releases may be end-of-life and create security risk. Upgrade with backups, compatibility checks, and a rollback plan. Version currency is a maintenance requirement, not a guarantee of a particular speed improvement.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Self-managed versus managed operation

Choice Advantages Trade-offs
Self-managed LEMP server Full access to Nginx, PHP-FPM, database, cache, logs, and capacity decisions. You own patching, monitoring, backups, cache correctness, incident response, and tuning.
Managed WordPress hosting Provider may handle operating-system updates, common cache layers, backups, and routine monitoring. Less control over low-level settings and potentially fewer options for custom workloads; verify exactly which layers and logs are available.

Choose based on the operational skills and access your site requires, not on an advertised speed percentage. Even on managed infrastructure, you still need to identify slow plugins, uncached paths, and expensive queries.

9. Apply one targeted change at a time

  1. Write down the baseline URL set, test times, TTFB, total time, status, cache state, CPU, memory, swap, PHP-FPM queue, and database latency.
  2. Choose the narrowest hypothesis, such as “public home-page requests are always cache MISS” or “PHP-FPM is queueing.”
  3. Change one layer: cache rules, a single plugin, an FPM limit, an index, or a version—not several at once.
  4. Run the same anonymous and logged-in tests, including a publish-and-purge check when cache behavior changed.
  5. Compare errors, resource use, and correctness as well as speed. A lower TTFB with stale pages, failed checkouts, or rising swap is not an improvement.
  6. Keep a dated change log and revert promptly if latency, errors, memory use, or cache privacy worsens.

10. Troubleshoot by symptom

Every public page is slow, but cache status is MISS

Check the cache key, cookies, query-string handling, request method, and purge rules. Confirm Nginx can write and read the cache storage. Test the second identical anonymous request and inspect which upstream generated the response.

TTFB is high only during traffic spikes

Watch PHP-FPM queue depth, active workers, CPU, RAM, swap, and database latency during the spike. A saturated pool or memory contention is more likely than a static-file problem. Do not raise worker limits until you know the memory cost.

Anonymous pages are fast, logged-in pages are slow

That pattern is expected to bypass public HTML cache. Profile authenticated requests, object-cache hit rates, plugin queries, scheduled work, and database latency. Ensure private responses are not accidentally cached as public.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

TTFB is low but the page appears late

Measure the browser waterfall. Optimize oversized images, blocking CSS and JavaScript, font loading, and third-party requests; changing PHP-FPM will not fix bytes that arrive quickly but render slowly.

Pages became stale after publishing

Trace every cache layer and its purge event. Invalidate the edited URL and all related archives, feeds, menus, and front-page fragments that your rules cache. Check that a browser, CDN, reverse proxy, and Nginx are not each retaining a different copy.

Adding workers made the server slower

Check RAM and swap first. Too many PHP-FPM processes can evict database pages and force swapping. Restore the previous limit, identify the slow script or query, and size concurrency from observed memory and queue data.

11. A practical order of operations

For most LEMP WordPress sites, use this sequence: measure representative requests; classify TTFB versus browser work; verify Nginx routing and static delivery; implement and test full-page caching for eligible public pages; inspect PHP-FPM saturation; profile plugins, themes, and scheduled tasks; audit database queries and autoloaded options; add persistent object caching when repeated reads are proven to be the bottleneck; then review versions and hardware capacity. Re-run the baseline after each change.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

This order follows the amount of work each layer can remove while preserving a way to identify regressions. It also prevents a common mistake: using object caching, larger PHP pools, or database tuning to compensate for public pages that simply are not being served from a correctly bypassed and purged full-page cache.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.