Surveyor

A link surveyor for your website — walks every page, charts every route, marks what's washed out.

Only pages on the same origin are crawled; external links are checked, never crawled.

Privacy and etiquette. Checking a link means your browser sends a request to it — including external sites, which see your IP address and normal browser headers (Referer is suppressed). Survey only sites you own or have permission to test. Checks are limited to a few at a time with short pauses, but Surveyor does not read robots.txt. Use the Stop button if a site slows down.

Why two modes? Reading a page's actual content across domains is blocked by the browser (CORS) unless that site explicitly allows it — the same restriction every browser enforces on any page's JavaScript. "Survey a live URL" works when the site is your own (best: serve this file from the same origin) or allows cross-origin reads; otherwise, use "Paste page HTML" — copy the page's source (View Source) and the links are read from that instead of being fetched. Either way, every link found is then requested from your browser to check it.

0 pages walked · 0 routes charted · 0 washed out

No survey run yet. Point it at a URL, or paste a page's HTML, to chart its routes and find what's washed out.

About Surveyor

Surveyor reads one page, follows every <a href> it finds (and, optionally, every <img src>), and checks whether each one resolves. Pages on the same origin as the start page are walked in turn — up to the page and depth limits you set. It reads static HTML only: links added by JavaScript, srcset, <link>, scripts, stylesheets, iframes and CSS backgrounds are not seen.

Every result lands in one of four states. Passable — a real 2xx response, read from the same origin (or a site that allows cross-origin reads). Washed out — an error status, a timeout, or a network failure (the browser could not reach it at all). Uncertain — a cross-origin link that answered in some form, but the browser's CORS rules hide the status code: an external link that returns 404 is still shown as Uncertain, so this tool cannot find dead pages on other sites, only unreachable hosts. Skipped — mailto:, tel:, javascript:, empty links and the like, plus anything beyond the route limit or left unchecked when you pressed Stop.

Washed-out results for external links can be false alarms: a blocking browser extension, an ad blocker, a VPN, mixed content (checking an http:// site from an https:// page) or a firewall also look like "unreachable". Re-check before editing a page.

In-page anchors. Links such as #pricing are checked against the page they sit on: if that page has no element with id="pricing" (or <a name>), the anchor is listed as Washed out with type "anchor". # and #top are always valid. In live mode, links like other-page#part are also checked when other-page was read during the survey. This check reads only the HTML that was fetched or pasted, so anchors created by JavaScript are not seen.

Each result also lists which page(s) reference it, since that's what you actually need to go fix.

Privacy. Surveyor has no server, no analytics, no cookies and saves nothing between visits. But it is not "local only": to check a link, your browser sends a HEAD request (sometimes GET) to that link's site, including external sites, which can see your IP address and normal browser headers. Cookies are not sent to third parties and the Referer is suppressed; requests to the surveyed site may carry an Origin header naming the page that hosts Surveyor. Reports (copy/CSV) are produced in your browser and go nowhere unless you save or paste them.

Etiquette. Only survey sites you own or are allowed to test. Surveyor checks at most four links at once with short pauses and caps each run (pages, depth and total routes), but it does not read robots.txt and it does not rate-limit per host beyond that. Stop the run if a server struggles.