Cognitive load is the amount of mental effort a person must expend to use an interface. Working memory is limited, and every element competing for attention, every decision required, and every piece of information that must be held in mind while completing a task consumes part of that limited capacity. When the demand exceeds what is available, people slow down, make errors, choose the safest option, or abandon the task entirely.
Researchers distinguish three types. Intrinsic load is inherent to the task itself: booking a multi-city flight is genuinely more complex than buying a book, and no interface can make it trivial. Extraneous load is created by the interface and is entirely avoidable: inconsistent terminology, unclear labels, unnecessary choices, cluttered layouts, and information presented in a form that requires mental translation. Germane load is the effort spent building understanding, which is productive when a person is learning a tool they will use repeatedly. Good design minimizes extraneous load, respects intrinsic load, and supports germane load where learning is the point.
In commercial contexts the practical consequence is that clarity outperforms cleverness with striking consistency. A product page that states plainly what the item is, what it costs including delivery, when it will arrive, and how to return it usually outperforms one with sophisticated interactive features that require exploration. Interface elements that demand interpretation, such as icons without labels, ambiguous progress indicators, and non-standard controls, transfer effort from the designer to the user, and users respond by disengaging.
Cognitive load also explains why choice architecture matters so much. Presenting a visitor with twenty broadly similar options requires them to construct comparison criteria on the spot, which is demanding enough that many will postpone the decision indefinitely. Reducing options, grouping them meaningfully, recommending a default, and providing a comparison structure all reduce the effort required to decide. The same logic applies to pricing pages, product configurators, plan selectors, and any interface whose purpose is to help someone choose.
Reducing load is largely a matter of removing rather than explaining. Progressive disclosure defers complexity until it is needed. Sensible defaults reduce the number of decisions. Consistent patterns let people reuse what they already know rather than learning something new on every page. Chunking breaks long processes into comprehensible steps. Plain language costs nothing and eliminates the interpretation step entirely. Inline validation removes the need to remember what went wrong on a previous screen. Adding an explanatory tooltip to a confusing element is nearly always inferior to making the element unconfusing.
Load also accumulates across a session rather than resetting at each page, which is why flows that are individually acceptable can be collectively exhausting. A visitor who has already made a series of decisions arrives at the final step with less capacity than they had at the start, which is exactly why checkout abandonment concentrates at the last stage even when that stage is no more complex than earlier ones. The design implication is to sequence effort deliberately, placing the most demanding decisions where attention is highest and reducing demands as the flow progresses, and to avoid introducing new information late in a process when the person has already committed. Reviewing a journey end to end, rather than screen by screen, is the only way this accumulated cost becomes visible.
Because load accumulates from many small decisions made by different people over time, it is difficult to control through review of individual changes and much easier to control through shared standards. A well-maintained design system reduces extraneous load structurally, by making consistent patterns the default and inconsistent ones require effort. In product design engagements this is usually where the durable gains come from, while a UX audit is what surfaces the accumulated load in existing flows and identifies which parts of it are intrinsic to the task and which have been added by the interface.