The HTML Document Skeleton and Semantic Tags
Every web page sits on the same skeleton: a doctype declaration on the first line, an html element wrapping everything, a head section for the page title and character settings, and a body section for the visible content. Typing that skeleton out by hand a few times, without copying, fixes the position of each piece in memory surprisingly fast. The most common slip at this stage is tiny, an unclosed tag or a missing doctype, and the result is a layout that shifts for no obvious reason.
The next step is choosing tags for what the content means. Header, nav, main, article, section and footer tell the browser, search engines and screen readers what role each part of the page plays. One h1 per page is enough for the main title, with h2 and h3 stepping down beneath it. Every image gets an alt attribute describing it, and every form field is paired with a label. Around twenty core tags handle most everyday pages; the rest can be looked up on MDN Web Docs whenever they come up.
A useful drill is rebuilding a news article or a recipe page in plain HTML with no CSS at all. If that bare page still reads in a sensible order from top to bottom, the structure is right. The Elements panel in DevTools helps confirm that elements are nested the way they were planned.
A page that still reads in a logical order with every style stripped away has a sound HTML structure.