Before you launch or pay for traffic
Form design best practices: order and labels
Your contact form makes sense to you, because you wrote it in the order your database stores things. A visitor reads it in the order of their own question, and a simulated visitor can show you the field where that order breaks.
What makes a form design work for the people who fill it in?
Every field keeps a visible label after the visitor types in it, and the fields follow the order of the visitor's question, not your database. Ask only what the first reply needs, mark the optional fields, and name the result of the button, such as Send my request, rather than Submit. A simulated visitor shows the field where each one stopped and a screenshot of that moment, which tells you whether the form lost them on wording, order or length.
What this looks like in a report
“The form wants my dog's breed, my address and a budget before anyone calls me. I typed my name and the box now says Name, so I cannot tell what else it wants. I will send an email instead.”
The fix. Put each label above its field, and keep it there once the field has text. Move the address and budget fields below the message, or mark them optional, then test the form on a phone with one field filled in.
An illustration. Run a test to see your own.See a real sample report
Placeholder text becomes the only label, then disappears
Many forms show a field's name only inside the box, in gray, until the visitor clicks in. Once they type, the name goes, and a visitor who paused to think cannot tell which box wants a phone number and which wants a budget. On a phone the problem is worse, because the top of the form scrolls out of view while the keyboard covers the bottom. The owner never sees it, since the owner already knows that the second box is the company name. A visitor who is not sure what to type stops typing, and then leaves.
- Every field keeps a visible label above it when the field has text in it.
- Fields that answer one question sit together, in the order the visitor thinks of them.
- The form shows how many steps remain when it runs longer than one screen.
- The button names the result, such as Send my request, not only Submit.
- Optional fields are marked optional, so the visitor does not stop to decide about them.
Labels that stay put once a visitor types
The wrong version is a gray hint inside the box that is the only thing naming the field. The visitor clicks in, the hint vanishes, and a field with a typed value has no name on it at all. The right version is a visible label above the box that stays while the visitor types. A hint can still help inside the box, but as an example of the answer, such as a sample name or a date format, not as the only label. Check it on a phone with the keyboard open, because a label near the top of the screen is the first to scroll out of view.
Field order follows the visitor's question, not your database
A contact form built from a customer table asks for a first name, a last name, a company, a title, a phone and an email, in that order. A visitor asks something else first: who am I talking to, how do I hear back, and what do you need from me. The wrong version puts the record's order on screen, so the message box comes after eight fields. The right version asks for a name and a way to reply first, then the message, then the details that help you answer, such as the size of the job. Two short fields on one line read as one question, so give a separate answer its own line.
A button that says what happens next, and where the visitor is
A button that says Submit tells a visitor nothing about what the press starts. Send my request says a request is made, and Book a free call says what the visitor gets next. On a form that runs over more than one screen, put Step 2 of 3 above the fields, so the visitor can see the end before deciding to go on. Without it, a visitor on the second screen cannot tell how much is left, and quits there even if the first screen went well. A simulated visitor that stops on a screen shows you which one, with the field and the screenshot.
Four ways to see where a form loses people
| Method | What it shows you | What it cannot show you |
|---|---|---|
| Field drop-off in your analytics | The step where most visitors leave | Why they left, or what they typed |
| Recordings of real visitors on the form | What a real visitor did before leaving | Visitors who never reached the form |
| Simulated visitors through the form | Where each one stopped, with the field and a screenshot | How many real people would finish |
| Asking a chatbot to review the form | General advice on labels and length | What your own visitors saw on your page |
Use the first two for rates from real traffic, and the third for the reason a visitor stopped.
What you get with Mimiq
- 01
Run it by hand, or on every pull request
Paste a link and a task in the app and watch the visitors work. Or run them on every preview deploy: the GitHub Action comments on the pull request, any other CI can call the MCP endpoint, and your coding agent can run it too.
- 02
Bugs and usability problems in one report
The browser records errors and failed or slow requests on the step they happened. The visitors say where the wording or the steps confused them, and where they left.
- 03
Visitors that behave like your audience
Each visitor is a different profile with a reason to be there, matched to who the page is for, described by you, or built from your own customers.
- 04
A prompt to fix each problem
Every problem comes with a fix to paste into Cursor, Claude Code, Lovable or any coding agent, and one prompt hands over the top problems at once. Then send the same visitors through again.
- 05
Follow every visitor
See each visitor's whole path, step by step with screenshots, and what it was thinking at every step. Ask any visitor a question.
The browser records relevant JavaScript errors and failed or slow app requests encountered during the run, attached to the step where they occurred. The visitors are simulated: they find problems, they do not predict how many real people will convert.
A new required field on the next edit can bring the drop back
A team adds a company size field for sales, or a consent box for a new mailing list, and the halfway drop returns. Send simulated visitors through the form after every change, and compare the step where each one stopped with the last run. Test the phone version every time, with the keyboard open, since a small edit changes it most.
Starter
Try it on one launch
About 4 tests of 5 visitors
- Visitors on your landing page, signup and checkout
- Where they left and why, with a fix to copy for each problem
- Run it in the app or on every pull request
- Ask any visitor a question, included
- Test accounts and protected previews
Builder
Test every build
About 20 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Cancel anytime
Pro
Test every release, as a team
About 60 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Cancel anytime
Scale
Test at scale, every day
About 240 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Priority support
- Cancel anytime
Questions
How many fields should a contact form have?
Ask only for what the first reply needs. For most contact forms that is a name, a way to reply and a message. Put the rest in the reply, or behind an option the visitor chooses. The count matters less than whether each field has a visible label and a reason the visitor can see.
Should I use placeholder text or labels?
Use a visible label above every field, and use placeholder text only for an example of the answer. A placeholder disappears as soon as the visitor types, so it cannot be the only thing that says what the field wants. Check the label on a phone with the keyboard open, where it is the first thing to scroll away.
Can a simulated visitor tell me whether people will finish my form?
No. It does not predict how many real people will finish, because a simulated run is not a count of your visitors. It shows where a simulated visitor stopped and what it could not understand, which is the cause to fix. Rates come from your analytics on real traffic, and from a live test of the new version.
Is a multi-step form always better than a long one?
Not always. Several short steps can feel shorter, but a visitor who cannot see how many steps remain may quit at the second one. A single screen works when the fields are few and the button says what happens next. Check either version on a phone, where the keyboard hides part of the screen.
Keep reading
Send visitors and see what breaks first.
Your first test is free: sign in with Google and it starts right away. Last checked 2026-11-02.