eCommerce checkout: every field we remove and why
Every additional field in a checkout flow adds friction, and friction at checkout is one of the most directly measurable costs in eCommerce: abandonment rate climbs with every extra step or field a buyer has to fill in right when they're closest to completing a purchase. We run a default audit on every new checkout build, removing anything that isn't strictly necessary to complete and fulfill the order.
The audit itself is a simple exercise: for every field on the form, ask whether the order can actually be fulfilled without it. Fields that survive that test stay. Fields that exist because a template included them by default, or because someone once thought the data might be useful for marketing purposes, get cut or moved to an optional post-purchase step where they no longer stand between a buyer and a completed order.
The usual suspects: company name, fax, and a second phone field
Company name fields matter for B2B, not for most consumer checkouts. Fax number fields are a genuine holdover nobody has needed in years but that still show up in default checkout templates. A second "alternate phone" field almost never gets used and adds a decision point (do I fill this in or not?) for no real benefit.
We still find fax number fields in checkout templates often enough that it's become something of a running joke internally, and it's a useful illustration of how a default template setting, once copied from platform to platform over the years, can persist long after the original reason for including it disappeared. Nobody consciously decided a modern checkout needs a fax field. It's simply never been actively removed.
Account creation should never block guest checkout
Forcing account creation before checkout is one of the highest-impact abandonment causes we see, and it's entirely avoidable: offer guest checkout as the default path, with an easy, optional account creation step after the order completes, when the buyer has already committed and creating an account costs them nothing but a moment.
We've measured this specific change directly on client rebuilds, moving from forced account creation to a default guest path, and the completion rate improvement is consistently one of the largest single-change wins available in a checkout redesign, often outperforming the combined effect of every other field-level cut on the same form. It's a good reminder that friction near the very end of a funnel costs disproportionately more than the same friction earlier in the process, since a buyer that close to completing has the most to lose by giving up.
Address autocomplete removes friction without removing a field
Address autocomplete (via Google Places or a similar API) doesn't reduce the number of fields, but it dramatically reduces the typing and error-correction required to fill them in, which has much the same effect on completion rate as removing fields outright. It's one of the highest-return, lowest-effort additions to a checkout flow we build.
It also meaningfully reduces failed deliveries, since autocomplete pulls from a validated address database rather than trusting free-form typed input, which cuts down on the typos and incomplete addresses that otherwise cause shipping problems after the sale. That's a benefit that shows up on the fulfillment side of the business rather than the conversion dashboard, and it's often underweighted in the initial business case for adding autocomplete even though it's a real, ongoing cost saving.
What we keep, even though it adds a step
Not every field cut is automatically the right call. An order notes field, for a buyer to leave a delivery instruction or a gift message, adds a small amount of friction but consistently earns positive feedback from customers and reduces support tickets asking to add exactly that kind of instruction after the fact. We keep fields like this deliberately, as an exception to the general cutting bias, when the value they add clearly outweighs the small friction cost.
The distinction we draw isn't length or number of fields, it's whether a given field serves the buyer's own goal or exists for the seller's convenience. A delivery note serves the buyer directly, since it's their own instruction being fulfilled. A marketing opt-in checkbox bundled into the checkout flow serves the seller, and those get moved to a genuinely optional, clearly separated step rather than mixed into the required path to completing an order.
Not every field cut is automatically the right call.
How we test a redesigned checkout before shipping it
We run a redesigned checkout through a small usability test with real, unfamiliar participants before shipping it broadly, watching specifically for hesitation points, a moment where someone pauses, rereads a field, or seems unsure what's being asked. Those hesitation points are often invisible in an analytics dashboard until they've already cost real conversions, and catching them in a short usability session before launch is far cheaper than discovering them after the fact in a live abandonment report.
Mobile checkout gets its own separate pass
A checkout form that feels reasonable on desktop often has fields that are genuinely painful to fill in on a phone keyboard, a long promo code field with no autofill support, or a card number field that doesn't trigger the right numeric keyboard automatically. We run a dedicated mobile-specific review of every checkout build, since mobile now accounts for the majority of traffic on most eCommerce sites we work with, and a form that was only ever tested on a desktop browser during development is being tested on the wrong device for how most customers actually use it.
Correct input types and autofill attributes on every field are a small implementation detail that makes an outsized difference here, since a card field wired up correctly can trigger a phone's saved payment details automatically, turning a multi-field, multi-tap process into a single confirmation tap. We treat getting these attributes right as a non-negotiable baseline on every checkout build, not an optional polish item added if time allows, and we check it explicitly on real devices rather than trusting a browser's desktop emulator to catch every issue.