How to monitor a webpage that loads its content with JavaScript
Published 19 October 2026
Short answer: a page watcher can watch a page that builds itself with JavaScript, if it loads the page fully the way a browser does. That works on some pages and costs more time. On others the content never shows up for a program, and the honest outcome is a warning at setup. Check the starting reading against the page you see.
Some pages arrive as a thin shell and then draw their prices, lists or results with scripts. A simple watcher that only downloads the page sees the shell. This guide shows what that looks like on real pages, and what Osmanth Watch does about it.
Why the page looks empty to a program
The text of a page can come in two ways. It can be in the HTML that the server sends, or it can be added afterwards by JavaScript running in the browser. Search engines deal with the second kind by running a second step: Google describes processing JavaScript web apps in three phases, crawling, rendering and indexing, where a headless Chromium renders the page and runs the scripts. A page watcher has the same problem and the same choices: read the HTML as sent, or load the page in a browser.
The first is cheap and quick. The second is slower and more fragile, because there is more that can go wrong while it loads. Osmanth Watch tries the first, and loads the page fully only when the first doesn't show what you asked it to watch, or when the page looks like a shell. When it has to, it tells you: "This page builds itself as it opens, so we load it fully each time. That works, but is slower and a little more fragile than a simple page."
A page made to show the difference
Quotes to Scrape is a practice site with two versions of the same list of quotes. We looked at the one that builds itself with JavaScript on 19 October 2026.
Its HTML is 5,808 bytes and contains no quote elements at all. The quotes are in a script as data: nine lines of the raw HTML mention "Einstein", and they all belong to the script's data, since there are no quote elements. The HTML Standard says the script element "does not represent content for the user", so a reader that goes by visible text correctly finds nothing there.
Osmanth Watch's answer for "tell me when this page changes":
- Condition: "Meaningful content change".
- Verdict: supported, with the full-page-load message above.
- Reading: "22 lines (1,433 characters) of content", taken after loading the page fully.
- Words:
the words “Albert Einstein” appearread "“Albert Einstein” is on the page".
The plain version of the same site, which has the quotes in its HTML, was read without a full load, as "83 lines (1,612 characters) of content". So the product picked the right method for each.
Part of a page may need the full load and part may not
On Dropbox's plans page, "tell me when this page changes" was read as "235 lines (4,455 characters) of content" from the plain HTML, with no full load. A request for the price was different. For tell me when the price drops the product loaded the page fully, and still answered "No price was detected on this page." When we named a plan, "Plus", it read $9.99 from "the block mentioning “Plus”", again after a full load. The same page is easy for one question and hard for another.
When even the full load shows nothing
Loading a page fully doesn't always help. We looked at the Federal Reserve's press-release page on 13 October 2026. The HTML as sent contained no links to individual releases and loaded a script that fills the list in, and in the product's full-page mode the list was still not there. The starting reading was 43 lines and 372 characters. The product now warns about readings that small, with "We could read only a small amount of text from this page (372 characters), so the part you care about may be missing from what we can see."
Two other pages behaved like that when we tried them:
- Australia's global visa processing times page. "13 lines (571 characters) of content", and the same warning.
- A Craigslist rentals search page. "No text content found in the watched area", so the watch could not be set up as reliable.
For each of these we don't know the exact reason, and we did not look for another way to get at the content.
What to do
- Read the starting reading. It says how many lines and characters were read. A short reading for a long page is the sign.
- Look for a plainer page. An archive, a "latest" page, a print view or a topic page often has the same information as text.
- Name what you want. For a price, name the plan or product. For words, put them in quotes. A narrower question is often possible when a whole-page watch isn't.
- Don't trust a full load blindly. If the reading is still small after one, the page probably isn't readable for us.
See also why a page change alert fires when nothing changed for noise on pages that do read well, and how to get an alert when specific text appears on a webpage for what a words watch can see.
Limits to plan for
- Slower and more fragile. A page that has to be loaded fully takes longer to check and can fail more often than a simple one.
- Once a day. On the free plan a page is read once a day.
- Public pages only. If the content is behind a sign-in, we say we can't watch it.
- Sites that refuse programs. We respect a site's request to stay away.
Starting one
Paste the page on the home page, say what you want, and compare the starting reading with what you see in your browser before you give an email address. The limits are written out in the terms.