Skip to content
Google Ads suspension experts based in ScotlandMon–Fri, 9:00–18:00 UK time 07777 148453
Guides
Guide · Google Ads Policy

Destination not working – Google Ads

Gianluca Catinella, Director, Ad Restore Ltd12 min read
A mint scanner outline with a lilac stop badge on a dark navy ground.
The notice

Destination not working

Google’s own name for the policy, and what you see when you hover over a disapproved ad. Advertisers post the fuller in-account message: “Unable to crawl your landing page on Desktop devices. HTTP error 403” (Google Ads Community thread 182805295, 7 October 2022), or the same ending “on iOS devices” (thread 234500394, 11 September 2023). Neither thread reports how it ended.

This is an ad disapproval, not a suspension. Google is telling you that when it went to look at your landing page, it did not get a working page back. The policy covers destinations that do not function properly or have been set up incorrectly, and destinations that return an HTTP error code for Google AdsBot web crawlers on common devices globally.

The second half catches people out, because that check is not made in your browser but by Google’s own crawler: even if your site or app seems to be working as intended, Google says to use common browsers and devices to test for any issues and look for HTTP errors as AdsBot sees them.

Checked against Google’s help pages on 23 September 2026. Google changes them without notice, so check the linked page before relying on a detail.

At a glance

On this page7 sections

What Google is actually checking

Google requires that your ad destination and contents work on common browsers and devices, and disapproves an ad for Destination not working if the destination returns an error when crawled by any of the Google AdsBot user agent strings.

The Destination not working page tables the specific errors: 4xx and 5xx responses, DNS failures with a firewall on your server or network among the listed causes, private IPs, timeouts, redirect loops and pages protected by a login screen — most of which a browser visitor would never see. Google also warns that the expanded URL shown in the Google Ads UI may be different from the destination for your ad.

The same block turns up under neighbouring labels, so check the same things whichever you were given. Destination not crawlable is the robots.txt and crawl-capacity one: Google’s examples are using exclusion files like robots.txt to restrict access to the majority or entirety of a site and site settings that allow less crawling than is required for the number of ads you run, and it names “robots.txt unreachable or timeouts reading robots.txt”. Destination not accessible covers location and crawl together, its examples including landing pages that are blocked from being crawled by Google AdsBot via the robots.txt file and server-side configurations that prevent Google AdsBot from accessing the landing page. Destination mismatch is a different problem — the crawler reached a page, just not the one your ad declared — and has its own guide.

When the site works for you but AdsBot cannot get in

Google addresses this case directly: if your website works for you but gets disapproved by Google Ads, your server’s security settings, firewalls or content management system plug-ins might be blocking the automated crawl system.

In our experience, that is usually what it is. It is the hosting: the protection and the security on it are over-secure, so the bots cannot crawl it, and someone from IT has to correct that, or the owner does it themselves. Advertisers land in the same place — one was told by their host that the fault was at their end (7 October 2022), another was still stuck at the end of their thread (opened 11 September 2023) — though neither thread reports how it finished.

Two mechanisms are worth knowing about before you start testing, both worded here as the company documenting them words them, not as a count of how often we see them.

How to let AdsBot in, and how to test it

Google’s instruction: contact your web developer to allowlist the AdsBot-Google and AdsBot-Google-Mobile user agents. Those are the two it documents for ad checks, and it publishes the strings they send.

  • AdsBot-Google, the desktop one, which Google says checks desktop web page ad quality. robots.txt token: AdsBot-Google. Full string: AdsBot-Google (+http://www.google.com/adsbot.html)
  • AdsBot-Google-Mobile, the mobile web one, which checks mobile web page ad quality. Token: AdsBot-Google-Mobile. Full string: Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; AdsBot-Google-Mobile; +http://www.google.com/mobile/adsbot.html)

Both appear in Google’s special-case crawler documentation, published so that a web developer or a web server host can use the User Agent to configure the crawl rules for a site — send your host that page.

Two things about robots.txt catch people out. A blanket rule aimed at every crawler does not shut AdsBot out: Google says AdsBot ignores the global robots.txt user agent with the ad publisher’s permission, and its robots.txt specification says user agent specific groups and global groups are not combined. The line that blocks it is a group naming AdsBot-Google. And a robots.txt Google cannot fetch is as bad as one that says no: for the first 12 hours, Google stops crawling the site while it keeps retrying.

At the firewall, a user agent allow rule is a start but not proof, because Google warns that the user agent string can be spoofed. Its documented check is DNS: run a reverse DNS lookup on the accessing IP address from your logs, confirm the name is a Google one, then run a forward lookup on that name and check it returns the same IP. AdsBot’s reverse DNS mask matches names beginning rate-limited-proxy- and ending google.com, because the special-case crawlers may ignore robots.txt rules and so they operate from a different IP range to the common ones; Google publishes those ranges in a special-crawlers.json file on the same page.

Do not fix this by showing AdsBot something different.

A rule that serves the crawler a simpler page is cloaking. Google’s Circumventing Systems policy bans showing different content on your website to different people or to Google, and says violations are considered egregious — suspension without a warning first. Its best practice is the opposite: make sure Google can easily see all the pages on your website. Read our guides to cloaking and Circumventing Systems.

Here is how to find out what is blocking it. The last two steps are for whoever looks after your hosting.

  1. Read the exact wording first.

    Go to Ads within the Campaigns menu and hover over the disapproval reason for more information. “HTTP error 403” and “timeout” point in very different directions, and Google asks you to check your destination to determine if a technical issue is causing the disapproval first.

  2. Check which address is being crawled.

    Follow your final URL through every redirect and test where it actually lands. If that is somewhere your ad never declared, you have a different disapproval: see Destination mismatch.

  3. Load the page as AdsBot.

    In Chrome DevTools, open Network conditions, tick Disable cache, untick “Use browser default” under User agent and paste in the desktop string above to mimic the Google AdsBot web crawler. Display & Video 360 gives the same test, saying to update the user agent path to that string and reload, and adds that ad landing pages must be publicly accessible and that CAPTCHA makes the destination pages uncrawlable. A challenge page, CAPTCHA, login box, 403 or blank page is your answer.

  4. Open your robots.txt.

    Look for a group naming AdsBot-Google or AdsBot-Google-Mobile that then disallows everything, and check if the subdomain has a separate robots.txt file when the landing page lives on one. No robots.txt at all is fine: Google’s crawlers are allowed by default for the paths not covered by other rules.

  5. Check it from outside your own country.

    Google asks you to keep your landing pages accessible globally and suggests testing with Google Search Console (URL inspection tool); Display & Video 360 says to check for geo-restrictions that might be blocking Google’s crawlers and geo-target the campaign instead.

  6. Ask your host or IT for the crawler’s log lines.

    Word it like this: “please send me every request since the ads were disapproved with AdsBot-Google or AdsBot-Google-Mobile in the user agent, and the status code returned to each.” If those show 403, 429, 503 or nothing while ordinary visitors get 200, the block is on your side. Google says not to use 401 and 403 status codes for limiting the crawl rate, and that its crawlers read the 429 status code as a signal that the server is overloaded.

  7. Lift the block at the right layer, rather than switching protection off.

    On Cloudflare’s free Bot Fight Mode the setting itself has to change, because you cannot bypass or skip Bot Fight Mode using WAF custom rules or Page Rules. On paid Super Bot Fight Mode you choose how your domain should respond to various types of traffic per bot grouping, verified bots among them — Cloudflare’s legacy categories name “Google Adsbot” there — and configure exceptions with a Skip rule.

Is this a suspension?

Not on its own: a disapproved ad will not serve until the policy violation is fixed and the ad is reviewed again, and the account keeps running. Every page in the destination family carries the same alert, that a warning will be issued at least seven days prior to any suspension of your account, and Google’s suspensions overview agrees that it is for repeat violations that a warning comes first.

Two points here are absences rather than Google statements. Google publishes the policies where your account will be suspended immediately without prior warning under the heading which policies are considered to be egregious, and destination requirements is not on it. Its enforcement page says this strike-based system applies to the following policies and names a set that does not include it either. Both lists were checked live on 23 September 2026, and Google can change either.

Google does ask you to clear it up rather than leave a pile of disapproved ads: if you cannot fix the violations, remove the ad to help prevent your account from becoming suspended in the future for repeated policy violations. If it is already suspended, start with the first 24 hours and why accounts get suspended.

Do not open a new Google Ads account to get round this.

Google says any new accounts that the advertiser tries to create may also be suspended, and its Circumventing Systems policy names creating multiple Google Ads accounts after getting suspended as a violation, which Google treats as egregious. Read why a new account makes things worse.

The appeal route

Before you write one, read what the appeal form asks and why appeals get rejected.

Frequently asked questions

My site loads perfectly. Why does Google say the destination is not working?

The check is a crawl, not a browser visit: Google says that if your website works for you but gets disapproved by Google Ads, your security settings, firewalls or CMS plug-ins might be blocking the automated crawl system.

Which user agents do I need to allow?

Both of them — Google’s instruction is to allowlist the AdsBot-Google and AdsBot-Google-Mobile user agents, with the full strings on its user agent page.

Does a robots.txt rule that blocks all crawlers block AdsBot too?

No — Google says AdsBot ignores the global robots.txt user agent with the ad publisher’s permission, so it takes a group naming AdsBot-Google.

Can I allow Google’s IP addresses instead?

You can, but Google warns that the user agent string can be spoofed and says to verify with a reverse DNS lookup on the accessing IP address, then a forward lookup back.

Should I turn my firewall or security plugin off?

No. In our experience it is the hosting’s security being over-secure for the crawler, and the fix is narrow enough for whoever runs your IT to make. Switching protection off wholesale swaps one problem for a worse one.

Gianluca Catinella, director of Ad Restore
Written by

Gianluca Catinella

Director, Ad Restore Ltd

Gianluca Catinella is the Director of Ad Restore Ltd. He has worked with businesses across a wide range of industries, managing high-spend Google Ads accounts and handling complex account suspensions — including some of the most challenging policy and reinstatement cases. His work covers Circumventing Systems Policy, Suspicious Payment Activity and Unacceptable Business Practices, along with advertiser verification, Merchant Center and Google Business Profile suspensions. He came to this work from the receiving end. Running Google Ads for his own first business, he had an account suspended and found almost no support available to explain what had actually been flagged or how to put it right. He spent the months that followed reading the policies properly — every suspension type, what reviewers look for, and what a successful appeal has to contain — and he now tracks Google’s policy changes as they ship. Automated enforcement has to cast a wide net to keep scammers and bad actors out, and legitimate businesses get caught in it. Gianluca’s job is the bridge from confusion to clarity: working out exactly which policy was triggered, fixing the underlying issue, and putting a clear, evidenced appeal in front of Google so the business can get back to trading.

More from the blog