EdenWorks

How to find broken links on your website (free), fix them, and get a weekly report

By EdenWorks · Published 2026-11-02 · Updated 2026-11-02

Short version. Start with the Not found (404) list in Google Search Console, then crawl the site with a free crawler (a desktop SEO crawler, wget --spider or the open-source LinkChecker) to find which pages contain each broken link. Fix internal links first, 301-redirect pages that moved, return 410 for pages you removed on purpose, and re-crawl on a schedule, because links break again.

On this page
  1. Why broken links are worth fixing
  2. Method 1: Google Search Console
  3. Method 2: a free desktop crawler
  4. Method 3: wget from the command line
  5. Method 4: LinkChecker (open source)
  6. Method 5: the pages crawlers miss
  7. How to fix each kind of broken link
  8. Get a weekly report automatically

Why broken links are worth fixing

A broken link sends a visitor (or a search engine crawler) to an error instead of the page they wanted. For visitors it is a dead end, often on exactly the pages that matter: pricing, docs, a signup flow. For search engines, internal links are how they discover and weigh your pages, so a link that 404s wastes that signal. Links also break on their own: you rename a page, a CMS changes its URL structure, or an external site you cite disappears. Studies of “link rot” consistently find that a large share of links on the web stop working within a few years.

What to look for:

Treat 403 and 429 responses from external sites with caution: they usually mean the site blocks automated checkers, not that the page is gone.

Method 1: Google Search Console (free, for sites you own)

  1. Open Search Console for your property and go to Indexing → Pages.
  2. Under “Why pages aren't indexed”, open Not found (404).
  3. Click a URL and use Inspect URL; the referring page information, when available, tells you where Google found the link.

Strength: it includes broken URLs that other websites link to, which a crawl of your own site cannot see. Weakness: it is slow to update and does not list every source page. Use it alongside a crawl.

Method 2: a free desktop SEO crawler

Desktop crawlers such as Screaming Frog SEO Spider have a free mode (up to 500 URLs at the time of writing). Enter your homepage, start the crawl, then filter Response Codes → Client Error (4xx). Select a broken URL and open the Inlinks tab to see every page that links to it, with the anchor text. That “where is it linked from?” view is what you need to actually fix things.

Method 3: wget from the command line

If you have wget (Linux, macOS via Homebrew, Windows via WSL), you can spider your own site without downloading it:

wget --spider -r -l 5 -nd -nv -w 1 -o wget-spider.log https://example.com/
tail -n 30 wget-spider.log

Limits: wget stays on your host by default (so external links are not checked), and it does not tell you which page contained each broken link. Search your site's source or CMS for the URL to find it.

Method 4: LinkChecker (open source)

LinkChecker is a free, GPL-licensed command-line checker that reports the parent page for each broken link and can check external links too:

pip install linkchecker
linkchecker --check-extern -o csv https://example.com/ > links.csv

Open links.csv (semicolon-separated) in a spreadsheet and filter by the result column for errors. The parentname column is the page you need to edit. Add --no-robots only for sites you own and control.

Method 5: the pages crawlers miss

No crawler sees links behind a login, links inside PDFs or other documents, links built by JavaScript after page load (unless the tool renders JavaScript), or links in emails and social profiles. Click through your signup flow, your most-downloaded PDFs, your email footer and your social bios by hand a few times a year.

How to fix each kind of broken link

SituationFix
Typo in the link (wrong slug, missing slash, wrong case)Correct the link in the source page. The target is fine.
Your page moved to a new URLUpdate internal links and add a permanent (301) redirect from the old URL, so external links and bookmarks keep working.
Your page was removed on purposeRemove or replace the links, and let the old URL return 404 or 410 Gone. Do not redirect everything to the homepage; search engines treat that as a “soft 404”.
An external page disappearedLink to the new location, a similar source, or an archived copy, or remove the link.
Redirect chainPoint the link straight at the final URL.
Mixed contentChange http:// asset URLs to https:// (or relative URLs) and confirm the asset exists over HTTPS.

Fix internal links first (they are fully under your control and affect how your own pages are crawled), then high-traffic pages, then external links. Re-crawl afterwards: fixes sometimes introduce new mistakes.

Get a weekly report automatically

Finding broken links once is easy; noticing new ones every week is where most sites fall down. If you run a site for clients, a short weekly report also shows the work you are doing.

If you use n8n, our free template crawls a site every week (respecting robots.txt), checks every link, image, script and stylesheet, and emails an HTML report grouped by severity with the source page and anchor text for each problem, plus an optional “all clear” email.

Free: Weekly Broken-Link Report (n8n template)

A link-health report in your (or your client's) inbox every Monday. Pay what you want, $0 is fine.

Get the free template

Disclosure: the template crawls through an Apify Actor that EdenWorks built and publishes. You pay Apify's usage price (about $2 per 1,000 pages crawled; a 300-page site is about $0.60 a week, and Apify's free plan credits cover light use), and EdenWorks earns part of that fee. The free methods above cost nothing.

Related guides