TL;DR
Linkowanie wewnętrzne rozprowadza PageRank-like sygnały, pomaga Google znaleźć nowe URL i prowadzi użytkownika z edukacji (blog) do oferty (money page). Model: hub usługi → spoke specjalizacji + artykuły wspierające z opisowymi anchorami. Unikaj orphan pages, generycznych „kliknij tutaj”, nadmiaru footer-links i kanibalizacji. W Next.js: linki w markdown + komponenty CTA + breadcrumbs; sitemap uzupełnia, ale nie zastępuje linków w HTML. Hosting na DevStudioIT Cloud; mapa relacji URL może żyć w Postgres (Branchly). Poniżej: architektura hubów, reguły anchorów, audit i workflow publikacji.
Dla kogo to jest
- Firm z blogiem i katalogiem usług na jednej domenie
- SEO / content managerów planujących klastry tematyczne
- Developerów Next.js budujących nawigację i MDX/markdown
- Zespołów po migracji, gdzie dużo URL ma depth > 4 bez inbound links
Fraza (SEO)
linkowanie wewnętrzne SEO, internal linking blog usługi, hub pages SEO 2026, anchor text best practices, orphan pages crawl, ścieżki crawla Next.js
Po co linki wewnętrzne (biznes + SEO)
| Korzyść | Efekt |
|---|---|
| Odkrywanie URL | crawler trafia na nowe posty bez czekania tylko na sitemap |
| Kontekst tematyczny | Google łączy blog z money page w jednym klastrze |
| UX / konwersja | czytelnik przechodzi z „jak” do „zamawiam” |
| Dystrybucja autorytetu | mocne strony (home, hub) wzmacniają spoke |
| Mniej orphanów | każda ważna strona ma ≥1–3 inbound z treści |
Sitemap mówi „istnieję”. Link w treści mówi „jestem ważny w tym kontekście”.
Architektura: hub → spoke → blog
/pl/strony-www ← HUB (money)
├── /pl/strony-www/dla-kancelarii ← spoke
├── /pl/strony-www/dla-medycyny ← spoke
└── Blog cluster (wsparcie):
├── long-tail-keywords-... → link do HUB + spoke
├── open-graph-twitter-cards-... → link do HUB (SEO tech)
└── b2b-leady-ze-strony-www-... → link do HUB + /kontakt CTAHub = strona usługi z H1 komercyjnym, CTA, listą spoke i „polecane artykuły”.
Spoke = wąska oferta / branża.
Blog = pokrycie informacyjne + link w górę (i poziomo między powiązanymi postami).
Nie buduj „silosa” tak sztywno, że użytkownik nie może przejść między usługami, silos to wskazówka tematyczna, nie więzienie UX.
Anchor text, reguły praktyczne
| Typ anchora | Przykład | Kiedy |
|---|---|---|
| Opisowy (preferowany) | „wdrożenie formularza B2B w Next.js” | blog → usługa / artykuł |
| Częściowo brandowy | „oferta stron WWW DevStudio.it” | ostrożnie, naturalnie |
| Exact-match money | „strona internetowa dla firmy” | rzadko, nie w każdym poście |
| Generyczny | „kliknij tutaj”, „więcej” | unikać jako jedyny sygnał |
| URL surowy | https://... |
OK w stopce/dokumentacji, słaby w prose |
3–8 linków kontekstowych w artykule 1100–1500 słów zwykle wystarczy. Nadmiar wygląda jak spam i rozmywa fokus.
W UI CTA button może mieć krótki label („Poproś o wycenę”), a obok w akapicie naturalny opisowy link do tej samej money page, to nie jest duplikat szkodliwy, jeśli nie przesadzasz.
Ścieżki crawla i głębokość
Cel: ważne money pages w 1–2 kliknięciach od home / hub. Blog posts: z listy bloga + z hubu „related” + z innych postów.
Home → Hub usługi → Spoke / Blog post → Formularz (#formularz-kontakt)
↘ Blog index → Post → Hub usługi| Symptom | Diagnoza | Fix |
|---|---|---|
| URL tylko w sitemap | orphan / słaby crawl | dodaj link z hubu lub related |
| Depth 5+ w nawigacji | zła IA | skróć ścieżkę, dodaj shortcut z hubu |
| 40 linków w footerze | thin PageRank split | footer: kluczowe; reszta w treści |
| Tylko tag pages łączą posty | słaby kontekst | linki w body, nie tylko taxonomy |
Related posts i automatyzacja
Ręcznie: 2–4 „Powiązane” na końcu artykułu (redaktor zna intencję).
Pół-auto: tagi / translationId klastra / tabela related_slugs w Branchly.
Unikaj „losowych 5 ostatnich postów”, często zero relacji tematycznej.
// przykładowy helper, related z frontmatter lub DB
export function getRelatedPosts(slug: string, locale: string, limit = 3) {
const map = getRelatedMap(); // JSON lub Branchly
return (map[slug] ?? [])
.map((s) => getPost(locale, s))
.filter(Boolean)
.slice(0, limit);
}Po deploy na DevStudioIT Cloud sprawdź w Screaming Frog / podobnym: inlinks do hubów i orphan candidates.
Workflow przy publikacji nowego posta
- Wybierz 1 primary money page, do której post musi linkować
- Dodaj 1–2 linki do spokrewnionych artykułów (poziomo)
- Zaktualizuj hub: sekcja „Z bloga” / related (jeśli post jest kluczowy)
- Breadcrumbs: Home → Blog → Tytuł (spójne z JSON-LD)
- Po publish: smoke test crawl (wewnętrzny link z listy bloga istnieje)
Czego unikać
- Linkowanie każdego posta do homepage zamiast do hubu usługi
- Identyczny exact-match anchor w 20 artykułach
- JavaScript-only menu bez SSR linków w HTML
rel=nofollowna wewnętrznych bez powodu- Kanibalizacja: dwa huby linkujące agresywnie na tę samą frazę bez rozróżnienia intencji
Audyt kwartalny (90 minut)
| Krok | Narzędzie | Outcome |
|---|---|---|
| 1. Crawl | Screaming Frog / Sitebulb | lista inlinks / outlinks |
| 2. Orphans | sitemap ∩ zero content inlinks | lista do podlinkowania |
| 3. Hub health | ręcznie 3–5 money pages | czy mają „z bloga” + spoke |
| 4. Anchor diversity | eksport outlinks z top postów | za dużo exact-match? |
| 5. CTR wewnętrzny | GA4 path exploration | które CTA z bloga działają |
Zapisuj decyzje w arkuszu lub tabeli w Branchly (from_slug, to_slug, anchor, added_at), przy redesignie nie zgadniesz, które linki były celowe.
FAQ
Ile linków wewnętrznych w jednym artykule?
Orientacyjnie 3–8 kontekstowych + CTA. Jakość i trafność > liczba.
Czy breadcrumbs wystarczą jako internal linking?
Pomagają strukturze i UX, ale nie zastępują linków w treści do money pages i related posts.
Link do wersji językowej (hreflang) vs internal link?
hreflang / alternates.languages to sygnał językowy w metadata, to nie jest zamiennik linków treściowych w obrębie jednego locale.
Jak znaleźć orphan pages?
Crawl (Screaming Frog, Sitebulb) + porównanie z sitemap. URL w sitemap bez inlinks z treści = kandydat do podlinkowania lub noindex jeśli nieużywany.
Chcesz spiąć blog z ofertą pod SEO?
- Skontaktuj się z nami, zaprojektujemy huby, mapę linków i related posts pod Next.js
- Long-tail keywords strona usługowa, mapowanie fraz na URL
- Sitemap i RSS w Next.js, uzupełnienie crawl discovery
O autorze
Budujemy szybkie strony WWW, aplikacje web/mobile, chatboty AI i hosting — z naciskiem na SEO i konwersję.
Przydatne linki
Od teorii do produkcji — Branchly, hosting i realizacje.
