The Short Answer

Poor Salesforce performance is a cumulative symptom: a Record Page with 14 components, three automations running on the same Save, a query scanning a million records, and an integration pulling data during peak hours. The only way to improve without wasting budget is to measure by layers, identify the dominant layer, and address it—then measure again.

The Five Layers and What to Measure in Each

LayerTypical SymptomMeasurement ToolCommon Solution
Browser and NetworkSlowness only for some usersLightning Usage App per userOrganizational latency, browser version, VPN
Screen and ComponentsHigh EPT on a key record pageEPT per Page, Debug ModeReduce components, lazy loading, Tabs
AutomationSlow Save, Timeout on bulk updatesDebug Logs, Flow InterviewsConsolidate Flows, move to asynchronous
Data and QueriesReports crashing, List View stuckQuery Plan, Apex JobsSelective filtering, Index, archiving
IntegrationLoad peaks at regular hoursEvent Monitoring, API UsageBulk API, execution windows, Throttling

Working with Large Data Volumes

Above approximately one million records in an Object, the rules of the game change. Data Skew—for example, 200,000 Accounts linked to the same Owner or Parent—creates row locks and slows down any bulk update. The solution is to distribute ownership, not to add hardware, which is beyond your control anyway. Simultaneously, consider archiving: closed records from five years ago that no one reads make every scanning query more expensive.

Screens: Less is Faster

The average Record Page in an established organization accumulates components at a rate of two to three per year, because every stakeholder requests "just one more widget." Each Lightning component makes its own calls. Two actions yield the most significant gains: moving secondary components to separate Tabs that load only on click, and applying Component Visibility based on Record Type or role, so users only see what's relevant to them. Combining both reduces EPT by tens of percentages without code changes.

The Action Sequence That Works

Start with a week of measurement without changes to establish a reliable Baseline for five key screens and three key processes. Then, address the screens—this is the cheapest and fastest. In the third phase, consolidate automations by Object, and only in the fourth phase, touch queries and the data model. Integrations are handled concurrently if measurements show them to be the cause.

The logic behind this order is economic: the first layers are cheap and reversible, the later ones are expensive and require regression testing. More details on this topic can be found in Salesforce Health Check and Signs You Need a System Upgrade.

Common Risks and Preventive Actions

The biggest risk is optimization without a Baseline: You make ten changes, users still complain, and there's no way to know what helped. Measuring before and after every significant change is a prerequisite, not a luxury.

A second risk is addressing the loudest symptom. The screen most complained about isn't necessarily the slowest—sometimes it's just the one opened most often per day. A third risk is changing automations without test coverage: consolidating Flows is the action with the highest potential for silently breaking business logic.

How to Measure Success

Four metrics are sufficient: average EPT on the five key screens, Save time for the main business process, number of Timeout and Governor Limit failures per month, and the percentage of queries taking over five seconds. A fifth metric—supplementary and non-technical—is the number of performance complaints in the Service Desk, which should decrease with actual improvements.