A link checker should return unknown when it cannot complete a meaningful inspection. Reserve link not found for a completed check of the expected article body that did not find the target. A timeout, access denial, login page, or failed body selector is not evidence that a link is absent.
What should each result mean?
A simple true-or-false check hides whether the checker actually had enough evidence to answer. Use separate states for the observation and its interpretation:
| # | Preview | Product | Price | |
|---|---|---|---|---|
| 1 |
|
Quick Strategy Tips for Building Traffic and Back Links | $2.99 | Buy on Amazon |
As an Amazon Associate I earn from qualifying purchases.
- Verified at this time: The checker identified the expected article body and found the configured target within it.
- Link not found: The checker identified and fully inspected the expected body, but did not find the target.
- Unknown: Inspection was blocked or incomplete—for example, because of a timeout, access denial, login page, or body-selector failure.
- Missing response observed: The server returned a response such as 404 or 410. Record that response as observed; recheck before escalating. Repeated missing responses may support a “removal suspected” state, but do not establish why the publisher removed anything.
These are useful workflow states, not universal HTTP standards. Keep the observed transport result—such as an HTTP status—separate from the checker’s conclusion. A successful HTTP response can still deliver a login page rather than the article.
What evidence should a check retain?
A badge alone is difficult to audit or act on safely. Store the observations that explain how the result was reached:
#1 Best Overall
- Requested URL and final URL after redirects
- Check time
- Transport outcome and HTTP status, when available
- Whether the expected article body was identified
- Whether the configured body marker matched
- Whether the expected link was found
- If the result is unknown, the specific reason inspection could not be completed
Show the last verified observation alongside the latest attempt. That lets an operator distinguish “the link was previously present, but this attempt timed out” from “a complete inspection did not find it.”
How should a checker decide whether a link matches?
Inspect the article, not the whole page
A target domain elsewhere on a page may appear in navigation, comments, related links, or advertising. Identify the article body and search within that region. If the body cannot be identified reliably, return unknown rather than treating a page-wide search as a complete article check.
Compare parsed destinations
Resolve relative links against the final page URL, then compare parsed destinations rather than searching for a target as a substring. For example, a short text match can occur inside a different URL and does not by itself establish that the configured destination is present.
Free tools Windows power users keep installed
One-click scans. No signup required.
Set URL equivalence rules deliberately
Decide for each target whether trailing slashes, query parameters, and fragments affect equivalence. Do not strip all query parameters by default: some identify a distinct destination or are required to reach it. If a publisher uses a redirect wrapper, record it for separate review instead of automatically calling it a direct match.
What should happen when a result is uncertain?
Route unknown and link-not-found results to review; do not let either state automatically trigger a repost. Unknown means the check did not establish presence or absence. Link not found is a negative observation within the inspected body, but it still does not explain why the link is absent. A 404 or 410 is a server response worth recording and rechecking, not proof of a deliberate removal.
Finding a link also establishes only that the checker observed it in the inspected page at that time. It does not establish that the destination is indexed by search engines or that the link has any particular value.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Which cases should a checker be tested against?
Before connecting a classifier to live pages or publication actions, test fixtures that challenge assumptions a straightforward page can hide:
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →- A login page returned in place of an article
- A matching link in comments but not in the article body
- A misleading relative URL
- An article body rendered by JavaScript
- A complete inspection of the expected body with the link absent
- A missing response followed by a successful response on recheck
The right outcome depends on what the adapter actually inspected: some cases should remain unknown, while others may support a narrowly described mismatch or a complete negative finding. Passing a fixture shows how the checker handles that fixture; it does not prove that a live publisher’s current markup is supported. Keep fixture results separate from checks of current live pages.
What this design guidance does—and does not—establish
Hoyeon’s DEV Community article, “A link checker needs an unknown state, not just true or false,” presents this approach as an internal workflow design proposal. The source describes illustrative fixtures, not measured incident counts or a validation study. Its central distinction is practical: a failed observation should not be converted silently into negative evidence. The article also discloses that it was generated by an AI agent at the account owner’s request and had not received independent human editorial review, so its recommendations should be understood as a concrete design proposal rather than an established external standard.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




