Base44 SEO starts from a working foundation. On custom domains, the platform serves search engines and AI crawlers a prerendered version of each page, with real headings, content, meta tags and structured data. It also generates sitemap.xml, robots.txt, canonical tags and breadcrumb schema. Best practice is the part Base44 leaves to you: per-page meta descriptions, schema beyond the basics, indexing controls, Search Console, and content worth ranking.
What Base44 handles for SEO automatically
An earlier version of this guide said Base44 apps needed an SSR proxy in front of the platform before Google could index them. That does not match the platform today. Base44's SEO documentation (read 23 September 2026) says: "Base44 apps are client-side rendered (CSR) for user interactions, but the platform automatically serves crawlers a rendered version of your pages, including meta tags, structured data, and your real page content." If a page's rendered version is not ready yet, crawlers get "a structured snapshot carrying that page's heading, its description, and links to your other pages".
This guide was written by the lead engineer at Base44Devs. It is the working playbook we use on client apps, updated for what the platform now does itself.
For apps published on a custom domain, Base44 manages the following:
| Element | What Base44 does |
|---|---|
| Crawler rendering | Serves crawlers a prerendered page, refreshed when you publish, with a structured-snapshot fallback |
| Meta titles | A unique title per page based on its URL, "for pages without URL parameters" |
| Canonical tags | Self-referencing on every page. Tracking parameters are stripped and content parameters such as ?id=123 are kept |
| sitemap.xml | Generated at /sitemap.xml, public indexable pages only |
| robots.txt | Generated for free and paid apps |
| BreadcrumbList schema | Synthesized for every page |
| Open Graph and Twitter tags | Set from your app's title, description and logo; images resized to 1200 × 630 |
| llms.txt | Generated if you switch on AI Assistant Discovery (off by default) |
What you still have to do yourself
Base44's docs are explicit about what the platform does not generate. The work that decides whether a Base44 app ranks is:
- Publish on a custom domain and keep the main SEO toggle on.
- Run the SEO & GEO scan and clear its Urgent items.
- Write a meta description for every public page.
- Give records on URL-parameter pages their own titles.
- Add the schema types Base44 does not generate.
- Decide page by page what gets indexed.
- Connect Google Search Console and Bing Webmaster Tools.
- Keep Core Web Vitals passing. Visitors still get a client-side app.
- Write and structure content that search engines and AI assistants can quote.
The steps below take them in that order.
Step 1: Publish on a custom domain and keep SEO switched on
Base44's SEO setup "is designed and supported for apps that are published on a custom domain". Free Base44 URLs "can still be crawled by search engines, but they are not intended for long-term, production SEO." The SEO & GEO scan caps your score until a custom domain is connected, and Base44 calls that "the single biggest improvement you can make to your score". If domain verification is stuck, clearing a Base44 custom domain stuck in DNS-pending comes first.
Leave Enable SEO for this app on. Base44's docs warn that turning it off "also disables prerendering". Crawlers then "see a bare HTML shell with no page content, even if your robots.txt allows access." To use your own tags instead of Base44's, turn off the two injection toggles in Advanced Settings and keep the main toggle on.
Step 2: Run the SEO & GEO scan and apply Fix with AI
In the app dashboard, go to Marketing → SEO & GEO → Run Scan. The scan uses no credits. It returns a score and a checklist filtered into Urgent, Recommended and Done. Base44 caps the score if the app is unpublished, requires a login, has a failing homepage or has no custom domain. Fix those first.
Fix with AI sends every AI-fixable item to the chat as one prompt. Some items have one-click fixes instead, such as Auto-generate breadcrumbs, Auto-generate brand info and Improve description. This is also how WebSite, Organization and FAQPage schema get generated. Run Scan again after each round.
Step 3: Write a title and meta description for every public page
Base44 "does not set a custom meta description for each page by default". Without one, Google writes its own snippet from the page text. Open the Meta tags tab and set a title (Base44 suggests 10–60 characters) and a description (up to 160 characters) for each public page. Write each description as the answer to the search that should land on that page. Since 17 June 2026, these settings also apply to pages inside nested folders.
Titles saved in the Meta tags tab "take priority over any title tags in your app's code". An orange warning marks a saved override. If a title will not change, look there first.
Step 4: Give URL-parameter pages their own metadata
Base44's automatic titles cover "pages without URL parameters". A directory, marketplace or blog that serves every record from one page, as /post?id=… or /listing?id=…, can show every record under the same title in search. The canonical tag keeps content parameters, so each record is still its own URL. It just is not described as one.
Ask the AI chat to set each record's title and meta description from its data. Then publish and check two records in Search Console's URL Inspection (Test live URL → View tested page). If the tested HTML still shows the platform title, the per-record tags are being overridden. That is one of the two cases where an edge layer is worth building (see below). The Base44 meta tags and schema markup fix walks through the override checks.
Step 5: Add the schema types Base44 does not generate
BreadcrumbList is automatic, and WebSite, Organization and FAQPage come from Fix with AI. Content types are yours to add: Article or BlogPosting for posts, Product for product pages, LocalBusiness for location pages, Event for events. Ask the AI chat to add JSON-LD that matches the visible page. For a post, the target shape is:
function articleSchema(post: BlogPost) {
return {
"@context": "https://schema.org",
"@type": "BlogPosting",
headline: post.title,
description: post.description,
image: post.coverImage,
datePublished: post.publishedAt,
dateModified: post.updatedAt,
author: { "@type": "Person", name: post.authorName, url: post.authorUrl },
publisher: {
"@type": "Organization",
name: "Example Co",
logo: { "@type": "ImageObject", url: "https://www.example.com/logo.png" },
},
mainEntityOfPage: { "@type": "WebPage", "@id": `https://www.example.com/blog/${post.slug}` },
};
}
Validate every page with Google's Rich Results Test and the schema.org validator before you rely on the markup. AI-generated schema can look right and still fail validation. Base44's own docs add that rich results "are never guaranteed, even when your schema is valid".
Step 6: Decide what gets indexed
Every page starts switched on for search. Under SEO & GEO → Meta tags → Page search settings, turning a page's Search visibility toggle off "removes it from your sitemap and llms.txt file, and adds a noindex tag to it". It also hides the pages under it in the URL: turn off /units and /units/123 is hidden too, until you switch that child page back on (Base44 SEO & GEO docs, read 17 Oct 2026). Use it for thank-you pages, internal tools and thin utility routes. If your app is open to everyone and some pages sit behind a login, Base44 keeps those pages out of search for you; if the whole app is login-gated, search engines cannot reach any page, so anything you want found has to be reachable without signing in.
If you ever switch the main SEO toggle off and back on, turn each page you want indexed back on under Page search settings first. Base44 warns that "any page left off while SEO was off is hidden from search engines the moment you turn SEO back on."
You rarely need to touch the sitemap. If you do, Base44 offers two routes. You can switch off Generate sitemap.xml and deploy public/sitemap.xml. Or, for dynamic routes, you can serve a sitemap from a backend function and submit its URL in Search Console. Base44 notes that "each time a search engine fetches your sitemap, it counts as a backend function invocation."
Step 7: Connect Google Search Console and Bing Webmaster Tools
Base44 generates the sitemap and robots.txt, but Search Console is a separate step in your Google account:
- Add a URL prefix property for your full custom-domain URL.
- Copy the HTML-tag verification meta tag.
- In the app dashboard, open the Code tab, paste the tag inside the
<head>ofindex.html, save and publish. - Click Verify in Search Console. Leave the tag in place, or the property can lose its verified status.
- Submit
sitemap.xmlunder Sitemaps. - Use URL inspection → Request indexing on your five to ten most important pages.
Base44 also offers a Google Search Console connector, so you can query search data from the AI chat or the dashboard. Add Bing Webmaster Tools too. Base44 notes that "many AI assistants rely on both Google and Bing". Expect indexing to take "anywhere from a few days to a few weeks", depending on the crawl schedule. If pages are still missing after that, the Base44 not-showing-in-Google checklist covers the nine usual causes.
Step 8: Core Web Vitals
Prerendering covers crawlers, not people. Visitors to a Base44 app still download and run the client-side app, so loading speed and responsiveness depend on your bundle and data calls. Google's thresholds for a good experience are an LCP "within the first 2.5 seconds", an "INP of less than 200 milliseconds" and a "CLS score of less than 0.1". Google says Core Web Vitals, along with other page experience aspects, align "with what our core ranking systems seek to reward."
Measure real-user mobile data, not only lab scores. The in-app work (bundle size, image weight, slow entity queries) is covered in the Base44 performance optimization guide.
Step 9: Structure pages for AI answers
Search SEO and AI-citation SEO overlap but are not identical. On every page you want quoted:
- Put a direct answer at the top of each section, so a passage stands on its own when extracted.
- Keep each H2 section self-contained, around 100–150 words for the core answer.
- Use a named author byline with Person schema.
- Include specific, checkable details. Base44's docs say "AI platforms are more likely to cite and recommend apps whose descriptions include specific, verifiable information."
- Add FAQ sections for the questions your audience asks. Base44 can mark them up as FAQPage.
- Refresh on a schedule. An Ahrefs study of AI-assistant citations (Ryan Law, July 2025) found that the URLs AI assistants cite are fresher, on average, than the URLs ranking in organic search results.
Base44 has two AI-specific controls. AI Assistant Discovery generates an llms.txt summary of your app for AI crawlers, and it is off by default. The AI Visibility tab, on the Pro plan and above, shows which pages AI assistants read to answer someone, which assistants read them and how many of those people clicked through to your app, over the last 7 days (Base44 SEO & GEO docs, read 17 Oct 2026).
When an edge layer in front of Base44 is still worth it
The earlier version of this guide made a Cloudflare Worker in front of Base44 step one. It is now the exception. Build one only if one of these applies:
- You need server-rendered HTML for every visitor. Google's JavaScript SEO guide calls server-side or pre-rendering "still a great idea because it makes your website faster for users and crawlers, and not all bots can run JavaScript." Crawlers already get it from Base44. The layer is for your human visitors' first load.
- Hundreds of records need their own tags. Records on URL-parameter pages, where the platform's title wins over per-record tags set in the app.
If organic search is your primary channel and both apply, compare the edge layer against a separate server-rendered marketing site before building either. Is Base44 production ready? covers that wider fit question.
The pattern: point your custom domain at Cloudflare, intercept the public routes, and pass everything else through to Base44.
// worker.ts
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const url = new URL(request.url);
// Public routes we render at the edge
if (url.pathname === "/" || url.pathname.startsWith("/blog/")) {
return renderPublicPage(request, env);
}
// Everything else, including sitemap.xml and robots.txt: pass through to Base44
return fetch(request);
},
};
renderPublicPage fetches the record from a Base44 backend function or entity and returns HTML. The HTML carries the title, description, canonical, Open Graph tags and JSON-LD in the <head>, and the real content in the <body>. Escape every interpolated value. Send a cache-control header such as public, max-age=300, stale-while-revalidate=86400 so the edge serves cached HTML. If the worker writes its own tags, turn off Platform meta tag injection, and structured data injection if it writes JSON-LD, so the two layers do not emit competing tags.
Cloudflare Workers' free plan includes 100,000 requests per day. The implementation is roughly 100–300 lines of code per route type and takes 4–12 hours of engineering.
Common Base44 SEO mistakes
Turning off the main SEO toggle to use custom tags. It disables prerendering. Use the two injection toggles in Advanced Settings instead.
Staying on a base44.app address. Base44's SEO setup is built for custom domains, and the scan caps your score without one.
Leaving meta descriptions blank. Google then writes the snippet for you, and it rarely sells the click.
Ignoring URL-parameter pages. Records that share one title look like duplicates to searchers, even with distinct canonicals.
Adding schema without validating. Run the Rich Results Test on every template. A schema error can make the markup ineligible for rich results.
Building a proxy you do not need. A pre-render proxy duplicates what Base44 already does for crawlers. Build an edge layer only for the two cases above.
Treating SEO as a one-time pass. Base44 keeps changing its SEO layer: the SEO & GEO tab arrived in April 2026, per-route breadcrumbs in May and AI Visibility in September. Re-run the scan after each major change and re-audit quarterly.
Base44 SEO checklist
| Item | Where to check |
|---|---|
| Published on a custom domain | Domain settings; SEO & GEO scan |
| Enable SEO for this app switched on | SEO & GEO, top right |
| Scan run and Urgent items cleared | SEO & GEO → Overview |
| Title and meta description on every public page | SEO & GEO → Meta tags |
| Distinct titles on URL-parameter records | URL Inspection on two records |
| WebSite, Organization and FAQPage schema generated | Scan → Fix with AI |
| Article, Product or LocalBusiness schema added and validated | Rich Results Test |
| Search visibility reviewed per page, including pages hidden by a parent | SEO & GEO → Meta tags |
| Injection toggles on, or your own tags on every page | Advanced Settings |
| llms.txt decision made (off by default) | Overview → AI Assistant Discovery |
| Search Console verified and sitemap submitted | Google Search Console |
| Bing Webmaster Tools connected | Bing Webmaster Tools |
| Core Web Vitals passing on real-user mobile data | Search Console or PageSpeed Insights |
| Direct answers, FAQ and named author on key pages | Content review |
| Quarterly refresh and re-scan scheduled | Team calendar |
Want us to check your Base44 SEO?
Our $497 Base44 audit measures your current indexing coverage and checks what Google actually receives from each key page. It identifies the specific failures and produces a prioritized fix list. The $497 fee is credited in full against any fix, build, migration or written-recommendation engagement booked within 30 days. If you ordered the audit for a specific bug and we cannot reproduce it, we refund the fee; otherwise it is non-refundable. For implementation, our SEO-focused engagements typically run a 48-hour pass. That pass fixes the settings, validates the schema and submits the discovery channels, and builds the edge layer only where the app needs one. Order an audit or book a free 15-minute call.
Related reading
- Base44 app not showing in Google: the nine causes and how to check each one in URL Inspection.
- Base44 meta tags and schema markup: descriptions, URL-parameter titles and the schema types Base44 leaves to you.
- Base44 Performance Optimization Guide: the Core Web Vitals work that complements the SEO work.
- Base44 Deployment Checklist: pre-deploy verification, including SEO health checks.
- Make your Base44 app look professional: the visual polish that matters once visitors actually arrive.