Complete Guide to 4xx HTTP Status Codes by an SEO Dad

Zac Heinrichs

(A post only an SEO or Dev could love)

Complete Guide to 400 Level HTTP Status Codes as told by an SEO Dad

Not too long ago, the Portent SEO team was sitting around in a meeting when we came across a 4xx level HTTP status error and couldn’t remember the meaning. Might have been a 410 or a 418…

Anyway, when you have a flock of SEOs in the room you do what SEOs do and search the world wide web for the answer. Wikipedia had the featured snippet and the first organic result so, we gave them the click for their efforts. (Had to pay it forward, not that Wikipedia needs it.)

400 error code definitions

We scrolled through the page and found what we were looking for but, something else caught my attention. I am a father of two, a ten and soon-to-be-seven-year-old, and a lot of the 4xx errors and their explanations sound strikingly similar to some of the things I have to say to my kids on an extremely regular basis. I started chuckling to myself and as we read through the entire list, it got to the point that every one of the 4xx status codes was applicable to my parenting life.

So, here is an actually useful list of 4xx HTTP status codes and their explanations as seen by an SEO Dad (in that the parent is the server and the child is the client/user):

HTTP Server Responses

400 Bad Request

The server can’t process the request due to an apparent client error (e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing)

http status code 400 bad request

SEO Dad: It doesn’t count as a question unless you say “please”.

401 Unauthorized

Authentication is required and has failed or has not yet been provided. 401 means the user does not have the necessary credentials.

SEO Dad: Where did you get that?! You didn’t ask if you could have any candy, hand it over.

402 Payment Required

The original intention was that this might be used as part of some form of digital cash scheme, but that hasn’t happened, and this code is not usually used. Google Developers API uses this status if a developer has exceeded the daily limit on requests.

SEO Dad: [at the arcade outside the movie theater] Sorry buddy, I don’t have any quarters.
[7 yo sits at the steering wheel, grabs on, and pretends along with the demo for 15 minutes]

Side note: Did you know that most games at the arcade now are like a dollar?!

403 Forbidden

The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource or may need an account of some sort.

SEO Dad: No, you may not play Grand Theft Auto! I don’t care if your friend’s parents let them.

404 Not Found

The requested resource could not be found but may be available in the future.

http status code 404 not found

SEO Dad: I can’t find anything in this messy room! You need to spend some time in here cleaning up and then find the missing library books. Oh, and I’m not paying the late fees, that’s coming out of your piggy bank.

405 Method Not Allowed

A request method is not supported for the requested resource.

SEO Dad: You can’t just grab things that you want. Ask nicely and wait your turn, please.

406 Not Acceptable

The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request.

SEO Dad: Keep your hands to yourself. It is not OK to push your sister like that.

407 Proxy Authentication Required

The client must first authenticate itself with the proxy.

SEO Dad: If your mom says it’s ok, I don’t see why not.

408 Request Timeout

The server timed out waiting for the request. According to HTTP specifications: “The client did not produce a request within the time that the server was prepared to wait. The client MAY repeat the request without modifications at any later time.”

http status code 408 request timeout

SEO Dad: I have to leave or I’m going to miss the bus. You can ask me about it after I pick you up from school.

409 Conflict

The request could not be processed because of conflict in the request, such as an edit conflict between multiple simultaneous updates.

SEO Dad: You and your sister must agree on which movie to watch or else you’re just going to go to bed.

410 Gone

Indicates that the resource requested is no longer available and will not be available again. This should be used when a resource has been intentionally removed and the resource should be purged. Upon receiving a 410 status code, the client should not request the resource in the future.

SEO Dad: Well, you weren’t playing with it anymore so we donated it.

411 Length Required

The request did not specify the length of its content, which is required by the requested resource.

SEO Dad: Yeah, I said you could watch cartoons but, I didn’t say for how long. Time to turn it off.

412 Precondition Failed

The server does not meet one of the preconditions that the requester put on the request.

http status code 412 precondition failed

SEO Dad: No dessert until you’ve finished all your dinner!

413 Payload Too Large

The request is larger than the server is willing or able to process.

SEO Dad: It costs how much?! No, pick something from the dollar bin.

414 URI Too Long

The URI provided was too long for the server to process. Often the result of too much data being encoded as a query-string of a GET request, in which case it should be converted to a POST request.

SEO Dad: It was a yes-or-no question… All I wanted to know was if you made your bed already.

415 Unsupported Media Type

The request entity has a media type which the server or resource does not support.

SEO Dad: iPad time is up, go play outside!

416 Range Not Satisfiable

The client has asked for a portion of the file (byte serving), but the server cannot supply that portion.

SEO Dad: No, you can’t go to the park by yourself, its way to far away.

417 Expectation Failed

The server cannot meet the requirements of the Expect request-header field.

SEO Dad: I’m not mad, just a little disappointed…

418 I’m a teapot

This code was defined in 1998 as part of an April Fools’ jokes, the Hyper Text Coffee Pot Control Protocol or HTCPCP ( The RFC specifies this code should be returned by teapots requested to brew coffee.

SEO Dad: Well, now I just want another cup of coffee…

421 Misdirected Request

The request was directed at a server that is not able to produce a response.

http status code 421 misdirected request

SEO Dad: Go ask your mom.

422 Unprocessable Entity

The request was well-formed but was unable to be followed due to semantic errors.

SEO Dad: What’s the magic word?

423 Locked

The resource that is being accessed is locked.

SEO Dad: Yeah, I did change the WiFi password. Just like I told you I would if you guys didn’t stop fighting.

424 Failed Dependency

The request failed due to failure of a previous request.

SEO Dad: I thought I told you to clean your room, don’t ask me again until it’s done.

426 Upgrade Required

The client should switch to a different protocol.

SEO Dad: Well, throwing a fit doesn’t seem to be getting you what you want. Maybe next time, try asking politely first.

428 Precondition Required

The origin server requires the request to be conditional. Intended to prevent the ‘lost update’ problem, where a client GETs a resource’s state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.

http status code 428 precondition required

SEO Dad: The answer is ‘no’, and you guys can’t come out of your room until you apologize to each other and come out as friends again.

429 Too Many Requests

The user has sent too many requests in a given amount of time.

SEO Dad: So many questions! I’m tired, ask me again later.

431 Request Header Fields Too Large

The server is unwilling to process the request because the header fields are too large.

SEO Dad: I’m sorry sweetheart, daddy’s back hurts. I can’t do any more shoulder rides today.

451 Unavailable For Legal Reasons

A server operator has received a legal demand to deny access to a resource or to a set of resources that includes the requested resource.

SEO Dad: Nope, you still can’t drive until you’re 16. It doesn’t matter how good you are at Mario Kart.

Prologue: We hope you enjoyed the list as much as we enjoyed writing it.
And remember kids: sharing is caring!

New Call-to-action

Start call to action

See how Portent can help you own your piece of the web.

End call to action


    1. Thanks Aimee!
      It was scary how easy it was to come up with real-life examples and, maybe a little too much fun to write about.

Comments are closed.

Close search overlay