Link Health

One dead page, one fix.
Not forty-seven broken links.

On-demand link scanning for Confluence Cloud. It resolves internal page references, then groups the results by what's actually broken โ€” so a page everyone linked to is one job, named at the top of the queue, not a row you meet again and again. Read-only, with the minimum scopes โ€” and nothing leaves Atlassian: external links are reported as skipped, not silently marked healthy.

๐ŸŸข Built & tested   ๐Ÿ”ฌ Verified on a dev site   โœ… Privacy & Security approved   โณ Submitted for public listing โ€” awaiting Atlassian's final approval
Get early accessSee how it works
Link Health ยท Fix queue Scan now โŸณ Last scan ยท 7 pages ยท 6 broken ยท 0 need a look External link checks are off โ€” only internal links were verified. Attachment links were not checked in this version. 8 links skipped (external links, anchors, mailto:, links into other spaces, and links the app could not confirm). Fix these first โ€” 1 link broken on more than one page ::Onboarding Checklist 2024 โ€” broken on 3 pages STATUS PAGE LINK ON PAGE Missing page Engineering Handbook ::Onboarding Checklist 2024 1 Missing page Getting Started (Link Health demo) ::Old Roadmap (Link Health demo) 1 Missing page Incident Response ::Postmortem Template 1 Missing page Release Process ::Deploy Runbook v1 1 Missing page Release Process ::Onboarding Checklist 2024 1 Missing page Team Onboarding ::Onboarding Checklist 2024 1

Illustration โ€” a drawing, not a screenshot. It redraws the result of a real scan: the deployed app, running on our Confluence development site against a seeded 7-page demo space with external link checks off, reported 7 pages ยท 6 broken ยท 0 need a look and led with the banner โ€œFix these first โ€” 1 link broken on more than one page ยท ::Onboarding Checklist 2024 โ€” broken on 3 pages.โ€ Six red rows, four dead targets โ€” one of them is half the queue on its own. The skipped-links note is drawn in the wording of the 2026-09-24 build; the count, 8 links skipped, is the one the deployed app reported. Reproduce it with scripts/seed-showcase.js. Captured screenshots go up with the Marketplace listing.

Why it's different

Confluence has no built-in way to find broken links across a whole space. Link Health scans on demand and reports them โ€” without writing to your content or pulling it out of Atlassian.

Finds what's actually broken

Internal page references are resolved against the space's own page list, with a few bounded Confluence lookups to confirm misses โ€” nothing leaves Atlassian. Every issue carries a reason and a severity, so you fix real problems, not noise. External links are out of scope by design โ€” the App makes no requests outside Atlassian โ€” and are reported as skipped.

Read-only by design

It requests no Confluence write scope; its only storage is its own app storage. The per-space ignore list lives there and never writes back to your Confluence pages.

One dead page, one job

When the same missing page is referenced from many pages, a repeated-targets banner leads the screen with the target and its page count โ€” one fix instead of a chase. In our seeded demo scan, six red rows came down to four real problems โ€” and one of them was half the queue. Each affected page still gets its own row and a deep link into its editor.

Your data stays in Atlassian

Nothing leaves Atlassian: the app declares no external permissions and no remote hosts, which is why it is eligible for the Runs on Atlassian program. External links are reported as skipped, never checked.

How it works

  1. Open Link Health from a space (or the global page) and pick the space to scan.
  2. Hit Scan now: a background job crawls the space and resolves internal page references against the space's own page list, with a few bounded Confluence lookups to confirm misses. External links are not probed โ€” they are counted and reported as skipped.
  3. The banner comes first โ€” the dead targets and how many pages carry each one โ€” then the sortable queue underneath: severity lozenges, an On page count, and a deep link into the page editor for every row. Link Health also states plainly what it did not check.
Honest status: Link Health is real, tested software โ€” automated tests cover both the app and its scan engine (linkhealth-core), which carries zero runtime dependencies. It is deployed to Forge production with licensing enabled; the scan result described under the picture was observed running it end-to-end on our own Confluence Cloud development site. Its Atlassian Marketplace Privacy & Security review is approved, and the app has been submitted for public listing and is awaiting Atlassian's final listing approval โ€” until that lands, there is no public install link on this page. And the picture above is a drawing of that result, not a screenshot; real captures go up with the listing. Want to be an early tester on your own Confluence space? Email us for early access.

Pricing

One edition, billed per user per month through Atlassian's own cloud billing. Free for small teams; the per-user rate falls as you scale.

1โ€“10 users

Free. The whole app, no charge โ€” the fix queue, the grouping banner, the editor deep links.

Beyond the free tier

$0.60/user at 100, $0.30 at 250, $0.12 at 1,000, and $0.08/user from 2,500 to Unlimited.

Atlassian's standard model: once a site passes the free tier, the first tier's rate applies to every user up to 100; above that, each tier's rate applies to the users in that tier. The annual price is ten times the monthly. These are starting prices and may change โ€” the current ladder is always the one shown on the Atlassian Marketplace listing.