Signup conversion rate: measure it by landing page, then remove the friction

Measure your signup conversion rate by landing page, not as a site average. Join the landing page to accounts created. Then remove the friction that stops real visitors. This guide shows what to track, what to change, and what to leave alone.

By , founder of Porteur · Updated 14 September 2026 · Markdown

Start with your own rate, by landing page

The only rate that matters is yours. Not a blog’s benchmark. Not a friend’s tweet. Work page by page, over a period with a few hundred sessions.

  • Landing page conversion rate: conversions divided by sessions that began on the page.
  • Signup conversion rate: accounts created divided by visitors of the signup path.
  • Trial to paid: paying accounts divided by trials started in the same cohort.

Pick a period that gives stable numbers, not noise. For a small site, wait for a few hundred sessions to that page. Then compare pages like for like.

Example. You compare /pricing, /guides/getting-started and the home page. Each had a few hundred sessions that began there. You count accounts created from those sessions. You can now say which page brings signups, not just clicks.

Instrument the funnel from landing to account

You need events that link the first page seen to account creation. Search and ads only tell you where visitors came from. Product analytics tells you who signed up.

  1. Define the key events

    at minimum: session_start with landing_page, signup_view, signup_submit, signup_success. If you run a trial: trial_start. If you take payment at signup: checkout_start and payment_success.

  2. Pass the landing page forward

    store landing_page and landing_source in a first-party cookie or local storage when the session begins. Attach them to signup_success and trial_start.

  3. Track the signup path

    fire an event on each step: open /signup, select plan, auth method, form field focus, error shown, verification sent, first screen in-app.

  4. Record friction

    log validation errors and their field names. Log drops between steps as a metric, not a guess. Keep the schema stable so you can compare later.

  5. Join to cohorts

    tie trial_start to payment_success by user_id. Use the same window, for example all trials started in September. Do not mix months.

Set up a privacy note in the form. Keep the language plain. You do not need personal data to count steps and errors, only anonymous events until signup_success.

See which landing pages send visitors who sign up

Do not guess from clicks. Join the landing page to signup_success in your analytics. Then rank landing pages by accounts created per session started there.

  1. Build a landing page report

    dimensions: landing_page, landing_source, landing_medium. Metrics: sessions, signup_success, signup_rate. Filter to non-internal traffic. Compare last 28 days to the prior 28.

  2. Break down by query type

    if you tag search visits, split brand vs non-brand. A page that looks strong on brand may be weak on new users.

  3. Group similar pages

    bucket /blog/* guides, /integrations/*, and /pricing-like pages. You will see which group sends signups, not just traffic.

  4. Inspect the outliers

    open one strong and one weak page. Read the promise. Follow the path as a new user. Note where the copy or the next step breaks.

Example. The query “csv to json online” lands on /tools/csv-to-json. Sessions are high. Signup_success is near zero. The page answers the task and ends. Add a call to action that fits: “Save and reuse converters. Create a free account.” Place it where the answer ends, not in a modal.

Use UTM parameters on campaigns so you can trace paid traffic to signup_success. For search, connect your landing page report to your search traffic reporting. Then confirm which queries send buyers and which send readers who will never sign up.

Why traffic that does not convert keeps coming

Three usual causes explain search traffic with no signups. You fix two in the copy and the path. You ignore the third.

  • Intent mismatch: the query is informational, the page sells. Fix by answering first, then offer the next step cleanly.
  • Missing next step: the page answers well but the call to action is missing or buried. Fix by placing one clear action where the answer ends.
  • Wrong audience: a student, an agency or a competitor. No change will make them sign up. Do not distort the page to chase them.

Product analytics that join the landing page to signup_success tell these apart. You will see answer pages with high dwell time and zero signup. Leave them to work for awareness. Add a gentle next step and move on.

Remove the signup friction that matters

Fix the blockers that are proven to cost accounts. Start with low effort, high impact. You can ship these in a week on a small site.

  • Cut fields: ask for email and a password or offer single sign-on. Defer company, phone and role until after first use.
  • Let people see the product before a card: screenshots on /signup and a read-only first screen help. If you take cards, say why and when you charge.
  • Delay email verification: let the first in-app screen load before you ask to verify. Gate features that send email until confirmed.
  • Fix password rules: accept strong real-world passwords. Show requirements inline. Do not reject on submit without saying why.
  • Offer single sign-on: Google, Microsoft, Apple. Keep email and password as a fallback.
  • Write clear errors: name the field and what to fix. Keep the form state on error. Auto-focus the first invalid field.
  • Save progress: if you have steps, persist data between them. Let visitors go back without losing state.
  • Prefer a single page over a wizard: if you only need email and password, one screen wins.
  • Keep the button copy clear: “Create account” beats “Continue”. Avoid generic labels.

Example. Your form at /signup asks for first name, last name, company, team size, phone, role, and country. Drop all but email and password. Add “Continue with Google”. Errors now say “Password must be 12+ characters” beside the field. Signup_success rises because more visitors finish the form they started.

Improve the pricing page that visitors meet before signup

Many visitors pass through /pricing before they sign up. Make the page do its job. Do not hide the plan you want them to choose.

  • Show few plans, two to four. Mark one as recommended.
  • State the difference in one line each: who it is for and the limit that matters.
  • Show the price without a click. Use a monthly and annual toggle. State the saving.
  • Keep plan names the same across the app, docs and emails.
  • Answer the real objections in an FAQ: cancellation, whether a card is required, limits, and what happens at the end of a trial.
  • Use real screenshots. Use customer logos only with permission. Quotes carry a name and company.

Example. /pricing shows Starter and Pro. Starter: “For solo makers, 3 projects.” Pro: “For teams, unlimited projects.” Annual toggle shows “2 months free”. The FAQ answers “Can I cancel anytime?” and “Do you need a card for the trial?”. The “Start free trial” button leads to /signup with the plan preselected.

Place calls to action that match the answer

On content pages, use one call to action. Place it where the reader has just got the answer. Say the next step in their terms, not yours.

  • On a how-to at /guides/getting-started, use “See a live demo project” under the last step.
  • On a tool page, use “Save this result, create a free account” under the output box.
  • On a comparison page, use “Import your data from X, 1 click” under the verdict.
  • Avoid modals that interrupt reading. Use an inline block or a side panel that does not cover content.

Search pages rank better when they serve the query before they sell. Make sure your answer comes first. Then offer the next step as a help, not a push.

Add trust signals a small product can show today

Remove doubt at the moment of signup. Show that you are real, available and careful with data. Do not fake logos or quotes. Ever.

  • An About page with real names and roles.
  • A postal address and a company registration.
  • A security page: what is encrypted, where data lives, how to delete it.
  • A status page and a dated changelog.
  • Screenshots of the real product.
  • Customer logos only with permission. Quotes with a name and a company.
  • A visible support address. Terms and privacy in plain language.
  • Links to reviews on third-party sites, for example G2 or Product Hunt.
  • If you have no customers yet: your own use, honest numbers that exist, a public roadmap, open source parts, and a frank comparison page.

Place these near the /signup form and on /pricing. A short line under the button can link to security and terms. It keeps the visitor on the page and answers the fear that stops them clicking.

Free trial or freemium, and how to read the rates

Choose your model with eyes open. A free trial is time limited and full product. Freemium is free forever with limits. They behave very differently in your funnel and in support.

  • Free trial: measure signup_success to trial_start, then trial_start to payment_success within the same cohort. Expect a clear trial-to-paid curve.
  • Freemium: expect more signups and far fewer upgrades. Support load can be high. Measure activations that predict upgrade, not just signups.

Do not compare your percent to a blog’s chart. Definitions vary by source, industry and model. Keep your own definitions stable and compare your pages and months to each other.

What not to change when you optimise

Keep the promise of the page. Do not bait with one use case and switch to a different product on signup. Keep the plan names and limits consistent across site, app and emails.

  • Do not hide prices to chase more signups. Hidden prices cause drop-off later.
  • Do not split one strong page into many weak pages. You will lose traffic and clarity.
  • Do not stuff testimonials where they do not fit. Keep them near pricing and signup.
  • Do not block the content with a modal on mobile. It harms rankings and trust.
  • Do not change copy across the site without checking the app. Rename plans once, everywhere.

Example. Your /guides/getting-started promises a 2-minute setup. The signup confirmation email says setup takes 10 minutes. Fix the email, not the guide. The promise must match the first screen after signup.

Make changes in order of effort

You do not need a redesign. Ship small changes in sprints. Measure each. Keep a changelog. Roll back what does not move signup_success per landing page.

ChangeEffortWhereWhy
Add SSO buttonsLow/signupRemoves friction at the first click
Cut form fieldsLow/signupFewer steps mean fewer drops
Inline error messagesLow/signupTells the visitor how to fix and finish
Add clear CTA on contentLow/blog/* or /tools/*Converts answer readers who are ready
Clarify plan limitsMedium/pricingSets the right expectation before signup
Card after first screenMedium/signup flowLets people see value before paying
Delay email verificationMediumAuth flowAvoids dead ends before first use
Rewrite thin pagesHigh/blog/* or /features/*Fixes intent mismatch that wastes sessions
Refactor wizard to one pageHigh/signupRemoves a step that bleeds users

Run A then B, not A and B at once. If you must batch, group changes by page. Tag events with a release number so you know what shipped when.

Questions

Check my site, free

Check your site’s signup path: paste your URL and get a free read of your pages, the searches around them and rivals on those searches in about thirty seconds, with three findings shown whole.

  • Free check, no card
  • Read-only, your own accounts
  • Readable by your agent

Read next