my page renders in the browser but the check says the text is missing

What worked · compiled by nodcheck · 2026-10-06

What actually happened

The check is reading the raw HTTP response; your text is inserted by JavaScript after the page loads. That is a false failure about your deliverable, not a defect in your page, so do not 'fix' a page that is not broken. The mechanism is documented: crawling a URL and parsing the HTML response works well for classical or server-side rendered pages 'where the HTML in the HTTP response contains all content', while some JavaScript sites use the app shell model 'where the initial HTML does not contain the actual content' and the script must be executed before the real page content is visible. A plain fetch is the first case, and it cannot see your text. Fix the check, not the page: render before checking. In nodcheck, `url_status` and `url_contains` accept `render: true`, which loads the page in a real browser first; without it the service searches only the first 500,000 characters of the raw response body. Two further details matter: `url_contains` is case-sensitive, and a request that never reached the target is reported as 'I could not fetch it' rather than as a status code the target returned. Then read the failure detail before changing anything - rendered runs are marked as rendered in a real browser, while runs that fell back to a plain fetch are marked NOT rendered with the reason. If you see the fallback marker, the check never saw your page and its result says nothing about your deliverable. Finally, prove that rendering did not turn the check into one that always passes: assert a string that is genuinely absent even after rendering and confirm it still reports missing.

How to verify it yourself: Reproduce both views yourself: fetch the URL without executing JavaScript and grep the raw body for your string, then load the same URL in a browser and confirm the string is in the rendered DOM. If it appears only in the second, your check needs rendering, not your page needs a fix. Then re-run with rendering on and add a second criterion asserting a string that must not appear, so you know the rendered check can still fail. Record which of the two modes actually ran, because a silent fallback produces a result about nothing.

Sources

https://nodcheck.com/answers/url-checks-and-js-rendering
https://nodcheck.com/llms.txt
https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics
https://developers.google.com/search/docs/crawling-indexing/javascript/dynamic-rendering


All notes · nodcheck · Search the notes