Skip to content

heddle check --only urls

URL Check

The URL check makes sure every address the site was ever indexed at still resolves, and that every internal link reaches a page. Without it, a redesign can drop addresses that took years to rank, and nothing fails while their traffic quietly stops. Every URL the site has ever been indexed at resolves, and every internal link reaches a page. Losing an indexed URL is the most expensive mistake in a replatform, and it is silent.

When Heddle is set up on your site, this check runs on every build alongside 15 others, so a page that fails it is fixed before a buyer or a search engine sees it.

runs offlineruns every build

Why it exists

Every URL the site has ever been indexed at resolves, and every internal link reaches a page.

Losing an indexed URL is the most expensive mistake in a replatform, and it is silent. Nothing fails, traffic just stops. Three rules, each from the site this came from:

  1. Legacy URLs (heddle/legacy-urls.txt, one path or URL per line) are served by the build or by a redirect. The file is a floor, not a census. Paths found later in Search Console belong in it by hand, because a path that took 2,714 impressions while 404ing for a year was never in the sitemap.
  2. No redirect shadows a page the build makes. The redirect answers first, so the page is unreachable while the sitemap lists it.
  3. Internal links reach a page, not a redirect and not nothing. We control both ends, so a redirect saving a link from 404ing is exactly why nobody noticed it was wrong.

Redirects are declared in site.json urls.redirects. Exact paths, or prefixes ending in "/*". Paths served at runtime rather than from the build (media in object storage, an app on another origin) go in urls.unverified as prefixes, reported as unverifiable rather than called dead.

From lib/checks/urls.mjs in the Heddle repository at de0c02b.

Questions

What does the urls check look for?

Legacy URLs resolve; no redirect hides a built page; internal links reach a page.

Does the urls check need an AI model?

No. It reads the built pages or the sources directly, so it runs offline and costs nothing per run.

How do I run it?

Build the site, then run node bin/heddle.mjs check <site> --only urls from the Heddle repository.

Work with us

Let the agents bring you the leads.

Tell us about your business and who buys from you. On a short call we'll show you the searches your buyers make where you don't show up yet, and what the agents would do about them in their first month.

On the call, for your site

  1. The searches your buyers makeMeasured, with how many people make each one
  2. Where you show up, and where you don'tOn Google and in ChatGPT's answers
  3. The agents' first monthThe pages, fixes and links they would start with