WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

WordPress automatically checks for updates to itself and all installed themes and plugins. This adds an annoyingly long delay to loading (any) WordPress pages. In only happens once per day and subsequent page-loads don’t do it, but it is so long, that it makes me think twice about whether it is worth opening that first page at all (especially if I only need to do a quick thing rather than spending all day in WordPress).

I only update once in a while anyway, and would much rather perform updates manually anyway, so I created a plugin to remove the Updates button from the admin bar. I thought that would do the trick, but apparently in only removes the button and the actual check is still performed in the background.

Every other program in the world lets you turn them off automatic updates, so I expect that there should be a way to do the same for WordPress, but if there is, it is a little too-well—hidden.

When I tried to find a solution, all of the questions that came up were the opposite, about finding a way to force automatic updates to actually apply (not just automatically check for updates).

How can automatic update checks be turned off in WordPress?

share|improve this question
Have you read this? – toscho Jun 10 '13 at 18:49
Also see the update here wordpress.stackexchange.com/questions/67945/… , it causes a PHP warning but I forget why. – Wyck Jun 10 '13 at 19:03
Also, review instructions of this WP codex: codex.wordpress.org/Configuring_Automatic_Background_Updates – Tara Jan 24 '14 at 1:16
related question: wordpress.stackexchange.com/questions/120081/… – Tara Mar 27 '14 at 20:31
The information about automatic background updates in 3.7 weren’t what I was talking about (I’m still using 3.5—I’m avoiding updating until the post formats thing is sorted out because I often want to post just a single photo or sentence, not a whole post). However, the question about dashboard update notifications is definitely related. When I get my portable web-server up and running again, I’ll test that. – Synetech Mar 28 '14 at 1:40

How to disable core auto updates but enable plugins and themes auto updates

If you want to stop the autoupdates of the WordPress core, but to enable them for your Plugins and/or Themes, you can add these lines in the wp-config.php file: Stop the core auto updates:

define( 'WP_AUTO_UPDATE_CORE', false );

Then Enable the plugins/themes:

add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );

How to completely disable the WordPress auto updates

If you want to disable the WordPress auto updates completely, open the wp-config.php file and add this line to it:

share|improve this answer
This does not prevent WP from checking the updates. – Mati Apr 10 '15 at 8:14

Mark Jarquith already posted about this on his blog a while ago. Basically it just bails requests to the public SVN repos on wp dot org via the WP HTTP API filters.

For Plugins (must get placed inside the plugin):

add_filter( 'http_request_args', 'wpse_102554_deny_plugin_updates', 5, 2 );
function wpse_102554_deny_plugin_updates( $r, $url )
    if ( 0 !== strpos( $url, 'http://api.wordpress.org/plugins/update-check' ) )
        return $r;

    $plugins = unserialize( $r['body']['plugins'] );
        $plugins->plugins[ plugin_basename( __FILE__ ) ],
        $plugins->active[ array_search( plugin_basename( __FILE__ ), $plugins->active ) ]
    $r['body']['plugins'] = serialize( $plugins );

    return $r;

For Themes (must be placed inside functions.php of the theme and only works for the currently active theme):

add_filter( 'http_request_args', 'wpse_102554_deny_theme_updates', 5, 2 );
function wpse_102554_deny_theme_updates( $r, $url )
    if ( 0 !== strpos( $url, 'http://api.wordpress.org/themes/update-check' ) )
        return $r;

    $themes = unserialize( $r['body']['themes'] );
        $themes[ get_option( 'template' ) ],
        $themes[ get_option( 'stylesheet' ) ]
    $r['body']['themes'] = serialize( $themes );

    return $r;

John Blackburn has written a plugin to disable theme updates.

share|improve this answer
I think the snippets will not work. Since WordPress 3.7 works the API with a JSON String. The function serialize can't work with JSON, use as alternative json_decode and json_encode. The the follow gist for the completely source - gist.github.com/bueltge/5a3545ada7e68d367424 – bueltge Jul 6 '14 at 12:22

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.