How to avoid requests to inaccessible resources
Ana Clara
Posted on August 21, 2024
The 404 Not Found
error indicates that the server was unable to find the requested resource. For the browser, this means that the URL is not recognized.
404 requests cause frustration for the user and can lead to poor website performance. In addition, search engines crawl and index non-existent pages and, consequently, the website's ranking is negatively impacted. All in all, we can avoid searches for inaccessible requests by using a few methods.
1. Check links regularly
It may seem trivial, but the most common causes of 404 errors are pages that have been moved or deleted and incorrectly typed URLs. For this reason, you can use free tools such as Google Search Console and Screaming Frog SEO Spider to validate broken links and Soft 404s (non-existent resources that still return a success status of 200).
2. Validating URLs
Before making the request, validate that the URL is correct. Although this doesn't guarantee that the requested resource doesn't exist, it can prevent obvious errors. To validate a URL, there is Javascript's URL interface. Here you can validate the structure of the URL, the protocol, domain or extension of the requested file.
You can also check the existence of a resource before making a GET
request using the HEAD
method.
async function fileExists(url) {
try {
const response = await fetch(url, { method: 'HEAD' });
return response.ok;
} catch (error) {
console.error('Error verifying the existence of the file:', error);
return false;
}
}
fileExists('https://example.com/file.jpg').then(exists => {
if (exists) {
console.log('File exists.');
} else {
console.log('File not found.');
}
});
3. Evaluate the site's restrictions
Don't forget to check that HTML, CSS, JavaScript files and other resources have the correct read and execute permissions for users. Also check that there are no undue access restrictions in the web server settings that could prevent access to certain files or directories.
Settings such as AllowOverride
and Require all granted
can cause problems if they are not correctly configured.
4. Clear the cache
The cache stores copies of website resources so that when you visit the same site again, the browser can load these resources more quickly. However, if a website resource returns a 404 error, this response can also be stored in the cache. So, even if this resource is corrected on the server, the user may still receive the 404 error. To solve this problem, we can work on the configuration of the HTTP header.
You can set Cache-control: no-store
to prevent a response from being stored, or Cache-Control: no-cache
to force the browser to check with the server before using a cached version. You can also configure the Expires
header with the time at which the response will expire.
5. If the resource is missing, deal with it gracefully
Instead of letting the user encounter a 404 error, set up redirects to alternative pages with the error and suggest other services. Also, if a service has been moved or renamed, set up a 301 (permanent) or 302 (temporary) redirect to the new URL.
Conclusion
404 errors negatively impact the user experience and the credibility of your application and SEO. As a dev, by handling 404 errors gracefully, you demonstrate a commitment to quality and usability, which strengthens customers' confidence in your work and the product you are developing.
Posted on August 21, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.