All Base44 prompts
MonetisationVerified 14 Sept 20263 min read

Does Google AdSense work with Base44?

Yes, it works — but four Base44 defaults break it. "Site doesn't exist" almost always means you gave AdSense the *.base44.app URL instead of your own domain, or the crawler hit a login wall and gave up.

What you’re seeing

“Google AdSense say website doesn't exist”

Start here

Check these first

Sixty seconds, no AI. Most people are fixed by one of these and never need the prompt below.

  1. 1

    Open the site in a private window. Does it load without logging in? "Site requires login credentials" is one of Google's documented reasons a site connection fails — the crawler hits the wall and gives up.

  2. 2

    Check which URL you gave AdSense. If it was the *.base44.app one, that is almost certainly your answer. Base44's own docs say the free URLs "are not intended for long-term, production SEO". Connect a custom domain, wait for it to resolve with a valid certificate, and submit that.

  3. 3

    Open yourdomain.com/robots.txt. It should load, and it should not be blocking crawlers.

  4. 4

    View source on the homepage. The AdSense snippet has to sit between <head> and </head> in index.html — the Code tab. A tag injected from a React component is not in the HTML the crawler first receives.

  5. 5

    Open yourdomain.com/ads.txt. It is a file, not a route. Put it at public/ads.txt with one line: google.com, pub-XXXXXXXXXXXXXXXX, DIRECT, f08c47fec0942fa0. If it does not render as plain text in a browser, it is not there.

  6. 6

    Then wait. Google says review is usually a few days but can take 2–4 weeks, and a new ads.txt can take several days — up to a month on a low-traffic site — to be crawled. Do not resubmit in a loop.

No prompt needed

Set this in your dashboard

Base44 dashboard, not the builder chat

Two dashboard settings matter here, and neither is in the builder chat.

Dashboard → SEO & GEO → Advanced Settings → per-page indexing. Noindex the pages that would embarrass you in a policy review: thank-you pages, checkout confirmations, anything half-built, anything behind a login. AdSense reviews the whole site, and a handful of thin pages is a common reason for a rejection that people then misread as a technical fault.

Dashboard → Domains. Confirm your custom domain is connected and set as the preferred URL. This is the same domain you submit to AdSense — not the *.base44.app one — and getting these two out of step is the single most common cause of "site doesn't exist".

The rest of AdSense setup lives in files, not settings: public/ads.txt and the snippet in index.html via the Code tab.

The cause

Why this happens on Base44

Google publishes the reasons a site connection fails: the code is not on pages that get traffic, the code is missing or in the wrong place, the wrong site URL was given at signup, the site is offline or unpublished, the site requires login, or the crawler is blocked by robots.txt.

Read that list next to how a Base44 app ships and it is almost a one-to-one match:

  • You get a *.base44.app URL before you get a domain. It is the URL in front of you when you go to sign up, so it is the one that gets pasted in. It is not the site you own.
  • The app is still reachable on that subdomain after you add a custom domain. Two live copies of the same site — verify and submit only the one you own.
  • Auth is on by default in most templates. Fine for an app, fatal for a crawler. Public pages have to render signed-out.
  • Everything is React. Anything you add from inside a component lands after the first HTML response. The AdSense snippet and the verification meta tag both belong in index.html.
  • Anything that has to live at the domain root goes in public/. That is where ads.txt, robots.txt and a Google verification HTML file belong. A React route that renders the text of ads.txt is not an ads.txt file.

The fifth one catches almost everybody, because a route looks like it works — you can open the URL and see the text.

The prompts

Then run this

Paste into your Base44 builder chat. The first one only reads — it changes nothing, so it is safe to run on a live app.

Open Base44, opens in a new tabBase44 links on this page are affiliate links. If you sign up through one, Dean may earn a commission at no extra cost to you.
Step 1 — safe to run

The audit prompt — read only, changes nothing

Audit this Base44 project for Google AdSense readiness and search crawlability.

READ ONLY. Do not edit, create or delete any file. Do not run any build or install
step. If you believe something should change, describe it — do not do it.

EVIDENCE RULE — this governs everything below.
Every finding must carry one of:
  [CODE]   a file path and line number in this project
  [LIVE]   a URL you fetched, with the HTTP status code you received
  [UNVERIFIED]  you could not check it from here
You may not report PASS, OK or "looks good" for anything you have not evidenced.
If you cannot verify something, the answer is UNVERIFIED. Never guess, and never
infer that something works because it is conventional or because the code looks
like it should.

SCOPE
Audit the published site and the project code. Do not stop at the homepage.

…

77 lines · 3,596 characters

Step 2 — this one writes

The fix prompt — run this second

Using the audit you just produced, implement the fixes. The audit was read-only;
this turn is the only one that writes.

Order:
  P0  blocks AdSense verification, crawling, indexing, or normal operation
  P1  SEO, mobile, accessibility, performance, content structure
  P2  worthwhile, not blocking

Implement every P0 and P1 that can be changed safely inside this project.

Do not:
  - modify entity schemas, RLS rules, auth configuration or payment flows
  - delete pages
  - add npm packages
  - redesign working pages or rewrite good copy to chase a score
  - act on any finding marked UNVERIFIED — list it for me instead

After each group of changes, re-read the affected files and confirm the issue is
…

27 lines · 1,038 characters

Run this only after you have read the audit above, and only when you are happy for it to change files.

Step 3 — prove it

The verification prompt — prove it before you submit

Verify the fixes actually landed. Do not trust the previous turn's report.

FETCH EACH OF THESE FRESH AND REPORT THE RAW RESULT
  1. The custom domain root: HTTP status code, and whether it loads signed-out.
  2. /ads.txt: status code and the full contents, verbatim.
  3. /robots.txt: full contents. Does it allow Googlebot, AdsBot-Google and
     Mediapartners-Google?
  4. The homepage HTML: is the AdSense script present between <head> and
     </head>? Quote the line. Say explicitly whether it is in the served HTML
     or injected later by a component.
  5. /sitemap.xml: status code and URL count.

For each, say PASS or FAIL against what the fix turn claimed. Where the fetch
and the claim disagree, the fetch wins — say so plainly and show the value.
Anything you could not check from here is UNVERIFIED, never PASS.

THEN, THE ONE THAT DECIDES IT
Count the indexable public routes and the words of main content on each.
…

24 lines · 1,199 characters

An agent that reports its own work as done is not evidence. This pass re-checks from outside the change.

Over to you

What this can’t fix

Manual, every time

Three things no prompt can settle for you.

1. Consent, if you have any UK or EU traffic. Google has required a certified CMP integrated with the IAB TCF for serving personalised ads to users in the EEA and the UK since 16 January 2024, and in Switzerland since 31 July 2024. Without one you are not cut off — the traffic stays eligible for non-personalised and limited ads — but you are leaving money on the table.

The part most people have missed: TCF v2.3 became mandatory on 28 February 2026. Consent strings created after that date without the disclosedVendors segment are treated as invalid, and those ad requests fall back to limited ads. If your CMP still emits v2.2 strings, that is a live revenue problem, not a future one. Check with your CMP provider, not with your builder agent — this is not something it can verify.

2. Content volume. A fresh Base44 app is a handful of screens, and AdSense wants "high-quality, original" content that attracts an audience. The audit prompt will count your routes and words for you; it deliberately will not grade them, because that call is yours. If most pages are under 300 words, fix that before you apply — a rejection puts you back in the queue.

3. Search Console. Add the property, submit the sitemap, and run URL Inspection → Test live URL on a couple of real pages to see the HTML Google actually receives. That is the only way to know your pages render for a crawler rather than just for you.

Straight there

Someone else hitting this? Send it to them

Asked in the Base44 Discord, 14 Sept 2026. Facts on this page verified 14 Sept 2026. v1. Google and Base44 both change things — if something here has gone stale, tell me.

The Vault

You've seen the apps. Take the prompts.

Anyone can describe an app to an AI and get something back. The difference is in the structure — and the structure is what's written down in here.

Every build prompt on this page

Full text, not summaries. Copy and run.

313 production Claude skills

Installed, organised, documented.

The scaffold and the method

How the prompts are structured, so you can write your own.

Unlock the Vault — £79/mo

Cancel any time. Or read the free prompts first — they're the same standard as the paid ones, which is rather the point.

One paragraph is plenty

Tell me what you are
trying to ship

Send me the problem itself rather than a polished brief. I will tell you whether I can help, and whether it needs me at all.

Keep it short. Voice notes under 2 mins welcome. My ADHD brain thanks you.

Or find me on LinkedIn

I collect social icons like Pokémon cards — I have them but don't use them. But if you want real connection, let's meet over good food.