What actually works
Ask only what you need right now. Not what you might want later. Separate required fields from optional enrichment. Progressive profiling, collecting additional information at later points in the user journey, consistently outperforms front-loading everything into the initial form.
Use inline validation. Check fields as the user leaves them, not after they hit submit. And write error messages like a person, not a system. 'This email address doesn't look right, check the spelling.' is more useful than 'Email validation failed.'
Explain why you're asking. A short context note on sensitive fields, phone number, date of birth, national ID, increases completion. Not every field needs an explanation, but the ones that create resistance benefit significantly.
Optimise for mobile properly. Use the right input type for each field: tel for phone numbers, email for email addresses, date for dates. Set autocomplete attributes. Make tap targets large enough. These are small technical decisions with large behavioral consequences.
Show progress on multi-step forms. When a form has multiple steps, users need to know where they are and how much is left. A progress indicator significantly reduces abandonment at step two and three.