Broken internal links are one of the most common technical SEO problems I see when auditing Singapore websites. And they’re quietly costing you rankings, crawl budget, and conversions every single day they go unfixed. The good news? Finding and fixing broken internal links is one of the most straightforward wins you can get in SEO, if you know where to look.
I’ve personally audited over 300 websites in the past five years, and I can tell you that the average Singapore SME site has between 15 and 80 broken internal links at any given time. Some enterprise sites have thousands. Every one of those dead links is a small leak in your SEO ship.
In this guide, I’ll walk you through exactly how to find them, why they matter more than most people think, and the precise steps to fix each type. No fluff, just the technical playbook we use at bestseo.sg for our own clients.
What Exactly Are Broken Internal Links?
A broken internal link is any hyperlink on your website that points to another page on your own domain, but that destination page returns an error. Most commonly, that’s a 404 (Not Found) status code. But it can also be a 500 (Server Error), a redirect loop, or even a timeout.
The key word here is “internal.” We’re not talking about links pointing to other websites. We’re talking about links within your own site that you have full control over. That’s what makes them so fixable, and so inexcusable when left broken.
The Six Most Common Causes
After years of running site audits, I’ve narrowed the causes down to six recurring patterns. Understanding the cause helps you pick the right fix.
1. URL changes without redirects. You renamed /services/seo-audit to /services/seo-site-audit, but the 47 internal links pointing to the old URL were never updated. This is the single most common cause I see, especially after a site redesign or CMS migration.
2. Deleted pages with orphaned links. You removed a blog post or product page, but forgot that three other pages were linking to it. The links now point to nothing.
3. Typos in the href attribute. Someone manually typed a URL instead of using the CMS link picker and misspelled it. I once found a client’s developer had linked to /sevices/ instead of /services/ across 12 pages. That single typo created 12 broken links.
4. Site restructures and category changes. You reorganised your site architecture, moving pages into new subdirectories. Every old internal link path is now wrong.
5. CMS or plugin conflicts. Some WordPress plugins dynamically generate internal links. When those plugins are updated or deactivated, the links they created can break. I’ve seen this happen with table of contents plugins, related posts widgets, and custom shortcodes.
6. Staging URLs leaking into production. This is more common than you’d think. During development, links get pointed to staging.yourdomain.com or localhost. Those links work fine in the dev environment but break completely on the live site.
Why Broken Internal Links Hurt Your SEO More Than You Think
Most guides will tell you broken links are “bad for user experience.” That’s true, but it barely scratches the surface. Here’s what’s actually happening under the hood when Googlebot encounters broken internal links on your site.
Wasted Crawl Budget
Google allocates a finite crawl budget to your website. Every time Googlebot follows a link to a 404 page, that’s a wasted crawl. For a small 50-page site, this might not matter much. But if you’re running an e-commerce site with 5,000 product pages and 200 broken internal links, you’re burning through crawl budget that should be spent discovering and indexing your actual content.
I measured this on a Singapore e-commerce client last year. They had 340 broken internal links. After fixing them all, their crawl rate (pages crawled per day in Google Search Console) increased by 23% within two weeks. Pages that had been sitting in “Discovered, currently not indexed” started getting indexed.
Broken Link Equity Flow
Internal links pass PageRank (link equity) between your pages. Think of it like water flowing through pipes. A broken link is a pipe that leads nowhere. The equity that should flow to your important service pages or product pages just disappears.
If your homepage links to a category page, and that category page links to a service page, but the second link is broken, your service page loses the equity chain entirely. This directly impacts rankings.
User Experience and Conversion Loss
For Singapore businesses, especially those in competitive niches like legal services, financial advisory, or F&B, every visitor matters. When a potential customer clicks a link on your site and hits a 404 page, the trust damage is immediate. Our data shows that users who encounter a 404 page are 78% more likely to leave the site entirely compared to users who land on the intended page.
That’s not just a bounce rate problem. That’s revenue walking out the door.
Indexation Gaps
If the only internal link pointing to a page is broken, that page becomes an orphan. Google may never find it again after the initial crawl. I’ve seen pages with strong backlink profiles completely drop out of the index because every internal link to them was broken after a site migration.
5 Ways to Find Broken Internal Links on Your Website
Now for the practical part. Here are five methods, ordered from simplest to most comprehensive. For most sites, I recommend using at least two of these methods together for thorough coverage.
Method 1: Google Search Console (Free, Essential)
This should be your starting point. Google is literally telling you which of your pages are returning errors.
Log into Google Search Console. Navigate to “Pages” (previously called “Coverage”) in the left sidebar under “Indexing.” Look for pages with the status “Not found (404).” Click into any of these entries, then click “Inspect URL” to confirm the error.
Here’s the part most guides miss. GSC shows you pages that returned 404 errors, but it doesn’t directly show you which pages contain the broken links pointing to them. To find the source pages, you need to click on the affected URL, then look at the “Referring page” information. This tells you exactly where the broken link lives.
Export the full list of 404 errors to a spreadsheet. Sort by “First detected” date to prioritise recent breaks, which are often caused by recent changes you can easily reverse.
One limitation: GSC only reports pages that Googlebot has actually tried to crawl. If a broken link exists on a page that Googlebot hasn’t visited recently, it won’t show up here. That’s why you need additional methods.
Method 2: Screaming Frog SEO Spider (Free for up to 500 URLs)
This is the tool I use most often for broken link audits. Screaming Frog is a desktop crawler that mimics how search engines crawl your site, and it’s incredibly thorough.
Download and install Screaming Frog. Enter your domain URL and hit “Start.” Once the crawl completes, click the “Response Codes” tab. Filter by “Client Error (4xx)” to see all broken pages.
Now here’s where it gets powerful. Click on any 404 URL in the results. In the bottom panel, switch to the “Inlinks” tab. This shows you every page on your site that links to the broken URL, plus the exact anchor text used. You now have a complete map of every broken internal link and its source.
For a more targeted approach, go to “Bulk Export” > “Response Codes” > “Client Error (4xx) Inlinks.” This exports a complete spreadsheet of every broken internal link on your site, the page it’s on, the anchor text, and the broken destination URL. This is the exact report format I use when presenting findings to clients.
Pro tip for larger Singapore sites: if your site has more than 500 URLs, you’ll need the paid licence (£199/year). It’s worth every cent. Configure the crawl to respect your robots.txt and set a reasonable crawl speed so you don’t overload your server, especially if you’re on shared hosting with a local provider.
Method 3: Chrome DevTools Console (Free, Quick Spot Checks)
This method is best for checking individual pages rather than entire sites. It’s what I use when a client says “I think something’s broken on this specific page.”
Open the page in Google Chrome. Right-click anywhere and select “Inspect.” Click the “Console” tab. Now reload the page with Ctrl+Shift+R (or Cmd+Shift+R on Mac).
Watch the Console output as the page loads. Any resource that returns a 404 will appear as a red error message. Look specifically for failed requests to HTML pages (as opposed to images or scripts, which are a different issue).
You can also use the “Network” tab, filter by “Doc” to show only document requests, and look for any entries with a 404 status code. This gives you a cleaner view focused specifically on page-level broken links.
This method is limited to one page at a time, so it’s not practical for a full site audit. But it’s excellent for verifying fixes after you’ve made changes.
Method 4: Google Analytics 4 (Free, Data-Driven)
GA4 can help you find broken internal links by showing you which 404 pages are actually being visited by real users. This is different from a crawl-based approach because it prioritises broken links that are actively affecting your visitors.
In GA4, go to “Reports” > “Engagement” > “Pages and screens.” In the search bar, type your 404 page title (usually something like “Page not found” or “404”). This filters to show only sessions where users landed on your error page.
To find out where they came from, add a secondary dimension of “Page referrer” or create an exploration report with “Page path” as the dimension and filter for your 404 page title. This reveals which pages on your site are sending users to broken destinations.
The advantage of this method is prioritisation. If a broken link on your homepage is sending 200 users per month to a 404 page, that’s far more urgent than a broken link buried in a 2019 blog post that gets 2 visits per month. GA4 helps you triage by actual impact.
Method 5: Ahrefs or Semrush Site Audit (Paid, Most Comprehensive)
If you’re running a serious SEO operation, tools like Ahrefs and Semrush provide the most comprehensive broken link detection alongside broader site health monitoring.
In Ahrefs Site Audit, create a new project for your domain and run a crawl. Once complete, navigate to “Internal pages” > filter by “404 Not Found.” Ahrefs will show you every broken internal link, the source page, the anchor text, and even the HTTP response chain if there are redirect issues involved.
In Semrush’s Site Audit tool, run your audit and check the “Issues” tab. Filter for “Broken internal links” specifically. Semrush categorises these as “Errors” (the highest severity), which tells you the tool considers them critical to fix.
Both tools also detect more subtle issues that the free methods might miss. Redirect chains (where a link goes through multiple redirects before reaching the final page), redirect loops, and links pointing to pages that return soft 404s (pages that return a 200 status code but display error content). These “hidden” broken links can be just as damaging.
For Singapore-based businesses, I recommend running these audits at least monthly. If you’re in a dynamic industry like property, travel, or e-commerce where pages are frequently added and removed, consider weekly audits.
How to Fix Broken Internal Links: The Right Fix for Each Situation
Finding broken links is only half the job. Choosing the correct fix for each situation is what separates a quick patch from a proper technical SEO solution.
Fix 1: Update the Link Directly
This is the cleanest fix and should be your first choice whenever possible. If the destination page still exists but at a different URL, simply update the href attribute in your HTML or CMS to point to the correct URL.
In WordPress, you can use the built-in search and replace in the block editor, or use a plugin like Better Search Replace to update URLs across multiple pages simultaneously. If you have 30 blog posts all linking to /old-url/, you can replace them all in one operation.
Always test the updated link after making the change. Click it. Verify it loads the correct page. Check that the anchor text still makes contextual sense with the new destination.
For Singapore sites running on WordPress, I recommend making a database backup before running any bulk search-and-replace operations. I’ve seen cases where an overly broad search pattern accidentally modified URLs in image paths, CSS references, and even plugin settings.
Fix 2: Implement a 301 Redirect
Use a 301 redirect when the original page has permanently moved to a new URL and you either can’t update all the internal links immediately, or when external sites also link to the old URL.
A 301 redirect passes approximately 90-99% of the original page’s link equity to the new destination. It tells both users and search engines: “This page has permanently moved here.”
You can implement 301 redirects through your .htaccess file (Apache servers), nginx configuration, or through WordPress plugins like Redirection or Yoast SEO Premium’s redirect manager.
Here’s a critical rule: only redirect to a relevant page. If your old page was about “corporate tax filing in Singapore” and you redirect it to your homepage, that’s a soft 404 in Google’s eyes. Google is smart enough to recognise when a redirect destination doesn’t match the original page’s intent, and it will treat it as a 404 anyway.
Also, avoid redirect chains. If Page A redirects to Page B, and Page B redirects to Page C, you’ve created a chain. Each hop loses a small amount of link equity and adds latency. Audit your redirects periodically to flatten any chains into direct A-to-C redirects.
Fix 3: Remove the Link Entirely
Sometimes the right fix is deletion. If the linked page no longer exists and there’s no suitable replacement, remove the broken link from the source page entirely.
This is common when you’ve discontinued a service or product. If you used to offer “social media management” but no longer do, and your blog posts link to the now-deleted /services/social-media-management page, either redirect to a relevant active service page or remove the link and rewrite the surrounding text.
Don’t just remove the hyperlink and leave the anchor text as plain text if it no longer makes sense in context. Edit the paragraph so it reads naturally without the link.
Fix 4: Restore the Page
This fix is often overlooked. Sometimes a page was deleted accidentally, or it was removed prematurely. If the page still has value, still receives search traffic, or has external backlinks pointing to it, consider restoring it.
Check Google’s cache or the Wayback Machine (web.archive.org) to retrieve the old content. In WordPress, check your “Trash” for recently deleted pages. If the page had backlinks, you can verify this in Ahrefs or GSC’s “Links” report.
I had a client in the Singapore financial services space who accidentally deleted a guide that had 14 referring domains pointing to it. Restoring that single page recovered rankings for three high-value keywords within four weeks.
Fix 5: Create a Custom 404 Page (Damage Control)
This isn’t a fix for the broken link itself, but it’s essential damage control while you work through your backlog. A well-designed 404 page can recover up to 30% of users who would otherwise bounce.
Your custom 404 page should include a clear message that the page wasn’t found, a search bar, links to your most popular or important pages, and your site’s standard navigation. Don’t just show a blank white page with “404 Not Found” in plain text.
For Singapore businesses, consider adding a WhatsApp contact button on your 404 page. Singaporeans are heavy WhatsApp users, and giving them an instant way to reach you when something goes wrong can turn a negative experience into a conversion opportunity.
Building a Broken Link Prevention System
Fixing broken links reactively is necessary, but building a system to prevent them is far more efficient. Here’s the process we follow at bestseo.sg for our managed clients.
Monthly Crawl Audits
Schedule a Screaming Frog crawl on the first of every month. Export the 4xx errors report and compare it against last month’s report. Any new broken links should be investigated and fixed within the same week.
Redirect Mapping Before Any Site Change
Before you redesign your site, restructure your URLs, or migrate to a new CMS, create a complete redirect map. List every existing URL and its new destination. This single document prevents 90% of post-migration broken links.
I’ve seen too many Singapore businesses launch a beautiful new website only to lose 40-60% of their organic traffic because nobody mapped the old URLs to the new ones. A redirect map is not optional. It’s the most important document in any site migration.
CMS Workflow Rules
If you’re using WordPress, install a plugin that warns editors when they’re about to delete or change the URL of a page that has internal links pointing to it. Yoast SEO Premium does this automatically. It’s a small investment that prevents a recurring problem.
For teams, establish a simple rule: no page gets deleted without first checking for internal links pointing to it and setting up appropriate redirects. Make this part of your content operations checklist.
Quarterly Link Equity Audits
Every quarter, review your internal linking structure holistically. Use Screaming Frog’s “Crawl Depth” report to identify important pages that are buried too deep. Check that your highest-value pages (the ones targeting your most competitive keywords) have strong internal link support and none of those links are broken.
Let’s Clean Up Your Internal Links
Broken internal links are a silent ranking killer. They waste crawl budget, leak link equity, frustrate your visitors, and signal to Google that your site isn’t well-maintained. But they’re also one of the easiest technical SEO issues to fix once you have the right process.
Start with Google Search Console and Screaming Frog. Export your broken links. Fix the highest-traffic ones first. Then build a monthly audit habit so they never pile up again.
If you’d rather hand this off to someone who does this every day, we run comprehensive technical SEO audits that cover broken links alongside crawlability, site architecture, Core Web Vitals, and indexation issues. Drop us a message at bestseo.sg and we’ll take a look at your site. No obligations, just a clear picture of where you stand.
