Broken link checker and monitor for your website
Linkbruno crawls your pages on a schedule, checks every link on them, and tells you by email or Slack when one stops working, with the page it’s on and how to fix it.
Free scan, no signup. We check up to 25 pages and every link on them.
- Slack
- GitHub Actions
- Claude Code
- Cursor
- ChatGPT

Links break after you publish them
We checked the links in 11,000 popular Hacker News stories, 1,000 from each year from 2015 to 2025.
2015: 19%, 2016: 17%, 2017: 14%, 2018: 12%, 2019: 10%, 2020: 10%, 2021: 10%, 2022: 9%, 2023: 5%, 2024: 4%, 2025: 4%
Why a one-off check isn’t enough
Links break a few at a time, long after you publish them. A docs page moves, a partner rebuilds their site, or a domain you linked to expires and someone else buys it. Your page still loads fine, so nobody notices.
- Day 1
The day you publish
You run a link checker before the post goes live. All five links work, and the report says so.
- Month 3
Three months later
A partner rebuilds their site and the case study you linked to is gone. Your link now leads to a 404 page. The report from launch day still says all five links work.
- Year 1
A year later
Your docs move to a new version. The install guide link still gets there, but through four redirects, and each of them is one more rule that can break.
- Year 2
Two years later
The sponsor you thanked lets their domain expire, and someone else buys it. Your link now opens a parked page full of ads.
One-off checkers
They show what’s broken on the day you run them. Anything that breaks next month stays hidden until someone remembers to run one again.
Desktop crawlers
Tools like Screaming Frog are thorough, but they only run when someone opens them and presses start.
SEO audit suites
Broken links show up in a weekly report next to hundreds of other findings, and there’s no way to say a link that returns 403 is fine.
Linkbruno checks on a schedule, alerts you only when something changes, and lets you mark a finding as intentional so you stop hearing about it.
How it works
Linkbruno visits your pages the way a reader would, on a schedule, and messages you when something changes.
Crawls your site
Starts from your homepage and sitemap and works outward until it reaches your page limit. Links to other sites get checked, but we don’t crawl those sites. We follow robots.txt and open one connection per host at a time.
- /blog
- /blog/v2-launch
- partner.example/case-study404
- docs.example/install4 hops
- /blog/pricing-update
- /blog/v2-launch
- /docs
- /docs/setup
- status.vendor.example
- /docs/setup
- /pricing
Checks every link
Sends a HEAD request first, and a GET if the answer looks wrong. Redirects are followed one hop at a time, so you can see the whole chain.
- http:/
/ docs. example/ install 301 HEAD - https:/
/ docs. example/ install 301 HEAD - https:/
/ docs. example/ v2/ install 405 HEADRefused, so we ask again with GET - https:/
/ docs. example/ v2/ install 200 GET
Alerts you when something changes
A link that stays broken for a week sends one alert, not seven. A link that fails is checked again a minute later, and we only tell you if it fails both times, so a server that hiccups doesn’t set off an alert.
- First failure, checked again a minute later
- Still broken, no new message
This link has stopped working.
- Link is dead (404)partner.example/case-study
Runs in your CI
Add the check to your pipeline and a pull request that adds a broken link fails its build, because we check the preview before it merges. Slack and email cover everything else.
$ sh linkbruno-check.sh --site docs --url "$PREVIEW_URL" linkrot: check 1842 started for https://pr-214.docs.example/. Linkbruno checked the preview at https://pr-214.docs.example/: read 86 pages and checked 412 links. 2 links break the check. FAIL Link is dead (404) https://partner.example/case-study on https://pr-214.docs.example/guides/setup ("case study") FAIL Image is missing https://pr-214.docs.example/img/flow.png on https://pr-214.docs.example/guides/setup Process exited with code 1
What you see in Linkbruno
Problems come sorted into what to fix first, dead links to other sites, and the rest. Repeats fold into one row, so 130 links to one share button are one decision.
Every page a link is on, and the words around it
Open a problem to see each page that carries the link, whether it sits in the text, the menu or the footer, and the sentence around it. For a dead link to another site we find the Wayback Machine’s last copy, so you have a replacement ready. Fixed it? Check again re-reads those pages now instead of at the next crawl.
How to fix each kind of broken link
Hand the list to your AI
Pick a prompt and one click opens Claude or ChatGPT with it, and with a private link that gives the chat your whole fix list. Coding agents like Claude Code and Cursor connect over MCP, read the list, fix the links in your repository and check them again.
Connect Claude Code, Cursor or VS Code
All your sites on one screen
Each site shows its open problems and when it was last crawled. Add a site by its address and the first crawl starts straight away.

What it checks
The free scan and the paid plans run the same checks. Pick one to see what it looks for and how you’d fix it.
Can readers reach it?
- Passes whenDestination existsHow to fix a dead linkWhat to do
The page this links to is gone. Point the link at the page that replaced it, or remove it. If it was your own page, restore it or add a 301 redirect to its new address.
Do redirects land in the right place?
Is the content still there?
Is it still safe to link to?
Housekeeping
The page this links to is gone. Point the link at the page that replaced it, or remove it. If it was your own page, restore it or add a 301 redirect to its new address.
Pricing
Every plan runs every check, and every plan gets the fix list, CSV export, archived copies and the AI agent link and MCP server. Plans differ in how many sites and pages you can monitor, how often we crawl, and how long we keep history.
- 3 sites
- 2,500 pages per crawl
- Daily crawls
- Slack and email
- 90 days of history
- 10 sites
- 10,000 pages per crawl
- Daily crawls
- Slack and email
- 1 year of history
- CI check on previews
- 50 sites
- 20,000 pages per crawl
- Daily crawls
- Slack and email
- 1 year of history
- CI check on previews
If you downgrade, sites over your new limit are paused. We keep their history, so nothing is lost if you upgrade again.
Security
We only look at public pages, and we store as little about them as we can.
- https:/
/ files. partner. example/ report 302 GET - http:/
/ 10. 0. 0. 12/ admin Blocked GETPrivate address. We never sent the request.
Public pages only
We only fetch what an anonymous visitor could see, and we never ask for a login to your site.
Your robots.txt is followed
We read one page at a time with a pause between requests, keep out of whatever your robots.txt disallows, and back off when a server says it’s busy.
No private networks
Before every connection, including each redirect hop, we check that the address isn’t on a private or reserved network.
Minimal storage
We don’t keep page contents, only URLs, status codes, hashes and short excerpts. Alert destinations are encrypted at rest.
Questions
- What does the free broken link checker do?
- It reads up to 25 pages of your site and checks every link and image on them, with no signup. To keep checking on a schedule and get an alert when something breaks, add the site to a free account. Other ways to find broken links.
- Why are some links “blocked” instead of broken?
- Some sites answer automated requests with a challenge or a made-up status, like LinkedIn’s 999, while the page works fine in a browser. We show those as blocked, couldn’t check, and never alert on them. Why checkers see 403 and 429.
- Do broken links hurt SEO?
- Less than an audit report full of 404s suggests. Google says 404s don’t harm your site’s indexing or ranking. What costs you is internal links to dead URLs, deleted pages other sites still link to, soft 404s and long redirect chains. What Google says about broken links.
- Does it work with WordPress, Shopify, Squarespace and Webflow?
- Yes. It reads your published pages from outside, so it works on any platform and needs nothing installed. Each platform keeps links and redirects in its own places: WordPress, Shopify, Squarespace and Webflow.
- Does it find links added by JavaScript?
- No. We read each page’s HTML as your server sends it, the way search engines first see it. Menus and content rendered in the HTML are covered; links that only appear after scripts run in the browser are not.
- Will the crawler slow my site down?
- It reads one page at a time with a pause between requests, follows robots.txt, and backs off when your server answers 429 or 503. More about our crawler.
- Can I check a list of URLs, or one page?
- Yes. The bulk URL checker takes up to 100 addresses and shows each one’s status code, and the page link checker checks every link on one page. The redirect checker shows every hop of up to ten addresses. All three are free, with no signup.
- How is it different from Screaming Frog or a WordPress plugin?
- Screaming Frog is a desktop app for deep audits, and its scheduled crawls need a licence and a computer left on. A WordPress plugin lives in your dashboard. We crawl from our servers on a schedule and email you when something breaks. Side by side: Screaming Frog, the Broken Link Checker plugin and Dr. Link Check.
See what’s broken on your site
The free scan takes about a minute.
No signup needed.
Monitor a site for free
One site, up to 500 pages, checked every week, with email alerts. No card needed.
Start free