If you get 403 error for an AJAX request, probably it is using a nonce which expired. Nonce is a CRSF token in WordPress, and will be valid for 12-24 hours. See more about nonces

There is no reason to use nonce for not logged in users, but unfortunately many plugins are misusing them (even really popular ones), and requires a valid nonce to process some requests.

If you cache the page, it will cache the generated nonce as well. However if the cache is older than 12 hours, it may won’t work. There are multiple solution for this issue.

Time based cache expiry

You can set the Cache Expiry Mode to Time based, and the Cache expiry time to 12 hours. In that case Swift Performance will clear the cache in every 12 hours, so the cached page will always contain a valid nonce.

Short lifespan pages

If you have only a few pages which contains the form, then you can leave the Cache Expiry Mode on Action based, however you can add form pages to Short Lifespan Pages. In that case most of your pages, will be use action based cache expiry, but pages which were added to Short Lifespan Pages will be cleared in every 12 hour.

Extend Nonces

If you would like to use longer cache expiry time, you can also extend nonce expiry to the same period.

Bypass Nonces

If all your pages contains the form (eg in the footer), and you have thousands of pages, and don’t want to regenerate the cache too often, you can also bypass nonce validation for not logged in users. Using nonces for not logged in users has no benefit, so it won’t cause any issues. For logged in users, WordPress will still verify nonces.