How Broken Links Hurt Your SEO and How to Find Them
Technical SEO
How Broken Links Affect SEO
When Googlebot follows a link and receives a 404 or 5xx response, it logs
a crawl error. A page with many broken outbound links signals poor maintenance.
Internal broken links prevent Google from indexing the linked page at all.
The impact compounds: crawl budget is wasted on dead URLs, PageRank leaks from broken internal links, and link equity from external backlinks is lost if the linked page no longer exists.
Types of Broken Links
| Type | HTTP status | SEO impact |
|---|---|---|
| Hard 404 | 404 Not Found | High — remove or redirect |
| Soft 404 | 200 but "page not found" content | Medium — hard to detect |
| Server error | 5xx | High — investigate immediately |
| Redirect chain | 301→301→301 | Medium — consolidate |
| Redirect loop | 301→301→original | High — fix the loop |
API Usage
curl -X POST https://api.toolkitapi.io/v1/seo/check-links \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/blog/", "depth": 2}'
{
"crawled": 142,
"broken": [
{ "url": "https://example.com/old-page", "status": 404, "found_on": "/blog/" },
{ "url": "https://external.com/gone", "status": 410, "found_on": "/resources/" }
],
"redirect_chains": [
{ "url": "https://example.com/a", "chain": ["/a", "/b", "/c"], "final_status": 200 }
]
}
Automated Monitoring
Run a link check after every deployment to catch regressions:
# .github/workflows/seo.yml
- name: Check for broken links
run: |
BROKEN=$(curl -sf -X POST $SEO_API/check-links \
-H "X-API-Key: $API_KEY" \
-d '{"url": "${{ env.SITE_URL }}", "depth": 1}' | jq '.broken | length')
if [ "$BROKEN" -gt 0 ]; then echo "::warning::$BROKEN broken links found"; fi