LanderKit

Pré-remplir un formulaire de landing page depuis l’URL : moins de friction, plus de conversions

Publié le 22 août 2026 · 7 min de lecture

Un visiteur qui clique sur le lien d’un e-mail de confirmation, sur une invitation personnalisée ou sur le résultat d’un quiz a déjà donné une information : son prénom, son e-mail, parfois l’offre qui l’intéresse. Et pourtant, sur la page suivante, on lui redemande de la retaper dans un champ vide. Ce petit geste redondant — quelques secondes, un clavier de smartphone, une faute de frappe possible — coûte plus cher qu’il n’y paraît sur un formulaire déjà tendu. La solution ne demande ni CRM ni outil de personnalisation : transmettre l’information dans l’URL et pré-remplir le champ correspondant.

Le problème : redemander ce qu’on sait déjà

Ce cas se présente à chaque fois qu’un visiteur arrive sur une landing page en ayant déjà traversé une étape précédente : un e-mail de rappel de webinaire qui renvoie vers la page d’inscription, un lien de parrainage qui porte le prénom du filleul, un quiz de qualification dont la dernière page redirige vers un formulaire de contact, ou une campagne d’e-mailing envoyée à une liste déjà identifiée. Dans tous ces cas, la donnée existe déjà quelque part avant que le visiteur n’atterrisse sur le formulaire — il ne manque qu’un moyen de la faire voyager jusqu’au champ.

Ce que dit la recherche sur les valeurs par défaut

Le mécanisme qui rend le pré-remplissage efficace n’a rien d’un simple confort : c’est le même que celui étudié dans l’un des travaux les plus cités en économie comportementale. Une étude d’Eric Johnson et Daniel Goldstein, publiée dans Science en 2003, montre que le simple choix d’une valeur par défaut — case cochée ou non pour le don d’organes selon les pays — fait basculer les taux de consentement de moins de 20 % à plus de 90 %, sans aucune autre différence de formulaire (Johnson & Goldstein, 2003). Un champ pré-rempli fonctionne sur le même ressort : il transforme une action qui demande un effort de rédaction en une action de simple validation, nettement moins coûteuse cognitivement pour le visiteur.

Cet effet a toutefois une limite documentée : une étude de Whittard, Ritchie, Phan, Bryson, Forth, Stokes et Singleton sur l’enquête britannique ASHE montre que des champs pré-remplis avec une valeur obsolète ou approximative sont souvent laissés tels quels par les répondants, qui ne prennent pas la peine de les corriger — au prix d’une donnée finale moins fiable que si le champ était resté vide (Whittard et al., 2023). Traduit sur une landing page : ne pré-remplir que des données que vous savez fraîches et exactes, sinon le gain de friction se paie en leads mal qualifiés.

Quelles informations pré-remplir depuis l’URL

  • L’e-mail, transmis depuis un lien d’e-mailing ou de rappel de webinaire — le cas le plus rentable, car c’est le champ le plus fastidieux à retaper sur mobile.
  • Le prénom, dans un lien de parrainage ou d’invitation personnalisée, qui sert aussi à personnaliser le message d’accroche au passage.
  • L’offre ou le plan choisi, quand plusieurs boutons d’un tableau de prix renvoient vers le même formulaire de contact avec un paramètre différent.
  • La ville ou le code postal, utile sur une page de génération de leads immobiliers quand le visiteur arrive depuis une recherche déjà géolocalisée.
  • Le code promo ou le nom du parrain, pour éviter que le visiteur ne l’oublie en cours de route entre le clic et la validation du formulaire.

L’implémentation en Next.js

1. Construire des liens qui portent l’information

Rien de spécifique à ajouter à vos outils existants : les paramètres circulent dans les liens que vous générez déjà, qu’il s’agisse de l’URL de retour d’un quiz de qualification, d’un lien de parrainage ou d’un envoi d’e-mailing fusionné. Un lien du type /contact?prenom=Julie&email=julie%40exemple.fr suffit — à condition d’encoder correctement chaque valeur avec encodeURIComponent pour éviter qu’un caractère spécial ne casse l’URL.

2. Lire le paramètre et le passer en valeur par défaut, jamais en valeur imposée

Dans une page de l’App Router, searchParams arrive directement en prop du composant serveur : const prenom = searchParams.prenom ?? ""; puis ce texte est transmis au champ via defaultValue, pas via value. La nuance compte : value sans gestion d’état fige le champ en lecture seule côté React, tandis que defaultValue se contente d’initialiser le champ que le visiteur reste entièrement libre de corriger — condition indispensable au vu de la limite relevée par l’étude ASHE citée plus haut.

3. Valider avant d’afficher, ne jamais faire confiance à l’URL

  • Un paramètre d’URL est une entrée utilisateur comme une autre : elle peut être modifiée à la main, tronquée ou absurde. Vérifiez le format attendu (une regex simple pour un e-mail, une longueur maximale pour un prénom) avant de l’injecter dans le champ, sinon un lien mal formé affiche un champ pré-rempli avec du texte incohérent.
  • React échappe automatiquement le contenu inséré dans un attribut ou un texte, donc defaultValue={prenom} n’ouvre pas de faille XSS classique — mais ce filet de sécurité disparaît dès qu’un champ pré-rempli est un jour recopié dans un dangerouslySetInnerHTML ou renvoyé tel quel dans un e-mail de confirmation sans y avoir retiré les balises.
  • Ne jamais pré-remplir un champ sensible (mot de passe, numéro de carte) depuis l’URL : au-delà du risque technique, l’information resterait visible dans l’historique de navigation et les journaux serveur.

4. Garder le reste de la page statique

Lire searchParams dans un composant serveur empêche Next.js de pré-générer cette page au build, exactement comme pour la personnalisation du titre selon la source de trafic : elle est rendue à la demande, ce qui reste rapide sur Vercel mais sort du mode purement statique. Pour un site exporté en HTML statique, l’alternative consiste à lire les paramètres côté client avec useSearchParams (entouré d’un <Suspense>) et à renseigner le champ après le premier rendu — au prix d’un très bref instant où le champ apparaît vide.

Rester compatible RGPD

Cette technique ne collecte rien de nouveau : elle relaie une information que le visiteur a déjà transmise volontairement à l’étape précédente, sans cookie ni service tiers, ce qui la place hors du champ des outils de tracking traités dans notre guide sur le formulaire conforme au RGPD. Le seul point de vigilance reste la sécurité du transport : un e-mail visible en clair dans une URL peut se retrouver dans des journaux de serveur tiers (proxy, CDN) ou dans l’historique d’un navigateur partagé — un motif suffisant pour éviter d’y faire transiter des données réellement sensibles.

Les erreurs qui annulent le bénéfice

  • Verrouiller le champ : un champ pré-rempli mais non modifiable frustre le visiteur qui a changé d’e-mail entre-temps, et contredit la confiance que la pré-saisie est censée créer.
  • Pré-remplir une donnée non fiable : mieux vaut un champ vide qu’un champ rempli avec une valeur ancienne, comme le montre l’étude ASHE citée plus haut.
  • Oublier d’encoder les paramètres : un prénom avec une apostrophe ou un espace mal encodé peut casser le lien ou tronquer la valeur affichée.
  • Ne jamais mesurer l’effet : comparer le taux de conversion des visiteurs arrivés avec un paramètre pré-rempli à celui des autres, via le suivi des conversions GA4, est le seul moyen de vérifier que la technique tient sa promesse sur votre propre trafic.

Le message match assure la cohérence entre l’annonce et le titre de la page ; le pré-remplissage prolonge la même logique jusqu’au formulaire lui-même. Sur un template comme Webinaire & Masterclass ou sur un formulaire en plusieurs étapes, quelques lignes de code suffisent à transmettre le prénom ou l’e-mail d’une étape à l’autre. Les 10 templates LanderKit sont livrés en Next.js autonome, prêts à recevoir cet ajustement — 89 € l’unité ou 229 € pour le pack complet.

FAQ

Questions fréquentes

Quels champs peut-on pré-remplir sans risque ?

Les champs non sensibles que le visiteur a déjà transmis à une étape précédente : prénom, e-mail, ville, offre choisie ou code promo. Évitez tout ce qui touche à un mot de passe ou à une donnée financière, qui ne devrait jamais transiter par une URL.

Est-ce dangereux niveau sécurité (injection dans le HTML) ?

Pas en soi : React échappe automatiquement le contenu inséré via defaultValue. Le risque apparaît seulement si cette même valeur est plus tard recopiée dans un dangerouslySetInnerHTML, un e-mail de confirmation ou une requête base de données sans validation — d’où l’importance de vérifier le format attendu avant de l’utiliser où que ce soit.

Faut-il utiliser value ou defaultValue en React ?

defaultValue, systématiquement. value sans gestion d’état associée fige le champ en lecture seule, ce qui empêche le visiteur de corriger une information devenue inexacte — un point que l’étude ASHE citée dans l’article identifie justement comme source d’erreur quand le champ n’est pas réellement modifiable.

Est-ce compatible RGPD ?

Oui dans la plupart des cas : la technique ne fait que relayer une information déjà donnée volontairement par le visiteur, sans cookie ni outil tiers. Le seul point de vigilance est de ne jamais faire transiter de données sensibles en clair dans l’URL, car elles peuvent se retrouver dans des journaux serveur ou un historique de navigateur partagé.

Ça fonctionne avec un export 100 % statique ?

Lire les paramètres côté serveur avec searchParams oblige cette page à être rendue à la demande. Pour un export statique, lisez-les côté client avec useSearchParams (dans un Suspense) et renseignez le champ juste après le premier rendu, au prix d’un très bref instant où il apparaît vide.

À lire ensuite

Articles liés