Home / Guides / Troubleshooting
ads.txt not found? 9 reasons and how to fix them
By the ads-txt.in team · Published November 8, 2026
You uploaded ads.txt, but your ad network still says it cannot find it. Work through this list; one of these causes explains nearly every case.
1. The file is in the wrong folder
It must be at the root of the domain: https://example.com/ads.txt. A file at example.com/blog/ads.txt or example.com/public/ads.txt will not be found.
2. The file name is wrong
Common errors include Ads.txt, ads.txt.txt (Windows hides known extensions) and ads-txt.txt. The name must be exactly ads.txt in lowercase.
3. The site shows a page instead of the file
Some setups send every unknown address to the home page or a styled 404 page. If you see HTML instead of plain text, the file is not where the server expects. Our checker warns you when the response looks like a web page.
4. Root domain vs www
Crawlers usually request the root domain first. If your site is on www and the root domain does not redirect or does not work, the crawler fails. Make sure both example.com and www.example.com lead to the file.
5. HTTPS certificate problems
If your SSL certificate does not cover the root domain or has expired, crawlers using HTTPS cannot connect. Renew the certificate and include both the root and www names.
6. Firewall or bot protection
Security plugins, Cloudflare bot modes or server firewalls may block automated requests. Allow requests to /ads.txt.
7. Login or maintenance mode
A site behind a password, “coming soon” page or maintenance plugin returns that page to crawlers too.
8. Wrong status code
The file must return HTTP 200. Status 403 (forbidden), 404 (not found), 5xx (server errors) or a redirect loop all count as missing.
9. It simply has not been crawled yet
If everything checks out, wait. Ad systems recrawl on their own schedule. AdSense notes it can take days, and longer on low-traffic sites.
Still stuck?
Run our checker, which shows the final URL, redirects, status code and content type in one place, then validate the contents with the validator.