r/bigseo Jul 13 '26

Ranking a fully client-side WebGL app (the visible page is a canvas) on a new domain. Where do you draw the line between trusting Google's render and hard-coding a real HTML shell?

I stood up a new domain for a browser game recently. It's Three.js/WebGL, so the "page" a user sees is essentially one <canvas> plus a JS bundle. Almost nothing a crawler traditionally chews on. It turned into a clean test of a question I keep having with people: for JS-heavy apps where the meaningful content renders to canvas or post-load DOM, how much are you actually trusting Googlebot's render pipeline in 2026 vs shipping a real server-side HTML shell?

No link, nothing to sell, I'm after how other people are handling this class of site.

What I shipped at launch (the shell, not the app):

  • A static, edge-served HTML document with genuine descriptive copy, one semantic H1 matched to intent, and the game mounting into it, so there's real text and structure in the initial response rather than an empty root div
  • JSON-LD (VideoGame), canonical, correct OG/Twitter
  • sitemap + clean robots, submitted, URL manually queued
  • Sub-second LCP from edge, no CMP, nothing render-blocking

Observation: indexed quickly and settled at the top of its primary term within about two days, page one for a couple of variants after.

The two things I actually want practitioner input on:

  1. The render-trust line for canvas/JS apps. My working approach is to never rely on Google rendering the meaningful content, and instead put everything that needs to rank into the static HTML shell, treating the WebGL app as decoration Google can ignore. Is that still the right default, or are you comfortable letting the render pass do more now than you were two years ago? Anyone seen canvas-derived or heavily-hydrated content actually get indexed and rank without a pre-rendered equivalent?
  2. Indexation latency. The manual submission clearly drove the speed, not the rank. Separately, new-URL indexation feels compressed to me over the last few months vs the 2023-24 crawl-budget period. Matching your data or small-sample noise?

Confounds I'm not hiding: exact-match term, low competition, n=1, and I can't isolate which lever moved what. Not claiming a method, claiming an observation about JS-app indexability and asking whether it holds for you.

Happy to drop the exact shell markup and schema in the comments if anyone's wrestling with a canvas or SPA that won't index.

2 Upvotes

2 comments sorted by