Tworzenie stron www
Marketing
Pozycjonowanie
PR
Inne
O nas
Sklep
Blog Kontakt

HTML

HTML to podstawowy język wykorzystywany do tworzenia struktury stron internetowych. Pozwala na oznaczenie nagłówków, tekstów, obrazków i linków.
Kodowanie HTML – semantyka, dostępność, wydajność, SEO, audyt kodu

HTML, który rozumie przeglądarka, czytnik ekranu i wyszukiwarka

Każda strona internetowa, niezależnie od tego, czy stoi na WordPressie, w sklepie internetowym czy w aplikacji napisanej we frameworku JavaScript, trafia do przeglądarki jako dokument HTML. To od jego jakości zależy, czy treść będzie poprawnie odczytana przez czytnik ekranu, czy wyszukiwarka zrozumie, o czym jest podstrona, i czy przeglądarka wyświetli ją szybko i bez przeskakujących elementów. Poniżej kompendium o podstawach języka, a w kolejnych sekcjach – jak piszemy kod HTML w projektach SEOSEM24.

Kodujemy projekty graficzne do postaci szablonów, budujemy lekkie strony statyczne i landing page’e, przygotowujemy kod motywów do systemów CMS, takich jak WordPress, oraz audytujemy i poprawiamy kod istniejących serwisów. HTML zawsze piszemy razem z warstwą wyglądu w CSS i zachowania w JavaScripcie, ale tak, żeby treść strony była kompletna i czytelna nawet wtedy, gdy skrypt się nie wczyta. Taki kod jest też najlepszym punktem wyjścia do pozycjonowania.

2019 rok porozumienia W3C i WHATWG: od tego czasu obowiązuje jedna, stale aktualizowana specyfikacja HTML Living Standard
3 warstwy strony: treść i struktura w HTML, wygląd w CSS, zachowanie w JavaScripcie – każdą budujemy osobno
6 etapów naszej pracy od analizy projektu graficznego do przekazania gotowego, przetestowanego kodu
8 punktów listy kontrolnej, którą sprawdzamy każdy szablon przed wdrożeniem na produkcję
HTML

HTML, czyli HyperText Markup Language, jest podstawowym językiem wykorzystywanym do tworzenia stron internetowych. Jego głównym zadaniem jest strukturalne opisanie treści strony, tak aby przeglądarka internetowa mogła ją poprawnie wyświetlić. HTML to język znaczników, co oznacza, że opiera się na specjalnych tagach (znacznikach) otaczających treści, które definiują ich funkcję i wygląd na stronie.

Pierwsza wersja HTML została zaproponowana w 1991 roku przez Tima Bernersa-Lee, twórcę World Wide Web. Od tamtego czasu język ten przeszedł wiele zmian i aktualizacji, z których najnowsza, HTML5, została wprowadzona w 2014 roku. HTML5 znacząco rozszerzył możliwości języka, dodając nowe znaczniki, lepsze wsparcie dla multimediów oraz poprawiając integrację z innymi technologiami webowymi, takimi jak CSS i JavaScript.

HTML jako podstawa Internetu

Semantyczny HTML to jeden z najważniejszych trendów w tworzeniu stron internetowych. Oznacza to używanie odpowiednich znaczników do określonych celów, np. header do nagłówków, article do artykułów, czy footer do stopki. Taki sposób pisania kodu ma kilka kluczowych zalet:

  • Poprawa czytelności kodów
    Semantyczne znaczniki sprawiają, że kod staje się bardziej przejrzysty dla programistów, co ułatwia jego edycję i rozwój.
  • Lepsze SEO
    Wyszukiwarki, takie jak Google, lepiej rozumieją strukturę strony, co pozytywnie wpływa na jej widoczność w wynikach wyszukiwania.
  • Dostępność
    Semantyczny HTML wspiera technologie asystujące, takie jak czytniki ekranowe, co czyni strony bardziej dostępnymi dla osób z niepełnosprawnościami.

Ewolucja HTML – Od statycznych stron po nowoczesne rozwiązania

Pierwsze wersje HTML były bardzo ograniczone. Strony opierały się głównie na tekstach i prostych obrazach. Z biegiem lat HTML przeszedł ogromne zmiany, a jego najnowsza wersja, HTML5, wprowadziła liczne ulepszenia:

  • Nowe znaczniki
    HTML5 dodał wiele nowych znaczników, takich jak video, audio czy canvas, które umożliwiają osadzanie multimediów i tworzenie grafiki bez potrzeby korzystania z dodatkowych wtyczek.
  • Wsparcie dla aplikacji webowych
    HTML5 wspiera funkcje takie jak lokalne przechowywanie danych czy offline access, co umożliwia tworzenie zaawansowanych aplikacji internetowych.
  • Lepsza optymalizacja
    Nowoczesne rozwiązania HTML są bardziej wydajne i przyjazne dla SEO.

Podstawy HTML – Struktura Dokumentu

Każdy dokument HTML składa się z określonej struktury, którą można podzielić na trzy główne sekcje:

Deklaracja DOCTYPE
Deklaracja <!DOCTYPE html> znajduje się na początku każdej strony i informuje przeglądarkę, że dokument jest napisany w HTML5. Dzięki temu przeglądarka wie, jak interpretować kod.

Sekcja <html>
Cały kod HTML znajduje się wewnątrz znacznika <html>. Dzieli się on na dwie główne części: <head> i <body>.

Sekcja <head>
Sekcja <head> zawiera informacje o stronie, które nie są bezpośrednio wyświetlane, ale mają kluczowe znaczenie dla jej funkcjonowania. Możemy tu umieścić:

  • Metadane – np. kodowanie znaków, opis strony, słowa kluczowe.
  • Tytuł strony – wyświetlany na pasku przeglądarki.
  • Linki do stylów CSS – określające wygląd strony.
  • Skrypty JavaScript – dodające interaktywność.

Sekcja <body>
Sekcja <body> zawiera treść widoczną dla użytkownika, czyli tekst, obrazy, nagłówki, linki, formularze i wiele innych elementów.

HTML Tworzenie stron www

Podstawowe tagi HTML

Język HTML opiera się na znacznikach, które określają strukturę dokumentu. Oto najważniejsze z nich:

Nagłówki
Nagłówki definiują tytuły i podtytuły na stronie. Istnieje sześć poziomów nagłówków, od <h1> (najważniejszy) do <h6> (najmniej ważny).

Paragrafy
Do tworzenia akapitów tekstu używamy znacznika <p>.

Listy
HTML pozwala na tworzenie dwóch rodzajów list:

  • Listy uporządkowane (<ol>) – elementy są numerowane.
  • Listy nieuporządkowane (<ul>) – elementy są oznaczone punktami.

Linki
Linki umożliwiają nawigację między stronami. Tworzy się je za pomocą znacznika <a>.

Obrazy
Obrazy dodajemy za pomocą znacznika <img>, który nie posiada znacznika zamykającego.

Tabele
Tabele służą do przedstawiania danych w formie uporządkowanej.

Pozycjonowanie stron www Bierutów

Najlepsze praktyki przy tworzeniu wtron w HTML

Tworząc strony internetowe w HTML, warto pamiętać o kilku kluczowych zasadach, które pozwolą na tworzenie bardziej czytelnych, wydajnych i dostępnych witryn.

Poprawna semantyka HTML
Semantyczne znaczniki HTML (np. <header>, <footer>, <article>, <section>) pomagają przeglądarkom i narzędziom pomocniczym (np. czytnikom ekranu) lepiej zrozumieć strukturę strony.

Optymalizacja wydajności

  • Minimalizacja rozmiaru plików – zmniejsz rozmiar obrazów, używaj skompresowanych plików CSS i JavaScript.
  • Ładowanie asynchroniczne – skrypty JavaScript mogą być ładowane asynchronicznie, co przyspiesza ładowanie strony.

Responsywność
Responsywne strony dostosowują się do różnych rozmiarów ekranów. W tym celu używamy metatagu viewport oraz stylów CSS.

Dostępność (accessibility)
Aby strona była dostępna dla jak największej liczby użytkowników, w tym osób z niepełnosprawnościami:

  • Używaj atrybutu alt dla obrazów.
  • Zapewnij odpowiedni kontrast tekstu.
  • Dodaj napisy do multimediów.

Walidacja kodów
Używaj narzędzi do walidacji kodu, takich jak W3C Validator, aby sprawdzić poprawność składni i uniknąć błędów.

HTML w E-commerce i Marketingu

HTML odgrywa kluczową rolę w tworzeniu sklepów internetowych i kampanii marketingowych. Struktura witryny oparta na HTML wpływa na wygodę zakupów online, szybkość ładowania strony oraz jej widoczność w wynikach wyszukiwania. Oto kilka przykładów:

Atrakcyjne landing pages
Landing pages, czyli strony docelowe wykorzystywane w kampaniach marketingowych, muszą być atrakcyjne wizualnie i zoptymalizowane pod kątem konwersji. Dzięki HTML można łatwo tworzyć przyciągające wzrok układy i osadzać elementy CTA (Call to Action), takie jak przyciski czy formularze kontaktowe.

Optymalizacja pod kampanie reklamowe
HTML umożliwia osadzanie kodów śledzących, takich jak Google Analytics czy Facebook Pixel, które są niezbędne do analizy skuteczności kampanii marketingowych i remarketingu. Dzięki temu możliwe jest śledzenie działań użytkowników i optymalizacja kampanii w czasie rzeczywistym.

Budowanie zaufania klienta
Sklepy internetowe oparte na HTML mogą zawierać elementy budujące zaufanie, takie jak certyfikaty bezpieczeństwa, opinie klientów czy sekcje FAQ. Ich odpowiednie osadzenie w strukturze strony wpływa na decyzje zakupowe użytkowników.

HTML a Pozycjonowanie Stron (SEO)

HTML to fundament optymalizacji pod kątem wyszukiwarek. Poprawne użycie znaczników HTML wpływa na sposób, w jaki wyszukiwarki analizują i indeksują strony internetowe. Kluczowe elementy optymalizacji to:

  • Nagłówki
    Poprawne użycie znaczników h1 i h2 ułatwia wyszukiwarkom zrozumienie hierarchii treści.
  • Atrybuty Alt
    Opisy obrazów pomagają wyszukiwarkom zrozumieć, co przedstawia grafika, co ma znaczenie w pozycjonowaniu w wyszukiwarce grafiki Google.
  • Linkowanie Wewnętrzne
    HTML umożliwia tworzenie przyjaznych dla SEO struktur linków, które poprawiają nawigację na stronie.

Dlaczego warto wybrać SEOSEM24?

Tworzenie strony internetowej to złożony proces, który wymaga wiedzy, doświadczenia i znajomości najlepszych praktyk. SEOSEM24 to zespół specjalistów, którzy tworzą strony oparte na HTML, dostosowane do potrzeb biznesowych klientów. Oferujemy:

  • Profesjonalny Projekt
    Tworzymy strony o estetycznym wyglądzie i intuicyjnej nawigacji.
  • Optymalizacja SEO
    Zadbamy o każdy detal, aby Twoja strona była widoczna w wyszukiwarkach.
  • Responsywność
    Twoja witryna będzie doskonale wyglądać na każdym urządzeniu.
  • Wsparcie techniczne
    Po zakończeniu projektu oferujemy pełne wsparcie techniczne i możliwość rozwoju witryny.

HTML to podstawa, na której opiera się każda strona internetowa. Jego poprawne użycie pozwala tworzyć funkcjonalne, estetyczne i dostępne witryny, które są przyjazne zarówno dla użytkowników, jak i wyszukiwarek. Jeśli chcesz mieć profesjonalną stronę internetową lub sklep online, który wyróżni się na tle konkurencji, skontaktuj się z SEOSEM24.

Interesuje Cię profesjonalna strona internetowa? Skontaktuj się z nami!

Zamów nasze usługi telefonicznie: 533 543 333 lub mailowo: info@seosem24.pl

Sprawdź nasze pozostałe usługi tworzenia stron www: https://seosem24.pl/tworzenie-stron-www

Najczęściej zadawane pytania na temat HTML

Co to jest HTML?
HTML (HyperText Markup Language) to język znaczników używany do tworzenia i strukturyzowania treści stron internetowych, takich jak tekst, obrazy, linki i inne elementy.

Jakie są podstawowe elementy HTML?
Podstawowe elementy HTML to znaczniki, takie jak <html>, <head>, <body>, <h1>, <p>, <a>, <img> i wiele innych, które definiują różne części i funkcje strony.

Czy HTML jest językiem programowania?
Nie, HTML nie jest językiem programowania. Jest to język znaczników służący do opisywania struktury dokumentu, a nie do tworzenia logiki aplikacji.

Czym jest znacznik w HTML?
Znacznik (ang. tag) to element składni HTML zapisany w nawiasach ostrych, np. <p> dla akapitu lub <img> dla obrazów.

Jak działa hierarchia w HTML?
HTML działa w oparciu o strukturę drzewiastą, w której elementy mogą być zagnieżdżane wewnątrz innych elementów, tworząc rodziców i dzieci, np. <div><p>Tekst</p></div>.

Co to jest atrybut w HTML?
Atrybut to dodatkowa informacja o znaczniku, zapisywana w jego otwierającej części, np. <img src="obraz.jpg" alt="Opis">.

Czy HTML jest wrażliwy na wielkość liter?
Znaczniki HTML nie są wrażliwe na wielkość liter, ale zaleca się stosowanie małych liter zgodnie z najlepszymi praktykami.

Czym różni się HTML od XHTML?
XHTML jest bardziej restrykcyjną wersją HTML, która wymaga przestrzegania zasad składni XML, takich jak zamykanie wszystkich znaczników.

Jak połączyć HTML z CSS?
HTML można połączyć z CSS, używając atrybutu style w znacznikach, wstawiając element <style> w sekcji <head> lub odwołując się do zewnętrznego pliku CSS za pomocą <link>.

Czy można tworzyć interaktywne elementy w HTML?
Same HTML nie umożliwia tworzenia interaktywności, ale można to osiągnąć, używając języków programowania, takich jak JavaScript, w połączeniu z HTML.

CSSCSSCSS to język arkuszy stylów służący do opisywania wyglądu i formatowania stron internetowych, który pozwala kontrolować kolory, czcionki, układ elementów oraz responsywność, oddzielając strukturę HTML od warstwy wizualnej.Zobacz JavaScriptJavaScriptJavaScript to dynamiczny język programowania wykorzystywany w tworzeniu interaktywnych stron internetowych, który umożliwia obsługę zdarzeń, animacji, walidacji formularzy oraz komunikację z serwerem bez przeładowywania strony.Zobacz PythonPythonPython to wszechstronny język programowania o czytelnej składni, wykorzystywany w analizie danych, tworzeniu aplikacji webowych, automatyzacji, uczeniu maszynowym i skryptach systemowych, ceniony za prostotę, elastyczność i ogromną społeczność.Zobacz PHPPHPPHP to popularny język skryptowy po stronie serwera, używany do tworzenia dynamicznych stron internetowych i aplikacji webowych, który umożliwia integrację z bazami danych, obsługę formularzy oraz generowanie treści HTML w czasie rzeczywistym.Zobacz JavaJavaJava to obiektowy język programowania o wysokiej wydajności, wykorzystywany w tworzeniu aplikacji desktopowych, mobilnych i webowych, ceniony za przenośność, bezpieczeństwo oraz dużą skalowalność w środowiskach korporacyjnych.Zobacz HTMLC#C# to nowoczesny, obiektowy język programowania stworzony przez Microsoft, wykorzystywany do tworzenia aplikacji desktopowych, webowych i mobilnych w środowisku .NET, oferujący wysoką wydajność, bezpieczeństwo i łatwość utrzymania kodu.Zobacz C++C++C++ to wydajny język programowania łączący paradygmaty proceduralne i obiektowe, szeroko stosowany w tworzeniu systemów operacyjnych, gier, aplikacji desktopowych i oprogramowania wbudowanego, ceniony za kontrolę nad zasobami i szybkość działania.Zobacz SQLSQLSQL to język zapytań wykorzystywany do zarządzania relacyjnymi bazami danych, który umożliwia tworzenie, modyfikowanie, wyszukiwanie i analizowanie danych, będąc podstawowym narzędziem w pracy analityków, programistów i administratorów.Zobacz TypeScriptTypeScriptTypeScript to nadzbiór języka JavaScript wprowadzający statyczne typowanie, który ułatwia tworzenie skalowalnych i bezpiecznych aplikacji webowych, oferując lepsze wsparcie dla dużych projektów oraz integrację z popularnymi frameworkami.Zobacz SwiftSwiftSwift to nowoczesny, szybki i bezpieczny język programowania stworzony przez Apple, wykorzystywany do tworzenia aplikacji na iOS, macOS, watchOS i tvOS, oferujący przejrzystą składnię, wysoką wydajność i zaawansowane mechanizmy bezpieczeństwa.Zobacz KotlinKotlinKotlin to nowoczesny język programowania w pełni interoperacyjny z Javą, wykorzystywany głównie do tworzenia aplikacji na Androida, który oferuje zwięzłą składnię, bezpieczeństwo typów oraz wsparcie dla programowania funkcyjnego i obiektowego.Zobacz HTML – ilustracja 2RR to specjalistyczny język programowania i środowisko analityczne wykorzystywane w statystyce, analizie danych i wizualizacji, cenione przez naukowców, analityków i badaczy za bogaty zestaw bibliotek i możliwości pracy na dużych zbiorach danych.Zobacz Go (Golang)Go (Golang)Go (Golang) to wydajny i prosty język programowania stworzony przez Google, który umożliwia tworzenie szybkich, skalowalnych aplikacji sieciowych i systemowych, oferując łatwą składnię, wbudowaną obsługę współbieżności i szybki czas kompilacji.Zobacz RustRustRust to nowoczesny język programowania zaprojektowany z myślą o bezpieczeństwie pamięci i wysokiej wydajności, wykorzystywany w tworzeniu systemów, aplikacji i narzędzi, który eliminuje całe klasy błędów typowych dla C i C++Zobacz DartDartDart to język programowania opracowany przez Google, wykorzystywany głównie do tworzenia aplikacji mobilnych, webowych i desktopowych z użyciem frameworka Flutter, oferujący prostą składnię, wysoką wydajność i multiplatformowość.Zobacz PerlPerlPerl to wszechstronny język skryptowy znany z potężnych możliwości przetwarzania tekstu, wykorzystywany w administracji systemami, tworzeniu raportów, analizie danych i automatyzacji, ceniony za elastyczność i rozbudowaną składnię.Zobacz ScalaScalaScala to nowoczesny język programowania łączący cechy programowania obiektowego i funkcyjnego, działający na JVM, wykorzystywany w tworzeniu aplikacji o wysokiej wydajności, systemów rozproszonych oraz przetwarzaniu dużych zbiorów danych.Zobacz XHTML5XHTML5XHTML5 to wersja HTML5 zapisana w składni XML, łącząca zalety nowoczesnych funkcji HTML z rygorystyczną strukturą XML, co zapewnia większą spójność, lepszą walidację i możliwość integracji z zaawansowanymi technologiami internetowymi.Zobacz
W skrócie

Semantyka to dobór elementu do roli, a nie lista nowych znaczników

  • Na podstronie jest jeden region główny i jeden nagłówek pierwszego stopnia.
  • Akcje na stronie wykonuje przycisk, a do innych adresów prowadzi link z atrybutem href.
  • Każde pole formularza ma powiązaną etykietę, a grupy pól mają wspólny opis.
  • Atrybuty ARIA dodajemy tylko tam, gdzie sam HTML nie wystarcza.
Sprawdź kod swojej strony
Semantyka w praktyce

Semantyczny HTML bez teorii: decyzje, które podejmujemy w każdym szablonie

O tym, że istnieją znaczniki opisujące znaczenie treści, pisze dziś każdy poradnik. Trudniejsze jest konsekwentne stosowanie ich w prawdziwym projekcie, w którym termin goni, a projekt graficzny zawiera dziesiątki nietypowych elementów. Dobrym przykładem jest „przycisk” zbudowany ze zwykłego bloku z obsługą kliknięcia w JavaScripcie. Wygląda jak przycisk, ale nie da się do niego przejść klawiszem Tab, czytnik ekranu nie ogłosi go jako przycisku, a klawisze Enter i spacja nic nie zrobią. Natywny element <button> zapewnia to wszystko bez jednej dodatkowej linijki kodu.

Semantyka nie jest więc sztuką dla sztuki. To sposób na to, żeby przeglądarka, technologie wspomagające i roboty wyszukiwarek dostały od strony informacje, które inaczej trzeba by im dostarczać dodatkowym kodem, często z błędami. Poniżej obszary, które sprawdzamy w każdym kodowanym szablonie.

Regiony strony

Układ strony opisujemy elementami <header>, <nav>, <main> i <footer>, a treści uzupełniające elementem <aside>. Region główny występuje na podstronie tylko raz. Gdy na stronie jest kilka nawigacji, na przykład menu główne, okruszki i spis treści, każda dostaje własną etykietę. Osoby korzystające z czytników ekranu przeskakują między tymi regionami jak między rozdziałami książki, więc ich poprawne oznaczenie realnie skraca drogę do treści.

Hierarchia nagłówków

Nagłówek pierwszego stopnia opisuje treść podstrony, nagłówki drugiego stopnia jej główne części, a kolejne poziomy – podrozdziały. Nie przeskakujemy poziomów tylko dlatego, że mniejszy nagłówek lepiej pasuje wizualnie, bo wielkość tekstu to zadanie CSS. Nie używamy też nagłówków do wyróżniania haseł typu „Zadzwoń teraz” w stopce. Spis nagłówków strony powinien czytać się jak sensowny konspekt.

Linki, przyciski i formularze

  • Link prowadzi, przycisk działa. Element <a> z atrybutem href służy do przejścia pod inny adres lub w inne miejsce strony. Otwarcie okna, rozwinięcie menu czy wysłanie formularza to zadanie dla <button>.
  • Opisowa treść linków. „Zobacz cennik pozycjonowania” mówi więcej niż „kliknij tutaj” zarówno użytkownikowi czytnika ekranu, który przegląda listę linków, jak i wyszukiwarce.
  • Etykiety i grupy pól. Każde pole ma element <label>, a powiązane opcje, na przykład przyciski wyboru, są zgrupowane w <fieldset> z opisem w <legend>. Sam tekst zastępczy w polu nie jest etykietą, bo znika po rozpoczęciu pisania.
  • Właściwe typy pól. Pola typu email i tel otwierają na telefonie odpowiednią klawiaturę, a atrybut autocomplete pozwala przeglądarce podpowiedzieć zapisane dane. To drobiazgi, które wyraźnie ułatwiają wypełnienie formularza.

Tabele i listy

Tabel używamy wyłącznie do danych tabelarycznych, takich jak cenniki, porównania czy harmonogramy, i opisujemy je podpisem oraz komórkami nagłówkowymi. Układu strony nie budujemy tabelami od lat, ale wciąż spotykamy je w starszych serwisach. Menu i zestawy linków zapisujemy jako listy, dzięki czemu czytnik ekranu od razu poinformuje, ile pozycji zawiera nawigacja.

ARIA na końcu, nie na początku: wytyczne W3C dotyczące stosowania ARIA zaczynają się od zasady, żeby zamiast dodawać role i atrybuty do przypadkowych elementów, w pierwszej kolejności używać natywnych elementów HTML o odpowiednim znaczeniu i zachowaniu. ARIA uzupełniamy tam, gdzie HTML nie ma gotowego odpowiednika, na przykład przy zakładkach, czy informujemy o stanie rozwiniętego menu.
Co kodujemy

Zakres prac w HTML: od jednej strony kampanii po szablony dużych serwisów

Kodowanie HTML rzadko jest osobnym zleceniem w oderwaniu od reszty projektu. Najczęściej to element budowy strony, wdrożenia nowego wyglądu albo porządków po audycie. Poniżej sześć typowych zakresów prac, które realizujemy.

01

Kodowanie projektów graficznych

Zamieniamy projekt przygotowany w narzędziu graficznym na kod, który działa na telefonach, tabletach i dużych ekranach. Projekt rozkładamy na powtarzalne komponenty, dzięki czemu kolejne podstrony powstają szybciej, a wygląd pozostaje spójny.

  • Biblioteka komponentów
  • Stany: najechanie, fokus, błąd, wyłączenie
  • Widoki od telefonu do szerokiego ekranu
02

Lekkie strony statyczne

Strona kampanii, mikroserwis produktu, dokumentacja czy prosta wizytówka nie zawsze potrzebują systemu CMS i bazy danych. Statyczne pliki HTML ładują się bardzo szybko, można je umieścić na niemal każdym serwerze, a brak panelu administracyjnego zmniejsza powierzchnię ataku.

  • Brak bazy danych i panelu logowania
  • Bardzo krótki czas ładowania
  • Proste kopie i przenoszenie
03

Szablony do systemów CMS

Kod HTML staje się potem szablonami motywu, na przykład w WordPressie, gdzie łączy się go z PHP. Planujemy go tak, żeby treści wprowadzane przez redaktorów w edytorze zawsze trafiały w poprawną strukturę, bez ręcznego poprawiania znaczników.

  • Bloki i pola dopasowane do komponentów
  • Style dla treści z edytora
  • Jedna struktura nagłówków w całym serwisie
04

Poprawki dostępności

Naprawiamy kod istniejących serwisów pod kątem wytycznych WCAG: brakujące etykiety formularzy, nieobsługiwane z klawiatury menu i okna, błędną hierarchię nagłówków, obrazy bez opisów. Zaczynamy od szablonów, bo jedna poprawka w szablonie naprawia problem na setkach podstron.

  • Obsługa klawiaturą i widoczny fokus
  • Formularze z etykietami i komunikatami
  • Poprawne regiony i nagłówki
05

Audyt i porządkowanie kodu

Przeglądamy kod głównych typów podstron i wskazujemy, co wpływa na widoczność, wydajność i wygodę użytkowników. Wynikiem jest lista zmian uporządkowana według ważności, a nie suchy wydruk z walidatora z setkami ostrzeżeń bez znaczenia.

  • Przegląd szablonów, a nie pojedynczych stron
  • Priorytety według wpływu na wyniki
  • Możliwość wdrożenia poprawek
06

Odnowienie starych stron HTML

Starsze serwisy pisane ręcznie przed laty często mają układ oparty na tabelach, brak wersji mobilnej i kod powielony w każdym pliku. Przepisujemy je na nowoczesny, responsywny kod albo przenosimy do CMS, zachowując adresy lub kierując je przekierowaniami 301.

  • Responsywny układ zamiast tabel
  • Wspólne elementy w jednym miejscu
  • Zachowana widoczność starych adresów
Od makiety do kodu

Jak zamieniamy projekt graficzny w kod HTML: sześć kroków

Najwięcej problemów z kodem rodzi się wtedy, gdy programista zaczyna od kolorów i odstępów, a strukturę dopisuje na końcu. My robimy odwrotnie: najpierw treść i jej znaczenie, potem wygląd, na końcu zachowanie.

1

Analiza projektu i spis komponentów

Przeglądamy makiety wszystkich widoków i wypisujemy powtarzalne elementy: karty, listy, formularze, nawigacje, banery. Sprawdzamy, czy projekt zawiera widoki na telefon, stany błędów, puste wyniki wyszukiwania i komunikaty po wysłaniu formularza. Brakujące elementy ustalamy z projektantem, zanim powstanie pierwsza linijka kodu.

Spis komponentów Pytania do projektanta
2

Struktura dokumentu

Dla każdego typu podstrony piszemy szkielet bez stylów: regiony, konspekt nagłówków i kolejność treści. Sprawdzamy, czy strona czytana od góry do dołu ma sens, bo w takiej kolejności przejdzie ją czytnik ekranu i użytkownik klawiatury. Jeśli projekt wymaga innej kolejności wizualnej, rozwiązujemy to w CSS, nie kosztem logiki dokumentu.

Konspekt nagłówków Kolejność czytania
3

Komponenty od widoku mobilnego

Kodujemy komponent po komponencie, zaczynając od najwęższego ekranu. Klasy nazywamy według konwencji BEM, żeby z samej nazwy było widać, do jakiego bloku należy element i jaki ma wariant. Kolory, odstępy i rozmiary czcionek zapisujemy jako zmienne, co ułatwia późniejsze zmiany wyglądu w całym serwisie.

Najpierw telefon Czytelne klasy BEM
4

Obrazy, media i interakcje

Przygotowujemy obrazy w kilku rozmiarach i nowoczesnych formatach, z opisem dla przeglądarki, który wariant pobrać na danym ekranie. Filmy osadzamy tak, żeby nie spowalniały pierwszego wyświetlenia. Interakcje, takie jak rozwijane menu czy zakładki, dodajemy w czystym JavaScripcie jako ulepszenie działającej już treści.

Media responsywne Skrypty jako ulepszenie
5

Testy

Kod sprawdzamy walidatorem, przechodzimy kluczowe ścieżki wyłącznie klawiaturą i czytnikiem ekranu, testujemy w popularnych przeglądarkach i na fizycznych telefonach. Mierzymy wydajność narzędziami laboratoryjnymi i porównujemy wynik z budżetem, który ustaliliśmy na początku projektu, na przykład dla wagi strony i liczby skryptów.

Walidacja i dostępność Pomiar wydajności
6

Przekazanie albo integracja

Gotowy kod trafia do repozytorium wraz z opisem komponentów i zasad ich używania. Jeśli strona ma działać w systemie CMS, sami zamieniamy kod w szablony motywu i podłączamy pola edycyjne. Przy stronach statycznych publikujemy pliki na serwerze i konfigurujemy przekierowania, nagłówki pamięci podręcznej oraz kompresję.

Repozytorium i dokumentacja Integracja z CMS
W skrócie

Kilkanaście linijek w sekcji head decyduje o tym, jak strona wygląda w Google i w mediach społecznościowych

  • Każda podstrona ma unikalny tytuł i opis.
  • Adres kanoniczny wskazuje preferowaną wersję strony przy duplikatach.
  • Wersje językowe wskazują się nawzajem przez hreflang.
  • Skrypty firm zewnętrznych nie blokują wyświetlania treści.
Zobacz audyt SEO
Metadane i SEO techniczne

Sekcja head: niewidoczna dla użytkownika, kluczowa dla wyszukiwarek i przeglądarek

Użytkownik nie widzi sekcji <head>, ale efekty jej zawartości ogląda codziennie: tytuł w karcie przeglądarki, wynik w Google, podgląd linku wklejonego w komunikatorze, poprawne polskie znaki i to, czy strona na telefonie nie jest pomniejszoną wersją komputerowej. W szablonach, które przygotowujemy, sekcja ta jest generowana automatycznie na podstawie danych podstrony, a redaktor może nadpisać tytuł i opis tam, gdzie ma to sens.

Co ustawiamy na każdej podstronie

  • Język dokumentu. Atrybut lang w elemencie <html> mówi czytnikom ekranu, jak wymawiać tekst, a przeglądarkom, czy proponować tłumaczenie. Fragmenty w innym języku oznaczamy osobno.
  • Kodowanie i widok mobilny. Deklaracja kodowania UTF-8 znajduje się na samym początku dokumentu, a znacznik viewport dopasowuje szerokość strony do ekranu. Nie blokujemy przy tym powiększania, bo osób słabowidzących pozbawia to podstawowego narzędzia.
  • Tytuł i opis. Tytuł jest unikalny dla każdej podstrony i zaczyna się od tego, co najważniejsze. Opis nie wpływa bezpośrednio na pozycje, ale często trafia do wyniku wyszukiwania i zachęca do kliknięcia. Google może jednak wyświetlić własną wersję obu elementów.
  • Adres kanoniczny. Gdy ta sama treść jest dostępna pod kilkoma adresami, na przykład z parametrami sortowania, element link z rel="canonical" wskazuje wersję preferowaną. Wyszukiwarka traktuje go jako silną wskazówkę, a nie polecenie.
  • Wersje językowe. Atrybuty hreflang wskazują odpowiedniki podstrony w innych językach. Odnośniki muszą być wzajemne, inaczej wyszukiwarka może je zignorować.
  • Dyrektywy dla robotów. Podstrony, które nie powinny trafić do wyników, oznaczamy noindex. Pamiętamy, że adres zablokowany w pliku robots.txt nie zostanie pobrany, więc wyszukiwarka nie zobaczy na nim dyrektywy noindex.
  • Podgląd w mediach społecznościowych. Znaczniki Open Graph określają tytuł, opis i obraz, które pojawiają się po udostępnieniu linku. Bez nich serwis wybiera je sam, często niefortunnie.

Kolejność zasobów i dane strukturalne

W sekcji head decyduje się też, co przeglądarka pobierze w pierwszej kolejności. Style potrzebne do pierwszego wyświetlenia ładujemy od razu, skrypty z atrybutem defer, a do zewnętrznych serwerów, z których pobieramy ważne zasoby, nawiązujemy wcześniejsze połączenie. Wstępne ładowanie stosujemy oszczędnie, tylko dla kluczowej czcionki lub głównego obrazu. Dane strukturalne dodajemy w formacie JSON-LD, który Google zaleca, bo nie miesza się z treścią strony i łatwo go generować z danych w CMS.

Mit do porzucenia: znacznik meta keywords nie ma znaczenia dla pozycji w Google. Firma już wiele lat temu oficjalnie potwierdziła, że nie bierze go pod uwagę przy ustalaniu pozycji. Czas lepiej poświęcić na dobry tytuł, nagłówki i treść.

Co zwykle waży najwięcej na podstronie

indeks, 100 = najcięższa grupa zasobów

Wykres poglądowy: typowe proporcje wagi zasobów na stronie firmowej. Na konkretnej stronie mogą być zupełnie inne, dlatego zawsze zaczynamy od pomiaru.

Wydajność

HTML a szybkość strony: co można poprawić na poziomie znaczników

Szybkość strony kojarzy się zwykle z serwerem i hostingiem, tymczasem wiele problemów ma źródło w samym kodzie HTML: w tym, jak zadeklarowano obrazy, w jakiej kolejności ładują się skrypty i jak rozbudowane jest drzewo elementów. Google opisuje doświadczenie użytkownika trzema wskaźnikami Core Web Vitals: LCP mówi, jak szybko pojawia się największy element treści, INP – jak szybko strona reaguje na kliknięcia i dotknięcia, a CLS – czy układ nie przeskakuje podczas ładowania. INP zastąpił w 2024 roku wcześniejszy wskaźnik FID. Na każdy z nich wpływają decyzje podejmowane podczas pisania HTML.

Obrazy

  • Wymiary w kodzie. Atrybuty width i height pozwalają przeglądarce zarezerwować miejsce na obraz, zanim zostanie pobrany. Bez nich tekst przesuwa się w dół, gdy obraz się pojawi, co pogarsza CLS i irytuje czytających.
  • Różne rozmiary dla różnych ekranów. Atrybuty srcset i sizes pozwalają telefonowi pobrać mniejszy plik niż monitor o dużej rozdzielczości, a element <picture> – podać nowoczesne formaty, takie jak AVIF i WebP, z bezpiecznym wariantem zapasowym.
  • Leniwe ładowanie z głową. Atrybut loading="lazy" stosujemy dla obrazów poniżej pierwszego ekranu, ale nigdy dla głównego obrazu, który zwykle jest elementem mierzonym przez LCP. Ten oznaczamy wyższym priorytetem pobierania.

Skrypty i style

Skrypt wstawiony w sekcji head bez atrybutów defer lub async zatrzymuje budowanie strony do czasu, aż zostanie pobrany i wykonany. Dlatego własne skrypty ładujemy z atrybutem defer, a narzędzia firm zewnętrznych, takie jak czaty, mapy czy wtyczki społecznościowe, wczytujemy dopiero wtedy, gdy są potrzebne, na przykład po przewinięciu do sekcji z mapą. Style krytyczne dla pierwszego ekranu są małe i dostępne od razu, reszta może poczekać.

Rozmiar drzewa elementów

Kreatory wizualne potrafią owinąć jeden akapit w kilka lub kilkanaście zagnieżdżonych bloków. Przy rozbudowanych podstronach daje to tysiące elementów, które przeglądarka musi przechowywać w pamięci i przeliczać przy każdej zmianie, co spowalnia reakcję na działania użytkownika. Narzędzie Lighthouse ostrzega przed nadmiernym rozmiarem DOM. Pisząc kod ręcznie, używamy tylko tych kontenerów, które są potrzebne do układu.

Czcionki

Każda grubość i odmiana kroju to osobny plik. Ograniczamy je do niezbędnych, wybieramy zestawy znaków z polskimi literami, a główny plik czcionki ładujemy z wyprzedzeniem. Ustawiamy też wyświetlanie tekstu krójem zastępczym, dopóki właściwa czcionka się nie pobierze, żeby użytkownik nie patrzył na pustą stronę.

Laboratorium a rzeczywistość: PageSpeed Insights pokazuje dwa rodzaje danych. Wynik testu laboratoryjnego to symulacja jednego wczytania strony, a dane terenowe pochodzą od prawdziwych użytkowników Chrome, jeśli strona ma ich wystarczająco wielu. Do oceny Core Web Vitals liczy się to drugie, dlatego po wdrożeniu poprawek obserwujemy dane terenowe przez kilka tygodni.
HTML czy CMS

Strona w czystym HTML, generator czy CMS: kiedy która droga ma sens

Każda strona kończy jako HTML w przeglądarce, ale sposób, w jaki ten HTML powstaje, ma ogromny wpływ na koszty, wygodę edycji i bezpieczeństwo. Oto cztery podejścia, między którymi najczęściej wybieramy razem z klientem.

Ręcznie pisany HTML

Jedna lub kilka podstron, rzadkie zmiany treści

  • Najwyższa szybkość i pełna kontrola nad każdym znacznikiem
  • Brak systemu i wtyczek do aktualizowania
  • Prosty i tani hosting, łatwe kopie zapasowe
  • Każda zmiana treści wymaga edycji kodu
  • Wspólne elementy, takie jak menu, trzeba zmieniać w wielu plikach
Dobry wybór dla strony kampanii, wydarzenia, prostej wizytówki lub prototypu.

Generator stron statycznych

Szablony i treści w plikach, wynik w czystym HTML

  • Wspólne elementy zapisane raz, w szablonie
  • Wynik nadal jest szybkim, statycznym HTML
  • Treści i kod wersjonowane w repozytorium
  • Redakcja wymaga oswojenia z plikami lub dodatkowego panelu
  • Funkcje dynamiczne trzeba dostarczać z zewnętrznych usług
Dobry wybór dla dokumentacji, blogów technicznych i serwisów z nieliczną redakcją.

System CMS

Panel do edycji treści, na przykład WordPress

  • Redaktorzy samodzielnie dodają i zmieniają treści
  • Gotowe rozszerzenia: formularze, wersje językowe, sklep
  • Role, uprawnienia i historia zmian
  • Wymaga regularnych aktualizacji i dbałości o bezpieczeństwo
  • Jakość HTML zależy od motywu i użytych wtyczek
Dobry wybór dla większości stron firmowych, blogów i sklepów. Więcej na stronie o systemach CMS.

Headless CMS i osobny frontend

Treści w CMS, wyświetlanie w osobnej aplikacji

  • Jedno źródło treści dla strony, aplikacji i innych kanałów
  • Swoboda w doborze technologii warstwy prezentacji
  • Wyższy koszt budowy i utrzymania dwóch systemów
  • Trzeba zadbać, żeby gotowy HTML powstawał po stronie serwera, a nie dopiero w przeglądarce
Dobry wybór dla dużych serwisów publikujących w wielu kanałach jednocześnie.
Audyt kodu

Co sprawdzamy, gdy audytujemy kod HTML istniejącej strony

Audyt kodu nie polega na wydrukowaniu raportu z walidatora. Przeglądamy szablony głównych typów podstron w pięciu obszarach i oceniamy, które problemy realnie szkodzą użytkownikom, widoczności lub sprzedaży.

Struktura dokumentu i nagłówki

Zaczynamy od konspektu nagłówków na stronie głównej, liście kategorii, karcie produktu lub usługi i wpisie blogowym. Typowe problemy to brak nagłówka pierwszego stopnia albo kilka takich nagłówków, z których jeden obejmuje logo, nagłówki użyte w stopce i panelach bocznych jako ozdobniki oraz przeskakiwanie poziomów. Sprawdzamy też, czy strona ma poprawne regiony i czy kolejność w kodzie odpowiada kolejności wizualnej.

Przy większych serwisach używamy crawlera, który zbiera nagłówki ze wszystkich podstron, dzięki czemu widać, czy błąd dotyczy jednego wpisu, czy całego szablonu. Szukamy także zdublowanych identyfikatorów elementów. Wyglądają niewinnie, ale potrafią zepsuć powiązanie etykiety z polem formularza albo działanie zakładek.

  • Konspekt nagłówków głównych szablonów
  • Regiony strony i kolejność treści
  • Zdublowane identyfikatory
  • Porównanie błędów na wielu podstronach
Nasze standardy

Sześć zasad, według których piszemy kod HTML

Standardy pozwalają utrzymać jakość niezależnie od tego, kto w zespole koduje dany komponent i jak bardzo goni termin. Stosujemy je w każdym projekcie, od jednej strony kampanii po szablony dużego serwisu.

Treść działa bez skryptów

Najpierw powstaje kompletna, czytelna treść w HTML, potem wygląd, a na końcu interakcje w JavaScripcie. Gdy skrypt się nie wczyta albo zawiedzie, użytkownik i robot wyszukiwarki nadal dostają wszystkie informacje.

Natywny element przed własnym rozwiązaniem

Przycisk, link, lista rozwijana czy element details mają wbudowaną obsługę klawiatury i znaczenie dla czytników ekranu. Sięgamy po nie, zanim napiszemy własny komponent z rolami ARIA.

Klasy, które coś mówią

Nazywamy klasy według konwencji BEM i nie wpisujemy stylów bezpośrednio w atrybutach elementów. Kod jest przewidywalny, a zmiana wyglądu komponentu nie psuje przypadkiem innego miejsca w serwisie.

Kolejność kodu to kolejność czytania

Układ wizualny budujemy w CSS, ale kolejność elementów w dokumencie odpowiada logice treści. Dzięki temu nawigacja klawiaturą i odczyt czytnikiem przebiegają w sensownej kolejności.

Mniej kontenerów, mniej zależności

Każdy dodatkowy blok, biblioteka czy czcionka musi uzasadnić swoją obecność. Proste drzewo elementów i niewielka liczba zasobów to szybsza strona i łatwiejsze utrzymanie przez lata.

Kod, który przejmie każdy

Trzymamy się standardów sieciowych zamiast własnych sztuczek, opisujemy komponenty i zostawiamy komentarze tam, gdzie decyzja nie jest oczywista. Inny zespół powinien móc rozwijać stronę bez odgadywania naszych intencji.

W skrócie

Mniej JavaScriptu to mniej błędów i szybsza strona

  • Elementy details i summary obsługują rozwijane sekcje i pytania FAQ.
  • Element dialog służy do okien modalnych z obsługą klawisza Escape.
  • Atrybut popover tworzy wyskakujące panele i podpowiedzi.
  • Wbudowana walidacja pól to pierwsza linia kontroli formularza.
Porozmawiaj o projekcie
Nowoczesny HTML

Co potrafi dziś sam HTML: elementy, które zastępują biblioteki skryptów

Przez lata wiele typowych elementów interfejsu wymagało bibliotek JavaScript: rozwijane sekcje, okna modalne, podpowiedzi, walidacja formularzy, leniwe ładowanie obrazów. Dziś dużą część tych zadań przeglądarki realizują natywnie. Mniej skryptów oznacza szybsze ładowanie, mniej miejsc, w których coś może się zepsuć po aktualizacji, i lepszą dostępność od pierwszego dnia, bo natywne elementy mają wbudowaną obsługę klawiatury i technologii wspomagających. Zanim sięgniemy po nowość, sprawdzamy jej obsługę w tabelach zgodności przeglądarek i testujemy na urządzeniach.

Rozwijane sekcje bez skryptu

Para elementów <details> i <summary> tworzy sekcję, którą użytkownik rozwija i zwija kliknięciem lub klawiaturą. Tak zbudowana jest sekcja pytań na tej stronie. Treść odpowiedzi znajduje się w kodzie od początku, więc wyszukiwarka ją widzi, a część przeglądarek potrafi ją nawet automatycznie rozwinąć, gdy ktoś szuka na stronie słowa ukrytego w zwiniętym fragmencie.

Okna dialogowe i panele wyskakujące

Element <dialog> otwarty jako okno modalne wyświetla się nad całą stroną, blokuje interakcję z resztą treści i zamyka się klawiszem Escape. Wcześniej każde z tych zachowań trzeba było oprogramować ręcznie, a błędy w obsłudze fokusu były jednym z najczęstszych problemów z dostępnością. Do lżejszych zastosowań, takich jak menu kontekstowe czy podpowiedź, służy atrybut popover, który otwiera panel przyciskiem i zamyka go kliknięciem poza nim, bez własnego kodu obsługi zdarzeń.

Formularze, które pilnują się same

Atrybuty required, minlength, pattern czy typy pól, takie jak email, url i number, pozwalają przeglądarce zatrzymać oczywiste błędy przed wysłaniem formularza i wskazać problematyczne pole. Atrybut inputmode podpowiada telefonowi, jaką klawiaturę pokazać. To jednak tylko pierwsza linia: dane zawsze sprawdzamy ponownie po stronie serwera, bo walidację w przeglądarce można łatwo obejść.

Wyłączanie fragmentów strony

Atrybut inert sprawia, że wskazany fragment strony staje się nieaktywny: nie da się do niego przejść klawiaturą ani go kliknąć, a czytnik ekranu go pomija. Przydaje się na przykład przy otwartym menu mobilnym, które zasłania resztę treści. Zamiast pisać własną logikę „płapania” fokusu, wystarczy oznaczyć tło jednym atrybutem.

Wsparcie przeglądarek: nowe możliwości wprowadzamy tak, żeby w starszej przeglądarce strona działała nadal poprawnie, choć może mniej wygodnie. Jeśli jakiś element jest kluczowy dla sprzedaży, a jego obsługa nie jest jeszcze powszechna, dodajemy rozwiązanie zastępcze albo wstrzymujemy się z wdrożeniem.
Częste błędy

Osiem błędów w kodzie HTML, które poprawiamy najczęściej

Te problemy powtarzają się w serwisach różnej wielkości, niezależnie od systemu, na którym działają. Większość da się naprawić w szablonie, raz dla całej strony.

01

Logo jako główny nagłówek

Na każdej podstronie nagłówek pierwszego stopnia zawiera nazwę firmy z logo, a właściwy temat strony spada do niższego poziomu. Wyszukiwarka i czytnik ekranu dostają przez to ten sam główny nagłówek wszędzie.

02

Klikalne bloki zamiast linków

Karty i przyciski zbudowane z ogólnych bloków z obsługą kliknięcia nie działają z klawiatury, nie da się ich otworzyć w nowej karcie, a robot wyszukiwarki może nie znaleźć adresów, do których prowadzą.

03

Tekst zastępczy zamiast etykiety

Pole opisane wyłącznie szarym tekstem wewnątrz traci opis w chwili rozpoczęcia pisania. Brak prawdziwej etykiety utrudnia wypełnianie formularza wszystkim, a dla czytnika ekranu pole bywa zupełnie anonimowe.

04

Opisy obrazów z nazw plików

Teksty alternatywne typu nazwa pliku z aparatu albo lista słów kluczowych nie pomagają nikomu. Dobry opis mówi, co jest na obrazie i po co tam jest, a ozdobniki mają pusty opis.

05

Ważny tekst w grafice

Banery z treścią promocji, cennik w formie obrazka czy godziny otwarcia na zdjęciu są nieczytelne dla wyszukiwarki i czytników, a na małym ekranie często także dla ludzi. Tekst powinien być tekstem.

06

Błędne ukrywanie treści

Elementy schowane wizualnie, ale wciąż osiągalne klawiaturą, albo odwrotnie – ukryte przed czytnikiem, choć można je zaznaczyć. Użytkownik trafia wtedy fokusem w niewidoczne miejsce i gubi się na stronie.

07

Zdublowane identyfikatory i złe zagnieżdżenia

Dwa elementy z tym samym identyfikatorem, link umieszczony wewnątrz innego linku albo blok w akapicie. Przeglądarka próbuje takie błędy naprawić po swojemu, co kończy się nieprzewidywalnym układem i zepsutymi powiązaniami.

08

Blokujące skrypty w nagłówku

Kody śledzące, czaty i widgety wstawione na początku dokumentu bez ładowania odroczonego wstrzymują wyświetlenie treści. Użytkownik patrzy na pusty ekran, choć sam HTML dawno dotarł do przeglądarki.

Pytania i odpowiedzi

Kodowanie HTML w praktyce: pytania od klientów

Uzupełnienie pytań z kompendium. Tym razem o współpracy, wyborze technologii i wpływie kodu na widoczność strony.

Czy strona napisana w czystym HTML to dziś dobry pomysł?
Tak, jeśli treści zmieniają się rzadko, a stron jest niewiele. Strona kampanii, wydarzenia czy prosta wizytówka w statycznym HTML jest bardzo szybka, tania w utrzymaniu i odporna na ataki wymierzone w systemy CMS. Gdy jednak zespół chce samodzielnie publikować treści co tydzień, wygodniejszy będzie CMS albo generator stron statycznych z prostym panelem.
Czy zakodujecie projekt przygotowany przez innego grafika?
Tak. Potrzebujemy dostępu do pliku projektu z widokami na różne ekrany, informacji o czcionkach i licencjach na nie oraz grafik w jakości źródłowej. Jeśli w projekcie brakuje stanów błędów, widoku mobilnego albo niektóre rozwiązania będą problematyczne dla dostępności, zgłaszamy to przed rozpoczęciem kodowania i proponujemy poprawki.
Czy jakość kodu HTML wpływa na pozycje w Google?
Pośrednio tak, choć nie w taki sposób, że wyszukiwarka nagradza stronę za zero błędów w walidatorze. Znaczenie mają rzeczy, które z kodu wynikają: czy robot znajdzie linki do podstron, czy rozumie hierarchię treści, czy tytuły i adresy kanoniczne są poprawne, czy strona ładuje się szybko i działa na telefonie. Dlatego kod traktujemy jako fundament pozycjonowania.
Czy trzeba poprawić wszystkie błędy zgłaszane przez walidator?
Nie wszystkie mają tę samą wagę. Zdublowane identyfikatory, błędne zagnieżdżenia czy niezamknięte elementy potrafią zepsuć układ i dostępność, więc poprawiamy je w pierwszej kolejności. Ostrzeżenia o przestarzałych atrybutach czy nadmiarowych rolach mają zwykle niższy priorytet. W raporcie z audytu zawsze dzielimy uwagi na pilne, ważne i kosmetyczne.
Czy kreatory wizualne generują gorszy kod?
Często generują kod cięższy, z wieloma zagnieżdżonymi kontenerami i stylami ładowanymi na zapas, a jego jakość zależy od konkretnego narzędzia i sposobu użycia. Kreator bywa dobrym wyborem, gdy zespół często sam buduje nowe podstrony. Jeśli priorytetem jest szybkość i pełna kontrola nad strukturą, lepiej sprawdza się własny motyw z blokami przygotowanymi pod projekt.
Czy po wdrożeniu będę mógł sam zmieniać treści?
To zależy od wybranego rozwiązania. W stronie statycznej drobne zmiany tekstu w pliku HTML wprowadzi osoba z podstawową znajomością kodu, ale wygodniej zlecić je nam. Jeśli treści mają być zmieniane regularnie przez zespół bez wiedzy technicznej, od początku zaprojektujemy stronę w systemie CMS z prostym panelem edycji.
Jak przenieść starą stronę HTML do WordPressa bez utraty pozycji?
Najważniejsze jest zachowanie treści, które zdobyły widoczność, i przekierowanie każdego starego adresu na jego nowy odpowiednik przekierowaniem 301. Przed migracją robimy spis wszystkich adresów, sprawdzamy, które mają ruch i linki z innych stron, a po starcie monitorujemy indeksowanie w Google Search Console. Więcej o samym systemie piszemy na stronie o WordPressie.
Czy moja strona potrzebuje atrybutów ARIA?
Tylko tam, gdzie sam HTML nie opisuje elementu wystarczająco, na przykład przy zakładkach, rozwijanym menu czy dynamicznie aktualizowanych komunikatach. Nadmiar ARIA bywa gorszy niż jej brak, bo błędna rola lub nieaktualizowany stan wprowadzają użytkownika czytnika ekranu w błąd. Dlatego najpierw używamy właściwych elementów HTML, a ARIA traktujemy jako uzupełnienie.
Która wersja HTML obowiązuje obecnie?
Obowiązuje HTML Living Standard rozwijany przez WHATWG, czyli specyfikacja aktualizowana na bieżąco zamiast wydawania kolejnych numerowanych wersji. W 2019 roku W3C i WHATWG uzgodniły, że będzie to jedna wspólna specyfikacja. Określenie HTML5 funkcjonuje nadal w potocznym języku jako synonim nowoczesnego HTML.
Czy aplikacja w React lub innym frameworku też generuje HTML?
Tak, ale ważne jest, gdzie on powstaje. Jeśli serwer odsyła pusty dokument, a całą treść buduje skrypt w przeglądarce, wyszukiwarka musi najpierw wykonać JavaScript, co wymaga dodatkowych zasobów i bywa zawodne. Przy serwisach nastawionych na ruch z wyszukiwarki zalecamy renderowanie po stronie serwera lub generowanie statycznych stron, tak żeby gotowy HTML był dostępny od razu.
Jak sprawdzić strukturę nagłówków na swojej stronie?
Najprostszy sposób to rozszerzenie przeglądarki pokazujące konspekt nagłówków albo narzędzia deweloperskie wbudowane w przeglądarkę. Przy większej liczbie podstron lepiej użyć crawlera, który zbierze nagłówki z całego serwisu. Jeśli wolisz, przygotujemy taką analizę w ramach przeglądu kodu i wskażemy, które szablony wymagają poprawek.
Czy HTML w newsletterach różni się od HTML na stronie?
Tak, i to wyraźnie. Programy pocztowe obsługują tylko część możliwości CSS, a każdy robi to inaczej, dlatego wiadomości e-mail wciąż często buduje się na tabelach i stylach przypisanych bezpośrednio do elementów. Techniki, które na stronie są przestarzałe, w mailach bywają jedynym niezawodnym rozwiązaniem. To osobna specjalizacja wymagająca testów w wielu programach pocztowych.
Czy kodujecie zgodnie z wytycznymi dostępności WCAG?
Tak. Punktem odniesienia jest dla nas poziom AA wytycznych WCAG, których najnowsza wersja 2.2 została opublikowana przez W3C w 2023 roku. Dla podmiotów publicznych zgodność z wymaganiami dostępności jest obowiązkiem ustawowym, a dla firm prywatnych coraz częściej wymogiem klientów i przepisów dotyczących usług cyfrowych. Dostępność sprawdzamy zarówno narzędziami automatycznymi, jak i ręcznie.
Ile trwa zakodowanie projektu graficznego?
Czas zależy przede wszystkim od liczby unikalnych szablonów i komponentów, a nie od liczby podstron. Serwis z setką podstron opartych na trzech szablonach może być prostszy niż landing page z kilkunastoma nietypowymi sekcjami i animacjami. Harmonogram podajemy po analizie projektu, gdy wiemy już, ile komponentów trzeba zbudować i jakie integracje są potrzebne.
Czy strona będzie działać w starszych przeglądarkach?
Na początku projektu ustalamy listę wspieranych przeglądarek, zwykle na podstawie danych z analityki obecnej strony. Dzięki podejściu stopniowego ulepszania treść i podstawowe funkcje działają także w starszych wersjach, a nowsze możliwości, takie jak niektóre efekty wizualne, pojawiają się tam, gdzie przeglądarka je obsługuje.
Czy pracujecie z firmami spoza Krakowa?
Tak. Nasze biuro znajduje się w Krakowie, przy ul. Rybitwy, a z klientami z innych miast i krajów pracujemy zdalnie. Projekty omawiamy na wideorozmowach, wersje testowe udostępniamy online, a kod przekazujemy przez repozytorium, więc lokalizacja nie ma wpływu na przebieg współpracy.
Przed wdrożeniem

Lista kontrolna szablonu HTML w ośmiu punktach

Każdy szablon, który trafia na produkcję, przechodzi przez tę listę. Możesz użyć jej także do szybkiej oceny swojej obecnej strony.

  • Jeden nagłówek główny i logiczny konspekt. Nagłówek pierwszego stopnia opisuje temat podstrony, a kolejne poziomy tworzą czytelny spis treści bez przeskoków.
  • Regiony i szybkie przejście do treści. Strona ma nagłówek, nawigację, jeden region główny i stopkę, a pierwszy link pozwala pominąć menu.
  • Linki i przyciski zgodne z rolą. Nawigacja to elementy a z adresem, akcje to przyciski, a wszystko działa z klawiatury z widocznym fokusem.
  • Formularze z etykietami. Każde pole ma etykietę, właściwy typ i autouzupełnianie, a błędy są opisane tekstem przy polu.
  • Obrazy z wymiarami i opisami. Obrazy mają wymiary w kodzie, warianty dla różnych ekranów i sensowne teksty alternatywne, a główny obraz nie jest ładowany leniwie.
  • Komplet metadanych. Język dokumentu, unikalny tytuł i opis, adres kanoniczny, znaczniki Open Graph i, jeśli trzeba, atrybuty hreflang.
  • Skrypty pod kontrolą. Własne skrypty ładowane z opóźnieniem, narzędzia zewnętrzne wczytywane dopiero wtedy, gdy są potrzebne.
  • Walidacja i test ręczny. Walidator nie zgłasza błędów krytycznych, a kluczowe ścieżki zostały przetestowane klawiaturą, czytnikiem ekranu i na telefonie.
Słowniczek

Pojęcia, które warto znać, zamawiając kodowanie HTML

Krótkie wyjaśnienia terminów, które pojawiają się w ofertach, raportach z audytów i rozmowach z programistami.

DOM
Obiektowy model dokumentu, czyli drzewo elementów, które przeglądarka buduje na podstawie kodu HTML. Na nim operują style i skrypty, a jego rozmiar wpływa na wydajność strony.
Region strony
Wydzielona część układu, taka jak nagłówek, nawigacja, treść główna czy stopka. Czytniki ekranu pozwalają przeskakiwać między regionami, co skraca drogę do treści.
ARIA
Zestaw ról i atrybutów opracowany przez W3C, który uzupełnia HTML o informacje dla technologii wspomagających, na przykład o tym, że menu jest rozwinięte.
Walidator
Narzędzie sprawdzające zgodność kodu ze specyfikacją HTML. Wskazuje błędy składni i struktury, ale nie oceni sensu treści ani wygody obsługi strony.
Adres kanoniczny
Wskazanie preferowanej wersji podstrony, gdy ta sama treść jest dostępna pod kilkoma adresami. Pomaga wyszukiwarce wybrać właściwy adres do wyników.
Hreflang
Atrybut wskazujący wersje językowe lub regionalne tej samej podstrony. Dzięki niemu użytkownik z danego kraju trafia na odpowiednią wersję w wynikach wyszukiwania.
Srcset i sizes
Atrybuty obrazu, które podają przeglądarce kilka wariantów pliku i informację o szerokości, jaką obraz zajmie. Przeglądarka sama wybiera najlepiej dopasowany plik.
Stopniowe ulepszanie
Podejście, w którym podstawą jest działająca treść w HTML, a wygląd i interakcje dodaje się warstwami. Strona działa wtedy także w starszych przeglądarkach i przy błędach skryptów.
Core Web Vitals
Trzy wskaźniki Google opisujące doświadczenie użytkownika: szybkość wyświetlenia głównej treści (LCP), szybkość reakcji na działania (INP) i stabilność układu (CLS).
Renderowanie po stronie serwera
Sposób działania aplikacji, w którym gotowy HTML powstaje na serwerze i trafia do przeglądarki od razu, zamiast być budowany dopiero przez skrypt na urządzeniu użytkownika.
Encja znakowa
Zapis znaku za pomocą kodu zaczynającego się od ampersandu, na przykład dla nawiasów ostrych. Pozwala wyświetlić znaki, które inaczej zostałyby uznane za część kodu.
BEM
Konwencja nazywania klas CSS: blok, element i modyfikator. Z nazwy klasy od razu widać, do którego komponentu należy element i jaki wariant przedstawia.
Web Components
Zestaw standardów pozwalających tworzyć własne, wielokrotnego użytku elementy HTML z zamkniętymi stylami i zachowaniem, bez zależności od konkretnego frameworka.
Porozmawiajmy o Twoim kodzie

Potrzebujesz zakodować projekt albo uporządkować kod obecnej strony?

Prześlij nam projekt graficzny lub adres strony. Ocenimy zakres prac, wskażemy najważniejsze problemy w kodzie i zaproponujemy rozwiązanie dopasowane do tego, jak często zmieniasz treści.

Zostaw komentarz

Komentarze z wulgaryzmami, obraźliwymi słowami albo linkami do innych stron nie są publikowane.

Twój adres e-mail nie zostanie opublikowany. Komentarze są moderowane.

Porozmawiajmy o Twoim projekcie

Opowiedz nam o swojej sytuacji – bezpłatnie ją przeanalizujemy i zaproponujemy plan działań. Odpowiadamy tego samego dnia, dyżur eksperta 24/7.