404 error on pages that exists

MrDudeMan

Lifer
Jan 15, 2001
15,069
94
91
From the gtmetrix FAQ page relating to this error:

2. Server status errors

GTmetrix only analyzes pages that return a success HTTP status code. If you get this error, your page has returned an error HTTP status code.

The most common reasons for this include:

Your web application generating the page is incorrectly returning an error HTTP status code, but is returning page content that does not indicate an error.
Your web application is blocking GTmetrix from accessing the page. With WordPress, it could be due to plugins like Bad Behaviour or Wordfence. With e-commerce software, it's common that the access is blocked based on the IP.
You are using a reverse proxy (eg. CloudFlare) and it's blocking GTmetrix from accessing the page.
In all these cases, you'll need to fix or configure your web application to return a success HTTP status code or allow GTmetrix access to your page. Your web server's error log may provide insight into why it's returning an error.

My guess is the first one because I see this in the debugger (the first two are errors):

Code:
Uncaught Prototype-UI library require Prototype library >= 1.6.0 VM810:1
Uncaught ReferenceError: stLight is not defined bondhus-ltx8-large-ballpoint-torx-set.html:1352
'Attr.nodeValue' is deprecated. Please use 'value' instead. autocomplete.js:15
Invalid App Id: Must be a number or numeric string representing the application id. all.js:54
FB.getLoginStatus() called before calling FB.init().

Here's what fiddler shows when I load the page:

a.png


The html file is probably the issue. Edit: I just noticed your screenshot shows errors as well. Always check for errors before anything else imo.
 
Last edited:

Syringer

Lifer
Aug 2, 2001
19,333
3
71
So I d/led the HTML code and uploaded to my personal server and it works, so it doesn't look like it's the code but the domain itself. Not sure what about it though.
 

MrDudeMan

Lifer
Jan 15, 2001
15,069
94
91
So I d/led the HTML code and uploaded to my personal server and it works, so it doesn't look like it's the code but the domain itself. Not sure what about it though.

What do you mean by works? It works right now, but it's producing errors. When files are missing, the return code will be 404 even though it can still recover. My bet is still on the errors in the debug console, but I don't really know without doing more work.
 

Syringer

Lifer
Aug 2, 2001
19,333
3
71
Sorry, when I:

1) download the .html file that I linked to
2) Upload it to my personal webserver
3) run gtmetrix on my domain

it runs properly. So I don't believe it's code related.

Some research shows it may be .htaccess related. But I'm not sure what's causing it, we can ask the client for access to see.
 

MrDudeMan

Lifer
Jan 15, 2001
15,069
94
91
Sorry, when I:

1) download the .html file that I linked to
2) Upload it to my personal webserver
3) run gtmetrix on my domain

it runs properly. So I don't believe it's code related.

Some research shows it may be .htaccess related. But I'm not sure what's causing it, we can ask the client for access to see.

When I was typing my first post, I was wondering if it was related to the .htaccess file, but then I forgot by the time I was done running fiddler and uploading pictures, lol. Good catch.
 

Leros

Lifer
Jul 11, 2004
21,867
7
81
The problem isn't with the HTML contents itself, that's fine. For some reason your server is returning a 404 instead of a 200. It could be a problem with the Apache server or the server-side code has a bug causing it to return a 404.
 

Leros

Lifer
Jul 11, 2004
21,867
7
81
This isn't static html being served out of Apache. Do you know anything about the back-end application? Is it PHP code being served from Apache? Is there a Tomcat server behind Apache?

You could start looking at the application logs. You might find some error logs regarding a reason for setting the 404 response.

Do you have access to the source for the backend? If so, follow the code path for the request and see where a 404 response could be set.