Schema Markup Generator
Build clean, valid Schema.org JSON-LD for rich results and AI answer engines — Article, Product, Local Business, FAQ, Event and more, with empty fields dropped automatically.
Crawl your whole site and find every broken link — and see exactly which page each one sits on. Live results, redirects flagged separately, CSV export.
Paste a URL. It crawls your site, checks the status of every page and link as it goes, and shows exactly which page each broken link is on.
Note: links a site renders only in JavaScript aren’t crawled, and pages nothing links to (true orphans) can’t be discovered by any crawler. Blocked (403/429) means a firewall rejected the automated check — the page may still be fine. Our crawler identifies itself as ToolsVale-LinkChecker.
uploaded over TLS · deleted within one hour
Enter your homepage or any starting page, choose how many pages to crawl, and pick whether to include external links.
It reads your sitemap and follows internal links, checking each link's status and streaming results as it goes — no black-box wait.
It opens on the Broken tab; every row shows the page the dead link sits on and its anchor text. Export the list as CSV or copy it.
| Input | Output | Typical saving | Best for |
|---|---|---|---|
| Any website URL | Live link report | Finding dead links before visitors or Google do | |
| Any website URL | CSV export | Handing a fix-list to a developer or client | |
| Any website URL | Found on source pages | Knowing exactly where each broken link lives |
We ran the same files through the popular alternatives first. These are the gaps we found, and what this tool does instead.
Every broken link shows the exact page it sits on, plus the anchor text, so you go straight to the fix.
test: Look at the "Found on" column — it links to the source page and quotes the link text.Results stream in live as each link is checked, and when you hit the page limit you continue where it left off instead of re-crawling.
test: Watch the counter climb as it runs, then press "Crawl more" to keep going past the limit.Firewall rejections are bucketed separately as "Blocked," and redirects show their hop count — so "Broken" means genuinely broken.
test: Filter to "Blocked" and "Broken" — they're never mixed.A broken link checker crawls your website and reports the status of every page and link it finds, so you can catch dead links — 404s, broken redirects, pages that error out — before your visitors or Google run into them. On a site of any real size they’re impossible to find by hand, and left alone they frustrate readers, waste crawl budget and quietly bleed away link equity.
Most free checkers hand you a flat list of dead URLs and leave you to work out where each one lives. This one shows the exact page every broken link sits on, along with its anchor text, so you go straight to the fix. Results stream in live as each link is checked rather than appearing all at once after a long wait, and it keeps genuine 404s separate from redirects (shown with their hop count) and from firewall rejections — the 403s and 429s that many tools wrongly report as broken.
Every row in the report carries the real HTTP status the server returned. Most tools collapse these into “working” and “broken,” which is where the false alarms come from. Here is what each one means and whether it needs your attention.
| Code | Meaning | Bucket | What to do |
|---|---|---|---|
| 200 | OK — the page loaded normally | OK | Nothing. |
| 301 | Moved permanently | Redirect | Fine, but update the link to point at the destination directly if the hop count is above one. |
| 302 / 307 | Moved temporarily | Redirect | Check it is genuinely temporary. A permanent move left on a 302 passes no signals. |
| 308 | Permanent redirect, method preserved | Redirect | Same as 301. |
| 403 | Forbidden — a firewall refused the automated request | Blocked | Usually a false alarm. Open the URL in your browser to confirm. |
| 404 | Not found | Broken | Fix it. Redirect, correct, or remove the link. |
| 410 | Gone — deliberately removed | Broken | Remove the link. The owner has said it is not coming back. |
| 429 | Too many requests — rate limited | Blocked | Not broken. Re-check a few of these manually later. |
| 500 / 502 / 503 | Server error on the far end | Broken | Re-run before acting. Transient errors are common; a code that persists across two crawls is real. |
| timeout | No response inside 10 seconds | Other | Often a slow server rather than a dead page. Re-check manually. |
| robots | Your robots.txt disallows crawling this URL | Other | Expected. The page may be perfectly healthy. |
Links break for a handful of predictable reasons. You rename or delete a page without adding a redirect; you change your permalink or URL structure and thousands of old links suddenly point at addresses that no longer resolve; a typo slips into an href; or an external site you linked to moves, expires or takes its page down — something you can’t control but still pay for in user experience. Images, stylesheets and downloadable files break the same way. The larger and older a site gets, the more of these accumulate silently, which is why a periodic crawl matters far more than a one-off check.
Once the crawl shows you what’s broken and where, the fix depends on why it broke.
| Situation | Fix | Why |
|---|---|---|
| The page moved to a new URL | Add a 301 redirect from old to new | People and search engines both land in the right place, and the link equity follows. |
| The link itself is wrong — typo or stale destination | Edit the href | A redirect would paper over a mistake that should just be corrected at source. |
| The content is gone with no replacement | Remove the link, keep the sentence | Sending readers to a dead end costs more than losing the reference. |
| An external site went down or expired | Find an equivalent source, or link an archived copy | You cannot fix someone else’s server, but you can stop paying for it. |
| A whole section 404s after a migration | Fix the redirect rule, not the individual links | Hundreds of broken links usually share one bad pattern. |
| The link points at an internal page you deleted on purpose | Serve 410 instead of 404, and remove inbound links | 410 tells Google it is deliberate, so it drops out of the index faster. |
Indirectly, and the honest answer is more nuanced than most posts admit. Google has said repeatedly that a 404 is a normal part of the web and having some will not incur a penalty. What broken links genuinely cost you is real, though: crawl budget spent on URLs that return nothing, internal link equity that dead-ends instead of flowing to pages that matter, and readers who hit a dead end and leave. That last one is the expensive part. Broken links are not a ranking factor so much as a symptom — a site with hundreds of them usually has a maintenance problem that shows up in other ways too.
Outbound broken links matter more than people expect. A page full of dead references reads as abandoned, and that is the impression it leaves with both readers and reviewers.
| Moment | Why it matters |
|---|---|
| After a site migration or replatform | The single biggest cause of mass breakage. Check within 48 hours of cutover, while the old URLs are still fresh in your head. |
| After changing permalink structure | One settings change can invalidate every URL on the site at once. |
| After a bulk delete or content prune | Every internal link to a removed page is now dead. |
| Before a redesign goes live | Cheaper to fix on staging than in public. |
| Monthly, on a live site | External links rot on their own. A monthly pass catches it before it accumulates. |
| Before pitching a guest post or client audit | A dead-link list is the fastest credible thing you can put in front of someone. |
The report labels every row as internal or external, and the distinction changes what you can do about it. Internal breakage is always your fault and always fixable — a redirect or an edit closes it. External breakage is outside your control: the site moved, expired, or was sold. You still pay for it in reader experience, so it still needs handling, but the fix is replacement rather than repair.
Leave “Check external links too” ticked for a full picture. Untick it when you only want to audit your own structure, which is faster and produces a shorter list.
We ran the same sites through the popular free alternatives before building this. These are the limits each one publishes, as of August 2026 — worth re-checking before you rely on them, since free tiers change often.
| Tool | Pages per run | Links | Shows the source page | Install | Account |
|---|---|---|---|---|---|
| ToolsVale | Up to 10,000, continuable | No cap | Yes, with anchor text | No | No |
| MiniWebtool | 20 | 200 | No | No | No |
| IndexFlow | 1 (single page) | 50 | — | No | No |
| Screaming Frog (free) | 500 | — | Yes | Desktop app | No |
| Dead Link Checker | Site crawl | — | Yes | No | Yes, for multi-site |
| WP Broken Link Checker plugin | — | ~200/month free | Yes | Plugin | Yes |
The pattern is consistent: free web-based checkers either cap you low enough that a real site never finishes, or they hand you a list of dead URLs with no indication of where each one lives. Finding the URL is the easy half. Finding the page it sits on is the work.
Being straight about the gaps, because every crawler has them and most pages do not say so.
| Limitation | Why |
|---|---|
| JavaScript-rendered links are not followed | The crawler reads the HTML the server returns. Links injected by a framework after load are invisible to it — and to any crawler that does not run a full browser. |
| True orphan pages are never found | If nothing links to a page and it is not in your sitemap, no crawler can discover it. Nothing can fix this except adding a link. |
| Some 403s and 429s are false alarms | We crawl from a single IP, so strict firewalls and rate limiters refuse us. We label those as Blocked rather than counting them against you, but we cannot eliminate them. |
| Links inside PDFs and other documents are not checked | Only HTML pages are parsed for outbound links. |
| Redirect chains are reported, not resolved | You get the hop count so you can spot them; shortening the chain is an edit on your side. |
One honest note on how it runs: unlike most tools on ToolsVale, this one can’t run entirely in your browser. Browsers are blocked from fetching other websites’ pages for security reasons, so the crawl runs on our server, which requests each URL and streams the results straight back to you — nothing about your site is saved. The crawler identifies itself as ToolsVale-LinkChecker and spaces its requests, so a full crawl puts less load on your server than a handful of real visitors. If you run a strict firewall, allowlisting that user-agent will give you cleaner results.
If you run WordPress, the usual advice is to install a broken-link plugin, but the popular ones either add database load or cap the free tier at around 200 links a month. Google Search Console’s report is free and shows which pages link to a 404, but it only surfaces errors Google has already crawled, tops out at roughly a thousand pages, and can lag by up to a week. This tool sits between the two: it checks your live site from the outside on demand, with nothing to install, no monthly cap, up to 10,000 pages per run, and the source page shown for every broken link straight away.
The three are complementary rather than competing. Search Console tells you what Google has already tripped over — that is the authoritative view of what is hurting you in search. A plugin catches breakage as you create it, inside the editor. This tool gives you the full current picture of your live site, on demand, without waiting for Google to re-crawl or asking your database to do the work.
The report opens on the Broken tab, because that is what you came for. From there:
Cleaning up your technical SEO end to end? The XML Sitemap Generator lists the pages search engines should crawl, the robots.txt Generator controls what they’re allowed to crawl, the Schema Markup Generator adds the structured data that earns rich results, and the llms.txt Generator does the same job for AI answer engines.
Last reviewed August 2026 · this tool runs server.
A tool that crawls your website and reports the HTTP status of every page and link, so you can find dead links (404s), broken redirects and errors before visitors or search engines hit them.
It starts from the URL you enter, reads your sitemap and robots.txt, follows the internal links on each page, and requests every link to record its real status code.
Browsers are blocked from fetching other sites' pages for security reasons, so a real crawler has to run server-side. Ours requests each URL and streams the results back; nothing about your site is stored.
"Blocked" is a 403/429: a firewall or rate limiter refused the automated check, so the page is probably fine. "Redirect" means the URL forwards elsewhere; the hop count is shown so you can spot redirect chains.
Yes, optionally. Leave "Check external links too" ticked to test the outbound links on your pages as well as internal ones.
Up to 10,000 in a single run. If your site is bigger, hit "Crawl more" to continue from where it stopped instead of starting over — it picks up where it left off rather than re-crawling.
Yes — download a CSV of every checked URL (status, source page, redirect info), or copy the URLs in the current view to your clipboard.
Paste your homepage URL above and run it. It crawls your whole site, checks every link, and lists the broken ones with the page each is found on — no signup, no install, and you can export the list as CSV.
You don't need one. Plugins like Broken Link Checker run inside WordPress and either add database load or cap you at around 200 links a month on the free tier. This checks your live site from the outside instead, so there's nothing to install, no performance hit, and no monthly link cap — paste your site URL and it crawls every published page.
No. The crawler identifies itself as ToolsVale-LinkChecker and spaces its requests — a full crawl generates less load than a handful of real visitors. If your firewall is strict, allowlist that user-agent for cleaner results.
Build clean, valid Schema.org JSON-LD for rich results and AI answer engines — Article, Product, Local Business, FAQ, Event and more, with empty fields dropped automatically.
Build a valid robots.txt with the right allow/disallow rules, crawl-delay and sitemap line — with warnings for the mistakes that accidentally block your whole site from Google.
Build a valid XML sitemap by discovering your pages automatically or pasting a URL list — with lastmod, priority, and automatic splitting for sites over 50,000 URLs.