company logo

Help center

Go to wpDataTables
YouTube Channel
All collectionsFAQTechnical issuesServer-Side Processing Issues with Caching in wpDataTables: How to Fix Them

Server-Side Processing Issues with Caching in wpDataTables: How to Fix Them

Understand why server-side processing tables break with caching and how to resolve it in wpDataTables.

❓ What’s the Issue?

If you're using server-side processing tables in wpDataTables and have caching active on the page, you may encounter issues such as:

  • Tables sometimes load, but other times get stuck on an infinite loading animation

  • The table loads correctly on a desktop device but fails to load on other devices

  • The table loads when you’re logged in as an Admin, but not for non-logged-in users

  • Inspecting the browser’s developer console typically shows an “Invalid JSON response” or an AJAX error

These issues occur because cached pages interfere with the real-time server-side requests that are necessary for database communication.

Our developers are actively working on a fix. 🚧
While we can’t provide an ETA, updates and fixes will be posted here:

  • ChangeLog: https://wpdatatables.com/help/whats-new-changelog/

  • Newsletter: https://wpdatatables.com/newsletter/


🛠 Workaround Solutions

Until a fix is released, there are two possible workarounds:


1. Disable Caching for Pages with Tables

Most caching plugins allow you to exclude specific pages from caching.

  • Add the URLs where your wpDataTables are published to your caching plugin’s exclusion list.

  • Alternatively, disable caching entirely if acceptable for your site.

This ensures that server-side processing works without interference from cached content.


2. Use a SQL Query-Based Table to Disable Server-Side Processing

For Manual Tables, server-side processing cannot be disabled directly.

However, since Manual Tables store their data in a SQL database, you can create a new SQL Query-based table that calls the same source data. On this table, you will be able to toggle server-side processing off.

✅ Steps to Create a SQL Query Table:

  1. Go to the Editing settings of your Manual Table and find the MySQL Table Name.

  2. Create a new SQL Query-based wpDataTable with the query:

 SELECT * FROM TableName  
  1. During setup, you can disable server-side processing if the table has fewer than 2,000 rows.

This new SQL table will call the same data source — so any edits will still save back to the original database table.

For any SQL Query-based table with fewer than 2,000 rows, you can disable the server-side processing option, and it will work like tables linked from files — loading all rows in the browser regardless of the table’s pagination.


⚙ (Optional) Increase Server-Side Processing Toggle Limit

By default, wpDataTables will force server-side processing for tables with more than 2,000 rows.
If your table has more rows but you still want to disable server-side processing, you can increase this threshold by adjusting the plugin's code.

✅ Steps to increase the limit:

  1. Edit this PHP file via FTP on your Hosting server:

    ../wp-content/plugins/wpdatatables/source/class.wpdatatable.php

    around line 3188 you'll see this:

    if (is_array($res_dataRows) && count($res_dataRows) > 2000) {
    

    The lines of code may change during updates, as our developers occasionally add new lines. Therefore, it’s best to search for the line in a code editor using CTRL+F to locate it accurately.

    You can change the number 2000 to a value greater than the number of rows in your table to keep the toggle option for server-side processing available.

    Another PHP file in this path :

    ../wp-content/plugins/wpdatatables/source/class.wdtconfigcontroller.php

    In this file, please search for this, there should be two occurrences, first one around line 82 as :

    if (count($wpDataTable->getDataRows()) > 2000) {

    And second one around line 143:

    if (count($wpDataTable->getDataRows()) > 2000) {
    

    That will increase the server-side processing option's automatic limit.


⚠ Important:
Be cautious when increasing the limit:

  • Tables with up to 5,000–6,000 rows usually perform fine without server-side processing.

  • Higher row counts may lead to slower page loads or browser freezes, depending on your hosting server’s PHP limitations.

We recommend testing table performance carefully — if the page loads too slowly, you can re-enable server-side processing at any time in the table’s backend settings.


💬 Summary

This issue only affects server-side processing tables when caching is active.
It can occur with Manual tables, SQL Query-based tables, and Gravity Forms integration tables if the server-side processing option is enabled.
(It does not affect other table types linked from source files such as CSV, Excel, Google Sheets, JSON, PHP array, and others.)

🛠 Solution 1: Disable caching for pages where tables are displayed.

🛠 Solution 2: Create a new SQL Query-based table calling the same data source and disable server-side processing.

⚙ Optional: Carefully increase the server-side processing toggle limit if needed.


📢 Stay Updated

For the latest news on updates and bug fixes:

  • ChangeLog: https://wpdatatables.com/help/whats-new-changelog/

  • Newsletter: https://wpdatatables.com/newsletter/


✉ Need Help?

Feel free to contact our Support Team if you have any questions — we’re here to assist you!

Did this answer your question?
😞
😐
😁