I’m the founder of Prerender Buddy, and this is our Apache-2.0 CLI for inspecting what a public URL returns over HTTP. The CLI runs locally without an account, telemetry or calls to the hosted PB API. The commercial hosted service is separate.

Source: https://github.com/kopachlager/prerenderbuddy-cli

One part I’d like feedback on is the application-shell heuristic. It looks at readable text, empty mount points, loading text and script markers. That can flag a page worth investigating, but a deliberately minimal static page or a canvas app can need a different interpretation.

There’s a loading-placeholder fixture in the repo. From a local checkout, npm run demo:fixture passes that static fixture through the normal check and formatting functions. It lets you inspect the warning without relying on a live site that might change tomorrow.

For a public site you control, with Node.js 20 or newer:

npx @prerenderbuddy/cli check https://example.com/ --user-agent googlebot
npx @prerenderbuddy/cli compare https://example.com/ --user-agent gptbot
npx @prerenderbuddy/cli files https://example.com/

Both sides of the comparison are HTTP fetches. Neither runs JavaScript, and a user-agent string does not reproduce a crawler’s verified network origin. The output is diagnostic evidence, not proof of a crawler failure or a prediction of rankings or AI recommendations.

What fixtures would you add to keep this kind of heuristic honest? Small static sites, cookie banners and canvas apps are already covered, but reproducible false positives would be useful.