Grenzen von Baukasten-Formularen

Grenzen von Baukasten-Formularen7 Min. Lesezeit

Netlify-Forms-Limit: was bei 100 Einsendungen passiert und wie du rauskommst

Legacy-Tarife von Netlify messen Formulareinsendungen pro Site und stufen dich automatisch hoch, und Credit-Tarife können die Site pausieren. Verlege das Formular deshalb auf ein Backend.

Preet SutharGründer, Ikiform

In den Legacy-Tarifen von Netlify enthält jede Site 100 Formulareinsendungen pro Monat, und wer darüber kommt, wird automatisch auf eine bezahlte Forms-Stufe hochgestuft. In den Credit-Tarifen für Accounts, die seit September 2025 erstellt wurden, sind Formulare kostenlos, aber bei einem kostenlosen Team, dem die Credits ausgehen, wird jede Site pausiert, Formulare eingeschlossen. Das Formular zu Ikiform zu verlegen heißt, die Netlify-Attribute zu entfernen und die action zu setzen, in reinem HTML oder jedem Framework.

Was bei Netlify anders ist

Netlify ist kein Site-Builder, sondern ein Host mit eingebauten Formularen. Das prägt sowohl das Limit als auch den Ausweg. Welches Limit gilt, hängt davon ab, wann dein Account erstellt wurde:

AccountWas die Doku von Netlify sagtWas es für ein viel genutztes Formular bedeutet
Legacy-Tarife, erstellt vor dem 4. September 2025Forms Level 0 enthält 100 Einsendungen und 10 MB Uploads pro Site und Monat. Wer darüber kommt, wird auf Forms Level 1 mit 1.000 Einsendungen hochgestuft, abgerechnet am Ende des Abrechnungszeitraums. Darüber hinaus fügen Zusatzpakete je 500 hinzuEine Spamwelle kann eine Site auf eine bezahlte Stufe heben, ohne dass jemand das entschieden hat. In der kostenlosen Legacy-Stufe pausiert das Erreichen eines Limits jede Site des Accounts
Credit-Tarife, seitdem erstelltFormulareinsendungen sind kostenlos und unbegrenzt, ohne StufenDas Formular selbst kostet nichts. Aber wenn ein kostenloses Team seine monatlichen Credits verbraucht, pausiert Netlify alle seine Projekte, und pausierte Projekte empfangen keine Formulareinsendungen

Die Doku von Netlify sagt klar, dass die Legacy-Hochstufung automatisch erfolgt und dass du nicht zurückstufen kannst, solange die Nutzung über der niedrigeren Stufe liegt. Prüf den Tariftyp deines Teams und die Formularnutzung der Site im Netlify-Dashboard, bevor du etwas entscheidest.

Der zweite Grund für den Wechsel hat nichts mit Zahlen zu tun. Netlify Forms funktioniert, indem es dein deploytes HTML liest:

  • Formulare werden beim Deploy gefunden. Ein Formular, das React, Vue oder Svelte rendert, existiert in diesem HTML nicht, also hältst du eine versteckte statische Kopie für den Build bereit und sendest mit einem form-name-Feld daran.
  • Bei Next.js braucht der OpenNext-Adapter diese Kopie als statische Datei in public/, und der Post muss an diese statische Datei gehen, nicht an eine Next.js-Seite. Der Build scheitert, wenn data-netlify ohne sie in React-Code vorkommt.
  • Einsendungen müssen urlencoded oder multipart sein. JSON wird nicht akzeptiert.
  • Das Formular funktioniert nur, solange die Site auf Netlify deployt ist. Den Host wechseln heißt, die Formulare umzuziehen.
Wie die Formularnutzung einer Legacy-Netlify-Site im Monat steigt und was das Senden an Ikiform ändertLegacy-Tarif, eine Site, ein MonatFormular sendet an IkiformLevel0100EinsendungenenthaltenEinsendung101SpamzähltauchLevel11.000proMonat,abgerechnetZusatzpaketeje 500mehrdieselbeSeiteaufNetlifyIkiform-EndpunkteinfacheAction-URLNetlifyFormsnichtszuzählenAuto-HochstufungPostWie die Formularnutzung einer Legacy-Netlify-Site im Monat steigt und was das Senden an Ikiform ändertLegacy-Tarif, eine Site, ein MonatFormular sendet an IkiformLevel 0100 Einsendungen enthaltenEinsendung 101Spam zählt auchLevel 11.000 pro Monat, abgerechnetZusatzpaketeje 500 mehrdieselbe Seite aufNetlifyIkiform-Endpunkteinfache Action-URLNetlify Formsnichts zu zählenAuto-HochstufungPost
  1. In einem Legacy-Tarif startet eine Site den Monat auf Forms Level 0 mit 100 enthaltenen Einsendungen.
  2. Einsendung 101 kommt an. Die Nutzungsdoku von Netlify beschreibt die Nutzung der Site, also kann ein Spamschub genau das sein, was sie über die Grenze bringt.
  3. Netlify stuft die Site auf Forms Level 1 mit 1.000 Einsendungen hoch und rechnet am Ende des Zeitraums ab.
  4. Über Level 1 hinaus fügen Zusatzpakete je 500 Einsendungen hinzu.
  5. Sendet das Formular an Ikiform, liegt die Seite weiter auf Netlify, aber der Post geht an den Ikiform-Endpunkt.
  6. Netlify Forms empfängt den Post nie, also gibt es nichts zu zählen oder hochzustufen.
Das Hosting bleibt auf Netlify. Nur das Ziel des Formulars zieht um und damit die Messung.

Das Formular umziehen, Stack für Stack

Bevor du Code änderst, erstelle ein Ikiform-Formular pro Netlify-Formularname und setze sein Honeypot field auf bot-field. Dann funktioniert dein bestehender versteckter Input weiter als Honeypot, ohne Umbenennung. Wähle deinen Stack:

Reines HTML auf Netlify braucht die wenigsten Änderungen. Lösche die Netlify-Attribute und den form-name-Input, richte action auf den Endpunkt und verschiebe den Pfad der Dankeseite als vollständige URL in _redirect. Der bot-field-Input bleibt dein Honeypot.

<form name="contact" method="POST" action="/thanks" data-netlify="true" netlify-honeypot="bot-field">
  <input type="hidden" name="form-name" value="contact" />
  <p hidden><input name="bot-field" /></p>
  <label>Email <input type="email" name="email" required /></label>
  <label>Topic
    <select name="topic">
      <option value="question">A question</option>
      <option value="bug">Something is broken</option>
      <option value="work">Working together</option>
    </select>
  </label>
  <label>Message <textarea name="message" required></textarea></label>
  <button type="submit">Send</button>
</form>
Die Versionen für TanStack Start und React Router senden von deinem Server. Die serverseitigen Versionen senden mit einem Secret Key, also überspringt Ikiform Allowed domains und seine Menschlichkeitsprüfung. Jeder Post kommt dann von der IP deines Servers, und das Standard-Limit von 5 pro Minute pro Besucher zählt alle deine Besucher zusammen. Wähle für ein Formular, das du über einen Server sendest, das Rate-Limit Relaxed oder Custom und halte IKIFORM_SECRET_KEY in Umgebungsvariablen, die nur der Server sieht.

Jede Version behält dieselben Feldnamen wie bei Netlify, sodass Benachrichtigungs-E-Mails und CSV-Spalten vertraut aussehen. Der Vergleich mit Netlify Forms enthält die vollständige Zuordnung der Attribute, einschließlich data-netlify-recaptcha und Datei-Inputs.

Deploy Previews und erlaubte Domains

Netlify gibt jedem Pull Request eine eigene Adresse, etwa deploy-preview-42--your-site.netlify.app. Das ist keine Subdomain von your-site.netlify.app, also deckt die Adresse deiner Site unter Allowed domains keine Previews ab, und Posts aus Previews landen mit origin_mismatch im Spam.

  • Füge your-site.netlify.app und deine eigene Domain für die Produktion hinzu.
  • Füge einen bestimmten Preview-Host hinzu, solange du ihn testest, und entferne ihn dann.
  • Füge nicht netlify.app allein hinzu. Jede Site auf Netlify dürfte dann an dein Formular senden.
  • Oder richte Previews über eine Umgebungsvariable auf ein zweites Ikiform-Formular ohne erlaubte Domains und halte die Produktion streng.

Umstellen, ohne Einsendungen zu verlieren

  1. Lade die bisherigen Einsendungen jedes Formulars als CSV im Bereich Forms der Site herunter. Ikiform hat keinen Import.
  2. Deploye das neue Formular in eine Preview und sende einen Test. Prüfe die Feldnamen im Ikiform-Dashboard.
  3. Merge in die Produktion und sende einen weiteren Test von der Live-Domain.
  4. Ersetze jeden ausgehenden Netlify-Webhook durch einen Ikiform-Webhook. Netlify signiert mit einem JWS-Token; Ikiform nutzt Header nach Standard Webhooks, also ändert sich auch dein Verifizierer.
  5. Wenn ein paar Tage lang kein Post mehr Netlify erreicht hat, schalte die Formularerkennung in den Forms-Einstellungen der Site aus.
Netlify akzeptiert Datei-Uploads und lässt Akismet über jede Einsendung laufen. Datei-Uploads werden noch nicht unterstützt. Ein Post mit einer Datei bekommt 422 files_not_supported. Braucht ein Formular Dateien, lass dieses eine Formular bei Netlify Forms und zieh den Rest um.

Prüfen, dass es auf Netlify funktioniert

  1. Füge unter Allowed domains des Formulars die Domain deiner Site hinzu, plus localhost, während du entwickelst. Lass das Feld leer, um Posts von überall anzunehmen.
  2. Deploye eine Preview, füge ihren Host hinzu und sende das Formular von dort ab.
  3. Öffne Submissions im Dashboard. Die neue Einsendung ist da, mit jedem Feld, das du gesendet hast.
  4. Prüfe, dass die Felder email, topic und message sind, ohne form-name und ohne bot-field.
  5. Öffne den Tab Forms der Site in Netlify und prüfe, dass der Test nicht dort ist.
  6. Sende einmal mit ausgefülltem bot-field. Er wird als Spam gespeichert und sendet nichts.
  7. Prüfe das Postfach jedes Benachrichtigungsempfängers. Jeder bekommt eine E-Mail mit den Feldern, und Reply geht an den Absender, wenn das Formular ein email-Feld hat.

Stolperfallen

ProblemWas zu tun ist
Ein form-name-Feld taucht in Ikiform aufDer versteckte form-name-Input ist noch im Formular, oder dein Code setzt ihn noch. Entferne ihn; Ikiform erkennt das Formular an der URL.
Der Next.js-Build scheitert mit einer Meldung zu FormularenEin Attribut netlify oder data-netlify steht noch in deinem React-Code. Entferne es zusammen mit public/__forms.html.
Previews senden in den SpamDer Preview-Host steht nicht unter Allowed domains. Füge ihn beim Testen hinzu oder nutze ein zweites Formular für Previews.
Jeder Post wird als Spam markiert, auch echteHoneypot field ist noch _gotcha, während dein Input bot-field heißt, oder umgekehrt. Bring sie in Einklang.
422 files_not_supportedDas Formular hat ein <input type="file"> mit ausgewählter Datei. Datei-Uploads werden noch nicht unterstützt; entferne das Eingabefeld oder bitte stattdessen um einen Link.
429 rate_limitedEin Besucher hat mehr gesendet, als das Rate-Limit des Formulars erlaubt. Standard erlaubt 5 pro Minute und Besucher. Warte Retry-After ab oder wähle Relaxed oder Custom für Formulare, die von einer gemeinsamen IP aus senden.

Fragen

Hängst du bei einem Schritt fest oder willst eine Anleitung für deinen Fall? Schreib an hello@ikiform.com.