WordPress automatic updates: how they work and how to set them up safely
WordPress can update itself, its plugins and its themes without you. Here is what it updates by default, how to turn each part on or off, what happens when an automatic update breaks a site, and how to set it up so a bad release never goes unnoticed.

The short answer
By default, WordPress installs minor core and security releases and translation updates on its own, and sites installed on WordPress 5.6 or later also get major core versions. Plugins and themes update automatically only if you switch it on for each one, apart from rare security fixes pushed by WordPress.org.
- Plugins and themes: go to Plugins (or Appearance > Themes) and click Enable auto-updates.
- Core: use Dashboard > Updates, or
WP_AUTO_UPDATE_COREin wp-config.php. - Everything off:
define( 'AUTOMATIC_UPDATER_DISABLED', true );in wp-config.php, which is not recommended.
The safe way to use them: take a restore point first, update in a quiet window, check the pages that matter afterwards, and roll back fast if something breaks.
What WordPress updates automatically by default
WordPress has updated itself in the background since version 3.7. Out of the box, each part behaves differently:
| Part of WordPress | Updates automatically by default? | Notes |
|---|---|---|
| Core minor and security releases | Yes | Point releases that fix bugs and security issues. Leave them on. |
| Core major versions | Yes on sites installed with 5.6 or later; no on older sites | Change it under Dashboard > Updates, or with WP_AUTO_UPDATE_CORE. |
| Plugins | No, until you turn it on for each plugin | WordPress.org can push a critical security fix in rare cases. |
| Themes | No, until you turn it on for each theme | Same rare exception for critical security fixes. |
| Translations | Yes | Language files for core, plugins and themes. |
Source: WordPress developer documentation, checked 10 October 2026. Hosts can change these defaults, and some managed hosts run updates themselves.
So on most sites, the security releases already arrive on their own. The choices you make are about major core versions, plugins and themes.
How to turn on automatic updates for plugins and themes
Plugin and theme auto-updates arrived in WordPress 5.5. They stay off until you turn them on, one at a time or in bulk.
- In wp-admin, go to Plugins > Installed Plugins.
- In the Automatic Updates column, click Enable auto-updates next to the plugin.
- To do several at once, tick them, choose Enable Auto-updates from the Bulk actions menu and click Apply.
For a theme, go to Appearance > Themes, click the theme to open its details and click Enable auto-updates. WordPress emails the site admin after automatic plugin and theme updates, so you know what changed.
If you do not see the column or the link, your host or another plugin has switched the feature off, or the plugin comes from outside WordPress.org and has its own updater.
How to turn WordPress core automatic updates on or off
From the dashboard: go to Dashboard > Updates. Near the top, WordPress says whether the site updates to every new version automatically, with a link to switch between all new versions and maintenance and security releases only.
In wp-config.php: add one of these lines above the comment that says to stop editing:
define( 'WP_AUTO_UPDATE_CORE', true ); // every core update, including major versions
define( 'WP_AUTO_UPDATE_CORE', 'minor' ); // minor and security releases only
define( 'WP_AUTO_UPDATE_CORE', false ); // no core updates at all
Use only one of the three. When the constant is set, it overrides the dashboard setting, so the switch on the Updates screen stops working.
How to disable WordPress automatic updates
You can switch off one part or everything. Think twice before turning off minor core updates: they carry the security fixes, and WordPress's own documentation strongly discourages disabling all automatic updates.
Turn off all automatic updates
define( 'AUTOMATIC_UPDATER_DISABLED', true );
This stops core, plugin, theme and translation updates, security releases included. From then on, you update everything by hand.
Turn off core automatic updates only
define( 'WP_AUTO_UPDATE_CORE', false );
Turn off plugin or theme auto-updates
Click Disable auto-updates next to each plugin or theme, or use the Bulk actions menu. To force them off for every plugin and theme, even if someone turns them on later, add a filter in a must-use plugin: a PHP file in wp-content/mu-plugins/.
<?php
// Never auto-update plugins or themes on this site.
add_filter( 'auto_update_plugin', '__return_false' );
add_filter( 'auto_update_theme', '__return_false' );
Returning false also blocks the rare security fixes WordPress.org pushes, so watching for those becomes your job.
Keep one plugin from auto-updating
To leave every other plugin as it is but never auto-update one of them, check its slug in the filter:
<?php
// Never auto-update WooCommerce, whatever the setting says.
add_filter( 'auto_update_plugin', function ( $update, $item ) {
if ( isset( $item->slug ) && 'woocommerce' === $item->slug ) {
return false;
}
return $update;
}, 10, 2 );
Automatic update constants and filters at a glance
| Setting | Where it goes | What it does |
|---|---|---|
AUTOMATIC_UPDATER_DISABLED | wp-config.php | true turns off every automatic update, including security releases. |
WP_AUTO_UPDATE_CORE | wp-config.php | true for all core updates, 'minor' for minor releases only, false for none. Overrides the dashboard setting. |
auto_update_plugin, auto_update_theme | Filter, in a must-use plugin | Return true or false for every plugin or theme, or decide per item. |
auto_update_core | Filter, in a must-use plugin | Return true to allow every type of core update. |
allow_major_auto_core_updates, allow_minor_auto_core_updates | Filter, in a must-use plugin | Control major and minor core updates separately. |
auto_update_translation | Filter, in a must-use plugin | Return false to stop translation updates. |
auto_core_update_send_email | Filter, in a must-use plugin | Return false to stop core update emails. |
Source: WordPress developer documentation, checked 10 October 2026. Put filters in a must-use plugin, not in wp-config.php, because WordPress has not fully loaded when wp-config.php runs.
What WordPress does when an automatic update breaks a site
WordPress has a few safety nets. They cover less than most people assume.
- Failed core updates are undone. Since background updates arrived in 3.7, a core update that fails to install is rolled back.
- Failed plugin and theme updates are restored (6.3). If an update fails partway, for example because a file cannot be moved, WordPress puts the previous version back from a temporary backup in
wp-content/upgrade-temp-backup/. - Plugin auto-updates that crash the site are rolled back (6.6). After a plugin auto-updates, WordPress requests the home page. If that finds a PHP fatal error, or the request fails, the previous version is restored and the site admin gets an email.
What those safety nets do not catch:
- A plugin update that breaks a page other than the home page.
- A layout, checkout or form that breaks without a PHP fatal error: the page loads, but looks or works wrong.
- A theme auto-update that breaks the site, because the 6.6 rollback covers plugins only.
- Problems that appear later, after the check has run.
For those you need a restore point from just before the update and someone, or something, checking the site afterwards. That is the gap visual regression testing closes. If an update has already broken a site, follow our guide for when a plugin update breaks your site, or the steps for the WordPress critical error message.
Should you turn on WordPress automatic updates?
Usually yes for security releases, and selectively for plugins. Many WordPress break-ins go through plugin vulnerabilities that already had a fix available, so an update that never gets installed is a real risk. The argument against is just as real: an update can break a site while nobody is watching. The answer is not to pick one side, it is to make every update checkable.
| Type of site | Core minor and security | Core major versions | Plugins and themes |
|---|---|---|---|
| Simple brochure site or blog | On | On, with a recent backup | On for well-maintained plugins |
| WooCommerce or membership site | On | By hand, after testing | By hand or in a controlled window, with checkout and login checked after |
| Site with custom code or a custom theme | On | By hand, after testing | By hand for anything your code depends on |
| Site nobody checks for months | On | On | On: a missed security fix is the bigger risk |
| Many client sites | On | In scheduled batches | In scheduled batches, with checks and automatic rollback |
Our recommendation, not an official WordPress rule.
Why WordPress automatic updates sometimes do not run
- WP-Cron is not running. WordPress checks for updates about twice a day through its built-in scheduler, which only runs when the site gets visits. On a quiet site, or where
DISABLE_WP_CRONis set without a real cron job, updates can be late or never happen. - File changes are blocked.
DISALLOW_FILE_MODSset to true in wp-config.php stops updates and installs from wp-admin, automatic ones included. - The code is under version control. WordPress skips automatic updates when it detects a version control checkout, such as a
.gitfolder. - Your host manages updates. Some managed WordPress hosts run updates themselves and turn WordPress's own updater off.
- WordPress cannot write its own files. Background updates need direct write access. If WordPress would have to ask for FTP details, they do not run.
- Loopback requests are blocked. Since 6.6, WordPress checks the home page after a plugin auto-update. If a firewall blocks that request, the update is treated as failed and rolled back.
- Premium plugins. Plugins from outside WordPress.org update only if their own updater supports it, usually with an active license.
Tools > Site Health flags several of these, including problems with background updates and loopback requests.
How to set up WordPress automatic updates safely, step by step
These seven steps work whether WordPress runs the updates or a tool does. A backup with a restore point before every update is the one you should not skip, and our WordPress backup guide shows how to set one up.
- Take a restore point right before updates. A nightly backup can be almost a day old. A restore point taken minutes before the update gives you a clean way back without losing new orders or form entries.
- Leave core minor and security releases on. They are small, rarely break anything and carry the security fixes.
- Turn on plugin auto-updates selectively. Start with well-maintained plugins with many active installs. Hold back page builders, store extensions and anything your custom code depends on.
- Pick a quiet window. Update when traffic is low and someone can look at the site afterwards, not during a sale or a launch. WordPress picks its own time, so use a tool if timing matters.
- Check more than the home page. After updates, open the pages that earn money or collect leads: checkout, forms, login. Look for layout breaks, not only errors.
- Make sure the update emails reach someone. WordPress's update and rollback emails go to the site's admin address. Point it at an inbox a person reads.
- Know your way back before you need it. Write down how to restore the restore point or roll back a single plugin, so a broken update costs minutes, not an afternoon.
The same routine is part of any good WordPress maintenance plan, and if you already test WordPress updates visually, steps five and seven are mostly done for you.
Managing automatic updates across many WordPress sites
Every setting above lives inside each site. With ten or fifty sites, that means ten or fifty update setups, a stream of emails, and no single place to see what changed. This is the problem safe WordPress updates with automatic rollback in WPCentrify are built for. (Disclosure: WPCentrify is our product.)
- A risk score on every pending update, so low-risk releases can go out automatically and risky ones wait for you.
- A restore point taken seconds before each update, on every site.
- One canary site first, then the rest of the batch, so a bad release stops early.
- Automatic rollback when an update causes a PHP fatal error, a 5xx server error or a visual break on the pages it compares.
- Maintenance windows, freeze periods and version pins per site or per client.
- Auto-updates switched on or off in bulk across sites by risk level, from bulk updates.
- Email alerts when something needs a person.
Questions about WordPress automatic updates
Not by default. Since WordPress 5.5 you can turn on automatic updates for each plugin from the Plugins screen. In rare cases, WordPress.org can push a critical security fix to a plugin automatically.
Minor core and security releases are low risk and worth leaving on. Plugin and theme updates can break a site, so turn them on selectively, keep a restore point from just before the update, and check the pages that matter afterwards.
To stop every automatic update, add define( 'AUTOMATIC_UPDATER_DISABLED', true ); to wp-config.php. To stop core updates only, use define( 'WP_AUTO_UPDATE_CORE', false );. For plugins and themes, click Disable auto-updates next to each one. Turning off security updates is not recommended.
Partly. A core update that fails to install is undone, a plugin or theme update that fails partway is restored, and since WordPress 6.6 a plugin auto-update that causes a PHP fatal error on the home page is rolled back and the admin is emailed. Visual breaks, broken checkouts, other pages and theme problems are not caught.
WordPress checks for updates about twice a day through its built-in scheduler, WP-Cron, which runs when the site gets visits. You cannot choose the exact time from wp-admin; to control timing you need a plugin or a management tool that runs the updates for you.
Yes. By default WordPress emails the site's admin address after automatic core, plugin and theme updates, and when an update fails or a plugin is rolled back. Make sure that address reaches a person who reads it.
On simple sites with a recent backup, yes. On stores, membership sites and sites with custom code, update major versions by hand after testing, because they change more at once.
The usual causes are WP-Cron not running, DISALLOW_FILE_MODS set to true, a version control folder, a host that manages updates itself, file permissions that stop WordPress writing its own files, or blocked loopback requests. Tools, then Site Health, flags several of these.
Only if the plugin has its own updater that supports it, which usually needs an active license key. Check with the vendor.
Use a management tool rather than each site's own settings. WPCentrify gives every update a risk score, takes a restore point first, rolls out to one canary site before the rest, and rolls back automatically when an update causes a PHP fatal error, a 5xx server error or a visual break.
Related reading
Safe updates
Risk scores, a restore point first and automatic rollback when an update breaks a site.
See the featureA plugin update broke my site
Get access back, find the culprit and roll it back, step by step.
Read the guideWordPress update testing
How visual checks catch the breakage that still returns 200 OK.
Read the postUpdate every site without gambling on it
Risk-scored updates, a restore point before every change, and automatic rollback when an update breaks a site, across every WordPress site you manage.
Free during early access. No credit card required.