|
Getting your Trinity Audio player ready... |
If Google AdSense shows “ads.txt not found” or your site remains stuck on “Getting ready” for days or weeks, the issue is often not that ads.txt is missing.
In most real cases, the file exists — but Google cannot access it correctly due to redirects, plugins, CDN caching, or site connection problems.
This guide explains every real reason AdSense fails to detect ads.txt and provides permanent fixes that work on Hostinger, cPanel, Apache, WordPress, and CDN-based setups.

✅ Key Takeaways
- Ads.txt must be directly accessible at the root without interference.
- Wrong redirects (www / non-www / http / https) are the #1 cause.
- Plugins and auto-generated ads.txt files frequently break detection.
- AdSense site connection issues can silently block verification.
- Cache, CDN, and security layers must allow crawlers to fetch ads.txt.
⭐ What Is Ads.txt and Why It Matters
Ads.txt (Authorized Digital Sellers) is a plain text file placed in your site’s root directory:
https://yourdomain.com/ads.txt
It tells ad platforms who is authorized to sell ads on your site.
Each line includes:
- Ad system domain (e.g., google.com)
- Publisher ID
- Relationship type (DIRECT / RESELLER)
- Certification ID (optional)
If Google cannot read or verify this file, AdSense may:
- Delay ad serving
- Limit demand
- Keep the site in “Getting ready” state
- Show persistent warnings in the dashboard
❗ All Real Reasons Why AdSense Says “ads.txt Not Found”
1️⃣ WWW vs Non-WWW Mismatch (Most Common)
Google treats these as different sites:
https://example.com/ads.txthttps://www.example.com/ads.txt
If one works and the other returns 404, AdSense may fail verification.
✅ Fix: Force one canonical version using server redirects (shown below).
2️⃣ HTTP to HTTPS Redirect Issues
If:
http://example.com/ads.txtfails- but
https://example.com/ads.txtworks
AdSense crawlers may still flag it during checks.
✅ Fix: Redirect HTTP → HTTPS globally.
3️⃣ Plugin-Generated Ads.txt (Major Hidden Problem)
Plugins like:
- Google Site Kit
- Ad management plugins
- Header/footer injectors
can serve a virtual ads.txt, which often:
- Breaks during cache
- Fails on CDN
- Gets blocked by security rules
❌ This is unreliable
✅ Best practice: Use a real physical ads.txt file only.
4️⃣ AdSense Site Not Fully Connected (Very Important)
Even with a perfect ads.txt file, AdSense may fail if:
- The site is not fully connected in AdSense
- Ownership verification is incomplete
- You changed domain, protocol, or subdomain
✅ Fix that works:
- Go to AdSense → Sites
- Remove the site completely
- Re-add the site
- Choose “I’ll add ads.txt manually”
- Upload the new file again
➡️ This reset has fixed detection issues permanently in many real cases.
5️⃣ CDN or Cache Blocking ads.txt
Cloudflare, LiteSpeed, or other CDNs may:
- Cache an old 404 response
- Block bots from fetching text files
- Serve different versions per edge
✅ Fix:
- Purge entire CDN cache
- Disable “Bot Fight Mode” temporarily
- Ensure ads.txt is not blocked by firewall rules
6️⃣ Wrong File Location or Name
Common mistakes:
- Uploaded inside
/wp-content/ - Named
ads.txt.txt - UTF-8 BOM or hidden formatting
✅ Correct setup:
- Location:
/public_html/ads.txt - Plain text only
- No HTML, no extra spaces
🔧 Permanent Server Fix (Apache / Hostinger)
Force WWW → Non-WWW (Recommended)
Add this at the very top of .htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]
Why This Works
- Ensures one canonical domain
- Covers all files, including ads.txt
- Prevents crawler confusion
- Transfers SEO value properly
🔄 Fix Plugin Conflicts (Critical Step)
Correct Method
- Delete any plugin that manages ads.txt
- In AdSense, click Fix Now
- Download the official ads.txt file
- Upload it manually to root directory
- Test the URL directly
📌 Rule:
Ads.txt must be a real file, not plugin-generated.
🧹 Clear Cache After Fixing ads.txt
Do all of the following:
- Clear WordPress cache
- Purge CDN cache
- Clear browser cache
- Wait 24–48 hours for AdSense recheck
🧪 Final Verification Checklist
✔ ads.txt opens instantly at root
✔ Same content on www & non-www
✔ HTTP redirects to HTTPS
✔ No plugin serving ads.txt
✔ CDN allows crawler access
✔ Site is fully connected in AdSense
🏁 Conclusion
The ads.txt not found error is rarely about the file itself.
It is almost always caused by redirect conflicts, plugins, cache layers, or incomplete AdSense site connections.
The most reliable solution is:
- One canonical domain
- One physical ads.txt file
- No plugin interference
- Clean cache and CDN
- Proper site reconnection in AdSense
When ads.txt is single, reachable, and uncached, AdSense detects it quickly and ad serving stabilizes.

Arsalan Malik is a passionate Software Engineer and the Founder of Makemychance.com. A proud CDAC-qualified developer, Arsalan specializes in full-stack web development, with expertise in technologies like Node.js, PHP, WordPress, React, and modern CSS frameworks.
He actively shares his knowledge and insights with the developer community on platforms like Dev.to and engages with professionals worldwide through LinkedIn.
Arsalan believes in building real-world projects that not only solve problems but also educate and empower users. His mission is to make technology simple, accessible, and impactful for everyone.
Join us on dev community

