Site times out

A timeout - often shown as an HTTP 502 or 504 error, or a page that spins and then fails - means a request took too long to finish and was cut off. This is different from the site being down: the environment is up, but one request ran past the time it's allowed.

Common causes

  • A slow or stuck plugin operation. Imports, backups, migrations, and bulk actions can run long enough to time out. Deactivate plugins and themes to isolate the plugin.
  • A slow external call. If your site waits on an external API that's slow or unreachable, the whole request waits with it. Add a timeout to the call or cache its result.
  • A heavy database query. Poorly indexed queries or a bloated database (expired transients, spam, old revisions) can make certain pages crawl. Clean up the database and review slow queries.
  • A long-running scheduled task (WP-Cron). WordPress runs scheduled jobs on page loads. A stuck or heavy cron job can slow or time out otherwise-normal requests.

Narrow it down

  • Note whether the timeout happens on every page or only specific ones (for example the checkout, an admin screen, or a particular import). A single slow page points at the code that runs on it.
  • Check the traffic log in the Panel's Logs tab - its response-time column shows which requests run long.
  • Enable WordPress debugging and check wp-content/debug.log for errors logged around the time of the timeout.

If timeouts continue after ruling out plugins and external calls, contact support with the exact URL that times out and roughly how long it runs before failing, so we can check what the request is doing.