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.
Nothing leaves Atlassian
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.
| What changed | What the reader gets | Status | Anyone 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.
Follow the rollback procedure before you touch the queue.
this link is never edited. It points at an anchor on the other page.
the anchor finds this heading, so the reader lands on the procedure
Follow the rollback procedure before you touch the queue.
this link is never edited. It points at an anchor on the other page.
the anchor now matches nothing, so the reader lands at the top of a long runbook and scrolls
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
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
How it works
Three steps
Nothing to configure and no service to connect.
-
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 -
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 -
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
- 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.