- It is querying too many objects
- It is dealing with intricate lookups
- It has too many fields
Here are few more items you can look into to improve Salesforce report performance:
- If you can’t view a report and want to edit it to avoid the time out, you can append ?edit=1 to the end of report URL to get to edit mode, where you can adjust the criteria.
- When filtering, use the equals or not equal to operators instead of contains or does not contain.
- Use time frame filters to narrow your report’s date range if possible. For example, use Last 30 Days instead of Current FY.
To determine the improved performance, it's a trial and error process. Each user might have different report performance results as it also depends on many factors such as their role.
If the report results in a time out error message, then your system administrator can ask Salesforce Support to possibly "Index" a report filter on the database tables. This does not always resolve the issue as the above solution is the best method.
If your reports sometimes get time out error and sometimes is running well, this may cause by caching mechanism applied by Salesforce backend. After implement all suggestion above, if still get the same issue, you can log a ticket to Salesforce for the best advise.