Sooner or later, every web user runs into an error: a blunt "404 Not Found", a frustrating "500 Internal Server Error", or a browser shrugging that "this site can't be reached". They look cryptic, but each one is really a short status message telling you what went wrong and, just as importantly, whose problem it is to fix. This guide explains every common internet error in plain English, with an example and clear fixes for both visitors and site owners. Use the quick-reference table to jump to the one you are seeing.
How to read an error code
Most internet errors are HTTP status codes: three-digit numbers a web server sends back with every response (MDN keeps the full list). The first digit tells you the category, which is the fastest way to know what you are dealing with.
- 2xxSuccess. The request worked. 200 OK is the one you never see because the page just loads.
- 3xxRedirection. The page lives somewhere else now and the browser is being pointed there.
- 4xxClient errors. Something about the request or your side is the problem, like a wrong address or missing login.
- 5xxServer errors. Your request was fine, but the website's server failed to handle it.
A few errors are not HTTP codes at all. DNS, connection and SSL errors are raised by your browser before it reaches the website, and they show as text codes like DNS_PROBE_FINISHED_NXDOMAIN. They are covered further down.
Quick reference: common error codes
Every common code at a glance. The detailed sections below explain the headline ones, with examples and fixes.
| Code | Name | Type | What it means |
|---|---|---|---|
| 301 | Moved Permanently | Redirect | The page has permanently moved to a new URL. |
| 302 | Found (Temporary Redirect) | Redirect | The page is temporarily at a different URL. |
| 304 | Not Modified | Redirect | Your cached copy is still current, so nothing was resent. |
| 307 | Temporary Redirect | Redirect | A temporary move that keeps the original request method. |
| 308 | Permanent Redirect | Redirect | A permanent move that keeps the original request method. |
| 400 | Bad Request | Client | The server could not understand the request. |
| 401 | Unauthorized | Client | You need to log in or authenticate first. |
| 403 | Forbidden | Client | You are not allowed to access this resource. |
| 404 | Not Found | Client | The page or file does not exist at that address. |
| 405 | Method Not Allowed | Client | The request method is not supported for this page. |
| 408 | Request Timeout | Client | The request took too long to send. |
| 409 | Conflict | Client | The request clashes with the current state of the resource. |
| 410 | Gone | Client | The resource was deliberately removed for good. |
| 413 | Payload Too Large | Client | The upload or request body is bigger than the server allows. |
| 429 | Too Many Requests | Client | You sent too many requests in a short time and were rate limited. |
| 451 | Unavailable For Legal Reasons | Client | The content is blocked for legal reasons. |
| 500 | Internal Server Error | Server | Something went wrong on the server with no more specific cause. |
| 501 | Not Implemented | Server | The server does not support the feature needed to answer. |
| 502 | Bad Gateway | Server | A server acting as a gateway got an invalid response upstream. |
| 503 | Service Unavailable | Server | The server is overloaded or down for maintenance. |
| 504 | Gateway Timeout | Server | An upstream server did not respond in time. |
| 508 | Loop Detected | Server | The server got stuck in an infinite loop while answering. |
| DNS | DNS_PROBE_FINISHED_NXDOMAIN | Connection | The domain name could not be found in the DNS. |
| NET | ERR_CONNECTION_TIMED_OUT | Connection | The site took too long to respond and the browser gave up. |
| NET | ERR_CONNECTION_REFUSED | Connection | The server actively refused the connection. |
| SSL | ERR_SSL_PROTOCOL_ERROR | Connection | The secure (HTTPS) connection could not be established. |
| SSL | NET::ERR_CERT_AUTHORITY_INVALID | Connection | The site's security certificate is not trusted. |
| NET | ERR_TOO_MANY_REDIRECTS | Connection | The page is stuck bouncing between addresses in a loop. |
| 521 | Web Server Is Down (Cloudflare) | Connection | Cloudflare reached the origin server but it refused the connection. |
| 522 | Connection Timed Out (Cloudflare) | Connection | Cloudflare could not reach the origin server in time. |
Client errors (4xx): the request or your side
A 4xx code means the server received your request but could not or would not fulfil it, usually because of something about the request itself: a wrong address, a missing login, or a permission rule. These are the errors visitors see most often.
Bad Request
The server could not understand the request because it was malformed in some way.
Example: You click a link with a broken or overly long parameter and the page returns "400 Bad Request".
Common causes: A corrupted browser cookie, a malformed URL, an oversized header, or a bad file upload.
If you are visiting
Clear the cookies and cache for that site, double-check the address, then reload. Trying an incognito window quickly rules out a bad cookie.
If it is your site
Check what the client is sending in your server or application logs, and validate request size limits, headers and input handling.
Unauthorized
You need to authenticate, and you either have not logged in or your credentials were not accepted.
Example: You open a members-only page without signing in and get prompted for a username and password.
Common causes: A missing or expired login session, wrong credentials, or an expired API key or token.
If you are visiting
Log in again with the correct details. If you were already logged in, sign out and back in to refresh the session.
If it is your site
Confirm your authentication is configured correctly, that tokens or sessions are not expiring early, and that protected routes are set up as intended.
Forbidden
The server understood the request but refuses to authorise it. Unlike a 401, logging in will not necessarily help.
Example: You try to open a directory like /uploads/ and the server returns "403 Forbidden".
Common causes: File or folder permissions, an IP block, a firewall or security plugin rule, or a missing index file.
If you are visiting
Make sure you have permission to view the page and that you typed the URL correctly. If you should have access, contact the site owner.
If it is your site
Check file and folder permissions, your .htaccess or server config, and any security plugin or firewall rules that may be blocking the request.
Not Found
The server could not find anything at that address. The page, image or file does not exist there.
Example: You follow an old bookmark to a product that has since been deleted and land on a "404 Not Found" page.
Common causes: A mistyped URL, a deleted or moved page, a broken internal link, or a missing redirect after a site change.
If you are visiting
Check the spelling of the URL, head to the site's homepage, or use its search to find what you wanted.
If it is your site
Set up a 301 redirect from the old URL to the right page, fix the broken internal link, and design a helpful custom 404 page.
Method Not Allowed
The page exists, but the action you tried to perform on it is not allowed.
Example: A form tries to submit with POST to a URL that only accepts GET, returning "405 Method Not Allowed".
Common causes: A form or API call using the wrong HTTP method, or a server rule that disallows certain methods.
If you are visiting
This is almost always a site-side issue, so reloading rarely helps. Report it to the site owner if it persists.
If it is your site
Make sure the route accepts the method the form or API uses, and review any server rules that restrict methods.
Request Timeout
The server waited for the request and the client did not send it in time, so the connection was closed.
Example: On a slow connection a page hangs and eventually shows "408 Request Timeout".
Common causes: A slow or dropped internet connection, or a very large request that did not finish in time.
If you are visiting
Check your internet connection and simply try again. A more stable network usually clears it.
If it is your site
Review server timeout settings and look for anything making requests unusually slow to complete.
Gone
Like a 404, but stronger: the resource was intentionally removed and is not coming back.
Example: A retired campaign page returns "410 Gone" so search engines know to drop it.
Common causes: Content deliberately deleted with a 410 set so it is removed from search results faster than a 404.
If you are visiting
The page is gone for good. Use the site's navigation or search to find a current alternative.
If it is your site
Use 410 deliberately for content you want permanently de-indexed, and 301 redirect anything that has simply moved.
Too Many Requests
You have sent too many requests in a short period and the server is rate limiting you.
Example: You refresh a login page repeatedly and get "429 Too Many Requests" for a few minutes.
Common causes: Rapid refreshing, an aggressive script or bot, or a shared IP hitting a rate limit.
If you are visiting
Wait a minute or two and try again, and avoid hammering refresh. The block usually lifts on its own.
If it is your site
Tune your rate limits so they stop abuse without catching real users, and return a clear retry-after time.
Server errors (5xx): the website's side
A 5xx code means your request was fine, but the server failed to complete it. These are the website's problem to fix, not yours, though a refresh or a short wait sometimes helps if the issue is temporary.
Internal Server Error
A catch-all message for when something has gone wrong on the server and there is no more specific code.
Example: After a plugin update a WordPress site shows a blank "500 Internal Server Error" on every page.
Common causes: A code bug, a broken plugin or theme, a corrupted .htaccess file, or exhausted server memory.
If you are visiting
Refresh the page and try again shortly. If it persists, it is the site's issue, so let the owner know.
If it is your site
Check the server error log for the real cause, deactivate the last plugin or change you made, and review .htaccess and memory limits.
Not Implemented
The server does not support the functionality required to fulfil the request.
Example: A request uses an HTTP method the server does not recognise and gets "501 Not Implemented".
Common causes: An unsupported request method or feature, or a misconfigured server or proxy.
If you are visiting
There is nothing to fix from your side. Report it to the site owner if it keeps happening.
If it is your site
Confirm the server and any proxies support the methods and features your application relies on.
Bad Gateway
One server acting as a gateway or proxy received an invalid response from another server upstream.
Example: A busy site behind a load balancer briefly shows "502 Bad Gateway" during a traffic spike.
Common causes: An overloaded or crashed upstream server, a PHP or application process that died, or a bad proxy configuration.
If you are visiting
Wait a moment and refresh, since 502s are often temporary. Clearing your cache can help if it lingers.
If it is your site
Check that the upstream service (PHP-FPM, an app server, an API) is running, review proxy or load-balancer settings, and watch server resources.
Service Unavailable
The server cannot handle the request right now, usually because it is overloaded or in maintenance.
Example: A shop during a flash sale shows "503 Service Unavailable" because traffic exceeded capacity.
Common causes: A traffic spike beyond capacity, scheduled maintenance, or a server resource limit being hit.
If you are visiting
Wait and try again in a few minutes. If it is a planned maintenance window, the site will return shortly.
If it is your site
Scale resources or add caching for spikes, use a proper maintenance mode with a retry-after header, and check for runaway processes.
Gateway Timeout
A gateway or proxy did not get a timely response from the upstream server it was waiting on.
Example: A report that runs a heavy database query times out and returns "504 Gateway Timeout".
Common causes: A slow upstream server, a long-running query or script, or a timeout set too low.
If you are visiting
Refresh and try again, ideally a little later when the server is less busy.
If it is your site
Find and speed up the slow query or process, raise timeout limits sensibly, and check the health of upstream services.
Connection and browser errors
Not every error comes with a number. Many of the most common ones are raised by your browser before it ever reaches the website, usually shown as "This site can't be reached" with a code like the ones below. These point to DNS, network or security problems rather than the page itself.
DNS_PROBE_FINISHED_NXDOMAIN
Your device could not translate the domain name into a server address, so it never connected.
Example: You type a slightly misspelt domain and Chrome shows "This site can't be reached" with this code.
Common causes: A mistyped domain, a domain that no longer exists, or a DNS server or cache problem on your device.
If you are visiting
Check the spelling, try flushing your DNS cache, restart your router, or switch to a public DNS like 1.1.1.1 or 8.8.8.8.
If it is your site
Confirm your domain is registered and its DNS records (especially the A or CNAME) point to the right server.
ERR_CONNECTION_TIMED_OUT
The browser tried to reach the server but got no response within the time allowed.
Example: A site loads endlessly then fails with "ERR_CONNECTION_TIMED_OUT".
Common causes: A slow or dropped connection, a firewall blocking the site, or an overloaded or down server.
If you are visiting
Check your internet, disable a VPN or proxy temporarily, clear your cache, and try another network or device.
If it is your site
Check the server is online and not overloaded, and that no firewall rule is silently dropping traffic.
ERR_CONNECTION_REFUSED
The server was reached but actively refused to open a connection.
Example: A local development site shows "ERR_CONNECTION_REFUSED" because the service is not running.
Common causes: A service that is stopped, the wrong port, or a firewall blocking the connection.
If you are visiting
Confirm the address and port are right, then try again later. It is often a temporary server-side issue.
If it is your site
Make sure the web server or service is running and listening on the expected port, and check firewall rules.
SSL and certificate errors
The secure HTTPS connection could not be set up or the site's certificate is not trusted, shown as ERR_SSL_PROTOCOL_ERROR or "Your connection is not private".
Example: A site whose certificate expired yesterday shows "Your connection is not private" (NET::ERR_CERT_AUTHORITY_INVALID).
Common causes: An expired, misconfigured or self-signed certificate, a wrong system clock, or an outdated browser.
If you are visiting
Check your device's date and time, update your browser, and avoid bypassing the warning on sites that handle sensitive data.
If it is your site
Renew and install a valid certificate, fix the certificate chain, and force HTTPS so every request is secure.
ERR_TOO_MANY_REDIRECTS
The page keeps redirecting in a loop, so the browser stops to avoid going round forever.
Example: A site set to force both HTTPS and a redirect back to HTTP bounces until it shows this error.
Common causes: Conflicting redirect rules, a misconfigured HTTPS or www setting, or a caching or plugin conflict.
If you are visiting
Clear that site's cookies and cache, which often breaks the loop from your end, then reload.
If it is your site
Audit your redirect rules so HTTP-to-HTTPS and www settings do not fight each other, and clear any conflicting caches.
Cloudflare 521 and 522
When a site uses Cloudflare, these mean Cloudflare itself could not get a good response from the origin server: 521 (the origin refused the connection) or 522 (it timed out).
Example: A Cloudflare-protected site shows a "Web server is down" (521) page while the origin is offline.
Common causes: The origin server is down or overloaded, or it is blocking Cloudflare's IP addresses.
If you are visiting
Wait and retry, since this is a server-side issue. There is nothing to fix from a visitor's side.
If it is your site
Make sure the origin server is up, allow Cloudflare's IP ranges through your firewall, and check origin resources.
A note on redirects (3xx)
Redirects are not errors, but they show up in the same family of codes and matter a great deal for site owners. A 301 is a permanent move and passes nearly all ranking signals to the new URL, so it is what you should use when a page changes address for good. A 302 (or 307) is a temporary move and tells search engines to keep the original URL. A 304 Not Modified simply means your browser's cached copy is still current. Used well, 301s are how you preserve traffic and rankings when you restructure a site; used carelessly, redirect chains and loops slow everything down and can trigger the ERR_TOO_MANY_REDIRECTS error above.
A universal troubleshooting checklist
Whatever the code, a handful of steps clears most everyday errors. Work down the list that matches your situation.
If you are a visitor
- Refresh the page, then try a hard refresh (Ctrl+F5 or Cmd+Shift+R) to bypass the cache.
- Check the URL for typos, and try the site's homepage or search instead.
- Clear that site's cookies and cache, or open it in a private or incognito window.
- Try a different browser, device or network to see whether the problem follows you.
- Check your internet connection and restart your router if pages will not load at all.
- Wait a few minutes and try again, since many server errors are temporary.
- Check a status tool like Downdetector to see whether the site is down for everyone.
If it is your website
- Read your server and application error logs to find the real, specific cause.
- Undo your most recent change, plugin update or deployment to see if it is the trigger.
- Check redirects, .htaccess and HTTPS or www rules for conflicts and loops.
- Confirm your SSL certificate is valid and your DNS records point to the right server.
- Watch server resources (CPU, memory, processes) for overload during spikes.
- Set up uptime monitoring and fix 404s and 5xx errors flagged in Google Search Console.
Why error codes matter for SEO
For a business website, errors are not just an annoyance, they are a ranking and revenue issue. A scattering of 404s is normal, but broken links and missing redirects waste the crawl budget Google spends on your site and send visitors away. Repeated 5xx server errors are worse: they tell search engines your site is unreliable, which can slow indexing and dent rankings over time. The fixes are practical: monitor errors in Google Search Console, 301 redirect anything that has genuinely moved, repair broken internal links, keep server errors rare with solid hosting and a well-optimised, fast site, and serve a helpful custom 404 page that points people back into your content rather than out the door.
If chasing errors across your site sounds like a job you would rather hand off, that is exactly the kind of technical housekeeping a good web partner takes care of so it never costs you traffic.
Key takeaways
- The first digit tells you almost everything: 4xx errors are about the request or your side (like 404 Not Found), and 5xx errors are the website's server failing (like 500 Internal Server Error).
- As a visitor, most errors clear with a refresh, a cache and cookie clear, checking the URL, or trying another browser or network. Many server errors are temporary, so waiting and retrying often works.
- DNS and SSL errors appear before the site even loads. They usually point to a typo, a local network issue, or an expired certificate.
- As a site owner, your logs hold the real cause. Fix 404s with 301 redirects, keep 5xx errors rare, and serve a helpful custom 404 page.
- Errors are an SEO issue too: broken links and repeated server errors waste crawl budget and can hurt rankings, so monitor them in Google Search Console.