Traffic spikes aren’t reserved for enterprise sites. Even a modest WooCommerce shop can see its traffic triple after a well-timed ad, email blast, or seasonal promotion.

Take Black Friday as an example. According to NPR, U.S. consumers spent $10.8 billion online in a single day in 2024, and even the smallest stores felt the ripple effects. A campaign that usually brings in a few hundred visits can suddenly push thousands of people into your checkout flow.

As a Kinsta customer, you don’t need to change hosting tiers every time that happens. This guide walks through three effective options: using a PHP performance add-on, maximizing caching, and reducing database strain.

1. Use the PHP performance add-on

Most traffic spikes overwhelm sites because PHP reaches its capacity to process requests. When too many uncached page views or checkout actions hit at once, threads stack up and visitors start seeing errors, slowdowns, or abandoned carts.

php performance add-on
The PHP Performance Add-on

That’s where the Kinsta PHP performance add-on can really come in handy. Instead of upgrading your entire hosting plan, you can temporarily boost PHP threads and memory allocation during peak events. It’s prorated, so you pay for the extra resources when you need them and nothing more.

change php performance
Add more threads and memory with the PHP performance add-on.

Consider a small WooCommerce shop running a 48-hour flash sale. Their email campaign triples traffic overnight, and while caching absorbs most product page visits, checkout requests surge.

Without extra PHP threads, carts stall and orders fail. With studies showing that one in three online shoppers abandon their carts if pages load too slowly, this can result in thousands of dollars in lost sales. Enabling the PHP performance add-on the day before the sale means the store keeps checkout flowing smoothly, then disables it afterward to avoid paying for unused capacity.

remove php performance
You can remove the PHP performance add-on when busy times are over.

2. Maximize caching before touching your plan

Before scaling resources, make sure caching is doing the heavy lifting. Caching serves prebuilt versions of your pages so visitors don’t hit PHP with every request. When it’s configured correctly, the majority of product and category page visits never touch the server at all.

The problem is, stores often undermine their own caching without realizing it. Plugins or themes may force “no-cache” headers, cart and checkout pages might bypass caching unnecessarily, or CDN settings could be misconfigured. Each of these issues consumes PHP’s resources and slows down your store.

An example can help to illustrate this concept really quickly. Let’s say a small apparel shop runs a summer sale and sees a sudden spike in browsing. Product pages should be cached, but because their theme added “no-cache” headers, every single visitor request hits PHP.

Load times creep past three seconds, and shoppers start bouncing. After fixing the headers and confirming “HIT” responses in their CDN, the same traffic level barely impacts PHP, leaving resources available for genuine cart and checkout activity.

To apply this in your store, run a quick caching checklist:

  • Audit your top cache bypasses to catch unnecessary skips.
  • Test in a private or incognito browser to see what new visitors experience.
  • Confirm caching headers are working and look for “HIT” instead of origin responses.

Caching layers in Kinsta

Kinsta automatically handles multiple caching layers, but you can fine-tune or clear each one within MyKinsta:

Server-level caching

Kinsta’s server-level page caching stores full HTML pages on the server so PHP doesn’t need to rebuild them for every visit. It’s enabled by default on all sites.

server caching

 

You can also clear this cache by going to MyKinsta > WordPress Sites > sitename > Caching > Server Caching and then clicking on Clear cache.

Caching settings in MyKinsta
Adjust the server caching settings within MyKinsta.

Edge caching

Edge caching pushes those same prebuilt pages to Cloudflare’s global network, serving them from the data center closest to each visitor. You can toggle it on or off under WordPress Sites > Edge Caching in MyKinsta.

Edge caching in MyKinsta
You can toggle Edge Caching on and off in MyKinsta.

This reduces latency dramatically and removes even more load from your origin server.

CDN caching

Kinsta’s integrated CDN caches static files, such as images, CSS, and JavaScript, at the edge.

cdn caching
CDN caching settings can also be adjusted in MyKinsta.

You can configure image optimization and exclude specific files.

Clearing caches manually

To clear everything at once (server, edge, and CDN), click Clear all caches under MyKinsta > Caching, or use the WP-CLI command wp kinsta cache purge –all.

Clear all caches in MyKinsta
You can clear all caches at once in MyKinsta.

3. Reduce unnecessary database strain

Even with PHP and caching in good shape, your database can still drag performance down. Every product filter, category page, or search query adds to the workload, and during high-traffic periods, that pressure multiplies fast.

For example, imagine a home goods store with hundreds of products running a holiday weekend promotion. Their category pages load all items at once, and each filter option triggers heavy database queries.

As traffic climbs, pages stall, and frustrated shoppers leave one by one. However, by properly paginating product results and removing unused filters, the store can cut its database load dramatically. Checkout requests stay quick, even while traffic is peaking.

Here are a few simple ways to keep your database lean:

  • Clean up autoloaded options. Old plugin settings and unused data can pile up in the wp_options table and slow queries. In Kinsta, you can inspect these entries via phpMyAdmin (available under MyKinsta > Sites > Info > Database Access) or connect over SSH and run a query such as SELECT option_name, length(option_value) FROM wp_options WHERE autoload='yes' ORDER BY length(option_value) DESC; to identify large autoloaded options.
  • Trim unused product filters. In WooCommerce or your filter plugin’s settings, remove any filters (color, brand, size, etc.) that don’t influence conversions. Every active filter adds queries to your product archive pages. Use Kinsta’s APM tool to spot which queries spike when shoppers use filters then disable the ones that aren’t worth the cost.
  • Paginate long loops. Loading hundreds of products or posts at once puts unnecessary strain on the database. In your theme or custom templates, use WP_Query with a posts_per_page limit (for example, 20 or 30) and enable pagination or “load more” buttons. Keep your product grids lightweight so pages render quickly even during spikes.
  • Audit transients and search plugins. Misconfigured search tools often hit the database harder than necessary. Transients often live in wp_options and can balloon over time. You can delete expired ones safely using a plugin like WP-Optimize or directly in phpMyAdmin with DELETE FROM wp_options WHERE option_name LIKE '%_transient_%';. We recommend doing this in our speed up WordPress guide.

You might now be wondering, when should you consider Redis? Only if your monitoring tools (like APM) show repeated identical queries or consistently high database time per request. As a rule of thumb, most stores don’t need Redis if caching and PHP are properly tuned. But if projected revenue at risk outweighs the cost, it can be worth enabling for that month.

Database cleanup ensures your store isn’t wasting resources, leaving more capacity for the requests that actually bring in sales.

Check performance with monitoring tools

Putting these fixes in place is only half the job. You also need to confirm they’re working. Tools like MyKinsta (specifically the included analytics) and APM make it easy to spot bottlenecks, whether it’s PHP threads piling up, cache misses, or slow database queries.

monitoring tools in MyKinsta
Keep tabs on site performance in MyKinsta.

Checking these metrics before, during, and after your campaign makes sure you see exactly where your site is straining and know if your adjustments are paying off.

Summary

You don’t need a complete hosting upgrade to survive big sales or traffic surges. With the proper setup, smaller shops can handle sudden demand just as effectively as enterprise stores.

The key is combining three practical steps: use the PHP performance add-on to cover temporary spikes, make sure caching is working at full strength so most visitors never touch PHP, and clean up unnecessary database strain to keep checkout fast and reliable.

Together, these fixes prevent 500 errors, reduce slowdowns, and help more customers complete their orders. If you’re planning a campaign or seasonal promotion, enable the PHP performance add-on in advance and pair it with effective caching and regular database maintenance.

Joel Olawanle Kinsta

Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.