Fixing Broken Links

What is a Broken Link?

A broken link, also known as dead link, is a link that no longer works. Broken links can happen for many reasons, but the most common reason is when a page is either deleted or moved to a different location which causes the server to show a 404 not found error.

How to Properly Fix Broken Links in WordPress

The best way to fix a broken link is to redirect it to another page. For example, if you moved the contents of a page to a different address, then you will need to redirect it to the newer page’s URL. You can do this by setting up 301 redirects.

Similarly, if an external article or website you are pointing to does not exist anymore, then you would want to point users to a similar page that is closely related to the contents of the old article or remove the link altogether.

Check Links Regularly

Remember that redirecting and fixing broken links is an ongoing process. For the average website, once per month is an appropriate cycle. We include Link Monitoring and Repair are part of our WordPress Care Plans.

Different ranges

There are several ranges of HTTP status error codes, defining different aspects of the transaction process between the client and the server.
3xx – Redirection
4xx – Client error
5xx – Server error

HTTP Error Codes

300: Multiple Choices

The URI refers to more than one file. The server may respond with an error message or a list of options.

301: Moved Permanently

The page has been permanently moved. The client will normally perform a redirection to the new URL. References to the old URL should be updated.

302: Moved Temporarily

The page has been temporarily moved. The client will normally perform a redirection to the new URL.

303: See Other

The server has received the request, and the response can be found using a GET request at another URI.

304: Not Modified

The file has not been modified since it was last requested. This response may be sent after a request containing an If-Modified-Since header.

305: Use Proxy

The client should repeat the request using the proxy. Many HTTP clients do not correctly handle responses with this status code, primarily for security reasons.

307: Temporary Redirect

The request should be repeated with another URI, but future requests should still use the original URI.

308: Permanent Redirect

The request, and all future requests should be repeated using another URI.

400: Bad Request

The request contains a syntax error and is denied.

401: Unauthorized

The request header did not contain the authentication codes required for this resource, and access is denied.

402: Payment Required

Reserved for future use. Intended to indicate that some form of payment is required before access is granted to this resource.

403: Forbidden

The client does not have the necessary permission to access the resource. Occasionally this response is issued when the server does not want any more visitors.

404: Not Found

The resource could not be found on the server. May be caused by misspelling a URI, or requesting a resource that has been deleted.

405: Method Not Allowed

The method used when requesting a resource, is not supported by that resource; for example, using GET on a form which requires POST access.

406: Not Acceptable

The requested resource exists but is not acceptable to the client according to the Accept headers sent in the request.

407: Proxy Authentication Required

The client must be authenticated with the proxy before making this request.

408: Request Timeout

The server timed out waiting for the client to complete the request.

409: Conflict

The request could not be processed because of a conflict, such as an edit conflict, or too many concurrent requests.

410: Gone

The requested file is no longer available at this URI. The client should not request the resource again in the future.

411: Length Required

The request did not include the required Content-Length header.

412: Precondition Failed

The request contained a precondition specification which the server does not meet.

413: Request Entity Too Large

The request contains more information than the server is willing or able to process.

414: Request-URI Too Long

The URI provided was too long for the server to process.

415: Unsupported Media Type

The request has a file type which the server does not support.

416: Requested Range Not Satisfiable

The client requested a portion of the file, but the server cannot supply that portion. For example, the client may have asked for data that lies beyond the end of the file.

417: Expectation Failed

An Expect request-header field cannot be satisfied by the server.

420: Enhance Your Calm

Unofficial code returned by Twitter API when the client is being rate limited.

422: Unprocessable Entity

The request was well-formed but was contained semantic errors which made it unprocessable.

423: Locked

The requested resource is locked.

424: Failed Dependency

The request failed due to the failure of a previous request.

429: Too Many Requests

The user has made requests too rapidly. Used with rate limiting schemes.

431: Request Header Fields Too Large

Either an individual header field, or all the header fields collectively, are too large.

450: Blocked by Windows Parental Controls

A Microsoft extension indicating that Parental Controls are blocking access to the resource.

500: Internal Server Error

A non-specified error occured when generating the response.

501: Not Implemented

The server cannot fulfill the request.

502: Bad Gateway

The gateway or proxy server received an error response from the upstream server.

503: Service Unavailable

The resource is currently unavailable.

504: Gateway Timeout

The gateway or proxy server timed out waiting for a response from the upstream server.

505: HTTP Version Not Supported

The server does not support the HTTP protocol version used in the request.

506: Variant Also Negotiates

This results from a configuration error on the server.

507: Insufficient Storage

The server cannot store the information needed to complete the request.

509: Bandwidth Limit Exceeded

Unofficial error code, indicating bandwidth allocation has been or will soon be exceeded.

510: Not Extended

The request contains a mandatory extension policy which is not accepted by the server.

999: Non-standard

This non-standard code is returned by some sites (e.g. linkedin) which do not permit scanning.


The server did not respond to the URL request within the allotted time.

Redirection Loop / Too Many Redirections

The URL results in a redirection (e.g. 301 or 302) either back to itself, or to a chain of redirections which either eventually reaches the original URL or appears to be endless. Note that redirections sometimes depend on whether cookies are enabled.

Loma Nelson

Loma channels her experience and creative energy into all things WordPress. As a designer, she brings a strong sense of aesthetics and user experience to her creations. When not immersed in client projects, Loma can be found paddling the Wisconsin lakes and rivers in her sunburst orange kayak with her husband and Golden Retriever. Oh, and she was born a YOOPER, eh!

Our Blog Sponsors

WP Rocket - WordPress Caching Plugin
Get Beaver Builder Now!

Related Reading


Domain Name Management

Posted in ,

We have partnered with Enom to provide a Domain Management […]


What is the difference between a Parked, Add-on and Subdomain?

Posted in

Parked Domain A parked domain is NOT a unique website. […]


How to fix “This (Website) Account Has Been Suspended” Error Message

Posted in

Have you gotten the dreaded “This Account Has Been Suspended” […]

Unlock Your Copy Now...

Get Your Free Guide On The 5 Steps That Are Crucial For A Winning Website Project

5 Steps To A Winning Website Project E-book

Subscribe to learn how to make your next website project a winning one, starting with this free guide.  Unsubscribe at any time.

We hate SPAM and promise to keep your email address safe.  Here's our privacy policy.