Key insights
- Chunk long forms into small groups — three fields read effortlessly, but twelve in a row trigger scroll fatigue. Splitting the flow lowers cognitive load before it breaks it.
- Group fields by context, not by count — Personal, Shipping, Payment, Review. Each step should earn its own screen; splits made on an arbitrary number feel random.
- Always show progress. Pick one indicator — a linear bar, numbered dots, or step labels — so users can feel the end getting close.
- Validate inside each step, not at the end. A bad email on step one shouldn't surface on step four; block the Next button while a field is still invalid.
- Prefer inline errors over final-screen rejection — an immediate red message beats bouncing users all the way back after they thought they were finished.
- Persist state on every step change. Back navigation and a page refresh must preserve entered data — lose the form once and you lose the user.
Do / Don't
- Do: Split forms into steps grouped by meaning like Personal, Payment or Review, not by an arbitrary field count.
- Do: Show a progress indicator and validate each field within its own step.
- Do: Save entered data so Back and Refresh never wipe the user's progress.
- Don't: Surface a step-one error only once the user reaches the final step.
- Don't: Let a refresh or the Back button discard everything already typed.
- Don't: Stack twelve fields into one scrolling wall when they can be chunked into steps.