|
/ Documentation /Troubleshooting/ How to Set Up SureForms with W3 Total Cache

How to Set Up SureForms with W3 Total Cache

Use this guide to configure W3 Total Cache while keeping SureForms submissions, field validation, and payments working.

Before you begin

Update SureForms and your optimization plugin. Save your current settings and test changes on a staging site when possible. Avoid running the same JavaScript optimization in multiple plugins.

With SureForms 2.6.0 or later, form pages generally do not need a page-cache exclusion. SureForms uses a time-based security token instead of a WordPress nonce. Do not treat the token’s validity as an unlimited cache lifetime. For older versions, update or exclude pages containing forms.

1. Keep dynamic requests out of page caching

Open Performance → Page Cache → Advanced. Add these patterns to Never cache the following pages, one per line. Save all settings.

wp-json\/sureforms\/.*
wp-json\/sureforms-pro\/.*
wp-admin\/admin-ajax\.php

These are page-cache regular expressions, not JavaScript exclusion patterns. If W3 Total Cache Pro REST API caching is active, ensure these routes are excluded there through the Page Cache rules. Do not enable REST API caching just for SureForms.

The SureForms namespace covers submissions and Stripe webhooks. The Pro namespace covers Pro features and PayPal webhooks. admin-ajax.php handles requests such as payment intent creation. Omit the Pro rule if Pro is not installed.

Reference: W3 Total Cache REST API exclusions

2. Exclude SureForms JavaScript

Open Performance → Minify → Advanced. In Never minify the following JS files, add exact relative file paths, one per line. Start with these SureForms paths:

/wp-content/plugins/sureforms/assets/build/formSubmit.js
/wp-content/plugins/sureforms/assets/js/minified/frontend.min.js
/wp-content/plugins/sureforms/assets/js/stripe-payment.js
/wp-content/plugins/sureforms/assets/js/payment-manager.js

Use paths that match your installation. This field requires individual paths; do not use a folder name or regular expression to exclude every file in a directory. Add exact Pro script paths for the features you use.

Reference: W3 Total Cache exact JS path requirements

SureForms scripts to identify

Core: formSubmit.js and frontend.min.js. Payments: stripe-payment.js and payment-manager.js. These are normally under the sureforms plugin folder.

Pro, when active: pageBreak.js, datePicker.js, conditional-logic.min.js, file-upload.js, signature.js, signature_pad.umd.min.js, repeater.js, and the Save & Resume bundle. Find their actual URLs under the sureforms-pro folder or the browser’s Network panel; filenames can change.

3. Check script loading options

If you use Manual minify mode, leave SureForms scripts and the Stripe/PayPal SDKs out of the JS file groups. If a non-blocking or deferred JS embed option causes errors, restore the blocking/default behavior while testing. Keep payment SDKs outside minified bundles.

Reference: W3 Total Cache minify settings

A plugin folder exclusion does not necessarily exclude inline initialization code or WordPress dependencies. If the console reports a missing variable, ask support to identify the related script and its dependency rather than excluding all JavaScript.

4. Keep payment scripts external

For payment forms, ensure Stripe.js loads directly from Stripe and the PayPal SDK loads directly from PayPal. Do not combine them into local bundles, block them, or replace them with locally cached copies.

https://js.stripe.com/v3/
https://www.paypal.com/sdk/js

Use the actual SDK URL loaded by your form when an exact URL is required. PayPal URLs can include query parameters. These external scripts do not belong in your site’s page-cache URL exclusion list.

5. Clear the cache and test

Save all settings, then use Performance → Purge All Caches. Clear any additional host or CDN page cache before testing.

Open the form in a private or incognito window. Test once, reload, then test again so the checks include cached pages. Repeat on desktop and mobile.

Submit a test entry. Confirm the success message or redirect and the saved entry under SureForms → Entries.

Check required fields, multi-step navigation, conditional logic, uploads, and other active Pro features.

For payments, use test or sandbox mode. Confirm fields load, payment completes, and the status updates. Check Save & Resume if enabled.

Troubleshooting

Temporarily disable Minify under Performance → General Settings. Purge all caches and retest. If this fixes the issue, review the exact excluded file paths and JS embed settings before enabling Minify again.

If submissions still fail, inspect the /wp-json/sureforms/ request in Developer Tools → Network. Check the status and JSON response. HTML can indicate caching, a redirect, or a security block; it does not prove a cache problem.

Was this doc helpful?
What went wrong?

We don't respond to the article feedback, we use it to improve our support content.

Need help? Contact Support
Table of Contents
Scroll to Top