Troubleshooting WordPress cron when Jetpack Sync is delayed

When Jetpack Sync falls behind, features that rely on it, like Activity Log and Newsletter, can show outdated information or stop updating. This guide shows you how to check whether WordPress cron is running Jetpack’s sync events, and what to send our support team if Sync is still delayed.

How Jetpack Sync uses WordPress cron

Jetpack Sync keeps a copy of your site’s data on WordPress.com. (To see which data is synced, read What data does Jetpack sync?) Jetpack sends sync data in two ways. It sends data at the end of page loads made by logged-in site administrators, and it sends data through WordPress cron (also called WP-Cron or scheduled events).

Jetpack schedules two cron events on your site:

  • jetpack_sync_cron sends recent changes (incremental sync).
  • jetpack_sync_full_cron sends a full copy of your site’s data when a full sync is running.

Both events run every 5 minutes. Jetpack creates these events automatically. If one is missing, Jetpack adds it back the next time your site loads.

WordPress cron only runs when someone loads a page on your site, unless your host runs it on a server schedule. On low-traffic sites, or sites where WordPress cron is turned off, Jetpack’s sync events can run late or not at all.

Check your site’s sync status

If you use the Jetpack plugin, you can see your sync status in Site Health. Standalone Jetpack plugins, such as Jetpack VaultPress Backup or Jetpack Boost, do not add this information. If you only use a standalone plugin, skip to the next section.

  1. In WP Admin, go to Tools → Site Health.
  2. Click the Info tab.
  3. Expand the Jetpack section.
  4. Find Sync Queue Size and Sync Queue Lag.

Sync Queue Size is the number of changes waiting to be sent to WordPress.com. Sync Queue Lag is how long the oldest waiting change has been in the queue. A lag of a few minutes is normal. A lag of hours or days means Sync is behind.

Check Jetpack’s cron events with WP Crontrol

WP Crontrol is a free plugin that lists every scheduled cron event on your site.

  1. In WP Admin, go to Plugins → Add New Plugin.
  2. Search for WP Crontrol, then click Install Now and Activate.
  3. Go to Tools → Cron Events.
  4. Search for jetpack_sync.

WP Crontrol can also run, edit, and delete cron events for every plugin on your site. Use it only to view events. Do not run, edit, or delete any events on this screen, including Jetpack’s. Deleting Jetpack’s events does not clear the sync queue, and Jetpack adds them back on the next page load. Installing WP Crontrol is the only step in this guide that changes your site. Every other step only views information. You can deactivate and delete WP Crontrol when you’re done.

You should see both jetpack_sync_cron and jetpack_sync_full_cron, each set to run every 5 minutes.

On a site with steady traffic, or a site where your host runs cron on a server schedule, each event’s next run time is within the next 5 minutes. On a low-traffic site, events can show as late until someone visits the site. This is expected. Reload the Cron Events screen a few times over several minutes. If the next run times stay in the past, WordPress cron isn’t running on schedule.

Fix WordPress cron that isn’t running

Contact your web host for each of these. They can check and change your server settings safely.

  • WordPress cron is turned off on your site. Some hosts turn off WordPress cron (with the DISABLE_WP_CRON setting) and run it on a server schedule instead. Ask your host whether a server cron job runs wp-cron.php on your site. If not, ask them to set one up or to turn WordPress cron back on.
  • Your site gets very little traffic. WordPress cron only runs when someone loads a page. Ask your host to set up a server cron job that runs wp-cron.php every 5 minutes.
  • Your host stops long database queries. Some hosts automatically stop database queries that run longer than a set limit. When this happens to Jetpack’s queries, Jetpack can’t read its sync queue, and Sync can stay behind even though cron runs on time. Ask your host to check your error logs for stopped or killed queries that mention jetpack-sync or jetpack_sync_queue, and ask how to let those queries finish.

Send cron details to Jetpack support

If Jetpack’s cron events run on time and Sync is still behind, contact Jetpack support. Include:

  1. Your site’s URL.
  2. The Sync Queue Size and Sync Queue Lag values from Tools → Site Health → Info → Jetpack, if you use the Jetpack plugin.
  3. An export of your cron events. In WP Crontrol, go to Tools → Cron Events and click Export to download a CSV file.
  4. Any error log lines your host found that mention jetpack-sync.

Our team will review your site and decide how to get Sync running again.

Was this article helpful?