How to Actually Fix Broken Links on WordPress (And Why You Should Care)
Look, I’ve been managing WordPress sites long enough to know that broken links are one of those things that… everyone knows they should deal with but somehow they just keep piling up. It’s like dishes in the sink, you know? You see them, you know they’re a problem, but there’s always something more urgent to handle first.
But here’s the thing – and I mean this – broken links are quietly killing your site’s performance. Like, literally costing you traffic and rankings every single day they sit there unfixed. Google sees them, your visitors hit them, and everyone’s experience gets a little bit worse.
I see sites all the time with hundreds of broken links. Hundreds. And the business owner has no idea because they’re busy running their actual business, which… fair enough, honestly. That’s kind of why I ended up specializing in WordPress maintenance, because most small business owners don’t have time to be crawling through their site looking for 404 errors.
Why Broken Links Are Actually a Bigger Deal Than You Think
So when a visitor clicks a link on your site and lands on a 404 error page, what do they do? They leave. Pretty much immediately. I’ve seen bounce rates on 404 pages that are like 85-90%, which is… yeah, that’s terrible.
And it’s not just user experience. Google’s crawlers are constantly scanning your site, following links, trying to understand your site structure. When they hit broken links, it wastes their crawl budget – which is basically how much time Google allocates to crawling your site. The more broken links you have, the less efficiently Google can index your actual good content.
Plus there’s the authority leak issue. You know how internal linking passes authority around your site? Well, when those internal links break, that whole flow gets disrupted. Pages that should be getting link juice aren’t, and your overall site architecture starts to look… messy, basically.
I’ve noticed that sites with a lot of broken links tend to have other maintenance issues too. It’s like a canary in the coal mine situation – if broken links are piling up, there’s probably other stuff going wrong under the hood that nobody’s paying attention to.
How Broken Links Happen in the First Place
Honestly, there are so many ways links break that it’s almost impressive.
The most common scenario I see is when someone updates their permalink structure. Like, they decide “oh, I want cleaner URLs” and they change from the default ?p=123 format to /post-name/ format… and boom, every internal link that used the old structure is now broken. Or they rename a page slug and don’t set up a redirect. That happens constantly.
Then there’s the external link problem. You link to a resource on another site, and six months later that site redesigns or that specific page gets deleted, and… your link is dead. You have no control over this, which is annoying, but it still affects your site.
Content updates are another culprit. Someone goes through and “refreshes” old blog posts, maybe deletes some outdated ones, but forgets that other pages on the site link to those deleted posts. I see this pattern all the time with businesses that have been blogging for years – they’ll have this tangled web of internal links pointing at content that doesn’t exist anymore.
Plugin and theme changes can break things too. A page builder plugin creates custom URLs for landing pages, then you switch to a different page builder and… those URLs don’t work anymore. Or a theme update changes how portfolio items are structured and suddenly your carefully crafted internal link strategy is toast.
Image links are their own category of disaster. People move images around in the media library, or they migrate to a new hosting setup, and all the embedded images in old posts break. Technically these are broken resources more than broken links, but the effect is the same – your site looks broken and unprofessional.
Finding All Your Broken Links (The Tools That Actually Work)
So first off, you need to actually find the broken links before you can fix them. Obvious, right? But you’d be surprised how many people just… assume their site is fine without ever checking.
The Broken Link Checker plugin is probably the most popular option, and honestly it works pretty well for most sites. It automatically scans your site, finds broken links, and gives you a dashboard where you can manage them. The downside is it can slow down your site if you have a lot of pages, because it’s constantly running checks in the background. I’ve seen it cause issues on larger sites – like 500+ pages – where it just eats up server resources.
For bigger sites or if you want more detailed data, Screaming Frog is the way to go. It’s a desktop app that crawls your site and gives you this massive spreadsheet of every link, every redirect, every 404… everything. The free version lets you crawl up to 500 URLs which is enough for most small business sites. The paid version is like £149 a year or something, which is worth it if you’re managing multiple sites or doing SEO work.
Google Search Console also reports crawl errors, which includes broken links that Google found. The thing is, it only shows you what Google found, not necessarily everything. So it’s good to check, but don’t rely on it as your only method.
There are also online tools like Dead Link Checker and Dr. Link Check that you can just paste your URL into and they’ll scan it. These are fine for quick checks but they usually have limits on how many pages they’ll crawl for free.
What I typically do for client sites is run Screaming Frog quarterly and keep Broken Link Checker installed but only activate it when I need to do a check, then deactivate it again. That way I’m not constantly hammering the server but I’m still catching issues regularly.
Actually Fixing the Broken Links (Three Different Approaches)
Okay so you’ve found your broken links. Now what?
The first option is just fixing the link directly. If you linked to “/about-us” but the page is actually at “/about” now, just… update the link. Go into the post or page editor, find the broken link, and change it to the correct URL. Simple. Time-consuming if you have a lot of them, but simple.
For WordPress, you can usually use the search and replace function in plugins like Better Search Replace to do this in bulk. Like if you changed your domain from http to https and now all your internal links are broken, you can search for “http://yourdomain.com” and replace with “https://yourdomain.com” across your whole database. Just… be careful with this because if you screw it up you can break things worse than they already are. Always backup first.
The second option – and honestly this is usually the better one – is setting up redirects. Instead of manually fixing every link, you create a 301 redirect from the old URL to the new one. This way, anyone clicking that old link gets automatically forwarded to the right place, and you don’t have to hunt down every instance of the link on your site.
The Redirection plugin is what I use for this. It’s free, it’s reliable, and it lets you set up redirects without touching any code. You just put in the old URL and the new URL, save it, and you’re done. It also tracks 404 errors so you can see what URLs people are trying to access that don’t exist, which is super helpful for finding issues you didn’t know about.
Some people use Yoast Premium for redirects, which is fine, but honestly I find Redirection more flexible. Yoast tries to automatically create redirects when you change a slug, which sounds great in theory but sometimes creates redirect chains or conflicts that are a pain to untangle.
The third option is just removing the link altogether. If you linked to an external resource that’s gone and you can’t find a replacement, sometimes it’s better to just… remove the link and leave it as plain text, or rewrite that section of content. Not ideal, but better than leaving a broken link there.
Dead Pages Are a Whole Different Problem
So broken links point to pages that don’t exist. Dead pages are pages that exist but nobody’s looking at them. And honestly? Dead pages can be just as bad for your site.
I see sites with like 200 pages where maybe 50 of them get any traffic at all. The rest are just sitting there, not ranking, not getting visits, not doing anything useful. They’re dead weight. And Google’s looking at your site thinking “why does this site have so much low-quality content?”
The way to identify dead pages is through Google Analytics or whatever analytics platform you’re using. Look at page views over the last 6-12 months and see what’s getting zero or near-zero traffic. Those are your dead pages.
Now, before you just delete everything, you need to think about why they’re dead. Is it because the content is outdated and irrelevant? Or is it because the page never got any internal links or SEO optimization, so nobody can find it? There’s a difference.
For pages with outdated content, you have a few options. You can update them with fresh information and give them a second life. Like, maybe you wrote a blog post about “Top WordPress Plugins 2018” and now it’s 2025 and nobody cares about 2018 plugins anymore. Update it to 2025 plugins, change the URL if needed, and suddenly it’s relevant again.
Or you can merge multiple thin pages into one comprehensive page. I see this a lot with service pages where someone created separate pages for every tiny variation of their service. Like “WordPress Design,” “WordPress Development,” “WordPress Customization” as three separate pages with barely any content on each. Just merge them into one good “WordPress Services” page with proper sections.
And sometimes… you just need to delete the page and set up a 301 redirect to somewhere relevant. If the content is truly useless and there’s no way to salvage it, get rid of it. Your site will be better off without it.
Setting Up a System So This Doesn’t Keep Happening
Here’s what I tell every client – fixing broken links once is fine, but if you don’t have a system to prevent them, you’re just going to be in the same situation six months from now.
First thing: use a staging site for any major changes. If you’re updating your permalink structure or doing a redesign or migrating to a new domain, test it on staging first and fix all the broken links there before pushing to live. This should be obvious but… people skip this step all the time and then wonder why their live site is broken.
Second: document your redirects. I keep a spreadsheet for every client site with all the redirects I’ve set up – old URL, new URL, date created, reason for redirect. This way if something weird happens I can look back and see what we changed and when. Plus it prevents you from creating redirect chains where A redirects to B which redirects to C… those are bad for SEO and performance.
Third: schedule regular link audits. I check client sites quarterly usually, but it depends on how often they’re updating content. If you’re publishing new blog posts weekly, you should probably check monthly. If your site is mostly static, quarterly is fine.
Use Google Search Console to monitor for crawl errors. It’ll email you if Google finds significant issues, which is a nice early warning system.
And honestly… if you’re not comfortable doing this yourself or you don’t have time, just hire someone to do it. I mean, that’s literally part of what WordPress maintenance is. Regular checks, fixing issues before they become problems, keeping everything running smoothly so you can focus on your business instead of wrestling with your website.
The Real Cost of Ignoring This Stuff
So let’s talk numbers for a second because I think people don’t realize how much broken links actually cost them.
Say your site gets 10,000 visitors a month and you have a bunch of broken internal links scattered throughout. Maybe 500 people hit a broken link in a given month – that’s 5% of your traffic hitting a dead end. If your typical conversion rate is 2%, you just lost 10 potential conversions because of broken links. If your average customer value is $500, that’s $5,000 in lost revenue per month. $60,000 per year. From broken links.
That’s obviously a simplified calculation and your numbers will be different, but the point is… this isn’t just an aesthetic issue or a minor technical problem. It’s affecting your bottom line.
Plus there’s the SEO impact which is harder to quantify but still real. Sites with better user experience signals – lower bounce rates, higher time on site, more pages per session – tend to rank better. Broken links hurt all of those metrics. So not only are you losing the visitors you already have, you’re also getting less organic traffic because your rankings are suffering.
And then there’s the reputation thing. If someone clicks three links on your site and two of them are broken, they’re going to think your business is unprofessional or outdated or just not paying attention. That’s not the impression you want to make.
Common Mistakes People Make When Fixing Links
Alright so I’ve seen people make some really interesting choices when trying to fix broken links, and I want to save you from making the same mistakes.
First mistake: creating redirect chains. This is where you redirect page A to page B, but page B is already redirecting to page C. So visitors (and Google) have to follow multiple redirects to get to the final destination. This slows things down and dilutes the SEO value being passed. Always redirect directly to the final destination, not to another redirect.
Second mistake: using 302 redirects instead of 301s. A 302 is temporary, a 301 is permanent. For SEO purposes, you almost always want 301s because they pass the full link equity to the new page. The only time you’d use a 302 is if you’re genuinely planning to bring that old URL back, which… when does that ever happen?
Third mistake: not testing the redirects after setting them up. I cannot tell you how many times I’ve seen someone set up a redirect wrong – like they forget the trailing slash or they typo the URL – and it doesn’t actually work. Always test your redirects in an incognito browser window to make sure they’re actually going where you think they are.
Fourth mistake: deleting pages without setting up redirects. This is the worst. You delete a page that was getting traffic and ranking for keywords, and instead of redirecting it somewhere relevant, you just let it 404. Now all those rankings are gone, any external sites linking to that page are sending visitors to a dead end, and you’ve just thrown away whatever SEO value that page had built up.
Fifth mistake: over-redirecting. Some people get redirect-happy and start redirecting everything to their homepage. That’s not helpful. If someone was looking for your “Services” page and you redirect them to your homepage, they still don’t have the information they wanted. Redirect to the most relevant page possible, even if it’s not a perfect match.
Tools and Plugins I Actually Use
Let me give you my actual toolkit for managing broken links and redirects, because I’ve tried a bunch of different options over the years and these are what I’ve settled on.
Redirection plugin – This is my go-to for managing redirects. Free, reliable, good interface. It logs all 404 errors which is incredibly useful for finding broken links you didn’t know about. It can handle regex redirects if you need to redirect patterns of URLs. Just solid all around.
Screaming Frog SEO Spider – For comprehensive site audits. The free version is enough for most small sites. Gives you way more data than you probably need, but it’s all useful data. You can export everything to CSV and analyze it in Excel or whatever.
Broken Link Checker plugin – I’m a little cautious with this one because it can slow down sites, but for smaller sites (under 100 pages) it works well. Just don’t leave it running constantly if you notice performance issues.
Google Search Console – Free and you should already have this set up. Check the Coverage report and the URL Inspection tool regularly. It won’t catch everything but it’ll catch what Google thinks is important.
Ahrefs or SEMrush – If you have budget for professional SEO tools, both of these have site audit features that find broken links and other technical issues. They’re expensive though – like $99-$200/month – so only worth it if you’re doing serious SEO work.
One thing I’ll mention – some people use Yoast SEO Premium for redirect management, and it’s fine, but it’s kind of overkill if that’s the only premium feature you need. The free Redirection plugin does 90% of what Yoast Premium does for redirects.
When You Should Just Hire Someone
Look, I’m all for DIY and learning how to manage your own site. But there’s a point where it stops making sense for you to spend hours figuring this stuff out when you could be, you know, actually running your business.
If you have more than 50 broken links, it’s probably worth hiring someone. That’s going to take you hours to fix manually, and if you don’t really know what you’re doing, you might make things worse.
If you’re doing a site migration or redesign, definitely get professional help. Those are the situations where broken links multiply like crazy, and you need someone who knows how to set up proper redirect maps and test everything thoroughly.
If you just don’t want to deal with technical stuff, that’s totally fine. Not everyone needs to be a WordPress expert. That’s why people like me exist – to handle this stuff so you don’t have to.
The typical cost for broken link cleanup depends on how bad the situation is. For a basic audit and fix of a small site, you’re looking at maybe $200-500. For a comprehensive cleanup of a larger site with hundreds of broken links, could be $1,000-2,000. Ongoing maintenance to prevent issues is usually part of a monthly retainer, typically $100-300/month depending on the size and complexity of the site.
Is it worth it? Well… compare that to the cost of losing customers because of a broken website, or the opportunity cost of spending 10 hours yourself trying to figure this out. Usually it makes sense to just hand it off to someone who does this regularly.
What This Looks Like as Part of Regular Maintenance
So here’s how I typically handle this for sites I manage on a monthly basis.
Every month I run a quick scan with either Broken Link Checker or Screaming Frog – alternating between them usually. Takes about 30 minutes to run the scan and review the results. If I find broken links, I fix them right away, usually within an hour or two depending on how many there are.
Every quarter I do a more thorough audit. Check Google Search Console for crawl errors, review analytics to identify dead pages, look at redirect chains, make sure nothing weird is happening. This is more like a 2-3 hour process.
Anytime we make significant changes to the site – new pages, deleted pages, structural changes, URL updates – I immediately check for broken links and set up redirects as needed. This should be part of the standard process for any change, not something you do after the fact.
I also keep an eye on the 404 logs in the Redirection plugin. Sometimes people will bookmark old URLs or external sites will link to pages that don’t exist, and you won’t know about it unless you’re monitoring 404s. When I see patterns – like the same URL getting hit repeatedly – I set up a redirect even if I never intentionally linked to that URL, because clearly someone out there thinks it should exist.
This kind of regular maintenance is honestly the best way to keep broken links from becoming a major problem. It’s like… you wouldn’t wait until your car is completely broken to do an oil change, right? Same principle with websites. Small regular maintenance prevents big expensive problems down the road.
Anyway, if you’re dealing with broken links or just want to make sure your WordPress site is properly maintained so you don’t have to think about this stuff… that’s exactly what I help businesses with. Regular checks, fixing issues before they affect your traffic, keeping everything running smoothly so your site actually works for your business instead of against it. Check out my WordPress maintenance services if that sounds like something you need help with – because honestly, you’ve got better things to do than chase down 404 errors all day.
