WebCareShelf guide
HTTP Status Codes Explained for Website Owners
A practical guide for small business owners and web builders to understand and resolve the most common HTTP status codes affecting website performance and search engine visibility.
Key takeaways
- 200 is success; 301/302 are redirects (use 301 for permanent moves).
- 404 means 'not found'—fix by updating links or adding a redirect.
- 403 means 'forbidden'—check file permissions and security settings.
- 500 and 503 mean server issues; check logs, plugins, or contact your host.
- Regularly audit internal links to prevent users from hitting dead ends.
Why HTTP Status Codes Matter
When a user clicks a link or a search engine bot crawls your site, the server sends back a three-digit code. These codes tell the browser whether the request was successful, if it needs to be redirected, or if something went wrong. For website owners, these aren't just technical notes; they are signals that affect how users experience your content and how search engines index your pages.
Search engines use these codes to determine which pages to show in search results and which ones to ignore. A page that returns a success code is indexed, while certain error codes can lead to pages being removed from search results or flagged as broken links. Understanding these categories helps maintain a healthy site structure.
- Success codes (200s) indicate the request worked.
- Redirection codes (300s) tell the browser to go somewhere else.
- Client error codes (400s) suggest a problem with the request or the URL structure.
- Server error codes (500s) indicate an issue with the website's hosting or code.
Success and Redirection: 200, 301, and 302
The most common status codes are those that keep users moving toward their goal. When a page loads correctly, it returns a '200 OK' status.
Redirects occur when a URL is moved or changed. There are two primary types: 301 and 302. A 301 redirect is a 'permanent' move. This tells search engines that the old page is gone forever and all its value should be transferred to the new URL. Use this when you change your site structure or replace an old page with a new one.
A 302 redirect is typically used as a 'temporary' move. It tells browsers and search engines that the destination is only temporary. While it still works for navigation, it does not pass the same weight to the new URL as a 301.
- 200 OK: The page loaded successfully. No action is needed.
- 301 Moved Permanently: Use this when migrating content or fixing broken links to a new location.
- 302 Found (Temporary): Use this for temporary promotions or seasonal pages.
Check your redirects using a browser's developer tools network tab. Look for the 'Status Code' column next to example.com/old-page.Client Errors: 403 and 404
The 400-level codes indicate that there is an issue with the request. These are often caused by incorrect URLs, broken links, or permission settings.
A 403 Forbidden error means the server understands the request, but refuses to authorize it. This often happens because of a misconfigured file permission or a security plugin blocking a specific IP range. If users see this, they cannot access the content even if the URL is correct.
A 404 Not Found error occurs when the browser cannot find the requested page. This is common when a page has been deleted without a redirect, or if there is a typo in the URL. While one 404 isn't a disaster, many 404s can frustrate users and waste search engine 'crawl budget'.
- How to fix a 403: Check your hosting control panel for file permissions (usually 644 for files and 755 for folders) and ensure no security rules are blocking the path.
- How to fix a 404: Identify the source of the link. If it is an internal link, update the URL on your site. If it is an external link pointing to you, set up a 301 redirect from the old URL to the most relevant current page.
Server Errors: 500 and 503
The 500-level codes indicate that the server is having trouble. These are usually not caused by the user's input but by issues with the website’s hosting, plugins, or scripts.
A 500 Internal Server Error is a generic 'catch-all' error. It means something went wrong on the server side, but the server couldn't specify exactly what. This often happens due to a bug in a plugin, a theme conflict, or an error in the .htaccess file.
A 503 Service Unavailable error means the server is currently unable to handle the request. This is often temporary, such as during a site maintenance window or when a server is overloaded by too much traffic at once.
- How to fix a 500: Check your website's error logs provided by your host. Disable recently updated plugins or themes one by one to identify the conflict.
- How to fix a 503: This often resolves itself if it is a traffic spike. If it persists, contact your hosting provider to see if their server resources are sufficient for your traffic levels.
Monitoring and Maintenance Checklist
Proactive monitoring helps you catch these errors before your customers do. Use a combination of automated tools and manual checks to ensure your site remains accessible.
Regularly audit your internal links to ensure they don't lead to 404 pages. Check for 301 redirects that might be looping (where page A points to B, and B points back to A). If a redirect loop occurs, the browser will eventually stop loading the page.
- Weekly: Run a scan of your site's internal links using an automated crawler.
- Monthly: Check for 404 errors in your analytics or search console reports.
- Ongoing: Monitor your server's uptime and performance to minimize 500 and 503 occurrences.
What to Do if Things Go Wrong
When you encounter an error code that you cannot immediately resolve, follow these steps to mitigate the impact on your users.
If a 404 is widespread because of a site migration, set up a global redirect. If a 500 error occurs during a plugin update, roll back the update immediately. Always keep a full backup of your website's files and database before making changes to core settings or installing new software.
- Step 1: Identify the scope. Is it one page or the whole site?
- Step 2: Check logs. View server error logs to find specific lines of code causing a 500 error.
- Step 3: Clear caches. Sometimes a 403 or 500 can be caused by an outdated cache file.
- Step 4: Contact support. If the issue persists after checking your plugins and files, contact your hosting provider to investigate server-side issues.