WooCommerce Error Saving Settings? 7 Fixes for Settings That Won't Save
WooCommerce settings fail to save because a firewall, cache or plugin blocks the request, or the server limits it. Step-by-step fixes with menu paths.
- WooCommerce settings fail to save when a firewall, cache, plugin conflict, expired session or PHP input limit blocks the request.
- Retry after logging in again, check firewall logs, purge caches and read WooCommerce > Status > Logs before testing plugins on staging.
- Large forms can exceed max_input_vars, and newer screens save through the REST API, so re-save permalinks and check Site Health.
WooCommerce shows an error saving settings, or quietly reverts them, because something between your browser and the database blocks the save: a security firewall, a caching layer, a conflicting plugin, an expired login session, or a server limit on how much data a form can send.
Work through the fixes in order. Most stores are sorted by fix 2 or 3.
How to fix WooCommerce settings that won't save
- Reload, log in again and retry. WordPress forms carry a security token (a nonce) that expires. If the page was open for hours, the save is rejected. Log out, log back in, open the settings fresh and save again. Also try a private browser window to rule out an extension such as an ad blocker.
- Check the firewall. Security plugins such as Wordfence, and server firewalls such as ModSecurity or Cloudflare's WAF, sometimes flag settings that contain code-like text (HTML in email footers, scripts in tracking fields, long API keys). In Wordfence, go to Wordfence > Firewall and check the blocked requests log; allowlist the action if it's yours. On cPanel or Hostinger, ask the host whether ModSecurity blocked a
POSTto/wp-admin/admin.php. A 403 Forbidden right after clicking Save almost always means a firewall. - Clear and exclude caches. Purge your caching plugin, server cache and CDN. Make sure
/wp-admin/is excluded from page caching. If an object cache (Redis or Memcached) is running, flush it; a stale object cache can show old values after a successful save, which looks exactly like a failed save. - Read the logs. Go to WooCommerce > Status > Logs and look for fatal-errors entries at the time you saved. For more detail, enable
WP_DEBUG_LOGinwp-config.phpand check/wp-content/debug.log. Our guide to the WordPress error log explains how. - Test for a plugin or theme conflict. On a staging copy, switch to a default theme such as Storefront or Twenty Twenty-Four and deactivate everything except WooCommerce. If saving works, reactivate plugins one at a time. Translation plugins, other payment plugins and admin customisers are the usual suspects. A gateway's settings may only fail with one particular plugin active.
- Raise the PHP input limit. Pages with many fields (shipping zones with many rates, table rate plugins, long product lists) can exceed
max_input_vars, which defaults to 1000 on many servers. PHP drops the extra fields without an error, so the bottom part of the form doesn't save. Raise it to 3000 or more in your host's PHP settings orphp.ini. Check the current value under WooCommerce > Status > System status. - Re-save permalinks and check the REST API. Newer WooCommerce screens (Payments, Home, Analytics, some settings pages) save through the WordPress REST API, not a normal form. Go to Settings > Permalinks and click Save Changes. Then check Tools > Site Health for a REST API error. If a security plugin disables the REST API for logged-in users, those screens can't save.
Edge cases most guides skip
- Two admin tabs overwrite each other. If you or a colleague saved the same settings page in another tab, the later save wins and your change seems to vanish.
- A setting is fixed in code. Some values are forced by a filter in the theme's
functions.php, a code snippets plugin orwp-config.php. The field saves, but the forced value is used. Search the theme and snippets for the option name. - Database write problems. A full disk or a crashed
wp_optionstable means nothing saves anywhere in WordPress, not just WooCommerce. If general settings don't save either, contact your host. - Multilingual settings. With WPML or Polylang, some WooCommerce strings are saved per language. Changing them in one language doesn't change the other.
If the settings that won't save are your payment gateway's, see payment gateway not working as well. If you'd rather hand it over, our WooCommerce developer service can find the conflict on a staging copy so the live store keeps taking orders.
FAQs
Why do my WooCommerce settings go back to the old values?
Usually a cache (page, server or object cache) is showing the old value, or a code snippet forces it. Purge every cache, then reload the settings page.
Can a security plugin stop WooCommerce settings saving?
Yes. Firewalls can block saves that contain HTML, scripts or long keys. Check the plugin's blocked requests log or ask your host about ModSecurity.
Is it safe to disable plugins to test?
Do it on a staging copy. Disabling plugins on a live store can break checkout for real customers while you test.
Need help with your website?
I'm a freelance WordPress developer building fast, SEO-friendly websites since 2020. Tell me what you need and I'll reply with a plan and a fixed quote, usually within 24 hours.

