Clean up your Jira instance

Still need help?

The Atlassian Community is here for you.

Ask the community

Support for Server licenses ended on February 15, 2024. Discover your options.

The purpose of this guide is to outline the ways you can declutter and reduce the overall size of your Jira instance. 

There is no single approach or magic button that will work in all situations so on this page, we'll show a range of techniques you can use to clean up your site. This will no doubt be a team effort, and you'll need to enlist the help of people in your organization. See Prepare for the cleanup for more about determining business rules and getting the right people involved.  

This functionality is available with a Data Center license.

Process overview

Your process here will be iterative and will look the following:


BASIC CLEANUP  → 
(quarterly)                                

ADVANCED CLEANUP  →  
(annual)                                        

AUTOMATION 
and
OPTIMIZATION 
(after completing each activity)

Looks heavy? If you've never run any cleanup activities, the initial ones are likely to be so. This guide is to give you direction as to where to look for things worth reviewing and help select tools and ways with which you can identify the entities that are redundant for your instance.

Looking for some inspiration to start?

Watch this video to get more insights into a real-life cleanup project.

tip/resting Created with Sketch.
  • Have you backed up your data? It's a good idea to do that before you start. See how to back up data.
  • Make changes in your test environment first before applying them in production.

Basic mandatory cleanup process

Recommended frequency: once per quarter

We are deprecating the Clean up functionality in Jira Data Center.

The cleanup features, such as project and issue archiving, are now integrated into the preinstalled Instance Optimizer app, which provides more efficient and automated ways to optimize your instance. More about Instance optimizer

 Step 1: Archive old projects and issues

If your Jira is several years old, it likely contains a couple dozen projects that are complete, retired, or not completed. There also might be projects that have been created but have no issues at all, or where the issues haven’t been updated for a long time. 

Such projects and issues clutter the system, causing users to view irrelevant or outdated information in their JQL queries, and they may also significantly slow down reindexing processes.

How do you identify what to clean up?

You can archive old projects and optimize your instance in one place by using the Instance optimizer app. For details on how to identify and remove projects and issues you no longer need, refer to the following guides:

Step 2: Clean up custom fields

Having too many or incorrectly configured custom fields is one of the largest performance killers for most Jira instances. Some custom fields can take up a lot of the indexing time, causing indexing time to peak. It’s a good idea to audit your custom fields and see what actions you can take. 

How do you identify what to clean up?

Use Instance optimizer to scan your custom fields and identify the ones that should be deleted or reconfigured. 

You can also run the following SQL queries to look for unused custom fields and then manually delete them from the custom field list.

SQL to find unused fields

Replace the 12340 in the examples below with your field ID.


Dashboard gadgets


SELECT *
FROM
    gadgetuserpreference
INNER JOIN portletconfiguration ON portletconfiguration.id = gadgetuserpreference.portletconfiguration
INNER JOIN portalpage ON portalpage.id = portletconfiguration.portalpage
WHERE
    userprefvalue LIKE '%12340'


Filters


select * from searchrequest s where s.reqcontent like '%MyCFName%' or s.reqcontent like '%cf[12340]%'


Screens


SELECT cf.id, fsli.fieldidentifier, cf.cfname, fs.name, fst.name FROM fieldscreenlayoutitem fsli
INNER JOIN fieldscreentab fst 
ON fsli.fieldscreentab = fst.id
INNER JOIN fieldscreen fs
ON fst.fieldscreen = fs.id
INNER JOIN customfield cf
ON fsli.fieldidentifier = 'customfield_' || cf.id::text
WHERE fsli.fieldidentifier LIKE '%customfield_12340%'


Workflows

select * from jiraworkflows wf where wf.descriptor like '%customfield_12340%';

Step 3: Remove inactive users

Whenever someone leaves your organization, it’s good practice to disable their user account. This keeps your instance safe, keeps people from accidentally assigning tickets to an account where nobody is watching, and of course returns an all-important user license to you.

How do you identify what to clean up?

To get a list of users showing their last login timestamp from the database in order to audit application usage, see Last login date. If you use Atlassian Crowd, this app can also help you monitor licence usage. For details, see Monitoring license usage.

When you’re on it, review your groups and permission schemes. See if the schemes don’t overlap, if all the groups you have are unique and necessary. Decide which groups need global permissions and which should be granted only project permissions. Understand what function each group has and review them individually.

Need app assistance?

If you require an app to help, you can employ one of the above to give you a helping hand identifying and, some of them, getting rid of inactive users

How should you go about the cleanup?

Delete inactive users manually or using an app. 

How do you automate?

Run regular queries for inactive users and monitor group creation.

  All good? Now you can complete the advanced tasks

Last modified on Nov 13, 2025

Was this helpful?

Yes
No
Provide feedback about this article

In this section

Powered by Confluence and Scroll Viewport.