How to hide the Google Invisible reCAPTCHA badge

How to hide the Google Invisible reCAPTCHA badge

When implementing the new Google Invisible reCATPTCHA, by default you get a little “protected by reCAPTCHA” badge in the bottom right of the screen that pops out when you roll over it.

I’d like to hide this.

Solutions/Answers:

Solution 1:

Of course you can do it using CSS.

But according to the reCAPTCHA Terms of service (that you must have agreed), you must inform visitors about the reCAPTCHA implementation on your site :

enter image description here

And from the Google Terms of Service

These terms do not grant you the right to use any branding or logos
used in our Services. Don’t remove, obscure, or alter any legal
notices displayed in or along with our Services.

UPDATE DEC 2018 (thanks @Sol)

Google now allows to hide the Badge, from the FAQ :

I’d like to hide the reCAPTCHA v3 badge. What is allowed?

You are allowed to hide the badge as long as you include the reCAPTCHA
branding visibly in the user flow. Please include the following text:

This site is protected by reCAPTCHA and the Google
    <a href="https://policies.google.com/privacy">Privacy Policy</a> and
    <a href="https://policies.google.com/terms">Terms of Service</a> apply.

For example:

enter image description here

Solution 2:

I have tested all approaches and:

display: none DISABLES the spam checking!

visibility: hidden and opacity: 0 do NOT disable the spam checking.

Code to use:

.grecaptcha-badge { 
    visibility: hidden;
}

When you hide the badge icon, Google wants you to reference their service on your form by adding this:

<small>This site is protected by reCAPTCHA and the Google 
    <a href="https://policies.google.com/privacy">Privacy Policy</a> and
    <a href="https://policies.google.com/terms">Terms of Service</a> apply.
</small>

Example result

Solution 3:

Set the data-badge attribute to inline

<button type="submit" data-sitekey="your_site_key" data-callback="onSubmit" data-badge="inline" />

And add the following CSS

.grecaptcha-badge {
    display: none;
}

Solution 4:

Since hiding the badge is not really legit as per the TOU, and existing placement options were breaking my UI and/or UX, I’ve come up with the following customization that mimics fixed positioning, but is instead rendered inline:

Collapsible "invisible" captcha

You just need to apply some CSS on your badge container:

.badge-container {
  display: flex;
  justify-content: flex-end;
  overflow: hidden;
  width: 70px;
  height: 60px;
  margin: 0 auto;
  box-shadow: 0 0 4px #ddd;
  transition: linear 100ms width;
}
.badge-container:hover {
    width: 256px;
}

I think that’s as far as you can legally push it.

Solution 5:

Google now says “You are allowed to hide the badge as long as you include the reCAPTCHA branding visibly in the user flow.” Link

Solution 6:

I decided to hide the badge on all pages except my contact page (using WordPress):

/* Hides the reCAPTCHA on every page */
.grecaptcha-badge {
    visibility: hidden !important;
}

/* Shows the reCAPTCHA on the Contact page */
/* Obviously change the page number to your own */
.page-id-17 .grecaptcha-badge {
    visibility: visible !important;
}

I’m not a web developer so please correct me if there’s something wrong.

EDIT: Updated to use visibility instead of display.