97

I have implemented my reCAPTCHA in line with as is shown in the example.

I have this script in the head tag:

<script src="https://www.google.com/recaptcha/api.js"></script>

In my form in HTML I have:

<div class="g-recaptcha" data-sitekey="my public sitekey here"></div>

But when I load the form I get this error:

ERROR: Invalid domain for site key

I have confirmed that this is the correct site key for my domain.

The code is currently in a subdomain so I thought maybe that was the problem so I also added the subdomain to the Google reCAPTCHA admin but still get the error.

The exact same code works 100% in a different domain (with a key specific to that domain).
What could be the problem?

brasofilo
  • 25,496
  • 15
  • 91
  • 179
BlessedHIT
  • 1,849
  • 1
  • 14
  • 21
  • I had this issue and I had to login to my recaptcha dashboard and for the particular key settings add the new url of the page since my old url changed. – Saad A Jun 29 '18 at 19:31

17 Answers17

64

In case someone has a similar issue. My resolution was to delete the key that was not working and got a new key for my domain. And this now works with all my sub-domains as well without having to explicitly specify them in the recaptcha admin area.

BlessedHIT
  • 1,849
  • 1
  • 14
  • 21
  • 11
    Your old key is for reCpatcha v1 and the new key is for reCaptcha v2. – Max Feb 19 '16 at 06:31
  • 1
    @Max In my admin list, it was showing v2, but not working. I deleted the key and regenerated and it worked. – Swatantra Kumar Nov 25 '18 at 12:48
  • Thank, but for wordpress your solution did not work because it's about 4 years ago so I used this [link](https://wordpress.org/support/topic/google-recaptcha-error-for-owner-invalid-key-type/) and now we should user version 2 instead of version 3, maybe tomorrow we should use 3 instead of 2 loool. – Malus Jan Mar 15 '19 at 13:50
  • render="Use the same site key here " and for this line also grecaptcha.execute('and Us the same site key here' – JWC May Oct 31 '19 at 12:38
34

First of all, the keys are managed at https://www.google.com/recaptcha/admin#list

I ran into this error because I'm using the same key on a few different domains and I had forgotten to add one of the domains to the key.

After adding my site it took a minute or two (most likely because of cache) for things to work normally again.

the
  • 21,007
  • 11
  • 68
  • 101
34

I had the same problems I solved it. I went to https://www.google.com/recaptcha/admin and clicked on the domain and then went to key settings at the bottom.

There I disabled the the option below Domain Name Validation Verify the origin of reCAPTCHA solution

clicked on save and captcha started working.

I think this has to do with way the server is setup. I am on a shared hosting and just was transferred without notice from Liquidweb to Deluxehosting(as the former sold their share hosting to the latter) and have been having such problems with many issues. I think in this case google is checking the server but it is identifying as shared server name and not my domain. When i uncheck the "verify origin" it starts working. Hope this helps solve the problem for the time being.

rawraj
  • 441
  • 4
  • 8
  • 1
    this saved me thank you. I had to change my domain to "my-domain.com" and remove the http:// part at the beginning. The following Google article describes the formatting and the domains it allows: "https://developers.google.com/recaptcha/docs/domain_validation – ReneGAED Apr 22 '19 at 04:01
23

No need to create a new key just clear site data on browser

If you change your site domain then add that domain to existing key (it's not necessary to a create new one) and save it.

https://www.google.com/recaptcha/admin#list

but google recapture has some data on browser. Clear them then it will work with your new domain enter image description here

Alupotha
  • 9,710
  • 4
  • 47
  • 48
13

I guess the quickest way is just to disable the domain check while you're developing it enter image description here

hugronaphor
  • 948
  • 8
  • 23
8

I was using localhost during unit testing when my recaptcha key was registered to 127.0.0.1. So I changed my browser to point to 127.0.0.1 and it started working. Although I was able to add "localhost" to the list of domains in my ReCaptcha Key Settings, I am still unable to unit test using localhost. I have to use the loopback IP address 127.0.0.1.

ttemple
  • 1,825
  • 2
  • 17
  • 12
7

You may have inadvertently used a private key for a public key.

sanmai
  • 29,083
  • 12
  • 64
  • 76
5

There is another point must be noted before regenerating keys that resolve 90% issue.

for example your xampp directory is C:\xampp
and htdocs folder is C:\xampp\htdocs

we want to open page called: example-cap.html
and page is showing error:

invalid domain for site key

Use your localhost address in browser address like:

localhost/example-cap.html

this will resolve your issue

Do not use address c:\xampp\htdocs\example-cap.html
this will generate error

shA.t
  • 16,580
  • 5
  • 54
  • 111
4

Make sure you fill in your domain name and it must not end with a path.

example

http://yourdomain.com (good)

http://yourdomain.com/folder (error)

Dapo Momodu
  • 184
  • 1
  • 8
4

I ran into this issue also and my solution was to verify I was integrating the appropriate client code for the version I had selected.

In my case, I had selected reCAPTCHA v3 but was taking client integration code for v2.

V3 looks like this:

<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>
<script>
  grecaptcha.ready(function() {
      grecaptcha.execute('reCAPTCHA_site_key', {action: 'homepage'}).then(function(token) {
         ...
      });
  });
</script>

V2 code looks like this:

<html>
  <head>
    <title>reCAPTCHA demo: Simple page</title>
     <script src="https://www.google.com/recaptcha/api.js" async defer></script>
  </head>
  <body>
    <form action="?" method="POST">
      <div class="g-recaptcha" data-sitekey="your_site_key"></div>
      <br/>
      <input type="submit" value="Submit">
    </form>
  </body>
</html>

As for which version you have, this will be what you decided at the start of your reCAPTCHA account setup. enter image description here

kylestephens
  • 326
  • 5
  • 15
4

Try to add domains without http:// and https:// e.g. example.com

Theblockbuster1
  • 308
  • 6
  • 15
2

For me, I had simply forgotten to enter the actual domain name in the "Key Settings" area where it says Domains (one per line).

Kirk Ross
  • 6,413
  • 13
  • 61
  • 104
2

I had the same problems. I solved it: I went to https://www.google.com/recaptcha/admin, clicked on the domain and then went to key settings at the bottom.

There I disabled the option below Domain Name Validation Verify the origin of reCAPTCHA solution.

Clicked on save and captcha started working.

ascripter
  • 5,665
  • 12
  • 45
  • 68
SWQA
  • 31
  • 1
1

You should set your domain for example: www.abi.wapka.mobi, that is if you are using a wapka site.

Note that if you had a domain with wapka it won't work, so compare wapka with your site provider and text it.

Shree Krishna
  • 8,474
  • 6
  • 40
  • 68
swixz
  • 11
  • 1
1

I tried for almost 4 Hours with this and finally figuring it out with guidance from here, I thought I would share my solution with you.

Ok so my domain is an addon domain. I also got "ERROR for site owner: Invalid domain for site key" I had checked that everything was correct almost a thousand times and it looked right to me, until I thought of it in terms of a desktop shortcut.

Solution:

So for an addon domain make sure that the parent url is also in the list of domains i.e: [ADDON DOMAIN].[PARENT DOMAIN].com . The addon location will be the folder that you set on your host so when using addon domains ensure to name the root with something logical.

Hope this helps someone else and thanks for the suggestions people.

Naeem Ul Wahhab
  • 2,465
  • 4
  • 32
  • 59
1

My domain was quite complex. I took the value returned by window.location.host in the developer console and pasted that value in the recaptcha admin white list. Then I cleared the cache and reloaded the page.

Souradeep Nanda
  • 3,116
  • 2
  • 30
  • 44
0

I had a similar problem due to the fact that I forgot to show the render parameter

<script src='https://www.google.com/recaptcha/api.js?render=SITE_KEY' async defer></script>
Arseniy
  • 11
  • 1