Skip to content
Work Vultures

Web Performance ·

Your Website Looks Fast. Why Are Visitors Still Waiting After a Click?

Investigate a slow menu or filter by separating input delay, processing, and presentation, then compare controlled traces with field experience.

Developer reviewing source code on a desktop monitor
Illustrative photograph · Pexels

The page can load quickly and still feel unresponsive

A visitor opens a service page, reads the first screen, and taps the navigation menu. Nothing appears to happen. They tap again, and the menu suddenly opens and closes. The page might have displayed its main image quickly, yet the interaction still felt unreliable. That distinction matters when a website owner sees a respectable loading score and wonders why customers describe the site as slow.

Interaction to Next Paint, usually shortened to INP, provides a way to examine responsiveness during a visit. Google's web.dev guidance describes a good INP as two hundred milliseconds or less, assessed at the seventy-fifth percentile of page loads with mobile and desktop considered separately. That threshold is a useful reference, but a productive investigation begins with a specific interaction and an explanation of what the visitor expected to see.

Choose a journey that represents an actual decision

Start with a small set of tasks that matter to the website. For a digital agency, these could be opening the mobile menu, expanding a service question, selecting a project category, and submitting an inquiry. For a shop, add product options and basket updates. Testing every animation with equal attention can bury the action that blocks a customer. Assign an owner to each journey and define the visible result that signals success.

Write the test conditions before comparing measurements. Record the page, device class, browser, connection conditions, account state, and whether the page was already loaded. Note which optional integrations were active. A menu tested on an idle desktop after all background work has finished is a different situation from the same menu tapped on a busy phone immediately after arrival. Both can be informative when their conditions are explicit.

This article uses an illustrative service page with a mobile menu and project filter. It does not report measurements from Work Vultures or claim a conversion improvement. The scenario is a way to organize a repeatable investigation. A real evaluation would need traces or field observations from the actual implementation, collected with appropriate privacy controls and enough context to distinguish an isolated delay from a recurring problem.

Separate input delay, processing, and presentation

An interaction can wait before its handler starts, spend time running application work, and then wait for the updated interface to be presented. These stages suggest different questions. Was the browser occupied by unrelated work when the visitor tapped? Did the handler perform an expensive calculation? Did a large visual update make presentation costly? Changing the button's appearance cannot resolve every kind of delay in that sequence.

In the example, opening a menu should require very little application work. If a trace shows a long wait before the click handler begins, inspect work scheduled around the same time. A third-party widget, a large initial rendering task, or repeated script activity could be relevant. Treat each as a hypothesis to verify. The fact that a script is large or externally supplied does not establish that it caused the observed delay.

For the project filter, processing may be the more useful starting point. A handler might rebuild a large set of cards for every selection. Compare the intended update with the work actually performed. The review should explain why each part is necessary for that interaction. Moving work to a different file or renaming a function does not reduce its cost unless the browser performs less work or schedules it more appropriately.

Use a numerical example without turning it into a benchmark

Suppose a fictional trace divides one slow interaction into one hundred and forty milliseconds of waiting, eighty milliseconds of processing, and one hundred milliseconds before presentation. The total is three hundred and twenty milliseconds. These invented figures show why optimizing a short handler might have limited effect. Removing twenty milliseconds from processing still leaves a much larger delay elsewhere in the interaction.

Now imagine that the team changes unrelated startup work and observes a shorter waiting stage in a comparable local test. That is a promising result, not yet evidence about all visitors. Repeat the same interaction under the documented conditions and look for the same causal pattern. Check whether the change simply moved the delay to the next action. A smoother menu is less useful if the project filter now becomes unresponsive immediately afterward.

Keep the original and revised traces with the change description. A later developer should be able to understand what was measured and why the team believed the change helped. Avoid publishing the illustrative numbers as a before-and-after result. Actual claims need the real sample, measurement method, environment, and uncertainty. A clear record of a limited experiment is more credible than a large percentage without an explanation.

Reduce work at the point where it matters

The web.dev optimization guidance discusses investigating JavaScript work and rendering as contributors to poor responsiveness. Apply that advice to the interaction you have identified. A service page might defer a nonessential widget until after the initial task. A filter might update only the cards whose state changes. A long computation might need a different execution approach. Select the intervention that corresponds to the evidence in the trace.

Also inspect how often the application performs the work. A search field that reacts to every keystroke may repeat an expensive operation faster than the visitor can use its result. A resize handler may run repeatedly while the interface settles. Determine which updates the customer actually needs and when. Reducing unnecessary repetition can simplify the implementation while making its behavior easier to test and explain.

Preserve useful feedback while investigating the underlying operation. If a request genuinely takes time, show the action's state and prevent accidental duplicate submissions where appropriate. Feedback should describe what has happened accurately. A success message displayed before the server accepts an inquiry creates a different reliability problem. Responsiveness and correctness need to be reviewed together because visitors use visual feedback to decide whether to wait, retry, or leave.

Compare laboratory tests with field experience

A controlled local test can reveal a specific bottleneck and help compare a code change. Field information can show whether the problem affects visitors under a wider range of conditions. Neither view answers every question. A synthetic test may miss a third-party integration used only by some visitors. A field summary may indicate a problem without enough detail to identify the function that caused it.

Segment evidence where the distinction can change the decision. Mobile and desktop experiences can differ substantially. A service detail page and a checkout page may have different workloads. New visitors may encounter initial work that returning visitors avoid. Do not split a small sample into so many groups that every observation becomes unstable. Explain which groups have enough information to support a conclusion and which remain uncertain.

When collecting interaction diagnostics, avoid recording the content of customer messages or payment fields merely to investigate speed. Identify events and page states at a level sufficient for the performance question. Coordinate the measurement design with the site's information handling practices. A performance investigation should help the team understand delays without becoming an unnecessary collection of personal data.

Keep the interaction usable during optimization

Review the same journey with a keyboard and on a narrow screen. A change that speeds up a menu while breaking focus movement has not improved the whole experience. Check that the active state remains understandable, the close control is reachable, and the destination still works. Performance work frequently changes when elements are created or updated, so it can affect interaction behavior beyond timing.

Include slow and failed network responses in the review when the action depends on a service. The browser may acknowledge a click quickly while the requested result arrives much later. INP and task completion time describe different parts of that experience. Record both where they matter. A team should not declare an inquiry form successful solely because its button responds promptly while the submission never reaches the intended destination.

After deployment, watch the journeys the change was intended to improve. Establish a comparison period appropriate to traffic and account for other changes released at the same time. If the available information is too limited to attribute an outcome, say so. The absence of a clear field result does not make the local trace worthless; it defines the practical limit of the conclusion that can be drawn from it.

Make responsiveness a maintainable product decision

Add the important journeys to the release review rather than treating responsiveness as an occasional cleanup task. Record the condition that triggered the investigation, the evidence gathered, the intervention, and the remaining questions. Keep a small set of representative checks that another developer can reproduce. Their value lies in catching a meaningful regression, not in generating a large report for every cosmetic change.

Ask whether a new integration earns its cost in the journey where it runs. A tool used only after an inquiry should not automatically add work to every first interaction on the home page. Make that decision with the people responsible for the feature and the customer experience. This connects performance to product scope, where many of the most effective improvements can be made before code is added.

Visitors experience a website as a sequence of decisions and responses. A loading score captures only part of that sequence. By starting with a real action, separating the stages of delay, and preserving comparable evidence, a team can make a defensible improvement. The result is a clearer understanding of what the site asks the browser to do and whether that work serves the person trying to use it.

Methodology, evidence & limitations

Journey-based performance investigation with an invented 320-millisecond trace. Numerical examples explain the method and are not measurements of Work Vultures, a customer website, or a published conversion experiment.

Prepared 27 October 2026 as an editorial synthesis and original worked analysis. No original customer interviews, site visits, specialist certification, or independently measured commercial result is claimed. Technical guidance and service behavior can change; consult the linked publication before applying a specific requirement.

Primary references

Suggest a correction with the article title, disputed statement, and supporting source.

Continue exploring

All articles →