The noscript tag on 27 homepages: 61 blocks, and one of them is a menu
The noscript tag appears 61 times across 27 homepages. Forty-seven blocks hold a single image, five hold a tracking iframe, four hold text — and exactly one holds a working navigation menu with 75 links.

FIELD TEST · 2026-08-26 · 27 homepages · single crawl · raw HTML only
Sample and method: the same 30-site panel in use since 2026-08-15, each homepage fetched once on 2026-08-26 with a browser user agent, no rendering and no retries. We counted every <noscript> block in the raw HTML and recorded what was inside each one.
Across 27 homepages we found 61 blocks marked with a noscript tag. Forty-seven hold a single image. Five hold a tracking iframe. Four hold text, and three of those four are a stylesheet. One block on one site holds a working navigation menu with 75 links. If you are counting on this element to carry your page to a client that will not run JavaScript, almost nobody else is.
How we measured it
One HTTP request per site. Inclusion was fixed before the run: final status 200, decoded body at least 10,000 bytes, body containing <body. Three of the 30 failed — stackoverflow.com and medium.com returned 403, www.reddit.com returned an 8,393-byte shell — leaving 27, the same three exclusions as the previous batches.
Every body was written to disk and each number below was recomputed from those bytes. That mattered here: our first reading of the 47 image-only blocks was "tracking pixels", and going back to the raw HTML showed the opposite. They carry product screenshots and article thumbnails with real alt text.
# Count the blocks and see what is in them, on any page
curl -sL -A 'Mozilla/5.0' https://example.com/ \
| grep -o '<noscript[^>]*>.\{0,300\}' | head -20
Two limitations. We did not measure whether any client that skips JavaScript actually reads these blocks — only what is served. And we fetched homepages, so a site with nothing here may still ship something on an article page.
Where the 61 blocks are
Twelve of 27 homepages ship at least one block. Fifteen ship none at all. The distribution is lopsided: two sites account for 47 of the 61.
| Site | Blocks | What is inside |
|---|---|---|
canva.com | 26 | One product image each |
nytimes.com | 21 | One article thumbnail each |
bbc.com | 3 | CSS, CSS, and a 75-link menu |
webflow.com | 2 | CSS, and a tracking iframe |
theverge.com | 2 | Empty, and one image |
| 7 other sites | 1 each | Mostly tag manager iframes |
Counted by content rather than by site, the picture is simpler still.
| Content of the block | Blocks |
|---|---|
| One image, nothing else | 47 |
| A tracking iframe | 5 |
| Empty or attribute-only | 5 |
| Any text at all | 4 |
Forty-seven blocks hold one image, and that is not a mistake
These are lazy-loading fallbacks. A script decides which images to fetch; the noscript copy is what a client gets when that script never runs. Canva's blocks carry alt text like "A grid showing a range of nature, abstract, and lifestyle video clip thumbnails" — written for a reader, not for a counter.
So the most common real use of this element in 2026 is not a "please enable JavaScript" notice. It is a second copy of an image, and it is the only copy a non-rendering client will see. That is worth knowing before you delete it as dead weight.
One site ships a navigation menu inside a noscript tag
bbc.com's third block is 20,659 bytes. Inside is a <details> element wrapping a list of 75 links — Home, News, Sport, Business, and the rest — under class names that spell out the intent: NoJsNavigation. Turn scripting off and the site is still navigable.
It is the only block in the whole sample that gives a non-rendering client a way to get to another page. Of 76 links found inside every noscript block across all 27 sites, 75 are in this one.
An empty noscript block is not a fallback. It is a slot someone reserved and never filled.
The three text blocks are all CSS
Four blocks contain text. Three of them contain a stylesheet, which is a legitimate pattern — bbc.com hides elements that only make sense with scripting, webflow.com reverses an animation library's default of hiding content until it animates.
The fourth is Substack's, and it is the classic case: a fixed red banner reading "This site requires JavaScript to run correctly", with a link to a page explaining how to turn it on. That banner is honest. It is also the entire page, as far as a client without a renderer is concerned.
What to do with this on your own page
The engines that matter here split into two groups. Google renders with a headless browser, so what is inside this element is mostly irrelevant to it. Several other retrieval clients fetch and parse without running scripts, and for those the raw HTML is the whole document. Our earlier measurement of what AI crawlers get from JavaScript sites found bodies ranging from 342 to 25,082 characters on the same page, depending on who was asking.
- Keep the image fallbacks. They are the cheapest text you will ever give a non-rendering client, and the alt attribute comes along free
- If your navigation is built by a script, put a plain list of links in a noscript block. bbc.com is the proof it can be done
- Do not ship an empty block, or one that only says the site needs JavaScript. That is a page with no content and a sign explaining why
- Do not treat it as a substitute for server-side rendering. It is a patch on one element, not a strategy
Before changing anything, look at what leaves your server. A check of what crawlers receive from the page shows the raw HTML rather than the rendered result, and the handbook chapter on whether AI can crawl JavaScript has the command for counting characters in it.
Common questions
How did you measure this?
One request per homepage on 2026-08-26 with a browser user agent, bodies written to disk, blocks counted by an HTML parser and every published number re-checked with a byte-level search of the saved file. No rendering, no second request, one location.
Does Google read what is in a noscript tag?
Google renders pages with a headless browser, and per the HTML specification a block is treated as text rather than markup when scripting is enabled. So for Google the rendered page is what counts, and this element is a fallback for something that already worked.
Is it bad to have no noscript block at all?
Fifteen of 27 homepages have none, and they include some of the best-served sites on the sample. If your HTML already contains your content before any script runs, there is nothing to fall back to and nothing to add.
Why do these sites have so many blocks instead of one?
Because the ones that use it are using it per image, not per page. Canva has 26 because it has 26 lazy-loaded images. The count says nothing about how much text a non-rendering client receives.
Can I put a paragraph of keywords in there?
You can, and it would be a text block that only appears to clients that skip scripting — which is the definition of showing something different to a crawler than to a person. Write what a person without scripting needs, and stop there.


