Poprawna odpowiedź to <footer>, bo właśnie ten znacznik w HTML5 jest semantycznie przeznaczony na stopkę strony lub stopkę sekcji. W specyfikacji HTML5 wyraźnie podkreślono, że <footer> służy do umieszczania informacji końcowych: praw autorskich (copyright), linków do polityki prywatności, kontaktu, autorów, krótkich podsumowań czy nawigacji pomocniczej. Moim zdaniem warto traktować <footer> jak miejsce na „meta‑informacje” o stronie albo o danej części dokumentu. Co ważne, <footer> nie musi występować tylko raz – możesz mieć stopkę całej strony w obrębie <body>, ale też osobne stopki np. dla artykułu (<article>) czy sekcji (<section>). To jest dobra praktyka, bo poprawia strukturę dokumentu i czytelność kodu. W praktyce wygląda to np. tak: <footer><p>© 2026 Firma XYZ</p><nav><a href="/regulamin">Regulamin</a> | <a href="/kontakt">Kontakt</a></nav></footer>. Czytniki ekranowe i roboty wyszukiwarek lepiej rozumieją wtedy, że ta część strony to zakończenie i informacje dodatkowe. To się przekłada na lepszą dostępność (WCAG) i trochę sensowniejsze SEO. Z mojego doświadczenia warto pilnować, żeby nie wrzucać do <footer> całej reszty layoutu, tylko właśnie elementy typowo „stopkowe”. Dobrą praktyką jest też trzymanie się spójnej struktury na wszystkich podstronach, żeby użytkownik intuicyjnie wiedział, że w stopce znajdzie np. link do pliku RODO albo dane firmy. HTML5 mocno stawia na semantykę, więc używanie <footer> zamiast jakiegoś bezsensownego <div id="stopka"> to po prostu nowocześniejsze i zgodne ze standardami podejście.
W HTML5 każdy z wymienionych znaczników ma swoją dość precyzyjnie określoną rolę semantyczną i to jest klucz do zrozumienia, dlaczego tylko <footer> nadaje się na stopkę strony. Sporo osób myli te elementy, bo wizualnie można osiągnąć podobny efekt samym CSS-em, ale semantyka ma znaczenie dla wyszukiwarek, czytników ekranu i ogólnego porządku w kodzie. Znacznik <aside> służy do treści pobocznych, takich jak boczne panele, dodatkowe informacje, reklamy, krótkie notki, boks z „podobnymi artykułami” i tym podobne. To coś, co jest powiązane z główną treścią, ale nie stanowi jej głównej osi. Umieszczenie całej stopki w <aside> zaburza logikę dokumentu – roboty i narzędzia dostępności mogą odebrać to jako dodatkowy panel, a nie zakończenie strony. To jest typowy błąd: mylenie „czegoś na dole albo z boku” z „treścią poboczną” tylko dlatego, że tak wygląda layout. <figcaption> ma jeszcze węższe zastosowanie. Ten znacznik opisuje konkretnie podpis do grafiki lub innego elementu w obrębie <figure>. Służy na przykład do opisu zdjęcia, rysunku technicznego, wykresu. Stopka strony to zupełnie inny typ treści, związany z całym dokumentem, a nie z jedną ilustracją. Użycie <figcaption> do stopki jest po prostu sprzeczne z przeznaczeniem i specyfikacją – przeglądarka tego „nie ukarze”, ale semantycznie taki kod jest błędny. Z kolei <header> to semantyczny nagłówek strony lub sekcji. Zawiera zwykle logo, główne menu, tytuł serwisu, czasem wyszukiwarkę. Jest logicznym początkiem, a nie zakończeniem treści. Częsty błąd myślowy polega na tym, że ktoś traktuje <header> i <footer> tylko jako nazwy związane z designem, a nie z rolą w dokumencie. Tymczasem standard HTML5 jasno mówi: <header> – początek sekcji, <footer> – jej zakończenie. Dlatego wybór innego znacznika niż <footer> na stopkę strony łamie założenia semantyczne, utrudnia utrzymanie kodu i w dłuższej perspektywie szkodzi jakości projektu.