AdSense ads.txt Not Found: What to Fix First

AdSense ads.txt not found: File-Then-Crawl hosts the root file, proves crawl, fixes Unauthorized, then waits. Status meanings stay on the owner guide.

AdSense ads.txt Not Found: What to Fix First

AdSense ads.txt not found is a crawl problem first—not a content rewrite and not a second application. Google’s Sites list can show Not found when the crawler last checked and did not see a usable file at the root.

This page is File-Then-Crawl. It is not ads.txt for AdSense: what Authorized, Not found, and Unauthorized mean (that URL owns status definitions—read it early and keep it open). It is not AdSense review time (approval clock). It is not the approval checklist (before you apply).

Host a correct ads.txt at the domain root, prove it loads, then wait for AdSense to re-crawl—do not treat Not found as a secret RPM penalty.

Official: Ads.txt guide · Resolve common ads.txt issues · Ensure ads.txt can be crawled · Ads.txt statuses · Ads.txt troubleshooter. Menu labels in AdSense can change; trust the live Help article when something looks different in your account.

Disclosure: This guide explains AdSense connection hygiene. It does not promise earnings, RPM, or approval outcomes.

Table of contents

  1. File-Then-Crawl
  2. What Not found actually reports
  3. Fix the file before you blame the crawler
  4. Crawl blockers small blogs hit
  5. Unauthorized is a different branch
  6. Review time is not ads.txt time
  7. File-Then-Crawl checklist
  8. FAQ
  9. Prove the URL, then wait

File-Then-Crawl

        FILE-THEN-CRAWL
  1. COPY   → seller line from AdSense (exact pub- ID)
  2. HOST   → https://yourdomain.com/ads.txt returns 200 plain text
  3. PROVE  → open in a private window; www and apex both resolve
  4. UNBLOCK→ robots.txt / WAF / auth walls not blocking crawlers
  5. WAIT   → few days; low traffic can take longer (per Google)
  6. CHECK  → Sites → ads.txt status / “check for updates”

The original value here is the order. Most beginners jump to “Google hates my niche” or “I need a new AdSense account” while example.com/ads.txt still 404s. File first. Crawl second. Status dictionary third—on the Authorized / Not found / Unauthorized owner.

What Not found actually reports

Google’s site status article defines ads.txt statuses separately from approval statuses:

ads.txt statusPlain-language job
Not foundNo ads.txt found on the last AdSense crawl of this site
UnauthorizedPublisher ID missing from the file that was found—requests can be rejected
AuthorizedPublisher ID found; no action required for this column
Not applicablePlatform-managed file (some Direct setups)—ignore this column

Not found answers one question: did the crawler see a file? It does not answer “will I get paid this month,” “is my site Ready,” or “why are units blank.” Blank units belong on ads not showing. Approval waits belong on the review-time owner.

If Search Console or a third-party scanner mentions ads.txt, treat AdSense’s Sites column as the monetization source of truth for your publisher ID. Do not invent a separate “GSC ads.txt score.”

Fix the file before you blame the crawler

Work the hosting path in this order:

  1. Copy the line from AdSense. On Not found, Help points you to create the file and include your publisher ID. Prefer the Copy control in the Sites / Fix flow over typing from memory.
  2. Create plain text named ads.txt. Lowercase. No .txt.txt. UTF-8 without a BOM that breaks the first character is safest.
  3. Upload to the domain root that matches the site URL in AdSense—not a subdirectory, not a WordPress Media “attachment URL,” not a page titled “Ads.”
  4. Open the URL yourself. You should see a single seller line (or multiple partner lines if you use other networks) as text, not an HTML theme wrapper.
  5. Match www vs non-www. If AdSense lists https://www.example.com but only the apex serves ads.txt, fix redirects so both paths resolve cleanly. Google’s crawl article expects HTTP and HTTPS reachability with sensible redirects.

Typical AdSense-only line shape (confirm live Help; do not invent a shorter line):

google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0

Replace the zeros with your publisher ID from Account → Settings → Account information (find your publisher ID). The numeric ID in ads.txt is the pub-… form, not a random ca-pub paste into the wrong field—see publisher ID vs ca-pub / ad client. For placement of ad units, use WordPress AdSense code placement.

Crawl blockers small blogs hit

When the browser can open ads.txt but AdSense still says Not found, walk Google’s crawl checklist:

  • Timing. Fresh uploads need a re-crawl. Google’s common issues page says wait at least a few days; sites with few ad requests may take up to a month.
  • Temporary outages. Maintenance mode, “coming soon” plugins, or host-level 503s during the crawl window look like “no file.”
  • Root domain ownership. Subfolder blogs on someone else’s apex cannot always host ads.txt; Help’s troubleshooter covers top-domain cases—ask the host or use a subdomain referral when applicable.
  • robots.txt. Disallow rules that block /ads.txt or overly broad paths can stop the Google ads.txt crawler.
  • Non-200 responses. Soft 404 HTML pages, login walls, and challenge pages fail the “HTTP 200 OK” expectation.
  • Formatting. Extra commas, wrong publisher ID, or invalid characters can break verification even when a file exists—compare against the Copy line in AdSense.

Do not remove the site from AdSense and resubmit solely to “refresh” ads.txt. That habit delays approval review (review-time owner) and does not magically speed seller-file crawls.

Unauthorized is a different branch

If the column already flipped from Not found to Unauthorized, the crawler found a file—your publisher ID is missing or mistyped inside it. Google says all ad requests from that site can be rejected until the ID appears correctly. Open Sites, use Copy, paste into the existing file, republish, wait again.

Unauthorized is not “Google banned my niche.” It is seller declaration hygiene. After the file is correct and Authorized, ads still need valid units and a Ready (or otherwise eligible) site path—see ads not showing if the column is clean but slots stay blank.

Review time is not ads.txt time

Keep the columns mentally separate:

Column familyOwner URL on CashPilotYour job
Approval (Requires review / Getting ready / Ready / Needs attention)Review time / pendingWait + connection tasks
ads.txt (Not found / Unauthorized / Authorized)Status meanings + this triageFile + crawl
Before applyChecklistEligibility

Mixing them creates panic loops: rewriting ten posts because ads.txt 404s, or uploading ads.txt because Getting ready feels slow. Different tools for different jobs.

File-Then-Crawl checklist

Use this once, then stop poking daily:

  • Seller line copied from AdSense (publisher ID matches Account information)
  • https://your-listed-domain/ads.txt opens as plain text (200)
  • Apex and www both reach the same file via redirects if needed
  • HTTP↔HTTPS redirects do not drop the file
  • robots.txt does not disallow ads.txt
  • No maintenance / auth wall on the root
  • Waited the multi-day window Google documents; used Sites check-for-updates if offered
  • If Unauthorized: ID present and typo-free; not a second empty file elsewhere

FAQ

What does ads.txt Not found mean in AdSense?

Google’s site-status help says Not found means no ads.txt file was found when the AdSense crawler last crawled the site. Fix reachability at the root URL before you rewrite content or open a second account.

Is Not found the same as Unauthorized?

No. Not found means the crawler did not see a file. Unauthorized means ad requests are rejected because your publisher ID was not found in the file that did load. Both need a correct root file, but the triage order differs.

Where should ads.txt live?

At the root of the domain you monetize—https://example.com/ads.txt—not inside /blog/, a theme folder, or a random CMS page. Confirm the live URL returns the plain-text seller line in a normal browser.

How long after I upload does AdSense update ads.txt status?

Google’s common-issues help says changes may take a few days, and low ad-request sites can take up to a month. Use Sites → check for updates rather than deleting and re-adding the site to “force” a crawl.

Can robots.txt block ads.txt?

Yes. Google’s crawl guidance warns that disallow rules can keep crawlers from reading ads.txt. Open /robots.txt and remove blocks that forbid /ads.txt or broad paths that swallow it.

Does ads.txt Not found mean my site failed review?

No. Approval status and ads.txt status are separate columns. Review timing lives on the review-time owner. A missing seller file is connection hygiene, not a rejection email.

What line should AdSense put in ads.txt?

Copy the exact line from your AdSense Sites flow or ads.txt guide. The pattern Google documents uses google.com, your pub- ID, DIRECT, and the certification authority ID shown in Help—do not invent a shortened version.

Is this the page that explains Authorized vs Not found?

No. Status column meanings are owned by ads.txt Authorized meanings. This URL is the File-Then-Crawl fix order when Not found or Unauthorized is already showing.

Prove the URL, then wait

Open your ads.txt in a private window. If strangers cannot load it, neither can Google’s crawler. Fix hosting and robots first, keep the exact publisher line, then give AdSense the multi-day window Help describes. For what each status word means, stay on the status owner. For the approval clock, use review time. For theme paste issues after the file is Authorized, use WordPress placement.

Keep learning

More guides in the same topic lane.

Make Money Online5 min read

PDF to Text or PDF to Word: Which Job?

Need copy-paste plain text from a PDF or an editable Word file? Choose PDF to Text vs PDF to Word before upload—format, cleanup, and live tool links.

Make Money Online6 min read

JPG to PDF or Protect PDF: Which Job First?

Photos still need a PDF packet, or the PDF only needs a password? Route JPG stacks vs Protect PDF before you lock the wrong file or skip the build step.