

The Broken tab, with the "What's happening" column explaining each result in plain language — not just a bare status code.
Onsite Link Verdict checks the links and images in your posts, pages and comments and tells you which ones are dead.
This distinction is the whole reason this plugin exists.
Plenty of servers refuse automated requests. Amazon answers 503 to bots. X answers 403. LinkedIn answers 999. A site behind a firewall throws a challenge page. None of those links are broken — they open perfectly well in your browser. Report them as broken and you hand the user a list of two hundred problems, of which one hundred and ninety are not problems, and they stop trusting the list.
So Onsite Link Verdict only ever calls a link broken when it has proof:
404 or 410. And even then we ask a second time, with a different method, before accusing the link: there are servers that answer 404 to one kind of request and 200 to another, and a wrong accusation here is the most expensive kind.Everything else goes to a separate “Unverifiable” tab, with a plain-language note about what happened. If a server answered us — with 403, 503, a rate limit, a challenge page, anything that is not 404 or 410 — it answered, and that is not proof the page died. Your list of real problems stays short, and short means believable.
The plugin ships translated into Portuguese (Portugal), Portuguese (Brazil), Spanish, French, German, Italian and Dutch, as well as English. That includes the explanations, not just the buttons — which is the point: 403 reads the same in every language, and “the server is refusing automated checks, it is not saying the page is gone” does not.
If your language is missing, the translation template in /languages is generated from the current version and covers every text in the plugin.
There is no account to create, no cloud service and no credit card. Your posts, pages and comments are not uploaded anywhere — see “External services” below for everything that does leave your site, and why.
Checking links is real work for the same server that answers your readers. Onsite Link Verdict is built around that:
HEAD requests first, falling back to GET only when a verdict depends on it. At most 2 KB of any response body is ever read.The link scanner runs locally, on your own site’s cron, on the same server that answers your readers. There is no cloud service behind the plugin, no API key and no account to create: the results live in a table in your own database, and your content is never uploaded anywhere.
Some things do go out of your site — the servers hosting the links being checked, and Freemius, which runs our licensing and checkout. They are set out one by one, with the domains and with what you can decline, under “External services” below.
What that buys you:
The privacy note for the plugin is at https://onsitetools.dev/privacy/ and says the same thing in more detail.
Once the first sweep is done it keeps monitoring. Every link is checked again after a week, and one that is failing after a day, so a page that dies next month turns up next month — you do not have to remember to run an audit.
404 — and instead of telling you the page no longer exists, Onsite Link Verdict tells you it exists and is not published, and which status it is inOnsite Link Verdict finds broken links and tells you exactly which post, page or comment each one is in. It does not edit your content: you fix each link in the editor, where you can see it in context.
That is deliberate. Where a link should point is a judgement about your content, and the editor is where you can see the sentence it sits in.
Replacing one URL across an entire site in a single step is the obvious next thing to want. That is what Pro is for, below.
Everything above is free, and stays free. Pro does the mechanical part, for people with more than a handful of links to fix:
Pro is an annual licence, from 29 EUR a year plus VAT, for one site. It is bought from https://onsitetools.dev/onsite-link-verdict/ and there is a link inside the plugin. The free version never asks you for an email address of its own: the only place an email is shared is the activation opt-in described above, which you can decline.
This plugin contacts two external destinations: the websites you link to, and Freemius, which
handles our licensing and payments. Here is what goes to each, and when.
Checking whether a link is alive means requesting it from the server that hosts it. That server
receives the address being checked and, in the User-Agent header that identifies the checker,
your site’s address and the plugin’s version. This happens for every link in your content, on the
plugin’s own schedule. It is what the plugin is for, and it cannot be switched off without
switching off the checking.
Links to your own site are requested the same way, over HTTP, from your own server. When one of
those answers 404 or 410, the plugin then looks the address up in your own database, so it can
tell you the page exists but is a draft, private or pending, instead of reporting it gone.
Freemius Inc. runs our licensing, updates and checkout. It is contacted in four situations, and
only the first is optional.
On activation, if you opt in. WordPress shows you a screen asking whether to share information
about your site. There are four groups, and you can clear all but the first:
You can decline the whole screen, and the plugin works exactly the same — declining is handled
entirely inside your own site and sends nothing.
On a schedule, if you opted in. Your site then checks in with Freemius periodically to see
whether a licence has been bought or changed. This happens in the free version too, and needs no
licence key.
When you open the “Change Plan” screen inside WordPress. That screen loads the current prices
from Freemius when you open it, whether or not you opted in.
When you deactivate the plugin. WordPress shows a short form asking why; if you fill it in, the
reason goes to Freemius. Closing it sends nothing.
And, in the paid add-on only, your licence key is validated with the same service.
Domains contacted: api.freemius.com, wp.freemius.com, checkout.freemius.com.
Freemius terms: https://freemius.com/terms/ · Freemius privacy: https://freemius.com/privacy/
No other destination is contacted. Your posts, pages and comments are not uploaded anywhere, and
the result of every check is stored in a table in your own database.