When a website goes down or slows to a crawl, the instinct is to start changing things. Resist it. This guide gives you a diagnostic order that identifies the actual cause in a few minutes, covering the errors you are most likely to meet on shared hosting and what each one really means.
- Check Server Status and Announcements. If we already know, it is already being worked on.
- Load the site in a private window. If it works there, the problem is your browser cache or a cached login session, not the server.
- Check your invoices. A suspended account for an overdue invoice looks exactly like an outage.
- Ask what changed in the last 24 hours. A plugin update, a DNS edit, a PHP version change. Nearly every sudden failure has a recent cause.
Step 1 - Identify the exact failure
"The site is down" covers half a dozen very different problems. Match what you see:
| What you see | What it means | Where to look |
|---|---|---|
| "Server not found" / DNS error | The domain is not resolving at all | Domain expiry, nameservers, DNS records |
| Connection times out | DNS resolves but nothing answers, or your IP is blocked | Server status, firewall blocks |
| 403 Forbidden | The server refuses to serve the file | Permissions, .htaccess, missing index file |
| 404 on some pages only | Rewrite rules are missing | Permalinks, .htaccess |
| 500 Internal Server Error | The application crashed or config is invalid | Error log, .htaccess, permissions |
| 503 Service Unavailable | Resource ceiling reached, or maintenance mode | Resource usage, CMS maintenance flag |
| Blank white page | PHP fatal error with display switched off | Error log, recently updated plugins |
| "Error establishing a database connection" | Bad credentials or a crashed table | Config file, phpMyAdmin repair |
| Loads, but takes many seconds | Application or database inefficiency | See Step 4 |
Step 2 - Read the error log
This is the step that actually finds the answer, and the one most people skip.
- Log in to cPanel and open Metrics → Errors for the most recent server errors.
- For more detail, open File Manager, enable Show Hidden Files, and look for
error_loginpublic_htmlor in the failing subfolder. - Read from the bottom - newest entries are last. Look for lines containing
PHP Fatal error.
A fatal error line names the exact file, which usually names the exact plugin or theme at fault. That single line turns a mystery into a five-minute fix.
Step 3 - The two-minute checks that fix most 500s
Rule out .htaccess
In File Manager, rename .htaccess to .htaccess-off and reload the site. If it comes back, the file was the problem - regenerate it (in WordPress, re-save Permalinks) rather than editing blindly.
Rule out plugins and themes
Rename wp-content/plugins to plugins-off. If the site returns, rename it back and disable plugins one by one until the culprit appears.
Rule out permissions
Directories should be 755 and files 644. Anything set to 777 will produce a 500 error on a properly secured server.
Rule out the PHP version
In cPanel, open MultiPHP Manager and check which version the domain uses. A recent upgrade can break older code; switch back temporarily to confirm, then fix the code rather than staying on an unsupported version.
Step 4 - Diagnosing a slow site
Fast Hive caps every shared machine at around 50 accounts against an industry average of 400 or more, and each account has its own guaranteed CPU, memory and NVMe I/O floor. Your neighbours cannot take your resources. So when a site is slow, the cause is almost always inside the site.
- Check your own resource usage. cPanel → Metrics → Resource Usage. If you are hitting your CPU or memory ceiling, note the time of day - a spike every hour usually means a cron job or a badly behaved plugin.
- Measure where the time goes. Use your browser's Network tab. A slow first byte points at PHP or the database. A fast first byte with a slow finish points at images, fonts and scripts.
- Look at the database. Bloated option tables, orphaned metadata and years of post revisions are the classic culprits in a CMS. Clean up in phpMyAdmin or with a maintenance plugin.
- Enable caching. One caching plugin, never two.
- Compress and resize images. A 4 MB photo scaled down in CSS still downloads all 4 MB.
- Audit plugins. Deactivate anything you do not use, then delete it. Measure again after each removal.
Step 5 - When the domain itself is the problem
- Has the domain expired? Check My Domains. An expired domain stops resolving even though the hosting is untouched.
- Are the nameservers right? They should be
ns1.fasthive.comandns2.fasthive.comunless you deliberately use external DNS. - Did someone edit an A record? A single wrong character in an IP address takes a site offline completely.
- Was a change made in the last 48 hours? DNS changes propagate gradually. The site may already work for others and not yet for you.
Frequently asked questions
The site works for me but not for a colleague. Why?
Usually DNS propagation, or their IP has been caught by our rate limiting after repeated failed logins. Ask them to test on mobile data. If it works there, it is an IP block, and support can clear it.
Everything was fine and I changed nothing.
Something changed. Automatic plugin or theme updates, an expired third-party API key, a domain renewal that did not go through, or a certificate that lapsed. The error log will tell you which.
Can I roll back to yesterday?
Yes. Nightly snapshots are restorable in one click from cPanel. Restore only the affected folder or database where you can, rather than the whole account.
How do I tell whether it is my site or the server?
Check Server Status. If the server is healthy and cPanel loads normally, the problem is within your account - which is good news, because you can fix it yourself.
error_log. Our engineers are available 24/7.
