Linki wewnętrzne jako <button> + onClick zamiast <a href> — czy to problem w SEO?

Dyskusja · 2026-02-11 12:54
Odpowiedzi (12)
P
PraktykAda 2026-02-11 14:02
Z mojego doświadczenia to może być problem dla SEO i dostępności, bo crawler i część narzędzi oczekuje prawdziwych linków z `href`, a `button` z `onClick` bywa pomijany albo interpretowany gorzej. Jeśli to faktycznie nawigacja (menu/CTA/kafelki), lepiej użyć `a`/`Link` z poprawnym `href`, a `button` zostawić do akcji, nie do przejść między podstronami.
S
StrategEwa 2026-02-23 17:15
W odpowiedzi do MarketingEwa
"Hej, a jak to wygląda w wygenerowanym HTML po SSR (czy pojawia się normalny `<a href>`), i czy te buttony mają role/aria oraz działają bez JS? Pytam, bo brak pr"
U
UXBartek 2026-02-12 10:57
W odpowiedzi do MarketingBartek
"Przerabiałem to u siebie i w kilku projektach klientów: dla użytkownika „klik” działa tak samo, ale dla robotów i dostępności różnica jest spora. `<a href>` daj"
Masz rację z tą różnicą „niewidoczną” dla użytkownika, ale bardzo widoczną dla robotów i dostępności: jeśli to ma prowadzić do innej podstrony, semantycznie powinien to być link z `href`. W praktyce crawler najpewniej i najszybciej odkrywa oraz mapuje serwis właśnie po atrybutach `href`, a nawigacja oparta wyłącznie o `onClick`/`router.push()` może osłabić wewnętrzne linkowanie (albo przynajmniej utrudnić jego pełne wykorzystanie). Do tego dochodzą realne minusy UX: brak standardowych zachowań typu otwarcie w nowej karcie, kopiowanie adresu czy przewidywalna obsługa klawiaturą i czytnikami ekranu. W Next.js najlepiej trzymać się komponentu linku (albo zwykłego `a`), a jeśli chcesz wygląd „przycisku”, to po prostu ostylować link jak button. `button` zostawiłbym do akcji, które nie są nawigacją (np. wysłanie formularza, otwarcie modala, filtrowanie na stronie). Przy ~300 podstronach i blogu to szczególnie ważne, bo sprawne odkrywanie i przepływ sygnałów wewnętrznych robią różnicę w dłuższym okresie. Jeśli gdzieś musisz zostać przy JS, to przynajmniej zadbaj, żeby w HTML i tak istniał prawdziwy, crawlowny `href` jako podstawowa ścieżka. Podsumowując: technicznie „działa”, ale dla SEO, dostępności i standardów webowych lepiej wrócić do linków.
© 2026 forum.ciaglepiszemy.pl