Skip to content
Shahid Malla

Does WHMCS Support Redis Caching? What Speeds It Up Instead

WHMCS has no built-in Redis cache, and WHMCS tells you to disable OPcache. What its documentation recommends for a slow install: MySQL settings, logging, cron timing and two configuration switches.

· Published · Updated · 11 min read · 10 steps

No. WHMCS has no built-in Redis cache, and its documentation does not mention Redis. It describes two session stores, PHP files and the WHMCS database, and it tells you to switch PHP OPcache off. What speeds up a self-hosted WHMCS installation is a correct MySQL configuration, debug logging turned off, two configuration.php switches, lean custom code and enough RAM.

I checked this guide again on 13 November 2026, this time against the WHMCS 9.1 documentation, which is now the General Availability release. Redis is still absent from it, and the performance advice is unchanged. What moved is the version table: WHMCS 9.1 adds PHP 8.4, and WHMCS 9.0 has an anticipated end-of-life date of 31 December 2026. Each claim below names its source page.

Does WHMCS support Redis caching?

No. The WHMCS documentation has no page about Redis, and its pages on performance, sessions and system requirements never name Redis, Memcached or any other object cache.

LayerWhat the WHMCS documentation saysWhat to do
Redis object cacheNothing. No documented setting exists.Nothing to switch on.
PHP OPcache"We strongly discourage enabling OPcache on your WHMCS installation's server."Turn it off for the PHP that runs WHMCS.
Template cacheWHMCS caches templates into static files in the templates_c folder.Empty it after a template change.
PHP sessionsTwo stores are supported: PHP files, the default, and the WHMCS database.Keep files, or set $session_handling = 'database';.
Five steps in order for a slow WHMCS: clear System Health warnings and turn debug logs off, tune MySQL in my.cnf and wait 48 hours, add the two configuration.php switches and prune logs, move the daily cron run to a quiet hour, and only then consider Redis for a slow API call in your own code.
The order the rest of this guide follows. Redis comes last, and only for code you write yourself. Source: shahidmalla.com, from the WHMCS documentation cited here.

Should you enable PHP OPcache for WHMCS?

No. WHMCS asks you to disable it. Its OPcache Warnings page says OPcache "can cause serious problems with old data caches that WHMCS cannot control" and can stop PHP scripts from running each time WHMCS executes them. Check your own install:

  • Open Configuration > System Health in the admin area. An enabled extension shows there as an "OPcache Status" warning.
  • The symptom WHMCS describes is stale cached data or scripts that do not run. Its one named example is a "Gateway Activation Failed" error when you activate the PayPal Payments module.
  • The documented fix is to deactivate the extension in your control panel, or to remove the opcache.enable lines from php.ini.

On a managed or shared server, your host makes that change. If other sites there depend on OPcache, ask whether the PHP configuration that runs WHMCS can have it off.

What speeds up WHMCS, according to its documentation?

Less logging, two configuration switches, leaner custom code, a faster mail provider and smaller tables speed up WHMCS, according to its Optimize Performance page. Its explanation of slow pages is plain: more data means a larger database, and looping through it takes longer.

ChangeWhereWhy, according to the documentation
Turn off debug loggingSQL Error Reporting and Hooks Debug on the Other tab at Configuration > System Settings > General Settings. Module Debug Log at Configuration > System Logs.Left on, they "can and will increase the database size exponentially".
Disable ticket countsAdd $disable_admin_ticket_page_counts = true; to configuration.php.WHMCS stops counting tickets per status every time you open a ticket.
Disable the services count in the client listAdd $disable_clients_list_services_summary = true; to configuration.php.The list at Clients > View/Search Clients loads without counting each client's services.
Review custom codeHooks, addons and third-party modules."Third-party customizations can slow the performance of WHMCS."
Check the mail providerThe mail provider set in General Settings.Slow orders, ticket replies and invoices are "often caused by connection issues" to the email provider.
Prune logs and optimize tablesUtilities > System > System Cleanup, and the table optimization button at Utilities > System > Database Status.From those two pages: pruning logs shrinks the database, and optimizing tables removes overhead.

This applies to self-hosted installs. WHMCS Cloud does not currently give direct access to files or the database.

Which MySQL or MariaDB settings does WHMCS ask for?

WHMCS asks for a handful of values in the mysqld section of my.cnf, usually /etc/my.cnf on cPanel servers. The Optimize Performance page gives starting points, and System Health raises a "MySQL Server Configuration Check" warning below certain minimums.

SettingDocumented starting pointSystem Health warns below
max_connectionsA low value like 50, raised to match available RAMNot checked
wait_timeoutAt least 300300
interactive_timeoutNot listed300
connect_timeoutNot listed10
max_allowed_packet16 MB4 MB
sort_buffer_size2 to 4 MBNot checked
read_buffer_size2 to 4 MBNot checked

WHMCS says to restart MySQL after changing these and let it run for 48 hours. Three more rules come from the System Requirements page, read on 13 November 2026. WHMCS does not support MySQL strict mode, so keep STRICT_TRANS_TABLES and ERROR_FOR_DIVISION_BY_ZERO off. MySQL is the requirement, while MariaDB "may also work for some installations", so on MariaDB check each variable against that server's own documentation first. And the page lists MySQL 5.2 as the requirement with 8.x as the recommendation, so an old database server is worth upgrading before you tune its buffers.

Which PHP version and memory limit should WHMCS use?

Use a PHP version that your WHMCS version lists as supported, and give PHP the recommended memory instead of the minimum. The requirement moved with the release, so read the page for your version. On 13 November 2026 it listed PHP 8.2, 8.3 or 8.4 for WHMCS 9.1, and PHP 8.2 or 8.3 for WHMCS 9.0. The memory limit is the same on both: 64 MB as the minimum and 128 MB as the recommendation. Each PHP version needs its own minimum ionCube Loader version, 15.0.0 or higher for WHMCS 9.1, and WHMCS warns when the cron job and the web server run different PHP versions, so change both together. On server size, the documentation's rule is simple: more RAM and processing power mean better performance.

The supported-versions table on the same page matters for a slow install, because an end-of-life version gets no fixes at all. Read on 13 November 2026, it listed WHMCS 9.1 as General Availability with an anticipated end-of-life date of 30 September 2027, WHMCS 9.0 as Long-Term Support ending 31 December 2026, and WHMCS 8.13 as Long-Term Support ending 31 January 2027. If you are on 9.0 and planning a performance project, plan the update into it rather than after it.

What is the WHMCS template cache, and when do you clear it?

The template cache is the templates_c folder, where WHMCS keeps static copies of its templates so pages load faster. Empty it when a template change does not show up: at Utilities > System > System Cleanup, open the Simple tab and click Go next to Empty Template Cache. The folder must be writeable.

How does the WHMCS cron job affect speed?

The cron job matters most once a day, when the heavy daily tasks run. WHMCS recommends running crons/cron.php every five minutes, and the daily tasks start in the hour you choose under Time of Day at Configuration > System Settings > Automation Settings.

That run creates invoices, processes payments, suspends overdue services and makes the database backup, which the documentation calls "CPU, memory, and disk intensive". If the admin area drags at the same time every day, move Time of Day to your quietest hour.

The System Cron page also documents the skip and do arguments for running one task on its own schedule. For the backup, that pattern looks like this:

*/5 * * * * php -q /path/to/cron.php skip --DatabaseBackup
30 3 * * * php -q /path/to/cron.php do --DatabaseBackup

The do argument forces the task and does not change WHMCS's internal schedule, so try it on a staging copy first. That page also names one requirement for any argument: PHP's register_argc_argv directive has to be on, or the cron ignores what you pass it. The basic cron setup is in how to set up WHMCS.

Can you store WHMCS sessions in Redis?

PHP can, but WHMCS does not document it, so I treat it as unsupported. The phpredis extension adds a Redis session handler that you configure in php.ini:

session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"

Three facts make me cautious:

  • The WHMCS Sessions page lists exactly two stores for self-hosted installs: file-backed and database-backed. WHMCS Cloud supports only file-backed sessions.
  • System Health has a check named "The PHP Session save path is not writeable", which tests session.save_path with PHP's is_writeable function. A tcp:// address is not a writeable folder, so I expect that check to complain. No WHMCS page I found covers a non-file handler.
  • The phpredis README says session locking is off by default, and that with the default read timeout PHP can hang if Redis stops answering.

To share sessions between two web servers, use the documented route: add $session_handling = 'database'; to configuration.php. The Sessions page also documents an array form of that same setting, which puts sessions in a database of their own, with keys for the host, database name, user, password, table name and a session lifetime in minutes that defaults to 1440. If that database sits on another server, WHMCS does not create the table for you: import resources/sql/install/tblsessions.schema.sql there first. WHMCS makes no speed claim for either form, and neither do I.

When is Redis worth adding to a WHMCS server?

Redis is worth adding only when your own custom code needs a cache, and it is not a general fix for a slow WHMCS. A module or hook is ordinary PHP, so it can use phpredis to keep a slow outside API's answer for a few minutes. The ClientAreaPage hook runs on every client area page, so a slow call inside it is paid on every view. The limits:

  • WHMCS will not use it. Clients, invoices and tickets still come from MySQL on every request.
  • Do not cache money or access. Balances, invoice status and suspension state must be read live.
  • It is one more service. Someone has to patch it, monitor it and keep it private to the WHMCS server.
  • It can fail. Your code needs a fallback to the direct call, or the client area goes down with Redis.
  • It hides slow code. Fix a hook that runs a heavy query on every page before you cache around it. My WHMCS hooks guide shows how to check what a hook does.
Decision flow for adding Redis to WHMCS: if System Health warnings remain or debug logs are on, fix those first; if a hook or addon runs a heavy query on every page, fix the code before caching around it; if your own code waits on a slow outside API, cache that answer in Redis with a fallback; otherwise Redis will not help, because WHMCS itself does not use it, so find the bottleneck.
This section and the next as a flow. Source: shahidmalla.com, from the WHMCS documentation cited in this guide.

How do you find what is slowing WHMCS down?

Start with the checks that cost nothing, and change one thing at a time.

  1. Open Configuration > System Health and clear the warnings for OPcache Status, MySQL Server Configuration Check, PHP Memory Limit and System Cron Tasks.
  2. Turn the debug logs off.
  3. Note which pages are slow. Ticket pages and the client list point to the two configuration.php switches. Pages that send email point to the mail provider.
  4. Note when it is slow. The same time every day points to the daily cron run or the backup.
  5. On a staging copy, deactivate custom hooks and addons one at a time, and time the same page after each.
  6. Only then change MySQL values or the server size.

Time the same page with the same account before and after each change, in your browser's network panel. I quote no typical gain, because it depends on your data, hardware and custom code. If you want me to run this review, it is part of my WHMCS support and maintenance work, the server side sits under hosting infrastructure consulting, and the scoping call is free and takes about 30 minutes.

What else do people ask about WHMCS Redis and caching?

Does WHMCS 9.1 change anything about caching?

No. Checked on 13 November 2026, the 9.1 documentation still has no Redis page, still discourages OPcache and still lists the same two session stores. What changed is the supported PHP versions: 9.1 adds PHP 8.4 and needs ionCube Loader 15.0.0 or higher.

Does WHMCS support Memcached or another object cache?

No. The WHMCS pages on performance, sessions and system requirements never name Redis, Memcached or any other object cache. The caches WHMCS does document are the template cache in templates_c and the PHP session store.

How much memory does WHMCS need?

On the review date, the System Requirements page listed a 64 MB PHP memory limit as the minimum and 128 MB as the recommendation. I give PHP the recommended value. For the server itself, the documentation only says that more RAM and processing power mean better performance.

Why is WHMCS slow at the same time every day?

Most likely the daily cron run. It creates invoices, processes payments, suspends overdue services and makes the database backup, which WHMCS calls "CPU, memory, and disk intensive". Move Time of Day under Automation Settings to your quietest hour.

How do I share WHMCS sessions between two web servers?

Use the documented route: add $session_handling = 'database'; to configuration.php. The database is one of the two session stores WHMCS lists for self-hosted installs. A Redis session handler is not documented, so I treat it as unsupported.

Can I tune caching on WHMCS Cloud?

Not in the way this guide describes. WHMCS Cloud does not currently give direct access to files or the database, so the configuration.php switches and MySQL settings here apply to self-hosted installs.

Last reviewed 13 November 2026. Disclosure: I am a freelance WHMCS developer and I sell WHMCS maintenance and performance work, so I am not neutral. I am CTO at ElySpace, a freelance developer for Marmaids LLC, and founder of WHMCSPilot and MagizAI. Settings change between WHMCS versions, so check the linked pages for yours.

Share this article

Shahid Malla

Written by

Shahid Malla

Freelance WHMCS developer and web designer with 13+ years of client work. CTO at ElySpace, freelance developer for Marmaids LLC, and founder of WHMCSPilot and MagizAI.

Got a project like this?

Tell me what you need and I will send a written quote within one business day.