- Creating and Publishing a Form
- Conversational Form
- Create Multi Step Forms In WordPress
- Using Calculations in SureForms: A Step-by-Step Guide
- Calculation Formula Guide
- SureForms Login Block – Step-by-Step Guide
- SureForms Registration Block – Step-by-Step Guide
- SureForms – PDF Generation Feature
- GDPR Compliant Forms
- Create WordPress Forms With Conditional Logic
- Adjust Form Notification Emails
- Form Confirmation
- Entries Management Feature Guide
- How to Add Query Parameters to Form Redirects
- How to Fetch Query Parameters from URL
- Set the “From Email” in SureForms
- Setting Up “Reply-To” Email Using Form Input Tags – SureForms
- Restrict Form Entries in SureForms
- Form Scheduling in SureForms
- Conditional Confirmations in SureForms
- How to Connect Your Stripe Account with SureForms
- How to Connect PayPal in SureForms
- How to Create a Payment Form in SureForms
- SureForms Payments
- How Refunds Work in SureForms Payments
- Understanding Payment Processing Fees
- How to Display the Payment Dashboard on the Frontend (SureForms)
- Enable One-Time Payment and Subscription in a Single Form
- SureForms Integration with ActiveCampaign
- SureForms Integration with AgileCRM
- SureForms Integration with Airtable
- SureForms Integration with LatePoint
- SureForms Integration with FluentCRM
- Connect SureForms To Zapier
- WordPress Forms with the Custom App Builder
- SureForms Integration with Telegram
- SureForms Integration with Breeze
- SureForms Integration with Brevo
- Unable to Upload SureForms ZIP: File Unzipped On Download
- Browser Support for SureForms
- Not Getting Update Notifications
- How To Rollback to Previous SureForms Versions
- Publishing Failed: Invalid JSON Response
- Troubleshooting Email Sending In SureForms
- SureForm Submissions Marked as Spam – How to Fix
- API Request Failed – Nonce Verification Error
- Fixing the “Destination folder already exists” Error When Installing SureForms
- How to Set Up SureForms with Caching Plugins
- How to Set Up SureForms with WP Rocket
- How to Set Up SureForms with W3 Total Cache
- How to Set Up SureForms with WP Fastest Cache
- How to Set Up SureForms with LiteSpeed Cache
- How to Set Up SureForms with SiteGround Optimizer
- How to Set Up SureForms with Autoptimize
- How to Enable Logs in SureForms
- srfm_enable_redirect_activation
- sureforms_plugin_action_links
- srfm_quick_sidebar_allowed_blocks
- srfm_integrated_plugins
- srfm_suretriggers_integration_data_filter
- srfm_form_submit_response
- srfm_enable_gutenberg_post_types
- srfm_languages_directory
- srfm_form_template
- srfm_disable_nps_survey
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\.phpThese 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.jsUse 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/jsUse 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.
We don't respond to the article feedback, we use it to improve our support content.