How to test what Googlebot and AI crawlers get from a Base44 app
Commands to test your Base44 pages as Googlebot, GPTBot and other crawlers: detect the seo-snapshot fallback, check renders, record pages, the sitemap and link previews.
8 min read
To check a Base44 page, request it with a crawler’s user agent and look for Base44’s fallback block, id="seo-snapshot". If the block is in the response, the crawler got an auto-written summary. If it’s missing and your page’s real text is there, it got the pre-rendered page. Base44 decides by user agent, and every recognized crawler gets the same cached copy, so this test shows what that crawler is served right now. Run it again after each publish, since renders come and go.
For the background, see how Base44 pre-rendering works.
Test 1: one page, one crawler
UA='Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'
curl -s -A "$UA" https://yourdomain.com/pricing -o page.html
grep -c 'id="seo-snapshot"' page.html # 1 = summary, 0 = rendered
grep -ci 'a phrase from your real page' page.html
Use a phrase that only exists in the page’s real content, like a product name or a sentence from the body. The summary never contains it.
Test 2: every page in your sitemap
UA='Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'
for u in $(curl -s https://yourdomain.com/sitemap.xml | grep -o '<loc>[^<]*</loc>' | sed 's/<[^>]*>//g'); do
curl -s -A "$UA" "$u" | grep -q 'id="seo-snapshot"' && echo "SUMMARY $u" || echo "rendered $u"
sleep 1
done
Every SUMMARY line is a page crawlers currently get as Base44’s generated summary. Requesting it again won’t change that: in our tests, pages requested every 10 seconds for four minutes stayed on the summary. In a test of 47 live Base44 sites, 31% of inner pages were summary-only after two passes, and a day later 13 of 44 rendered pages had gone back to the summary. The monitoring guide turns this into a script you can schedule.
Test 3: several crawlers
for ua in 'Googlebot/2.1' 'bingbot/2.0' 'GPTBot/1.2' 'ClaudeBot/1.0' 'PerplexityBot/1.0' 'Bravebot/1.0' 'meta-externalagent/1.1'; do
printf '%-24s ' "$ua"
curl -s -A "Mozilla/5.0 (compatible; $ua)" https://yourdomain.com/ | grep -q 'id="seo-snapshot"' && echo summary || echo rendered
done
On a page with a render, the first five should say rendered, and Bravebot and Meta’s crawler summary. That’s Base44’s recognition list; see the crawler list.
Test 4: a record page
Pick a page that shows one record, such as a product or listing:
curl -s -A "$UA" 'https://yourdomain.com/ProductDetail?id=abc' \
| grep -oE '<title>[^<]*</title>|<meta name="description"[^>]*>|id="seo-snapshot"'
If the title is the generic page name and the same on every record, see the record pages guide.
Test 5: the sitemap
curl -s https://yourdomain.com/sitemap.xml | grep -o '<loc>[^<]*</loc>' | sed 's/<[^>]*>//g'
Look for two things: utility pages that shouldn’t be there (login, reset-password, admin), and record pages that should be but aren’t. Base44’s sitemap lists page files only.
Test 6: link previews
curl -s -A 'Slackbot-LinkExpanding 1.0 (+https://api.slack.com/robots)' https://yourdomain.com/pricing \
| grep -oE '<meta (property|name)="(og|twitter):(title|description|image)"[^>]*>'
Each shared page should have its own title, description and image.
What to do next
- Run tests 2 and 4 on your own site.
- Note which pages stay on
summaryand whether record titles are generic. - Pick a fix from the options guide.
Frequently asked questions
- How do I see my Base44 site as Googlebot?
- Request the page with Googlebot's user agent, for example curl -A 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)' followed by your URL. Base44 decides what to serve by user agent, so this returns the same response Googlebot gets.
- How can I tell if a Base44 page was pre-rendered?
- Search the response for id='seo-snapshot'. If it's there, the request got Base44's generated summary. If it's missing and the page's real text is present, the request got the pre-rendered page.
- Why do my results change between two tests?
- Base44 serves renders from a cache that it fills in the background on its own schedule, and renders expire. A page can switch from summary to rendered, or back, between checks. Requesting it doesn't change which one you get.
- Can I use Screaming Frog to check a Base44 site?
- Only with a crawler user agent. With its default user agent, Screaming Frog always receives Base44's summary. Set the user agent to Googlebot in its configuration, and remember that any page without a cached render will still show the summary.
Read next
Keep going
-
Pre-rendering Base44 apps: the complete guide
Does Base44 pre-render pages for Google and AI crawlers? Only from a cache. How Base44 pre-rendering works, where it leaves gaps, and every way to prerender a Base44 app.
-
Which crawlers Base44 pre-renders for, and which it skips
We tested 33 user agents against live Base44 pages. Googlebot, Bingbot, GPTBot, ClaudeBot and PerplexityBot get renders. Bravebot, Meta and Search Console's tester don't.
-
Why Search Console's live test misreads Base44 pages
On Base44, Search Console's Test live URL and the Rich Results Test get an auto-generated summary instead of your page. Why it happens and how to see what Googlebot got.
-
Can you warm Base44's pre-render cache? We tested it
Requesting Base44 pages with a crawler user agent doesn't make Base44 render them. Our cache tests, a script to monitor which pages serve the summary, and the fixes that work.