How to delete old page versions in Confluence Cloud
By Kayabyte · Updated 1 November 2026
Short answer: Confluence Cloud has no bulk delete for page versions and no setting that keeps only the newest N versions; both are open requests (CONFCLOUD-46541 and CONFCLOUD-27701, both Gathering Interest when checked on 1 November 2026). You can delete one page version at a time from the page history, delete old attachment versions from a page’s attachment list, or script the REST API. Pruner: Version History Cleanup for Confluence, in Atlassian Marketplace review and not yet available, applies a keep-the-newest-N policy to pages and attachments, with a preview.
A page that has been edited for years can have hundreds of versions, and every version of an attachment is a full copy of the file. This guide covers what Confluence Cloud can do on its own, where each option stops, and what a retention policy needs.
Option 1: delete versions one by one in the page history
- Open the page and open its page history (the version list).
- Select Delete next to a version you no longer need and confirm.
Things to know:
- If you don’t see Delete, you may not have the permission for it in that space; ask a space administrator.
- Deleted versions don’t go to the trash and can’t be restored (Atlassian: page history).
- Version numbers can change after a delete, so don’t rely on them staying the same.
- It is one version of one page per click. CONFCLOUD-46541 is a request from someone with pages that have hundreds of versions, for exactly that reason.
Option 2: delete old attachment versions
Attachments are usually where the storage goes, because every upload of a changed file adds a version.
- Open the page, open Show details from the floating toolbar and select Attachments.
- Expand the attachment to list its versions.
- Select Delete next to a version and confirm.
Deleting a specific version needs the Space Administrator permission; deleting a whole file only needs Delete Attachment. A deleted version can’t be restored (Atlassian: manage uploaded files).
Again this is one attachment on one page at a time.
Option 3: script the REST API
Confluence Cloud has a REST call that deletes one version of a page: DELETE /wiki/rest/api/content/{id}/version/{versionNumber} (Confluence Cloud REST API, content versions). A script that cleans a space would:
- List the pages in the space (
GET /wiki/api/v2/spaces/{id}/pages) and follow the pagination links. - For each page, list its versions (
GET /wiki/api/v2/pages/{id}/versions). - Decide which versions to delete, for example everything except the newest 10 that is also older than 90 days.
- Delete them with the call above. Because version numbers can change after a delete, read the list again between calls, or always delete the oldest.
- Do the same for attachment versions.
Atlassian has a KB article for the attachment side. It is provided as-is without support, and it deletes every version of the attachment, not only the old ones (Atlassian KB: delete attachments by date).
Where a script stops:
- No preview. Deleted versions can’t be restored, so you want a dry run that lists what would go and how much space it frees before you delete anything.
- Permissions. Pages restricted to named people only show up if the account running the script can see them.
- Rate limits and size. A big site takes many calls; the script needs paging, retries and a way to resume.
- It runs once. Versions pile up again, so someone has to run it again, or host it somewhere and keep it working.
What a retention policy needs
Whatever you use, decide these first:
- How many versions to keep for each page and each attachment. The newest ones should never be deleted.
- A minimum age, so versions from this week stay even if the page has more than N.
- Which spaces are in scope. Legal or policy spaces may need their full history.
- A preview with counts and storage before the first delete, and a generous first policy (for example keep 20 versions older than 180 days) that you tighten later.
- Whether it repeats. A one-off clean-up or a nightly one.
Pruner: Version History Cleanup for Confluence
Pruner is the app I make for this. It is a retention policy for Confluence Cloud page and attachment versions.
- Keep the newest N versions of each page and attachment, optionally delete only versions older than a set number of days, and pick the spaces (or leave it empty for every space).
- Preview shows how many old page versions and attachment versions the policy would delete, how much storage the attachment versions use, and the pages with the most old versions. Nothing is deleted at that step.
- A manual clean-up is confirmed by a Confluence admin. An optional nightly clean-up is off by default.
- The current version and the page content are never changed. Blog posts, comments and whole pages aren’t touched.
- Pages restricted to named people are not visible to apps, so the nightly clean-up skips them; a manual clean-up run by an admin who can see them includes them.
- It runs on Atlassian Forge and makes no calls outside Atlassian.
Deleted versions can’t be restored, so use the preview first. Page text versions are small; the storage figure in the preview is the attachment versions. Confluence updates its own storage figure on its own schedule, usually within a few hours.
Pruner is in Atlassian Marketplace review and not yet available to install. I’ll update this guide when it is.
FAQ
Can Confluence Cloud delete old page versions in bulk? No. There is no bulk delete and no setting to keep only the newest versions; both are open requests (CONFCLOUD-46541 and CONFCLOUD-27701). You can delete versions one at a time, or script the REST API.
Can I restore a deleted page version? No. Deleted versions don’t go to the trash and can’t be restored. Deleted attachment versions can’t be restored either.
Who can delete an old attachment version? Someone with the Space Administrator permission. Deleting a whole file needs Delete Attachment.
Why did the version numbers change after I deleted versions? Version numbers can change after a delete. The content of each remaining version is unchanged.
Does deleting versions free storage straight away? Not always. Atlassian says the storage figure is updated only every 4 hours.
Confluence and Atlassian are trademarks of Atlassian. Kayabyte is an independent developer and is not affiliated with or endorsed by Atlassian.
More guides
- Apps to make a Confluence group watch a space or page, compared
- How to make a Confluence group watch a space or page
- Onboarding in Confluence: make new hires watch the right spaces automatically
- Confluence storage almost full? What counts and how to free it
- Confluence watching but no email? 5 things to check
- How to count business days between two dates in Jira
- How to see what a Jira epic costs from worklogs
- Make a Jira field read-only after approval or when closed
- How to track project cost and budgets in Jira from worklogs
- How to see project cost from Tempo worklogs in Jira
- How to set a WIP limit per person in Jira
- Add a group as request participants in Jira Service Management
- CC a whole team on every Jira Service Management request
- Group request participants apps for Jira Service Management compared
- JSM organizations vs request participants: which to use
- How to add public holidays to a JSM SLA calendar
- Kanban WIP limit per person in Jira: beyond column limits