Download Lesuto Hub & Seller - Shop and sell on iOS and Android
Download Lesuto Hub & Seller - Shop and sell on iOS and Android
Render Engine
Search engines, social apps, and many AI crawlers cannot reliably run a JavaScript frontend. That is true for React, Vue, Next, and the Commerce SDK. The Render Engine snapshots the same URL as HTML so pages can be indexed, shared, and previewed. Visitors still get the live site.
How it works
Pick a shopper, Googlebot, Facebook, GPTBot, or an audit crawler. The path matches production: edge detection, api.lesuto.com/api/v2/prerender, 24-hour cache, and origin fallback.
Live trace
Search and social crawlers on catalog paths. Included on Lesuto-hosted stores.
Googlebot on Cloudflare / Lesuto-hosted
In flight
Googlebot requests /products/teak-lounge
User-Agent: Googlebot/2.1
Request log
01 info
Googlebot requests /products/teak-lounge
User-Agent: Googlebot/2.1
Lesuto-hosted stores already route matching bots. On your own host, add a Cloudflare Worker or use the WordPress plugin. Confirm with curl before you cut DNS.
The problem
Google can render JavaScript later, slowly. Facebook, LinkedIn, Slack, iMessage, and most AI crawlers fetch source HTML only. If that source is an empty JavaScript shell, the page is invisible.
Who it serves
One snapshot path. Different hosts decide which user-agents are forwarded.
Google, Bing, DuckDuckGo, Yandex, and Baidu get the rendered HTML, not the empty shell.
Facebook, Instagram, LinkedIn, X, and Pinterest unfurls can show title, image, and price.
Slack, iMessage, WhatsApp, Discord, and Telegram can preview a URL instead of a blank link.
The WordPress plugin snapshots common AI bots. Cloudflare does not, unless you extend that Worker. Audit bots are never prerendered.
Included
Bot detection, HTML, structured data, social cards, caching, and sitemaps. Visitors are never swapped onto this path.
Search crawlers and social unfurlers are identified by user-agent. Visitors still get the live JavaScript site.
A headless browser runs the page, then returns HTML with the content already in the source. Commerce SDK pages wait for a ready event so catalog HTML is complete.
Open Graph and Twitter cards so a shared URL shows the right title, image, and description in feeds and DMs.
The connected WordPress plugin also snapshots common AI crawlers such as GPTBot and ClaudeBot. Cloudflare stays on the search plus social list unless you change that Worker.
The first crawl renders. Later crawls are served from cache. Catalog edits on Lesuto stores invalidate the snapshot.
Title, description, Open Graph, Twitter cards, and structured data are in the HTML the crawler fetched, not injected later.
On Lesuto catalog pages, cache is refreshed when products, collections, or pages change. No manual purge for ordinary updates.
Lesuto stores get XML sitemaps with products and collections so Search Console has a complete URL list.
Wrong site key, unknown hostname, or a renderer timeout falls back to origin HTML. Crawlers are not left with a blank error page.
Setup
Connect a domain, route crawlers, confirm with curl. Commerce SDK and WordPress are first-party hosts. Any JavaScript frontend on that domain can use the same path.
A site key ties the Render Engine to hostnames you own. Visitors still get your live JavaScript app.
On a Lesuto-hosted store this is already on. On your own host, add a Cloudflare Worker, Apache or nginx rule, or connect the WordPress plugin.
Read the install guidecurl with a Facebook or Googlebot user-agent should return 200 and X-Prerender. Then confirm Google Rich Results, Facebook Sharing Debugger, and LinkedIn Post Inspector.
Questions
The visualization above is the same decision tree the API, Cloudflare Worker, and WordPress plugin use.
No. Any JavaScript frontend has the same crawler problem. Connect a site key for your domain and route bots. Commerce SDK and WordPress are first-party hosts. SDK pages wait for a ready event so catalog HTML is complete. Other JavaScript on that domain snapshots after the render budget.
No. The Render Engine inspects the user-agent and only snapshots matching crawlers. Visitors keep the live JavaScript site, including cart and checkout when those are on the page.
Search engines (Google, Bing, DuckDuckGo, Yandex, Baidu) and social unfurlers (Facebook, LinkedIn, X, WhatsApp, Slack, Discord, Pinterest, Telegram). The WordPress plugin also routes common AI crawlers such as GPTBot and ClaudeBot. Cloudflare and Lesuto-hosted routing stay on the search plus social list unless you change that Worker on purpose.
SEO audit tools (Ahrefs, Semrush, Screaming Frog) are classified in the dashboard and are not prerendered, so they cannot spend render capacity. AI crawlers are classified everywhere. Only the WordPress plugin host hook prerenders a common AI set today.
The API returns 403 when the hostname is not on the site key, and 502 or 503 when a render fails. Your Worker or plugin then serves origin HTML so crawlers are not left with a blank error page.
Successful snapshots are cached for 24 hours. Catalog changes invalidate the cache. The first crawl for a URL runs a headless browser (12 second budget). Later crawls are served from cache.
Better together
The Render Engine is the HTML snapshot layer under any JavaScript frontend you connect, including SDK, WordPress, and Studio pages.
Connect a domain, route crawlers, keep the live app for visitors. Self-hosted sites need about 15 minutes of Worker, plugin, or Apache config.
Get Started Free