ads.txt "Not Found": How to Fix It on Any Platform

Published · 8 min read

An ads.txt "Not found" warning is one of the most common alerts a publisher sees, and one of the most fixable. It usually means Google's crawler could not read your file at the exact address it expects, not that your site has done anything wrong. This guide walks through the checks in the order that solves most cases, covers WordPress, Blogger and site builders, and explains how long Google takes to notice the fix. If you want the background on what ads.txt is and which lines an MCM setup needs, read our guide to ads.txt and sellers.json first.

What "Not found" means

ads.txt (Authorized Digital Sellers) is an IAB Tech Lab standard. It is a public text file where you list the companies allowed to sell your ad inventory. Google's help center calls it not mandatory but highly recommended, because it helps buyers avoid counterfeit inventory.

When AdSense shows Not found on the Sites page, or Ad Manager shows "no ads.txt found" under Admin > Ads.txt management, Google is telling you its crawler did not get a valid file. Google's own help pages list a few reasons this happens even when a file exists:

  • the file is not at the root domain;
  • the root domain does not redirect to it correctly;
  • robots.txt or a firewall stops the crawler;
  • the server returns an error code instead of 200 OK;
  • the change is too recent to have been crawled.

There is a related status, Unauthorized, which means the file was found but your publisher ID is missing or wrong. That fix is different: copy the exact line from your account and add it.

In Ad Manager, ads.txt problems are one of the reasons a site can show Needs attention. Our guide on the Needs attention status covers the other causes.

Check 1: is the file at the root domain?

Google's crawler starts at the root domain. For AdSense, the file belongs at the address directly after your domain, for example example.com/ads.txt.

Ad Manager's help center defines the root domain as one level down from the public suffix list. A few examples based on Google's explanation:

  • example.co.uk is a root domain, because co.uk is a public suffix.
  • www.example.co.uk and blog.example.co.uk are not root domains, because www and blog are prefixes.

If you own more than one root domain, each one needs its own file.

The quickest test is the one Google recommends: type https://yourdomain.com/ads.txt into a browser. If you see your lines as plain text, the file is in roughly the right place. If you see your site's 404 page, a login screen or a home page, it is not.

Check 2: redirects, subdomains and www

Many sites live on www. and redirect the bare domain there. That is fine, as long as the redirect also covers the ads.txt address. Google's rule is direct: a file at www.domain.com/ads.txt will only be crawled if domain.com/ads.txt redirects to it.

What Google supports, according to its ads.txt FAQ:

  • Redirects within the same root domain. Several are allowed, for example example.com/ads.txt to www.example.com/ads.txt, or to example.com/page/ads.txt.
  • One redirect to a different root domain. For example example1.com/ads.txt to example2.com/ads.txt, but only one hop of that kind.

Two related checks:

  • HTTP and HTTPS. Google's crawler tries both. If the file only answers on one, set up a redirect from the other. Google notes that if the HTTPS request returns a 404, previously crawled entries can be purged even though the HTTP version works.
  • Subdomains. You usually do not need a file on each subdomain. Google enforces the root domain file. A subdomain file is only needed when its sellers or publisher ID differ, and then the root file must point to it with a line such as subdomain=shop.example.com.

Check 3: geofences, firewalls and bot blocking

Your file has to be readable by crawlers from anywhere. Ad Manager's help center says the ads.txt file must not be blocked by a geofence, and that it is publicly available and crawlable by exchanges, SSPs, buyers and other vendors.

Things to look at:

  • Country blocking. If your host or CDN blocks visitors from some regions, make sure /ads.txt is exempt.
  • robots.txt. Google gives two examples of rules that hide the file: Disallow: /ads for all crawlers (which also matches /ads.txt), and Disallow: / for Googlebot. Add Allow: /ads.txt or narrow the rule.
  • Security and bot protection. A challenge page, CAPTCHA or "checking your browser" screen in front of /ads.txt can stop an automated crawler just like a block. Ask your host or CDN to exclude the file.
  • Status codes. Google says the response must return HTTP 200 OK. If the header says 404, the file is treated as non-existent even if the text appears in the body. A 404 purges previously crawled entries; a soft 404 or a 500 server error keeps them for up to 5 days.

You can check the status code with your browser's developer tools (Network tab) or by asking your host.

Platform notes: WordPress, Blogger, site builders

The fix depends on how much access you have to the server.

WordPress. Google suggests using a plugin to create the file, and notes that a plugin you already use to place ads may include an ads.txt feature. If you have file access through your host, you can also upload a plain ads.txt file to the folder that serves your domain. After installing, open the address in a browser to confirm it shows plain text. Caching and security plugins can sometimes interfere, so test with them active.

Blogger. Google's ads.txt FAQ points Blogger users to the Blogger Help Center, since Blogger handles the file through its own settings rather than a file upload.

Site builders and hosted platforms. Some platforms do not let you place a file at the root. Google's advice is to contact your CMS provider, which should be able to host an ads.txt file for you. If the provider cannot, that is worth knowing before you plan a move to Ad Manager, because the file will matter even more once an MCM partner is involved.

A different domain for the file. If you redirect to a file hosted elsewhere, remember the one-hop limit for cross-domain redirects.

Validating the lines you added

A file that Google can reach can still be ignored if it cannot be parsed. Google's crawl guide asks you to look for typos, extra spaces, extra commas and invalid characters.

Each line follows the IAB format, with three required fields and one optional field:

  1. the domain of the ad system (for Google seller accounts, always google.com);
  2. your publisher ID (pub- followed by 16 digits, without prefixes such as ca-);
  3. the relationship, DIRECT or RESELLER;
  4. optionally, the certification authority ID.

A Google line looks like this, with your own ID in place of the zeros:

google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0

Practical validation steps:

  • Compare against your account. Copy the line from AdSense (Sites, then the site with the alert) or from Ad Manager, rather than typing it.
  • Use a plain text editor. Google warns that pasting from rich text editors can add hidden formatting. Save the file as plain UTF-8 text.
  • One line per account. If you monetize through more than one AdSense or Ad Manager account, each needs its own line.
  • Keep other partners' lines. If another network or partner gave you lines, leave them in. Removing them can break their access.

The IAB ads.txt 1.1 update also added optional OWNERDOMAIN and MANAGERDOMAIN variables. They do not fix a "Not found" status, but you may see them in files partners send you.

How long Google takes to recheck

Patience is part of the fix. Google's published windows:

  • AdSense: a few days for changes to show, and up to a month if your site makes few ad requests. Google asks you not to remove a correct file, because changes affect review time.
  • Ad Manager: new and updated files are detected automatically, but changes may take up to 48 hours. Domains that send ad requests are crawled at least once a day. A domain only appears in the Ads.txt management table once it has more than 100 queries in the last 7 days.

To nudge AdSense after a fix, go to Sites, click the site, and click Check for updates. If the status becomes "Authorized" and the site still needs a review, click Request review.

If you are waiting on ads.txt as part of a wider move to Ad Exchange, our AdSense to AdX timeline shows where this step fits.

What else to add after MCM

Once you join an MCM partner, your ads.txt file will need more than your own AdSense line. The partner will give you the exact lines for your setup, typically including its own Google publisher ID marked as RESELLER for the inventory it manages. Google's FAQ notes that domains with an ads.txt file that does not list the seller's publisher ID are no longer monetized through Ad Manager, which is why getting these lines right matters. Our guide to ads.txt and sellers.json explains each line and why it is needed.

Next step

A correct, crawlable ads.txt file is one of the basics we check before submitting a site for an MCM partnership. Once it shows as found and authorized, and your content and traffic meet Google's policies, eligible publishers may receive an MCM invitation, subject to Google's review.

Check the requirements or Get AdX access.

Frequently asked questions

Usually because the crawler has not been back yet. Google says changes can take a few days, and up to a month for sites with few ad requests. If the file opens at yourdomain.com/ads.txt with a 200 OK status, is not blocked by robots.txt and works on both HTTP and HTTPS, wait, then use Check for updates on the site's page in AdSense.

Not normally. Google reads the file on the root domain to decide which sellers may serve ads there. You only need a separate subdomain file if the authorized sellers or publisher ID differ, and then the root file must reference it with a subdomain= line.

The file must be reachable from the root domain, at yourdomain.com/ads.txt. Google does follow redirects within the same root domain, so yourdomain.com/ads.txt can redirect to another path on that domain. Simply placing the file in a folder without a redirect from the root address will not work.

In AdSense, Google says a few days, or up to a month for sites that make few ad requests. Ad Manager's help center says new and updated files are detected automatically but changes may take up to 48 hours, and domains sending ad requests are crawled at least once a day. Avoid repeatedly removing and re-adding the file, since changes affect review time.

Sources

  1. https://support.google.com/adsense/answer/12171612?hl=en
  2. https://support.google.com/adsense/answer/12171244?hl=en
  3. https://support.google.com/adsense/answer/7679060?hl=en
  4. https://support.google.com/adsense/answer/9785052?hl=en
  5. https://support.google.com/admanager/answer/7441288?hl=en
  6. https://support.google.com/admanager/answer/9422161?hl=en
  7. https://support.google.com/admanager/answer/9422067?hl=en
  8. https://support.google.com/admanager/answer/10130765?hl=en
  9. https://iabtechlab.com/ads-txt/

Related guides

Ready for AdX? Get access

Coming from AdSense? Set up your Ad Manager network, then apply with its code. Eligible publishers may receive an invitation from our MCM partner network, subject to Google's policies.

Get AdX access