104

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?

1
  • 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
    Commented Jun 29, 2018 at 19:31

17 Answers 17

66

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.

4
  • 11
    Your old key is for reCpatcha v1 and the new key is for reCaptcha v2.
    – Max
    Commented Feb 19, 2016 at 6:31
  • 1
    @Max In my admin list, it was showing v2, but not working. I deleted the key and regenerated and it worked. Commented Nov 25, 2018 at 12:48
  • Thank, but for wordpress your solution did not work because it's about 4 years ago so I used this link and now we should user version 2 instead of version 3, maybe tomorrow we should use 3 instead of 2 loool.
    – Malus Jan
    Commented Mar 15, 2019 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
    Commented Oct 31, 2019 at 12:38
35

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.

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.

1
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

0
13

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

0
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.

7

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

1
  • 3
    How did you know? Commented May 5, 2017 at 6:26
6

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

1
  • 1
    You literally cannot add a domain with http at the front. You will receive the error of "A valid domain requires a host and must not include any protocol, path, port, query or fragment." if you even add a trailing forward slash / Commented Dec 14, 2023 at 7:01
6

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

1
  • do you have used any how for electron packaged apps ? Commented Sep 5, 2023 at 5:43
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

1
  • This was my issue too, when using Drupal's captcha and recaptcha modules Commented Mar 20, 2019 at 17:50
3

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)

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).

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.

0
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.

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.

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.

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>

Not the answer you're looking for? Browse other questions tagged or ask your own question.