Web Hosting: Elementor build vs hand-written build (lab)

Lab, not a live page

Web Hosting: same words, two ways of building the page

Both versions carry identical copy, identical prices, identical order links and the same photograph. The only variable is how the page is built: one with Elementor and its add-on widgets, one as hand-written HTML. Everything below is measured from the bytes the server actually sends, not estimated.

The scoreboard

MeasuredElementor build Hand-written buildDifference
The page’s own markup109.5 KB60.0 KB1.82x lighter
Markup bytes per word103 B20 B5.03x denser
DOM elements in the page body1,0805711.89x fewer
Nested divs426775.53x fewer
Deepest nesting level251411 levels shallower
Icon font glyphs1700all removed
Elementor widget wrappers1290all removed
Real tables13one table widget becomes three real tables
Resources requested974453 fewer
Transferred for the document4.14 MB1.56 MB2.66x less
of which JavaScript1.64 MB0.36 MB4.61x less
of which CSS1.79 MB0.49 MB3.65x less
Images0.15 MB0.15 MBidentical on purpose
Site chrome outside the page208.4 KB168.4 KBunchanged
Time to first byte2567 ms2248 msno real change

Green rows are where the hand-written build wins, amber rows are where it changes nothing. Measured on the delivered response, including every CSS, JavaScript and image the document asks for. Runtime requests made after load are excluded, and field metrics such as Largest Contentful Paint are not included because the render harness on this host is unavailable. The hand-written column includes conditional asset loading, so it no longer requests nineteen stylesheets and scripts that page has no use for.

Side by side

Elementor build109.5 KB of page markup, 1,080 elements

Open full page

Hand-written build60.0 KB of page markup, 571 elements

Open full page

What actually changed in the build

Ten plan cards became two tables

The plan cards repeated the same seven labelled lines ten times, each with its own checkmark glyph. That was 70 identical lines and 70 of the page’s 170 icons. A real table states the same facts once per column, and the numbers now line up visually.

The tab widget is gone

Four plans sat behind a JavaScript tab, six behind another, so the catalogue could not be scanned or printed in one view. Both tracks are now simply visible, with no JavaScript.

The FAQ is native and self-describing

Ten questions now use details and summary, which work without JavaScript and are keyboard accessible, plus FAQPage structured data so search engines can read the answers directly.

Icons out, structure in

Every decorative icon is gone: the hierarchy now comes from type size, hairline rules and real spacing. One photograph does the visual work instead of a grid of glyphs.

Bundles the page never uses are not loaded

33 stylesheets and scripts exist to serve plugins this page does not use anywhere, header and footer included. Rebuilding the footer is what made most of them droppable. Together they took this page from 4.34 MB to 1.56 MB per load. The rule is an explicit page list with guards, not a site-wide switch, so no other page changes behaviour.

Long tables became tabs, with no JavaScript

The ten plans are two tabs and the comparison is three short tabs, built from radio inputs and labels: natively keyboard operable, and requiring no script at all. Every panel still prints and still appears in the page source, so search engines see all ten plans. Below 760px each table row becomes a stacked card, so nothing scrolls sideways. One optional 600-byte script marks the current section in the jump bar; the page is complete without it.

Checked in a real browser, not just in the source

The page is full width: the hero measures 1280px in a 1280px viewport, and horizontal overflow is zero. Two defects were found this way and fixed: the theme was capping the canvas at 1200px through a rule on the content element itself, and the plan table overflowed by 49px, clipping the Order column. Neither was visible in the markup.

The footer was rebuilt by hand as well

The Elementor footer is 30 KB of markup with 249 wrappers, and it renders a Royal Elementor logo widget plus Font Awesome glyphs. The hand-written replacement is 3.9 KB with no wrappers, carrying the same four columns, the same links, the same logo and the same contact details. That change is what allowed Royal Elementor Addons and Font Awesome to be dropped here. The copyright year is now rendered by the server instead of a stray script tag.

What this rebuild does not fix

The page is 2.7 times lighter. Every other page on the site is not, yet.

Everything above is scoped to this one page id. Every other page still renders the Elementor footer, and that footer is what forces Royal Elementor Addons at 791 KB, Font Awesome at 155 KB and the add-on packs onto every page of the site, whether or not those pages use them. Roughly 1.2 MB per page load, site-wide, until the footer is rebuilt everywhere rather than here.

What still loads on this page, and why it stays: the Google tag at 577 KB, which also fires on this staging site at all; the jQuery stack at about 168 KB, because Elementor and the header/footer builder depend on it; Elementor’s front end plus the builder at about 250 KB, because the header is still an Elementor template; Elementor’s Google Font CSS at about 220 KB; and the Astra theme at 70 KB.

Time to first byte did not improve either: 2567 ms against 2248 ms, since server-side rendering dominates and both versions boot the same WordPress.

Found while measuring: the Google tag fires on this staging site with a live measurement identifier, so staging visits are being counted in production analytics.

How this was measured

Both URLs were fetched fresh, then every stylesheet, script and image referenced by the document was downloaded and its real size summed. The page body was parsed into a tree to count elements, nesting depth and icon glyphs, so those figures come from the markup rather than from a visual inspection. No number on this page is an estimate.

The two builds differ only in construction. Copy, prices, plan names, order destinations, photograph and logo strip are identical.

Scroll to Top