Artikel

Formularer i HTML — form-tagget og SEO

HTML-formularer håndterer brugerinput — korrekt markup med labels og semantiske input-typer forbedrer accessibility og UX.

HTML-formularer er den primære mekanisme til at indsamle brugerinput på websider — fra søgebokse og kontaktformularer til login og checkout. Korrekt formular-markup med semantiske input-typer og tilknyttede labels er afgørende for accessibility, UX og Googlebots forståelse af sidens funktionalitet. Formularer der er svære at udfylde øger bounce rate og reducerer konverteringer — begge signaler Google potentielt bruger i sin vurdering af sidekvalitet.

Hvad er HTML-formularer?

HTML-formularer er interaktive elementer der indsamler brugerinput — søgninger, kontaktformularer, login, tilmeldinger og checkout. Formularer er et fundamentalt element på de fleste websites og en vigtig del af brugerrejsen.

Korrekt formular-markup er vigtig for tilgængelighed, UX og Googles forståelse af sidens funktionalitet.

form-tagget — grundlæggende syntaks

<form action="/submit" method="post">
  <!-- Formularfelter her -->
  <button type="submit">Send</button>
</form>

action-attributten angiver URL’en der modtager formulardata. Udelades action, sendes data til den aktuelle sides URL.

method-attributten angiver HTTP-metoden. Med GET tilføjes formulardata til URL’en som query string (?navn=Morten&email=...) — egnet til søgeformularer da resultater kan bookmarkes og deles, men data er synlig i URL’en. Med POST sendes data i request body og er ikke synlig i URL — korrekt til data der ændrer state, som login, kontaktformularer og køb.

Input-typer — semantisk korrekt

HTML5 introducerede mange specifikke input-typer der forbedrer UX markant — mobilklaviaturer skifter automatisk til det relevante type:

<input type="text" name="navn">        <!-- Fri tekst -->
<input type="email" name="email">      <!-- E-mail tastatur på mobil, validering -->
<input type="tel" name="telefon">      <!-- Telefonnummer-tastatur på mobil -->
<input type="number" name="antal">     <!-- Numerisk tastatur -->
<input type="date" name="dato">        <!-- Datovælger -->
<input type="password" name="adg">     <!-- Skjult tekst -->
<input type="checkbox" name="accept">  <!-- Afkrydsningsfelt -->
<input type="radio" name="valg">       <!-- Valgknap -->
<input type="search" name="q">         <!-- Søgefelt med X-knap -->
<input type="hidden" name="token">     <!-- Skjult felt, ikke synligt -->

Korrekte input-typer forbedrer UX (specielt på mobil), aktiverer browser-validering og giver kontekst til hjælpemidler.

label-elementet — accessibility og UX

<label> er afgørende for tilgængelighed og god UX. Labelen tilknyttes inputfeltet via for/id-attributter:

<label for="email">E-mailadresse</label>
<input type="email" id="email" name="email">

Korrekte labels giver fire fordele: skærmlæsere annoncerer labelens tekst når feltet focueres, klik på labelen aktiverer inputfeltet (større klikflade), browsere bruger label-teksten til autofill-forslag, og Google forstår formularens formål bedre.

Placeholder er ikke en erstatning for label

<!-- Forkert — placeholder forsvinder ved input -->
<input type="email" placeholder="Din e-mail">

<!-- Korrekt — label er altid synlig -->
<label for="email">E-mailadresse</label>
<input type="email" id="email" placeholder="[email protected]">

fieldset og legend

For grupper af relaterede felter — specielt radio buttons og checkboxes — brug <fieldset> og <legend>:

<fieldset>
  <legend>Foretrukket kontaktmetode</legend>
  <label>
    <input type="radio" name="kontakt" value="email"> E-mail
  </label>
  <label>
    <input type="radio" name="kontakt" value="telefon"> Telefon
  </label>
</fieldset>

Skærmlæsere annoncerer legend-teksten for hvert felt i gruppen.

Hvad Googlebot gør med formularer

Googlebot crawler ikke formularindhold via POST-requests. Indhold bag formularer — søgeresultater genereret via formular og indhold bag login — indekseres ikke, og formulardataene behandles ikke. GET-formularer som søgeformularer kan crawles delvist, da Google kan følge søge-URL’er. Din formulars backend er dermed naturligt skjult for Googlebot — du behøver ikke bekymre dig om at Google indekserer dine formularhandlinger.

Structured data til søgeformularer

Google understøtter SearchAction structured data til sitelinks-søgeboksen — en søgeboks der vises direkte under dit resultat i SERP:

{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "url": "https://ditsite.dk/",
  "potentialAction": {
    "@type": "SearchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://ditsite.dk/soeg/?q={search_term_string}"
    },
    "query-input": "required name=search_term_string"
  }
}

Skal jeg bruge GET eller POST til kontaktformularer? POST til kontaktformularer — data bør ikke vises i URL’en og POST er korrekt til data der sendes og gemmes.

Er placeholder det samme som label? Nej. Placeholder forsvinder når brugeren begynder at taste og huskes ikke af tilgængelighedstools. Label er altid synlig og er den korrekte løsning til formularfelters navngivning.

Kan Google se hvad der sker i en formular? Nej. Googlebot eksekverer ikke formularindsendelse. Indhold bag formularer er ikke synligt for Google medmindre det er tilgængeligt via en crawlbar URL.

Sidst opdateret: marts 2026. Denne artikel er en del af Stegger.dk’s SEO-ordbog. → Denne artikel er en del af Indholdselementer i kode — Links, billeder og formularer.

Andre artikler i samme emne

Ofte stillede spørgsmål

Hvad er HTML-formularer?
HTML-formularer er interaktive elementer der indsamler brugerinput og sender det til en server til behandling. Formularer implementeres med <form>-elementet der omslutter et sæt af inputfelter. Action-attributten angiver URL'en der behandler formulardata, og method angiver HTTP-metoden (GET eller POST). Formularer bruges til søgefunktioner, kontaktformularer, login, checkout og enhver situation hvor brugeren skal sende data til serveren.
Hvad er vigtigt for accessibility og SEO i HTML-formularer?
Korrekte <label>-elementer der er korrekt tilknyttet hvert inputfelt via for-attributten og inputtets id er det vigtigste: de forbedrer accessibility for skærmlæsere og gør formularfelterne klikbare via labelteksten. Semantiske input-typer som type=email, type=tel og type=search aktiverer korrekte tastatur-layouts på mobil og validering i browseren. Submit-knapper bør bruge <button type=submit> frem for <input type=submit>. Korrekte placeholder-værdier og tydelig fejlhåndtering forbedrer brugeroplevelsen og reducerer formular-abandonment.
Crawles formular-indhold af Googlebot og hvad betyder det for SEO?
Googlebot crawler ikke formulardata — det kan ikke interagere med formularer, udfylde felter eller følge søgninger i interne søgefelter. Indhold der kun er tilgængeligt bag en formularindsendelse (efter login, efter søgning) er ikke tilgængeligt for Googlebot. Interne søgeresultater bør typisk have noindex for at undgå tynde duplikatresultater i Google. Formularer påvirker SEO indirekte via konverteringsrate — en veldesignet formular reducerer bounce rate og øger engagement.
Hvad er forskellen på GET og POST i HTML-formularer og hvornår bruges de?
GET sender formulardata som URL-parametre — synlig i adresselinjen og i browser-historikken. POST sender data i request body, usynlig i URL'en. Brug GET til søgeformularer fordi søgeresultater kan bookmarkes og deles. Brug POST til kontaktformularer, login og enhver formular der sender følsomme data eller ændrer tilstand på serveren. GET-formularer kan crawles delvist af Googlebot via URL-parametrene.
Hvad er autocomplete-attributten på input-felter og hvad gør den?
autocomplete-attributten styrer om browseren og password managers forsøger at autofylde feltet. autocomplete=email aktiverer e-mail-autofyld, autocomplete=name aktiverer navneforslag, autocomplete=off deaktiverer autofyld for et felt. Korrekt autocomplete-værdier forbedrer UX markant ved gentagne besøg og er en accessibility-fordel. Forkerte autocomplete-værdier — fx at deaktivere autofyld på brugernavn-felter — er en hyppig UX-fejl.

Placering i ordbogen