A 30-second cutoff can stop an update, backup, import, or page process right when it matters most. That doesn’t mean WordPress is broken. It means a PHP task ran longer than your server currently allows.
The WordPress maximum execution time is a server setting, not a magic WordPress switch. Raise it with care, test the change, and fix the slow task behind the timeout whenever possible.
Here is how to give legitimate jobs more room without leaving your site exposed to slow scripts and wasted server resources.
Know What the Time Limit Actually Controls
PHP runs WordPress. When a PHP script reaches its time limit, the server stops it to protect resources for the rest of the account and other sites on the server.
PHP commonly defaults to 30 seconds. The exact limit depends on your host, PHP version, account plan, and server configuration.
Watch for the right timeout message
A timeout can show up as a blank screen, a failed plugin update, a stalled import, or an error message such as “Maximum execution time of 30 seconds exceeded.”
Check the details before changing anything. In WordPress, the Site Health screen can show server information and PHP settings that help confirm what your site is using.
A slow page alone doesn’t prove you have an execution time problem. High memory use, database errors, a stalled API request, and overloaded hosting can look similar at first.
Don’t confuse time limits with memory limits
Execution time controls how long a script can run. PHP memory limits control how much memory it can use while running.
A large image import may need more memory. A backup plugin that waits on thousands of files may need more time. Sometimes it needs both, but raising every limit at once makes the real issue harder to find.
A higher PHP time limit gives a valid task more breathing room. It does not make a slow plugin, damaged database table, or failing external service run faster.
Choose a WordPress Maximum Execution Time That Fits the Job
There is no universal best number. A normal page request shouldn’t run for five minutes. A one-time migration may need more than 30 seconds.
We recommend making the smallest change that lets the job finish, then checking that it stays stable.
Start with a measured increase
For a plugin update, a medium-sized product import, or a planned backup, 120 seconds is often a sensible first step. If you are moving a large site or importing a substantial media library, 300 seconds may be reasonable for the short term.
Use this as a practical guide:
| Site task | Sensible starting point | What to do next |
|---|---|---|
| Normal page requests | 30 seconds | Leave the default in place unless errors prove otherwise. |
| Plugin or theme updates | 60 to 120 seconds | Update one item at a time and check the site afterward. |
| Product, post, or media imports | 120 to 300 seconds | Use smaller batches when the import tool allows it. |
| Full-site migrations | 300 seconds | Return to a lower setting after the move completes. |
The smaller limit is usually the healthier choice for visitor-facing requests. Long-running scripts can tie up PHP workers, especially on shared hosting.
Avoid unlimited time on live websites
PHP supports a zero value for no execution limit in some environments. Don’t use it for public WordPress requests.
An unlimited script can hang on a broken connection, a plugin bug, or an external service that never replies. Instead, give the task a clear ceiling and investigate anything that still can’t complete.
Use Your Hosting Control Panel First
The safest way to increase the WordPress maximum execution time is through your hosting account’s PHP settings. This changes the value where it belongs, at the PHP level, without editing WordPress core files.
Many cPanel accounts include MultiPHP INI Editor. Other hosts offer a PHP Settings, PHP Selector, or similar tool.
Change the setting in cPanel MultiPHP INI Editor
In cPanel, open MultiPHP INI Editor under Software. Choose the domain, find max_execution_time, enter the value you need, and apply the change.
Basic Mode is the easy route. It is built for common PHP settings, and it reduces the chance of placing a directive in the wrong file.
Before you save, confirm you selected the correct domain. Add-on domains, subdomains, and staging sites can use different PHP settings.
Check which PHP version is active
A setting can appear to save but not affect your site if it applies to another PHP version or directory. Check the PHP version assigned to the domain, then confirm the time limit in Site Health or your host’s PHP information page.
WordPress also runs better on supported PHP releases. The official PHP update guidance from WordPress explains why current PHP versions improve performance and security.
If your panel blocks the change, don’t force it through random file edits. Your provider may have an account-level cap for stability and security. Ask support to raise the limit for the specific job, then ask what value they recommend for your plan.
Use File or Code Changes Only When Necessary
Some hosts do not offer a PHP settings panel. Others allow a per-site configuration file. These options can work, but they need a little more care.
Make a fresh backup before editing server files. One misplaced character can produce a 500 error.
Add the setting to the right PHP configuration file
Depending on the host’s PHP handler, the active file may be php.ini or .user.ini. The directive itself is simple: max_execution_time = 300.
The hard part is knowing which file your server reads. Some hosts use a file in the site root. Others apply settings higher in the account. cPanel can also generate PHP configuration through different files based on its setup.
Create or edit only the file your host documents. Then wait for the configuration refresh if your host uses .user.ini, as changes are not always immediate.
Keep WordPress core and wp-config.php clean
Don’t edit WordPress core files. Updates replace them, and the change will disappear.
You may see advice that suggests adding set_time_limit(300); or ini_set('max_execution_time', '300'); inside wp-config.php. It may work on some hosts, but it is not the most reliable fix. Hosts can block runtime overrides, and a site-wide code change can affect more requests than intended.
If a developer needs extra time for one custom process, a small custom plugin or must-use plugin is a better home for that code. Keep the change limited to the task that needs it.
Fix the Slow Task Behind the Error
A timeout is often a symptom. Raise the limit for a legitimate heavy job, then look at why it needs so much time.
This is where a few minutes of checking can save hours of repeated failed imports and backups.
Look for plugin and theme conflicts
Start by identifying the action that triggers the error. Is it a backup plugin? A page builder update? A WooCommerce import? A security scan?
Temporarily deactivate non-essential plugins, then retry the same task. If the error disappears, reactivate plugins one at a time until you find the conflict.
A current WordPress version, updated plugins, and a supported PHP release help reduce these problems. The WordPress hosting requirements are a useful reference when checking whether your server environment is keeping pace.
Break large jobs into smaller pieces
Large imports often fail because they try to process too much at once. Reduce the import batch size. Upload media in groups. Run a database cleanup in stages.
Backup jobs need the same common sense. Exclude old archives, cache folders, and files that do not belong in a website backup. Store backup copies away from the live site when your backup tool supports it.
We have seen a 300-second setting hide the real problem for weeks. A smaller batch or a better-maintained plugin often solves it without leaving PHP open longer than needed.
Test the Change Without Guesswork
Don’t raise a value, hope for the best, and walk away. Test the exact job that failed, then check the site afterward.
A clean test gives you a clear answer. The task either completes, fails with a different message, or still reaches the limit.
Follow a simple, safe test process
First, back up the site. Next, change only max_execution_time, not memory limits, upload limits, and PHP versions all at once.
Run the failed action once. If it completes, check the front end, WordPress admin area, and any affected orders, posts, or files. Then review your error log for fresh warnings.
If it still fails, don’t keep adding time in 300-second jumps. The error log may point to a plugin function, exhausted memory, a database issue, or a remote connection that needs attention.
Put the setting back when the job is done
A one-time site migration does not require a permanent five-minute execution window. Return the setting to a lower value after the work is complete, especially on shared hosting.
Keep a note of what changed, why it changed, and when. That small record makes future troubleshooting much easier for you, your developer, and hosting support.
When a Hosting Upgrade Is the Better Fix
Sometimes the time limit is not the real bottleneck. A growing WooCommerce store, busy membership site, or content-heavy business website may have outgrown a basic hosting account.
More execution time cannot compensate for too few PHP workers, limited CPU resources, slow storage, or a server under strain. It only lets one request wait longer.
Look for hosting that keeps control in your hands
You should be able to access PHP settings, use current PHP versions, restore backups, add SSL, and reach a real support team when something goes sideways.
That is why we built our WordPress hosting around practical control and less technical stress. You get the room to grow, the tools to protect your site, and human help when a server setting needs a second look.
Choose hosting that supports your work instead of making every update feel like a gamble.
Final Thoughts
The right WordPress maximum execution time is the lowest setting that lets a valid task finish without disrupting the rest of your site.
Use your hosting panel first, test one change at a time, and treat repeated timeouts as a reason to inspect the task itself. A healthy site is not one that runs forever. It is one that runs reliably, finishes important work, and stays ready for the next customer.






