Broken Link Checker for Confluence

The broken links
nobody reports.

Confluence tells you when a page is gone. It says nothing when a heading is renamed and every deep link to it quietly stops working. This finds those.

Runs on Atlassian

Nothing leaves Atlassian

Read the Checkout Service Runbook end to end. It is the one document
Comment ···
This link is fine

It points at “Checkout Service Runbook”, which still exists.

Checked just now with your permissions.

Every link checker asks whether the page loads. The ones that break in Confluence load fine.

Anatomy of a deep link

Confluence finds the page by its id alone. The anchor is built from a heading’s text, and nothing updates it.

/wiki/spaces/BLCTEST
space key
Ignored. Goes stale when the page moves.
/pages/3113153
page id
How Confluence finds the page. Survives renames and moves.
/Checkout+Service+Runbook
page title
Ignored, and corrected in the address bar.
#Rollback-procedure
the anchor
The heading’s own words, spaces turned into hyphens.
What it detects
What changedWhat the reader getsStatusAnyone report it?
What changedPage deleted What the reader getsA “page not found” screen Status200 Anyone report it?Yes: readers hit an error
What changedPage renamed or moved What the reader getsThe page. Links that carry its id still find it Status200 Anyone report it?Nothing to report
What changedSpace archived What the reader getsThe page, as normal, with no banner Status200 Anyone report it?Never: no error shown
What changedA heading renamed What the reader getsThe right page, at the top instead of the section Status200 Anyone report it?Never: no error shown

Confluence has no built-in broken-link report, and the last two rows never announce themselves. So they accumulate, quietly, for years.

A worked example

Two pages in a demo Confluence space. Someone edits a heading on the second one. Nothing else changes — not the link, not the URL, not the status code.

BeforeNobody has touched anything yet.
Release Process Handbook - Platform Engineering - Confluence
Platform Engineering / Release Process Handbook
Release Process Handbook

Follow the rollback procedure before you touch the queue.

/wiki/spaces/BLCTEST/pages/3113153/Checkout+Service+Runbook#Rollback-procedure

this link is never edited. It points at an anchor on the other page.

Checkout Service Runbook - Platform Engineering - Confluence
Platform Engineering / Checkout Service Runbook
Rollback procedure#Rollback-procedure

the anchor finds this heading, so the reader lands on the procedure

AfterOne person renames one heading.
Release Process Handbook - Platform Engineering - Confluence
Platform Engineering / Release Process Handbook
Release Process Handbook

Follow the rollback procedure before you touch the queue.

/wiki/spaces/BLCTEST/pages/3113153/Checkout+Service+Runbook#Rollback-procedure

this link is never edited. It points at an anchor on the other page.

Checkout Service Runbook - Platform Engineering - Confluence
Platform Engineering / Checkout Service Runbook
Rollback steps#Rollback-stepsRenamed here

the anchor now matches nothing, so the reader lands at the top of a long runbook and scrolls

Both pages still return 200

Space report

Sorted so the silent ones come first

Problems a reader never sees are the ones nobody will ever report to you. The report puts them at the top.

  • Silent problems first
  • Grouped by target, not by page
  • What to do, for every problem
Broken ones say where
4 problems affect 9 links on 1 page in this space.
All4No error shown3Readers hit an error1
Sorted so the problems nobody will ever report to you come first.
Cause
Cause
Fix
Fix
By problemBy page
Showing 1–4 of 4 problems
CauseWhat is brokenLinksWhat to do
In the trash
“Billing Migration Cutover Notes” is in the trash
4 links
Restore the page — fixes all 4
Section renamed
Section “Rollback procedure” was renamed
2 links
Repoint 2 links to #Rollback-steps
Archived space
Space BLCARCH is archived
1 link
Unarchive the space
Linked by name
No page named “Billing Migration Cutover Notes”
2 links
Relink 2 links by page, not name

A problem counts as silent when even one of its links is hidden, for example inside a collapsed expand. That’s why “In the trash” leads here.

Under the page title

Every page says where it stands

The links item sits under the page title. It says Check links until the first check, then shows the last result: Links: 2 problems, or Links: none broken. Open it, and it checks the page again with your permissions.

  • Checked again each time you open it
  • Split by what a reader would see
  • For a renamed section, the link to use instead
  • Checked as you
Links on this page
Checked just now. Scanned with your permissions. External links aren’t checked.
2 problems affect 2 links on this page.
Sorted so the problems nobody will ever report to you come first.
No error shown to readers · 1
Section renamed
Section “Draining connections” was renamed
Repoint 1 link to #Draining-active-connections
Readers hit an error · 1
Deleted for good
“Payment Gateway Postmortem” was permanently deleted
Repoint 1 link somewhere else
Edit pageSee this space’s link report

How it works

Three steps

Nothing to configure and no service to connect.

  1. 01

    Install it

    A site admin installs it from the Atlassian Marketplace and accepts its permissions. It runs on Atlassian’s own infrastructure, so there is no Zirid server for your content to travel to.

    free · no account · no key to paste
  2. 02

    Check a page

    Open the links item under the page title. It checks that page and lists what is broken, with the problems nobody will report to you first.

    or select text and choose ••• → Check links
  3. 03

    Check the whole space

    Open Broken Link Checker under Space apps in the space sidebar. One table for the whole space, grouped by the broken target, with the problems nobody will report to you at the top.

    restore one page, fix every link to it

Limits

What it doesn’t do

Confluence Cloud only
External links
Not checked. It’s an internal link checker that understands anchors, not a crawler.
Automatic repair
No. It tells you the fix for each problem and links you to the editor. It never changes your pages.
Scheduled scans
No. The space report runs when you start it, and only then.
Whole-site scans
No. The space report checks one space at a time.
Other products
Confluence Cloud only. Not Server, not Data Center, not Jira.

Questions

Before you install

Can’t find your question? Email support@zirid.dev. You will get a real answer, usually within two business days.

Why does it ask for “Create and update pages”?

To store a small scan summary on each page it checks: a few counts, the page version, the date, and the label shown under the title. Confluence has no narrower permission that allows it. The app never edits page content. A check creates no version, adds nothing to version history and doesn’t move the “Updated” date. Open any page’s history to confirm.

Does anything leave Atlassian?

No. It’s a Forge app that makes no outbound network requests, so there is no Zirid server, no analytics and no tracking. Your content never leaves Atlassian. That’s also why it doesn’t check links to outside websites.

Can it read pages I can’t?

No. Every check runs with the permissions of the person who starts it. A page you can’t open is reported as not checked, never as broken. So a space report covers only the pages the person running it can read.

What does it count as broken?

Links to pages in the trash or deleted for good, to archived pages and spaces, to files that are gone, and to sections whose heading was renamed or removed. It also flags links that find a page by its title when no page has that title any more. It reads text links, smart links, embeds, images and files, and page macros such as Include Page. Links inside collapsed expands count too.

Who can install it?

A site admin, from the Atlassian Marketplace. They accept its permissions at that point, and anyone else can request it there. Once it’s installed, anyone who can open a page can check it, with their own permissions.

Where do I find it once it’s installed?

Under the page title, as the links item. It says Check links until the first check. The same check is in the page’s ••• menu, as Check links on this page. To check just a few links, select text and choose ••• → Check links. For a whole space, open Broken Link Checker under Space apps in the space sidebar.

Does it slow Confluence down?

Opening a page doesn’t run the app. The label under the title is read from the stored summary, and a check runs only when someone asks for one. A space report takes longer on a bigger space, but results appear as pages are checked, so you can start fixing straight away.

What’s the catch?

The only one is the “Create and update pages” permission, and the first question explains it. It’s free on the Atlassian Marketplace, with no account to create, no analytics and no tracking.

Everything else

Trash or purged
Told apart, because only one of the two is recoverable
Archived spaces
Flagged, rather than quietly skipped
Moved pages
Links carrying a page id are reported healthy, because they are
Anchor rules
Matches Confluence’s own anchor rules, for headings and Anchor macros, duplicates included
Link text
Quoted in the report, so you can find it in the editor
Hidden links
Links inside a collapsed expand are marked, because no reader scrolling past will see them
Files
Matched by file id, so a re-upload with the same name doesn’t hide a broken reference
Permissions
Read with yours. A page you can’t open is reported as not checked, never as broken.

Install

Find them before the next incident does.

Free on the Atlassian Marketplace. It checks with your permissions and tells you what broke and how to fix it.

Runs on Atlassian

Nothing leaves Atlassian