Somewhere on your website right now there is a link that does not work. It might be a reference in a two-year-old blog post pointing to a page that its owner deleted. It might be an internal link to a product you discontinued. It might be an image that was renamed during a theme update. You will not find it by browsing, because nobody browses their own site page by page. You find it by running a systematic check.
This walkthrough shows exactly how to check broken links across an entire website, from the first scan to the last fix. It is written for people who manage sites rather than people who build crawlers, so it skips the theory and focuses on what to click, what to look for, and what to do with the results.
Step 1: Decide what “broken” means for your site
Before you scan anything, be clear about what you are hunting. The narrowest definition of a broken link is one that returns a 404 status code. That catches the most obvious failures, but it misses several categories that hurt just as much:
- 410 Gone responses, which mean the page was intentionally removed.
- Server errors in the 5xx range, where the page exists but the server fails to deliver it.
- Soft 404s, where the server says 200 OK but the page content is an error message.
- Timeouts, where the destination never responds at all.
- SSL failures, where a certificate problem stops browsers from loading the page.
- Broken assets, including images, scripts, stylesheets and downloadable documents.
A thorough check covers all of these. If you only look for 404s, you will fix a fraction of the problem and wonder why visitors still complain.
Step 2: Pick a method that matches your site size
There are three practical ways to check for broken links, and the right one depends on how many pages you have.
Manual checking means opening each page and clicking each link. It works for a five-page site and nothing larger. Even then it misses soft 404s and broken assets, because a human looking at a page cannot tell that a background script failed to load.
Browser-based single-page checks use an extension that scans the page currently open in your tab. This is ideal for checking a new article before publishing, or for spot-checking a page a customer complained about. It does not crawl the whole site.
Full-site crawling uses a web tool or plugin that starts at your homepage, reads your sitemap, and follows every internal link until it has visited every page. This is the only method that scales, and it is what the rest of this guide assumes.
Step 3: Prepare the site for an accurate crawl
A crawler can only check pages it can find. Two things make discovery reliable.
First, an up-to-date XML sitemap. Most content management systems generate one automatically at /sitemap.xml or /sitemap_index.xml. Check that it exists and that it lists your current pages. A crawler that reads the sitemap first will find pages that no other page links to, which are exactly the ones most likely to have stale links.
Second, a sensible robots.txt. If your robots.txt blocks large sections of the site, a crawler that respects it will skip those sections. That may be what you want for admin areas, but it is not what you want for content. Review the file and make sure it is not hiding pages you care about.
While you are at it, note any URL patterns that generate junk. Tag archives, date archives, internal search results, calendar views and pagination can produce thousands of URLs that are technically valid but not worth checking. You will exclude these in the next step.
Step 4: Configure the scan
Open your checker and enter the site URL. Then work through the options. The ones that matter most are:
Follow sitemap.xml. Turn this on. It is the single biggest improvement to coverage.
Ignore query parameters. Turn this on unless your site genuinely serves different content based on parameters. It collapses ?utm_source=newsletter and similar tracking variants into a single URL and prevents the crawl from checking the same page fifty times.
Check external links. Turn this on for a complete audit. Turn it off if you want a faster scan focused only on problems you can fix directly.
Respect robots.txt. Usually on, so the crawler behaves the way search engines do.
Check images, scripts and documents. Turn these on. Broken assets are invisible in a plain link check but obvious to visitors.
Exclude patterns. Add the junk patterns you noted earlier, one per line. Common entries are /tag/, /page/, /feed/, ?s= and /wp-admin/.
Then start the scan. A well-built tool shows results as they stream in, so you can begin reviewing within seconds. Most sites under a few hundred pages finish in under two minutes.
Step 5: Read the report properly
A raw list of broken URLs is not very useful. What you need for each problem is the URL that failed, the status code it returned, the page on your site where the link appears, and the anchor text of the link. That last detail is what turns a report into a to-do list, because you can open the source page, search for the anchor text, and land directly on the link that needs changing.
Sort the report by source page rather than by broken URL. If one old article contains eight dead links, it is far more efficient to open that article once and fix all eight than to bounce between pages. Then, within each page, deal with internal problems before external ones.
Pay attention to patterns. If twenty broken links all share a path prefix such as /old-blog/, you are probably looking at a migration that was never redirected, and a single rule in your redirect configuration will fix all twenty. If several product pages return soft 404s, the issue is likely a template that shows “unavailable” without sending a proper status code.
Step 6: Fix each category the right way
Different problems need different fixes.
Internal 404s where the page moved: update the link to the new URL. If many pages or external sites link to the old address, also add a 301 redirect so nothing else breaks.
Internal 404s where the page is gone for good: either redirect to the closest relevant page or remove the link. Do not redirect everything to the homepage; search engines treat blanket homepage redirects as soft 404s.
Soft 404s: fix the template so it returns a real 404 or 410 status when the content does not exist. If the content does exist but the page looks empty, fix the content.
Redirect chains: update the link to point straight at the final destination.
External 404s: search the destination site for the moved resource. If it is gone, link to an archived copy or remove the link.
Broken images and assets: re-upload the file or update the path. Check whether a recent theme or plugin update changed asset URLs.
SSL errors: renew or reconfigure the certificate. If the error is on an external site, consider whether the link is worth keeping.
Step 7: Verify the fixes
After a fixing session, run the scan again. Fixed links should disappear from the report. If a link still shows as broken, check whether your CMS is caching the old version of the page, whether you edited the wrong instance of the link, or whether the redirect you added is itself misconfigured. A second scan takes a minute and saves you from assuming a fix worked when it did not.
Step 8: Make it recurring
The single most common mistake site owners make is treating link checking as a one-time project. Links rot continuously. Pew Research found that about 8 percent of pages only a year old were already gone. A site you never edit will still collect dead links because the destinations change.
Set a schedule. Monthly is right for most business sites. Weekly is better if you publish often or link out heavily. If your tool supports scheduled re-scans with email alerts, enable them. New broken links then reach your inbox within a day and get fixed while they are still one problem rather than fifty.
Add a pre-publish check to your editorial workflow as well. Scanning a single page before it goes live takes seconds and catches URL typos, links to unpublished drafts, and pasted links that got mangled in the editor.
Checking broken links on WordPress and Shopify
The general process above works on any platform, but two platforms deserve a note.
On WordPress, a dedicated plugin brings the full scan into wp-admin and lets you edit or unlink each broken link directly from the report. That removes the step of opening each post manually and makes a large fix session far faster.
On Shopify, discontinued products are the biggest source of broken links. Old product URLs keep receiving traffic from search results and external links long after the product is gone. A web-based checker will scan any Shopify store today, and a dedicated app that scans products, collections and pages from inside the admin is in development.
A worked example
Consider a mid-sized company blog with around 400 posts published over six years. A first full scan with external links and assets enabled produces a report of 190 broken links. That sounds alarming but breaks down cleanly:
- 110 external 404s, mostly references in older posts to pages that were redesigned or deleted.
- 35 internal 404s, almost all from a category restructure two years earlier that was never redirected.
- 22 broken images from a media folder that was renamed during a hosting move.
- 14 redirect chains created by two successive URL changes.
- 9 soft 404s on author pages for staff who had left.
The internal 404s are fixed with five redirect rules. The images are fixed by restoring the old folder path. The soft 404s are fixed by deleting the empty author pages and returning a proper 410. The redirect chains take fifteen minutes of link edits. The external 404s are worked through over two afternoons, with most replaced by updated URLs and a handful removed. A rescan confirms the fixes, and a monthly schedule keeps the count near zero from then on.
Where to start today
If you have never checked your site, start with a free scan. Broken Link Checker crawls up to 250 pages per scan with no account and nothing to install, streams results live, detects soft 404s and SSL problems, and produces a shareable report you can hand to a developer or client. A free account raises the limit to 50 scans a month and unlocks image, script and document checking. That is enough to audit most small and medium sites completely, and the same account gives you access to a wider suite of SEO tools if you want rank tracking, internal link suggestions or uptime monitoring alongside link checks.
The first scan is always the biggest. After that, checking broken links becomes a fifteen-minute monthly habit that keeps your site clean, your visitors happy and your crawl budget pointed at pages that matter.