Skip to content

Cookie settings

Choose which kinds of cookies you allow. You can change your choice at any time via Cookie settings at the bottom of every page. Privacy statement

Necessary

Always on

Needed to log in, keep your cart and remember your choices. These are always on.

Which cookies?
  • weboke_sessie, weboke_klant, weboke_remember: your session and staying logged in
  • weboke_basket: your cart
  • wkBtwIncl: showing prices with or without VAT
  • wok_cookies: your cookie choice, 12 months

Measures which ad leads to a visit or order, so we do not pay for ads that do nothing.

Which cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), up to 90 days
  • OpenAI Ads, ads in ChatGPT
  • wok_aff: which partner referred you to us (affiliate programme), 60 days

4.6

Country and language

Each country has its own site, with prices and VAT for that country.

View

Module 7 · 7.2

English

What a shop needs from hosting

Module 7: Being found and hosting · Reading time: 10 minutes

Learning objective: After this lesson you can judge whether a hosting package suits a WooCommerce shop, check and adjust the most important PHP settings, and recognise when your package is getting too small.

Key concepts: server recommendations, PHP version, WordPress memory limit (WP_MEMORY_LIMIT), memory_limit, max_execution_time, max_input_vars, upload_max_filesize, database, object cache, CPU, processes, 503, Resource Limit Is Reached, WooCommerce > Status, growing

A shop is heavier than an ordinary site

An ordinary WordPress site with a page cache serves most visitors from stored HTML. A shop can only do that partly (lesson 6.4): the cart, checkout and My account are built anew for every visitor, and as soon as someone puts something in the cart, they get a session and the cache often no longer applies to them. On top of that:

  • every order writes to the database (order, line items, addresses, stock, notes);
  • the payment provider reports through a webhook that payment has been made, and that request needs a quick response;
  • WooCommerce has scheduled actions that run in the background (lesson 7.3);
  • the admin area (orders, reports, editing products) is heavier than for a blog.

A shop that runs fine on a small package with ten orders a day can grind to a halt during a sale with hundreds of simultaneous visitors. That is why it pays to know what your package can handle.

What WooCommerce recommends

WooCommerce publishes recommended server settings (as of November 2026, for version 10.8 and later):

ComponentRecommendation
WordPress6.9 or higher
PHP8.3 or higher (tested up to and including 8.4)
DatabaseMySQL 8.0 or higher, or MariaDB 10.6 or higher
WordPress memory limit256 MB or more
HTTPSrequired

These are recommendations, not minimums: the plugin itself needs PHP 7.4 to install. But a shop on an old PHP version is slower and no longer gets security updates. How to move safely to a newer PHP version is covered in the WordPress course, lesson 8.4; the process is the same for a shop, except that you test checkout and payment extra thoroughly on staging.

Where can you see what you have now? In WooCommerce > Status (System status). Under WordPress environment you will find, among other things, the WordPress memory limit, and under Server environment the PHP version, the PHP limits and the database version. When something goes wrong, a developer or a plugin's support team will often ask for this report; you copy it with the button for fetching the system report ("Get system report").

The PHP settings that matter

These four settings are the ones you will come across most often with a shop:

  • memory_limit (and WP_MEMORY_LIMIT): how much working memory a single PHP request may use. Too little gives a white page or "Allowed memory size exhausted", often with reports, imports or when editing a large variable product. WooCommerce recommends a WordPress memory limit of 256 MB. WordPress uses the value from wp-config.php (WP_MEMORY_LIMIT), but never more than PHP itself allows.
  • max_execution_time: how long a single request may take. A CSV import or an export of a thousand orders can take longer than the default. It is better to import in smaller batches than to set the limit very high.
  • max_input_vars: how many fields a form may send. With a variable product that has many variations, or a large menu, the admin area sends hundreds of fields. If the limit is too low, the last fields are silently discarded: you click Update, see no error, but some of your variations have not been saved. If you notice this, raise the value (for example to 3000 or 5000) or create fewer variations (lesson 3.2).
  • upload_max_filesize and post_max_size: how large an upload may be. This matters for product photos and for downloadable products (lesson 3.3).

With most hosting providers you change these values in the control panel. At WebOké you do this in DirectAdmin under your package's PHP settings (see KB 212 and KB 200); other providers work in a similar way, sometimes through a .user.ini file or a php.ini screen. Change one value at a time and check in WooCommerce > Status that it has been applied.

When your package gets too small

On shared hosting every package has limits: how much CPU, how much memory and how many processes at the same time. At WebOké and other hosting providers with CloudLinux, you can see them in DirectAdmin under your package's usage. If your shop exceeds them, visitors get a 503 or a message such as "Resource Limit Is Reached". For a shop that is especially annoying: a customer who is just about to pay, or a webhook from the payment provider that gets no response, so that a paid order stays on "Pending payment".

Before you move to a bigger package, first find out what is causing the load. The most common causes in shops:

  • no page cache, or a badly configured one (lesson 6.4);
  • bots crawling through filters, search results or ?add-to-cart= links;
  • WP-Cron on every visit and a full queue of scheduled actions (lesson 7.3);
  • heavy plugins or a theme that runs lots of database queries on every page;
  • no object cache (Redis) when many customers are logged in (lesson 6.4).

Tools to track it down include your package's usage overview, the logs and, at some hosting providers, a tool such as PHP X-Ray that shows per page which function is slow (KB 227).

If the shop is set up properly and you still hit the limits, then growing is justified: a bigger package, or your own server (VPS) where you decide how many PHP processes may run. That step also means more administration. Do not plan it in the middle of your busiest week; test at the new location first (lesson 7.3).

What else a shop needs

Besides PHP, a shop needs the following from its hosting:

  • HTTPS with automatic certificate renewal (WordPress course, lesson 3.1);
  • backups that are frequent enough for your orders, with a restore test (lesson 6.2);
  • real cron for scheduled tasks (lesson 7.3);
  • reliable email or a connection to an email service (lesson 6.1);
  • a staging option (lesson 7.3);
  • a database that is large enough: orders and scheduled actions grow every day.

Theehuis Example started its shop on an ordinary hosting package. After a newsletter with a discount, more traffic arrived in one hour than normally in a week, and payments got stuck. The usage overview showed the maximum number of processes being reached again and again. The cause: the page cache had been switched off after a theme update. With the cache back on, the next promotion ran without a single 503.

Summary

  • A shop is heavier than an ordinary site: dynamic pages, database writes, webhooks and scheduled actions.
  • WooCommerce recommends PHP 8.3+, MySQL 8.0+ or MariaDB 10.6+, a memory limit of 256 MB and HTTPS; you can see your values in WooCommerce > Status.
  • Keep an eye on memory_limit, max_execution_time, max_input_vars (silent data loss with many variations) and upload limits.
  • A 503 or Resource Limit Is Reached means your package limits have been reached; find the cause first, then grow.

Quiz

1. Which PHP version does WooCommerce recommend (as of November 2026)?



2. You save a variable product with 80 variations, and afterwards the last variations turn out to have lost their price. There was no error message. What is a likely cause?



3. During a promotion, customers get a 503 and paid orders stay on "Pending payment". What do you do first?



4. Where in WooCommerce can you see your shop's PHP version and memory limit?



Exercise

Exercise A7.2: Does your PHP suit WooCommerce? Open WooCommerce > Status and note the PHP version (Server environment) and the WordPress memory limit in MB (WordPress environment). Enter your shop's address and those two values. The program looks up your PHP version's branch in the php.net table (which versions still get updates) and checks whether the homepage shows an X-Powered-By header with a PHP version. Green if your branch is still actively supported and is at least 8.3, and the memory limit is at least 256. Orange if your branch only gets security updates, is lower than 8.3 but still supported, if the memory limit is between 128 and 255, or if your site shows the PHP version in a header. Red if your branch no longer gets updates or is unknown, the memory limit is below 128, or the header shows a different branch from the one you entered ("are there several PHP versions?").

A question for yourself (not checked): what does WooCommerce > Status show for max_input_vars and for the maximum upload size? Is that enough for your largest product and your largest download?

Exercise A7.2: Does your PHP suit WooCommerce?




What you enter and what we find isn't stored. Your browser remembers your answers and whether you've passed the exercise. If you're signed in, we only save that you got the exercise (almost) right in My courses; you can delete that there too.

Further reading

These articles describe the steps in WebOké's panels; other panels work in a similar way.

One moment…

Set up your domains

For each domain, arrange the nameservers, the link to your hosting and who becomes the owner.

Loading your domains…