Why div soup costs you rankings.
Two sites with identical content can perform very differently. The markup is the reason.
What page builders emit
Open the source of a typical builder page and you find the same pattern: containers nested eight or ten levels deep, headings chosen for their size rather than their place in a hierarchy, buttons and links built from styled divs, inline scripts and styles per section, and content that only appears once the builder's runtime has executed. None of this is visible in the editor, which is the whole problem.
Why structure decides outcomes
A crawler, an assistive technology, and an answer engine extracting a passage all depend on structure to understand a page. Headings supply the outline. Landmarks supply the regions. Native controls announce themselves as controls. Strip that out and you have a page that looks organised to a human and reads as an undifferentiated block to everything else.
What semantic markup gives you
Five things, all of which are otherwise bought separately.
The accessibility overlap
Most WCAG failures are structural: missing labels, missing alternative text, headings used for size, controls that are not controls. Correct markup fixes the majority of them as a by-product. Given that 60.8 percent of roofing homepages carry at least one critical violation, and that page builders are the norm in this trade, the two facts are not a coincidence.
This is not an argument against WordPress
The platform is not the problem. The builder layer on top of it is. WordPress with a lean theme and hand-written templates produces clean markup and an editing experience your office can use. The question to ask a vendor is not which CMS they use, it is whether they control the markup or inherit it, and to ask to see the source of a page they built.
How to tell what you have
Three checks, five minutes. View source and count the nesting depth before you reach a paragraph of real text. Search for a JSON-LD block. Then disable JavaScript and reload: if the page is blank or unreadable, everything that reads markup rather than rendering it is seeing the same blank page. That is also the fastest way to understand why a template build and a custom build are not the same purchase.
What good markup costs to produce
Almost nothing extra, once someone knows how. A heading hierarchy is a decision, not a line item. A native accordion is fewer lines than a JavaScript one. A labelled form field is one attribute. The reason it is rare is not expense. It is that a page builder makes the wrong version faster to produce, and nobody reviewing the design ever sees the difference.
The five things to specify in a build contract
Ask for these explicitly and the markup question is settled before it becomes an argument.
How this shows up in your numbers
Not as a ranking jump on a single keyword. It shows up as pages that load before the visitor loses patience, forms that can be completed on a phone in poor signal, content an answer engine can quote because the answer sits under a heading rather than inside a script, and an accessibility baseline that removes most of the exposure behind the 60.8 percent figure. One decision, four separate problems reduced.
Related guides.
60.8 percent of roofing homepages ship a critical violation. Here is what that means and what to check first.
The documented failure is a phone number buried in the footer and nothing actionable above the fold.
60.8 percent of roofing homepages ship a critical WCAG violation, against 3,948 federal ADA filings in 2025.
Find out what your site fails.
$2,500, and every accessibility and speed failure comes back in writing.