What the bot sees

The example below starts with the same JavaScript fixture used by the project: its original page has an empty app container, and JavaScript fetches the article text. The bundled before-and-after capture comes from RenderCache v0.1.0-alpha.1. Words absent from the extracted raw text are highlighted in the rendered text.

This is an interactive illustration. Cache-state controls and generated receipts run in your browser; they do not query a server, run Chrome, change a cache, or show visits by real crawlers. The site has no public arbitrary-URL rendering endpoint.

Open the example on its own.

Try a real comparison on your server

The alpha includes the actual protected comparison page on its separate admin listener. Start RenderCache against your public origin, warm the page, and open http://127.0.0.1:9090/. With an admin token configured, the browser username is rendercache and the password is your token. The real app accepts URLs only from your configured site, fetches raw public HTML, and compares it with an existing snapshot. Its bot simulation passes through the real response handler and marks the resulting receipt as simulated.

Follow the quickstart to run that workflow. Keep the admin listener private; this static project site does not host your renderer.

What the highlight means

The shell check compares approximate extracted text, excluding scripts, styles, head content, templates, noscript, and explicitly hidden subtrees. It flags a likely shell when there are at least ten rendered words, at least ten missing words, and raw text is at most one fifth of rendered text. It does not evaluate CSS layout, search ranking, indexing, or AI citations. A raw page and an older snapshot can also differ because the content changed.