ads.txt
Ads.txt status: Not found
It reads like a revenue emergency. Usually it is a one-line text file in the wrong place, and Google's own status table keeps it apart from the status that actually stops ads.
By Mario Bailey · Published
Google's definition: "No ads.txt file was found when the AdSense crawler last crawled this site." Note the last part. The status describes the last crawl, not your server right now, so a file you uploaded yesterday can still show as Not found.
If an alert about earnings at risk sent you here: Google's help pages do not print that alert's wording, so we will not quote it. What they do say is that an ads.txt problem puts an alert in your account, with a Fix now button on the homepage, and that you should act "To prevent any impact to your revenue."
What ads.txt is
Authorized Digital Sellers, or ads.txt, is an IAB Tech Lab initiative: a public text file at your domain root that lists who may sell your ad inventory. Google says using one "is not mandatory, but it's highly recommended," because it helps buyers spot counterfeit inventory.
The four ads.txt statuses
| Status | What Google says it means |
|---|---|
| Not applicable | The file is managed by a platform. "No action is required." |
| Not found | "No ads.txt file was found when the AdSense crawler last crawled this site." |
| Unauthorized | "All ad requests from this site are being rejected because your publisher ID was not found in this site's ads.txt file." |
| Authorized | "Your publisher ID was found in this site's ads.txt file." |
Read the Unauthorized row twice. A file that exists but leaves out your publisher ID is worse than no file: Google rejects every ad request from the site. Google attaches no such line to Not found.
Does Not found block approval or cost money?
Approval. Google lists the ads.txt snippet as one of three ways to connect a site to AdSense, alongside the AdSense code snippet and a meta tag, and its ads.txt guide calls the file optional. Neither article says a missing file stops approval on its own. But if you chose the ads.txt snippet to connect the site, the file is your proof of ownership, and a missing one leaves Google nothing to verify. That case belongs with Needs attention.
Money. Google says advertisers using some of its products "now have the option to only bid on inventory from sellers that are classified as authorized through ads.txt." With no file, your site cannot reach Authorized, so that demand can sit out. Google does not publish how much it costs.
The line Google tells you to use
google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0
Replace the zeros with your own publisher ID. Field by field: google.com is always the domain for Google seller accounts. Your ID is the pub- prefix plus 16 digits, and Google says to delete product prefixes such as ca-, which is an easy slip when you copy from the ad code. DIRECT means you control the account yourself. f08c47fec0942fa0 is an optional fourth field, Google's identifier with a certification authority.
Better than typing it: click Fix now on the alert, or open Sites, click the site, choose the Ads.txt snippet option, and click Copy. Any other network that sells your inventory needs its own line, from that network.
Where the file must live
- At the root: example.com/ads.txt, not inside a folder. In Google's words, "Ads.txt crawling will start at the root domain."
- www sites: a file at www.example.com/ads.txt is crawled only if example.com/ads.txt redirects to it.
- Both protocols: Google tries HTTP and HTTPS. If only one serves the file, redirect the other to it, because a 404 on either can purge your entries.
- Redirects: one hop to a different domain is supported; several hops are fine as long as each stays within the original root domain.
- Subdomains: Google enforces a subdomain's own file when the root file references it with a subdomain= line. You only need that when the seller or publisher ID differs from the root's.
Why Google misses a file you can see
Google's own test is a browser: if the file displays at your URL, "it's likely that AdSense will successfully find it." Likely, not certain. These are the usual gaps.
- Too soon. Changes can take a few days, and up to a month on sites that make few ad requests. Google also says not to remove a correct file, because changes "will affect the review time."
- An HTML page instead of the file. Some setups answer any unknown URL with a normal page and a 200 status, which Google calls a soft 404. The crawler gets a web page, not your lines. The reverse fails too: if the status code says 404, Google ignores the response even when the body holds the file.
- robots.txt. Google's own example: a rule of Disallow: /ads also blocks /ads.txt. Its suggested fixes are Disallow: /ads/ or an explicit Allow: /ads.txt.
- A firewall or bot protection. Google's crawler troubleshooting lists blocking the ads crawler through a web application firewall, and the fix is to let the crawler through. A challenge page is not a 200 with your file in it.
- Formatting. Rich text editors can carry hidden formatting, so Google recommends a plain text editor and checking for typos, extra spaces, and stray commas.
- A CMS that will not let you write to the root. Google's answer is to ask the CMS provider to host the file for you. On WordPress it suggests a plugin; Blogger has its own instructions.
Checking it yourself
Google's checks are the browser test above, the Check for updates button on the site's page under Sites, and its Ads.txt troubleshooter. From a terminal, two commands show what a crawler gets:
curl -sI https://example.com/ads.txt curl -sIL http://example.com/ads.txt
The first should come back 200. The second prints every redirect hop from the bare HTTP address. Then open the file itself and confirm it starts with your google.com line, not an HTML tag. Our free site scan checks presence and validity in one pass.
The fix, in order
- Copy your line from AdSense, via Fix now or the site's Ads.txt snippet option.
- Save it in a plain text file named ads.txt, plus lines for any other network that actually sells your inventory.
- Upload it to the root and confirm it loads with a 200 on HTTP and HTTPS, bare domain and www.
- Ask AdSense to look again: open Sites, click the site, click Check for updates.
- Wait. A few days, up to a month for sites with few ad requests. Do not keep editing a correct file.
- Then finish the loop. If the status is Authorized and the site still requires a review, click Request review. If the site is Ready and your ads are set up, Google says ads can take up to an hour to appear.
Present is not enough: it has to be true
ads.txt is a declaration to Google and to every buyer. Google's Dishonest declarations policy gives inaccurate information "in the ads.txt file" as an example of a violation. A missing file is a status; a wrong file is a policy problem. List only sellers you actually authorize, and remove networks you have left. The policy is explained in Dishonest declarations.
It is the dullest fix in AdSense and one of the better ones: a file that tells buyers the truth about who sells your pages.
Check your ads.txt Site status: Needs attention
Sources: Google, Check the status of your AdSense sites; Ads.txt guide; Ensure your ads.txt files can be crawled; Ads.txt FAQs. Quotations are Google's. Current as of October 2026.