Lazy loading
Google’s script is heavy, and a form far down the page may never be reached. With lazy, the script waits until the form is near the viewport.
<RecaptchaField action="contact" lazy />
lazyRootMargin sets how early loading starts. It is 200px by default, so the script begins loading when the form is 200 pixels from the screen.
<RecaptchaField action="contact" lazy lazyRootMargin="600px" />
What a visitor sees
Until the script loads there is no token, so a very fast submit can happen before one exists. The server then answers with missing-token. Show that reason as “try again” in the form, or use useRecaptcha and disable the button until its status is ready.
Token refresh
Google tokens last two minutes. The field replaces its token every refreshIntervalMs, which is 90 seconds by default, so a visitor who takes a while to fill the form still submits a valid one.
One script per page
The script is loaded once per site key and is not removed when the field unmounts. See Navigation for why.