I would like to have some grasp on how many dom elements (nodes) are normally found in modern web pages. Of course, I don’t mean exact, just in what size orders are we talking nowadays. I don’t even know what is normal page anyways, and dynamic nature of web today (we can add/remove nodes with JS at runtime) makes it impossible to count such stats precisely. Anyway, I would like to give it a shot and ask if there are some stats about what is normally found these days. Like are we talking about size order of hundreds of elements in today’s DOM trees, or thousands, or tens of thousands? I have read some blog post where sizes around 5K ~ 20K seems to appear (somebody mentioned in comments), but that was nothing really confirmed nor were there any references to follow.
Yeah, I am aware it’s a long shot, but anyway, if there are any good stats I would really like to see them. I wasn’t able to find something myself.
summary_pages dataset includes a
numDomElements field that answers this question directly. Here’s a query that analyzes the 10, 50, and 90th percentiles over time for both desktop and mobile:
SELECT REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS date, IF(ENDS_WITH(_TABLE_SUFFIX, 'desktop'), 'desktop', 'mobile') AS client, APPROX_QUANTILES(numDomElements, 1000)[OFFSET(100)] AS p10_dom_size, APPROX_QUANTILES(numDomElements, 1000)[OFFSET(500)] AS median_dom_size, APPROX_QUANTILES(numDomElements, 1000)[OFFSET(900)] AS p90_dom_size FROM `httparchive.summary_pages.*` GROUP BY date, client ORDER BY date, client
A little surprised that mobile DOM size wasn’t available until 2016 but here we are. The distribution hasn’t actually changed too much over the years.
If you just want a simple query to get the latest median DOM size:
SELECT APPROX_QUANTILES(numDomElements, 1000)[OFFSET(500)] AS median_dom_size FROM `httparchive.latest.summary_pages_desktop`
It’s about 600 elements.