Why AdSense says "ads.txt: Not found" — and why it's not your fault
By Alva · Oct 10, 2026 · 8 min read
I opened AdSense and saw a yellow warning next to my site: ads.txt — Not found.
I checked my file. It was there. I could open it in my browser. Right ID, right domain, right place.
So I did what everyone does. I pasted the line in again. I cleared my cache. I waited.
Nothing changed.
Then I looked at my server logs. Then it made sense.
What ads.txt is
A small text file at yoursite.com/ads.txt. Inside is one line:
google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0
It tells the ad world: only these people may sell my ad space.
That's it. It's a guest list on your door.
It is not required to get approved. Google calls it "not mandatory, but highly recommended." So if you are waiting for approval, this file is not what is holding you up.
What "Not found" really means
Google's own words:
"No ads.txt file was found when the AdSense crawler last crawled this site."
Read the end again. When the crawler last crawled this site.
It does not say your file is missing.
It says: when we last looked, we didn't find one.
The order things happen in
This is the part almost nobody explains, and it is the whole answer.
Approval comes first. "Authorized" comes after.
Google says it here:
"It may take a few days for AdSense to automatically crawl and verify your ads.txt file... If your site doesn't make many ad requests it may take up to a month."
What an "ad request" is
An ad request happens when a page on your site asks Google for an ad to show.
If no ads are showing, there are no ad requests.
And if there are no ad requests, Google has very little reason to come and read your ads.txt file.
So the file sits there. Correct, live, and unread.
That is why a brand new site sits on Not found for weeks. Not because anything
is broken — because nothing has asked for an ad yet.
Why your traffic alone doesn't fix it
A common mistake is thinking "once I get visitors, it will update."
Visitors only matter after ads are showing. A site with 50,000 visitors and no
ads makes zero ad requests. It stays on Not found.
Approval is the trigger. Traffic only makes it faster afterwards.
How to check this yourself
You do not have to take my word for it. Your own server keeps a record of every visitor — including Google's.
Step 1. Find your server logs. On most servers they are in
/var/log/nginx/access.log.
Step 2. Search them for these two names:
Mediapartners-GoogleGoogle-Display-Ads-Bot
Those are Google's ad crawlers. They are not Googlebot, the crawler that reads your site for search. Two different robots, two different jobs.
Step 3. Count them.
Here is what my logs showed for the same server:
[SCREENSHOT — your server log, showing Googlebot hits and zero ad-crawler hits]
Googlebot: 8,863 visits.
The ad-checker: zero. Never once.
My file was never broken. Nobody had read it.
Five things that make Google ignore your file
Not found is usually just a matter of waiting. But there are five real reasons
Google will ignore an ads.txt file completely. Worth checking:
1. Your robots.txt blocks it. This is the one people miss. If your robots.txt disallows the crawler or the path, the file is not merely uncrawled — it is ignored. Google's own example:
User-agent: Googlebot
Disallow: /
"This means that the ads.txt file will be ignored by the Google crawler."
2. It is not at the root. It must be yoursite.com/ads.txt. Not
yoursite.com/files/ads.txt. Google starts at the root domain.
3. It does not return a 200. If the page returns 404, the file is treated as non-existent — even if the text is right there in the response.
4. It only works on one protocol. Google checks both http:// and https://.
If one of them fails, the entry gets thrown away. Yours should redirect HTTP to
HTTPS.
5. Formatting errors. Extra spaces, stray commas, or pasting from a rich text editor. Google's advice: "Avoid copying and pasting ads.txt entries from rich text editors... use a plain text editor."
The one status that IS bad
Not found costs you nothing. It is a label, not a punishment.
There is one other message that sounds almost the same — and this one is a problem:
Unauthorized— "All ad requests from this site are being rejected because your publisher ID was not found in this site's ads.txt file."
That one means ads are not showing and you are not earning.
Not found is not that.
Do not keep editing the file
This one surprises people.
"Don't remove your ads.txt if it is correctly set up. Any changes made to your ads.txt file will affect the review time."
Every time you touch the file, the clock restarts. So if you have already checked that it loads in your browser — stop. Leave it.
What to do
- Put the file at the root:
yoursite.com/ads.txt - Copy the line straight from your AdSense account
- Open the URL in your browser. If you can see it, it is published correctly
- Check your robots.txt is not blocking it
- Then leave it alone
Questions people ask
Will this stop me getting approved?
No. Google says ads.txt is "not mandatory." You get approved with Not found
showing.
Should I delete it and add it again? No. Every change restarts the review clock.
My site has no visitors at all. Is that the problem? Not directly. The problem is having no ads showing. That comes after approval.
How long does it take? Google: "a few days," but "if your site doesn't make many ad requests it may take up to a month."
Is Not found the same as Unauthorized?
No. Unauthorized means ads are being rejected. Not found means nobody has
looked yet.
The short version
- Your file is probably fine
Not foundmeans Google has not read it yet- Google reads it after approval, when ads start showing
- It fixes itself
- Stop editing the file
- Go write something instead
Sources
Everything above is quoted from Google's own documentation: