What HTML and CSS actually do, two checks you can run yourself in two minutes, and why changing a button's colour is sometimes a week's work.

This piece won't teach you to build websites. It exists so that the words in proposals and conversations with a contractor stop being jargon and become things you can actually ask about.
HTML, CSS, semantics, source code, heading structure — each means something specific, and some translate directly into what you'll pay for changes a year from now.
Every website — whatever it runs on — is made of three layers that do three different jobs.
Three layers of a website: content, appearance, behaviour
Own comparison
HTML is content and its structure. It says what's a heading, a paragraph, a list, a link — not how it should look, but what it is. This is the layer read by a search engine and a blind person's screen reader.
CSS is appearance. Colours, spacing, typefaces, grid, behaviour on a small screen. The same HTML content can look completely different depending on the CSS — the whole point of splitting these two layers.
JavaScript is behaviour. Everything that happens after the page loads: reacting to a click, filtering, a calculator, a form submitted without a reload. Covered separately when choosing a frontend technology.
The split has a practical consequence: each layer is a different conversation with a contractor, and the first is mostly your decision, not theirs.
You don't need to read code to check two things in it that decide whether a site is visible in search.
Open the source code. Right-click your own site and choose "View Page Source", or press Ctrl+U (Option+Cmd+U on a Mac). A tab opens with text — exactly what the server sent the browser, and what a crawler fetches. Don't confuse this with "Inspect", which shows the state after scripts run, a view the crawler doesn't see on its first pass.
First check: is your content there. Press Ctrl+F and search for any sentence from your page. Found it? The content is in the first response. A dozen lines of script references and nothing else? Content only builds in the browser, delaying indexing by days or weeks — the mechanism behind this is covered under Next.js and React.
Second check: does the page have search-engine descriptions. Look for <title> and meta name="description". If the title is identical on every page, says "Home" or isn't there — you're paying for a site that introduces itself poorly in search results. Five seconds' work, and one of the most common things we find in audits.

“View page source” — two checks on this article
Digital Vantage, capture of this article’s page source on www.digitalvantage.eu, 5 Oct 2026
Check both on a few pages, not just the homepage — the problem usually starts from the second page.
This is the most common misunderstanding at the boundary between these layers, and the most expensive one in its consequences.
Headings — H1, H2, H3 — aren't text styles. They're the document's skeleton: H1 the book's title, H2 the chapter titles, H3 the subsections inside them. A search engine reads that hierarchy to understand what a page is about and which part answers which question.
What breaks when they're used for looks. Someone wants text smaller and bold, so they mark it as an H3 — structurally announcing a subsection that doesn't exist. A dozen spots like that, and a page has a skeleton matching nothing.
Who loses out. Not Google — someone using a screen reader, who navigates by jumping between headings the way you skim with your eyes. A list of headings is their table of contents; entries that don't start a section turn moving around the page into guesswork.
The heading outline as a screen reader hears it
Digital Vantage, own diagram
The rule is simple, and worth passing on to whoever writes the content: a heading says what a piece of text is. If what you actually want is for it to be smaller or bold, that's CSS's job, not the tag's. The same rule applies to accessibility requirements, which we cover separately in our article on WCAG.
Headings are the most visible example, but the same principle applies in a few other places — and getting it wrong costs the same way each time.
A list that isn't a list. Dashes in a paragraph look like a list and aren't one — a screen reader reads one long paragraph, not "list, five items", and a search engine sees continuous text, not an enumeration.
A button that's a link, and vice versa. A link takes you somewhere, a button does something. An element built "the wrong way" often can't be reached from the keyboard, which for some users means it simply doesn't work.
An image's alt text. A single field describing what's in a photo. A screen reader and image search both read it, and anyone whose image failed to load sees it too. This is a field your contractor cannot fill in for you — only you know whether it shows "the team" or "our production hall in Katowice".
The page's language. One piece of code saying the page is in English. Without it, a speech synthesiser can read English text with the wrong accent — and it sounds exactly as bad as you'd imagine.
All four have one thing in common: they cost nothing if done from the start, and they're a tedious fix once bolted onto a finished site. Worth having them in the contract as a requirement, not in a snag list after handover.
This is where CSS stops being a technical topic and becomes a line in your budget.
The cheap version. Well-written CSS keeps visual decisions in one place, as named values — primary colour, accent colour, text size, spacing. Every button, heading and border refers to those names instead of repeating the value. Changing the brand colour is then one edit in one file.
The expensive version. A colour hard-coded everywhere — a hundred places in the code, a dozen plugins, content typed in by the editorial team. Changing it means finding every occurrence and checking nothing was missed. Weeks here come from the number of places, not the complexity.
How it looks for us. This site has 164 named values — colours, text sizes, spacing, light and dark variants — defined in a single file, across 315 declarations covering different themes (counted on 11 September 2026). Changing the accent colour across the whole site, dark mode included, is one line.
Changing the brand colour: named values versus a hard-coded colour
Digital Vantage, own diagram; measurement of this site’s stylesheet, 11 Sep 2026
A question worth asking at handover: "where are the colours and typefaces defined, and how many places would need to change to change the brand colour." An answer of "one file, in variables" means you're paying for code that can be maintained. An evasive answer usually means every future change will be quoted from scratch.
The same goes for typefaces, spacing, and the points where the layout breaks onto a phone. CSS quality isn't visible on screen — it's visible on the invoice for the second change.
Responsiveness shows up in proposals as a single tick box, as if it were a switch. It isn't — it's a set of decisions about what happens to the layout as the screen narrows, and some of those decisions are yours to make.
Three columns sit side by side on a large screen; on a phone they stack, and the question is in what order. Not a technical question: a phone user sees whatever's on top first and may never read the rest. Tables on a narrow screen either collapse, scroll sideways, or stop being readable.
Three things worth checking yourself on your own phone before signing off on a site:
These are the same checks we run in audits — and they turn out worse than everyone assumes, because a site gets designed on a monitor and viewed on a phone.
The split we propose to clients, and that works for us:
Yours: the text and what it is — what's the page title, what's a section heading, what's a plain paragraph. Image alt text, because only you know what's in a photo and why it's there. Titles and descriptions for search engines, because that's marketing copy, not a technical setting.
Shared: the hierarchy of content on the page and which information matters most — the contractor suggests how to express it, but the order follows from what you're selling.
The contractor's: everything underneath — how the code is organised, where variables live, how the site behaves on a slow connection, how scripts work.
The line sits in one place: if a decision is about the meaning of content, it's yours; if it's about how it's built, it's theirs. Most disputes at handover come from someone crossing that line in one direction or the other.
You don't need to know how to write HTML to commission a good website — any more than you pour your own office's foundations. You need to be able to ask four questions and check two things in the source code, which together take a few minutes.
If you'd still like to try it yourself — testing an idea, enjoying understanding things from the inside, or building a hobby site — we have a separate piece for that: how to build a simple website in HTML. It's a different road, and we're not pretending it doesn't exist.
Semantic HTML — code where the tags describe what content is, not how it looks. What this whole piece is about.
Validation — checking that code is correctly built. Useful, but it says nothing by itself about a site's quality: code can be formally flawless and useless in practice.
Breakpoint — the screen width at which a layout changes. The fewer of them, and the better chosen, the fewer places a site looks odd.
Design system — a set of named visual decisions, discussed above: colours, spacing, typefaces in one place. In a proposal it signals that a contractor intends to write code that can be maintained.
Minification — stripping everything from a file that's there for a human, not a browser. A standard, not an advantage; if someone lists it as a separate selling point, it's worth asking what else in that proposal is standard.
Ctrl+U.Ctrl+F.what is html 2,900, what is css 1,600, what does html stand for 3,600.Fifteen minutes: is the content in the server's first response, does every
page have its own title and description, do headings describe structure, and
where do the colours live. You'll get a list of what's worth fixing — in
order, without the jargon.
Nine texts on what to build a company website on: the words in a proposal, platform choice, headless, hosting. Start with the phase you are in.
Vercel with a managed database versus a VPS on Coolify: 271 USD against 36 EUR a month at 2 TB of traffic, plus three failures we hit in production.
This site runs on Payload: 39 collections, 40 blocks, four languages. What code-first means, what version 3 changed, and what cost us the most time.
Next.js is React with a server layer. See when it pays off, how Google's two rendering queues work, and where Next.js actually loses.
Webflow, WordPress, headless or custom-built — five platforms, the point where each stops being enough, and what you actually take with you if you move.
The advertised price is rarely the price. Four kinds of hosting, the point where each stops being enough, and what hosting actually changes in site speed.
Headless CMS trades editorial independence for flexibility. See when that trade pays off, what a preview delay costs, and two deployment models compared.
Serverless, edge, JAMstack, API-first, PWA: which of these actually improves your site, and which is a line item that just looks good in a quote.
PHP or a modern JavaScript framework? A comparison of where each one runs, typical use cases and architecture patterns, to help you pick a web stack.
Table of Contents · 9 sections · 10 minutes read
Rate this article
Back to the guide: Websites — a guide to the whole section

We found no independent Polish benchmark for SEO cost. How to turn a fee and its hours into an hourly rate, and what to ask before signing.

What each part of the PageSpeed Insights report means: 28 days of user data, the Lighthouse score, phone vs desktop, and why the score keeps changing.

Google Search Console without guesswork: verification, agency access, CTR and average position by Google's own definitions, and page indexing statuses.

What a product page needs: photos, the EU 30-day lowest-price rule, mandatory GPSR information, delivery, returns, reviews and Google structured data.

An ecommerce SEO audit runs mostly on free Google reports: indexing, Core Web Vitals, rich results, duplicates and Merchant Center data.

Google Merchant Center: site verification, product data, shipping and landing page rules, disapprovals, and Shopify, WooCommerce and IdoSell integrations.

SLA meaning: how much downtime fits in 99.9%, how AWS, Microsoft and Google SLAs compare, SLO, RPO, RTO and 10 things to check before signing.

A 502 Bad Gateway, 500, 503 or 504 error tells you which part failed: the application, the link between servers or an overload. And who to call.

A 404 Not Found on your own site is usually a page removed without a redirect. What 4xx status codes mean, what Google does and why our 404 returns 200.