Initial assessment without passwords Quote before intervention One accountable specialist from start to finish

Errors & Diagnosis

Maximum Execution Time Exceeded in WordPress: What to Check

PHP stopped a request that ran too long. The fix is rarely a bigger timeout — it is finding the operation that should not take that long.

Short answer: a script exceeded the time PHP allows for a single request (max_execution_time, often 30 seconds) and was terminated. The timeout is a safety mechanism, not the problem. The problem is whatever took that long.

Where it clusters

Timeouts gather around a few operations: plugin and theme updates, imports and exports, backups, bulk edits, image regeneration, and any page that calls a slow external API. If the message appears during ordinary browsing instead, that is a much stronger signal of a performance or database problem worth investigating rather than masking.

Raise it only where it belongs

For a genuine one-off migration you can raise the limit — in wp-config.php with set_time_limit(300); in a maintenance script, or via php.ini/host settings. But raising it on pages real visitors load is a poor permanent answer: it holds server processes open, lowers how many concurrent visitors you can serve, and turns a fast failure into a slow outage.

Find what is slow

  1. Identify the exact action that triggers it and whether it is reproducible.
  2. Check whether it completes partially — half-finished imports and backups must be cleaned up before retrying, or you get duplicates.
  3. Look for slow external calls; a hanging third-party service can stall an otherwise healthy request. Disable that integration temporarily to confirm.
  4. Review the slow-query log if your host offers one; an unindexed query on a large table is a common cause.

Move long jobs off the web request

The durable fix for genuinely long-running tasks is to run them via WP-CLI or a scheduled process rather than the browser — a full backup or a large import should never depend on a 30-second web timeout. After changing anything, re-run the operation and confirm it finishes well inside the limit, not just under it.

WP REPAIR INCIDENT STANDARD

Safe intervention sequence

A timeout is a guardrail. The repair is to identify why the request is long, decide whether it belongs in a web request at all and prevent partial work from being repeated blindly.

WP RepairDiagnostic model
1Request2PHP / server3WordPress4Component
Follow the chain until you find the first point that stops behaving as expected.
  1. Identify the exact action and whether it leaves partial imports, files or database rows.
  2. Measure database, external API and filesystem time separately.
  3. Move genuine batch work to WP-CLI, a queue or a scheduled process.
  4. Raise the timeout only for the controlled operation and document the previous value.

What must be verified

  • The operation is idempotent or partial output is handled.
  • It completes comfortably inside the limit under realistic load.
  • Normal visitor requests remain responsive while it runs.

Official technical sources

BEFORE YOU SEND THE REQUEST

Frequently asked questions.

Do you ask for passwords in the form?+

No. The public form never requests access. Secure credentials are requested only after the scope and quote are approved.

Who reviews the incident?+

The request goes to Jordi Ensenyat, founder of Code Barcelona and a WordPress specialist with more than 15 years of experience.

Is anything changed before the quote?+

No. Visible symptoms and scope are reviewed first. Intervention begins after approval and with a rollback path prepared.

Do you work internationally?+

Yes. WP Repair handles WordPress and WooCommerce incidents in English and Spanish through a remote service.

Assess my incident