Blocked Due to Access Forbidden (403): What It Means and How to Fix It

Blocked due to access forbidden (403): a red security barrier stopping a search crawler robot in front of a website

Written by

in

Google Search Console · Page indexing

“Blocked due to access forbidden (403)” means your server refused Googlebot with an HTTP 403. Since Googlebot never logs in, Google says the server “is returning this error incorrectly” — usually because a firewall, CDN bot protection or security plugin mistook Googlebot for a bad bot.

Key takeaways
  • A 403 on a page you want in Google is always a configuration problem: Google won’t index a page it can’t fetch.
  • The most common cause is security tooling — a WAF, CDN bot filter, hosting firewall or WordPress security plugin — not file permissions.
  • Testing with a fake Googlebot user agent can mislead you: in our test, the hosting CDN blocked spoofed AI-crawler user agents while letting the real crawlers through.
  • The fix: allow verified Googlebot (reverse DNS or Google’s IP lists), then run a live test in URL Inspection.
  • 401 is the sibling status: the page asks for a login. Remove the login or keep the page out of the sitemap.
How this was checked. Status definitions are quoted from Google’s Page indexing report help; verification steps from Google’s crawler verification guide. First-hand: on 25 September 2026 we sent requests with different crawler user agents to this site and compared the responses with our host’s AI crawler log.

What does “Blocked due to access forbidden (403)” mean?

It’s one of the “why pages aren’t indexed” reasons in Search Console’s Page indexing report. Google’s definition is short and blunt:

“HTTP 403 means that the user agent provided credentials, but was not granted access. However, Googlebot never provides credentials, so your server is returning this error incorrectly. The page will not be indexed.” — Google Search Console Help

In other words: a human in a browser can probably see the page, but when Googlebot asks for it, something between the internet and your content says no. The page stays out of the index until that changes. If it was already indexed, it can drop out after repeated 403s.

403“Forbidden”: the server understood the request and refused it — MDN
0credentials Googlebot ever sends — which is why Google calls a 403 to Googlebot an error
5 / 5uncached requests with a spoofed GPTBot user agent our host’s CDN answered with 429, in our test
0real AI-crawler requests blocked on our site in the same 24 hours, per our host’s AI crawler log

What causes a 403 for Googlebot?

Cause Typical sign Where to look
CDN or WAF bot protection Many URLs affected at once, often after enabling a “block bots” or “under attack” setting Security or firewall events in your CDN dashboard
Hosting firewall or rate limiting 403s spike during heavy crawling Hosting control panel, server error logs
WordPress security plugin Starts after installing or updating a security plugin The plugin’s blocked-requests log
Country or IP blocking Site blocks traffic from outside one country; Googlebot mostly crawls from the US Geo-blocking rules in firewall or CDN
Server rules in .htaccess or NGINX Specific folders or file types return 403 Deny rules in server config
File or folder permissions 403 for everyone, not just Googlebot File manager: folders usually 755, files 644
Members-only or staging content Page requires a login or a whitelisted IP Membership or staging plugin settings

A quick way to split the causes: open the URL in a private browser window. If you get a 403 too, it’s permissions or server rules. If the page loads for you but Google reports 403, it’s almost certainly security tooling reacting to crawlers.

Our test: why a fake Googlebot can fool you

A common tip is to “test as Googlebot” by sending a request with Googlebot’s user agent string. We tried that on this site — and extended it to AI crawlers — to see how much you can trust it. Each crawler name was sent five times to an uncached page:

User agent we sent Responses
Googlebot 200 200 200 200 200
bingbot 200 200 200 200 200
PerplexityBot 200 200 200 200 200
OAI-SearchBot 200 200 200 403 200
ClaudeBot 200 403 200 200 200
GPTBot 429 429 429 429 429

Taken at face value, that says our site blocks GPTBot and sometimes OpenAI’s and Anthropic’s other crawlers. But our host’s AI crawler log for the same 24 hours showed 21 real AI-crawler requests — 17 from GoogleOther and 4 from OAI-SearchBot — and zero blocked. The difference: our requests came from an ordinary server, not from OpenAI’s or Anthropic’s IP addresses, so the CDN treated them as impostors. That’s exactly what good bot protection should do.

The lesson for 403 debugging: a spoofed user agent tells you what your firewall does with fake bots. To see what happens to the real Googlebot, use Google’s own tools and your security logs.

How do you fix “Blocked due to access forbidden (403)”?

1. Confirm it with a live test

In Search Console, inspect the URL and click Test live URL. If “Page fetch” fails with a 403, the problem is current. If the live test succeeds, the report may simply be showing an older crawl — see how to check if a page is indexed.

2. Find what is blocking

Check, in this order: your CDN or WAF security events, your hosting firewall, your WordPress security plugin’s log, and finally your .htaccess or NGINX deny rules. Look for blocked requests whose user agent contains “Googlebot” around the time of the failed crawl.

3. Allow verified Googlebot — not the user agent string

Never whitelist by user agent alone; anyone can type “Googlebot”. Google’s verification guide gives two methods:

  • Reverse DNS: look up the visitor’s IP (for example host 66.249.66.1), check that the hostname ends in googlebot.com, google.com or googleusercontent.com, then do a forward lookup to confirm it points back to the same IP.
  • IP ranges: match against the JSON lists Google publishes, such as common-crawlers.json for Googlebot.

Most CDNs and security plugins have a “verified bots” or “allow search engines” option that does this for you. Turn it on rather than writing your own rules.

4. Remove the block and re-test

Run the live test again. When it passes, click Request indexing for the most important URLs and use Validate fix in the Page indexing report for the rest. Revalidation can take days to weeks, in line with Google’s normal crawl frequency.

Our take
Don’t “fix” a 403 by blocking the URL in robots.txt or adding nofollow, as some guides suggest. If the page should be in Google, allow Googlebot. If it shouldn’t, return a proper 404 or use noindex — a 403 is the wrong signal either way.

What about “Blocked due to unauthorized request (401)”?

A 401 means the page asked for authorization — typically a password prompt or login wall. Google’s advice: if you want the page indexed, “either remove authorization requirements for this page, or else allow Googlebot to access your pages by verifying its identity”. You can reproduce it by visiting the page in an incognito window.

403 FORBIDDEN

“You may not enter”

Usually: a firewall, bot filter or server rule refusing Googlebot. Fix the block.

401 UNAUTHORIZED

“Show your login”

Usually: password protection, staging sites or members-only pages. Remove the login or keep the page out.

Staging sites protected with a password are the classic case: they correctly return 401, and you should keep them out of sitemaps and internal links rather than open them up.

When can you ignore a 403 or 401?

  • Admin and login pages such as /wp-admin/ — they’re supposed to be closed. On this site, /wp-admin/ redirects anonymous visitors to the login page and /.htaccess returns 403, as it should.
  • Members-only content you never meant to rank.
  • Old URLs Google remembers but you no longer link to.

Do make sure none of these appear in your XML sitemap — a sitemap full of blocked URLs sends mixed signals. See sitemap could not be read and, for the overall picture, why Google isn’t indexing your site.

FAQ

What does “Blocked due to access forbidden (403)” mean in Google Search Console?

Your server returned HTTP 403 when Googlebot requested the page, so Google couldn’t fetch or index it. Because Googlebot never sends credentials, Google treats this as a server configuration error.

Why does my page load in the browser but show 403 in Search Console?

Usually because a firewall, CDN bot filter or security plugin treats crawlers differently from visitors. Check its blocked-request log for Googlebot around the crawl time.

How do I fix a 403 error for Googlebot?

Find the rule that blocks it, allow verified Googlebot using reverse DNS or Google’s published IP ranges, then run a live test in URL Inspection and request indexing.

Is it safe to whitelist the Googlebot user agent?

No. User agents are easy to fake. Verify Googlebot by reverse DNS or Google’s IP lists, or use your CDN’s verified-bots setting.

Can file permissions cause a 403 in Search Console?

Yes, but then the page usually returns 403 to everyone, including you in a private window. Folders are typically 755 and files 644.

What is the difference between 401 and 403 in Search Console?

401 means the page asked for a login. 403 means the server refused access outright. Googlebot can’t pass either, so neither page will be indexed.

Should I block 403 pages in robots.txt?

Not if you want them indexed; fix the block instead. If they’re private, keep them out of your sitemap and links. robots.txt doesn’t remove pages from Google.

How long until Google re-indexes the page after fixing a 403?

After a successful live test and an indexing request, usually days; for many URLs, validation can take a few weeks.

B
Ben runs IndexUrePoint and manages several websites in Google Search Console and Bing Webmaster Tools, including this one. He tests every setup described here on a live site before writing about it. Spotted an error? Tell us via the contact page; we’ll fix it and note the date.