
500 Internal Server Error is the general server error message. It only means that something went wrong on the server and the request could not be handled. The reason is not passed to the browser, because it could reveal information about the structure of the site. The real cause is in the error log, and without it fixing the problem is guesswork.
The control panel has a log view, and the site root often has an error_log file. Find the most recent line whose timestamp matches the moment the error appeared. The line usually names the file and the line number. One line of log saves an hour of trial and error.
| Cause | How to recognise it | Fix |
|---|---|---|
| A broken .htaccess | The error covers the whole site, static pages included | Rename the file temporarily. If the site comes up, that was it. |
| An interrupted update | The error started during an update or right after one | Restore a backup and run the update again without rushing |
| The PHP version | The error appeared without anyone changing the site | Roll back to the previous PHP version, then update the plugins |
| The disk is full | Email or the database misbehaves as well | Free up space, check the size of the log files |
| File permissions | The error started after a migration or a restore | Directories 755, files 644 |
A broken .htaccess is the quickest to rule out. Rename the file to something like .htaccess-old over FTP or in the file manager and reload the site. If the site works, that was the fault. In WordPress you can create a new empty file and save the settings again under Settings and Permalinks, which makes WordPress write the default rules back.
Remember to restore the original file if that was not the fault. .htaccess can contain redirects and caching rules, and losing them creates a new problem.
If nobody has touched the site, the change came from the environment. Most often the hosting has updated the PHP version, or the disk has filled up with backups and logs. Both are visible in the control panel. There is a separate guide for rolling back the PHP version.
Showing errors in the browser helps with troubleshooting, but it exposes file paths and sometimes database details. Switch it off as soon as the fault is found. If the site is public and the fault takes a while, a temporary maintenance page is better than a raw error message.
We read the log, fix the cause and tell you what was done. If your site is down because of this, we take it into work within twenty four hours.
See how we repair a broken site »
Error establishing a database connection, how to find the cause »