Technical SEO 2026-04-25 12 min czytania

Sitemap.xml co to? Pełny przewodnik 2026

Sitemap.xml to mapa URL strony dla wyszukiwarek — XML w formacie standardu Sitemaps Protocol 0.9 (sitemaps.org). Listuje URL ze metadanymi (lastmod, changefreq, priority). Pomaga Google odkrywać nowe strony, zarządzać crawl budgetem, podpowiada hreflang dla multilingual. Limit: 50 000 URL / 50MB skompresowany per plik (większe = sitemap index). Najlepsze 2026: Next.js auto-generuje z app/sitemap.ts, WordPress: Yoast/RankMath plugins. Submit: GSC + Bing + IndexNow (push, ~30 sek vs 1-30 dni dla Google).

Komplementarne tematy: Hreflang co to + Canonical URL co to = full technical SEO foundation.

Minimalny sitemap.xml — przykład

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com/</loc>
    <lastmod>2026-04-25</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://example.com/o-nas</loc>
    <lastmod>2026-04-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>

Sitemap z hreflang (multilingual)

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://example.com/pl/produkt</loc>
    <xhtml:link rel="alternate" hreflang="pl" href="https://example.com/pl/produkt"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/product"/>
    <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/produkt"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/product"/>
  </url>
</urlset>

Powiązane artykuły

FAQ — Sitemap.xml

Co to jest sitemap.xml?

Sitemap.xml to plik XML w formacie standardu Sitemaps Protocol 0.9 (sitemaps.org, 2008) który listuje wszystkie URL Twojej strony, których chcesz aby wyszukiwarki (Google, Bing, Yandex, DuckDuckGo) zaindeksowały. Dla każdego URL może zawierać metadane: <loc> (URL), <lastmod> (data ostatniej modyfikacji), <changefreq> (jak często aktualizowane: always/hourly/daily/weekly/monthly/yearly/never), <priority> (0.0-1.0). Sitemap.xml POMAGA crawlerom odkryć strony, ZWŁASZCZA: (1) nowe strony bez backlinków, (2) głęboko zagnieżdżone strony (>3 kliknięcia od strony głównej), (3) strony z dużą ilością contentu (10k+ produktów e-commerce). Nie GWARANTUJE indeksacji — Google decyduje. Maksymalny rozmiar: 50MB skompresowany, 50 000 URL per plik. Większe strony używają sitemap index (sitemap of sitemaps).

Jak stworzyć sitemap.xml dla swojej strony?

5 metod tworzenia sitemap: (1) NEXT.JS 13+ — najlepsze 2026. Dodaj plik app/sitemap.ts (lub app/sitemap.xml/route.ts), eksportuj funkcję sitemap() zwracającą array { url, lastModified, changeFrequency, priority }. Next.js auto-generuje XML w czasie buildu. Native i18n hreflang support. (2) WORDPRESS — Yoast SEO plugin (free) generuje automatycznie, dostępne pod /sitemap_index.xml. RankMath (free) podobnie. (3) SHOPIFY — auto-generuje, brak edycji manualnej. (4) GENERATORY ONLINE — XML-Sitemaps.com (free do 500 URL), Screaming Frog SEO Spider (free do 500 URL, paid £149/rok unlimited). (5) RĘCZNIE — dla małych stron (<50 URL) możliwe ale niezalecane (utrzymanie). PRZYKŁAD MINIMALNY: <?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>https://example.com/</loc><lastmod>2026-04-25</lastmod></url></urlset>.

Sitemap z hreflang — jak zrobić multilingual sitemap

Hreflang w sitemap = preferowana metoda Google dla multilingual stron (poza tagiem rel=alternate w HEAD). FORMAT: dla każdego URL dodaj <xhtml:link> entries dla wszystkich języków + x-default. PRZYKŁAD: <url><loc>https://example.com/pl/produkt</loc><xhtml:link rel="alternate" hreflang="pl" href="https://example.com/pl/produkt"/><xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/product"/><xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/produkt"/><xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/product"/></url>. WAŻNE: każdy język musi linkować do siebie + wszystkich innych (BIDIRECTIONAL). Brak self-reference = błąd. NEXT.JS 13+: w sitemap.ts dodaj alternates field per route — automatyczne renderowanie XML. WordPress: plugin SEO multilingual (WPML, Polylang) generuje. NAJCZĘSTSZE BŁĘDY: (1) niezgodność (PL linkuje do EN ale EN nie linkuje zwrotnie), (2) zły kod ISO 639-1 (cz nie csh), (3) brak x-default, (4) link do 404.

Sitemap dla obrazów (image sitemap) i video

IMAGE SITEMAP — pomaga Google zrozumieć co przedstawia obraz (Image Search). Format: <url><loc>https://example.com/strona</loc><image:image><image:loc>https://example.com/foto.jpg</image:loc><image:caption>Opis obrazu</image:caption><image:title>Tytuł</image:title><image:license>https://example.com/license</image:license></image:image></url>. Włącz xmlns:image="http://www.google.com/schemas/sitemap-image/1.1". Max 1000 obrazów per URL. KIEDY UŻYĆ: e-commerce z dużą ilością zdjęć produktów, strony portfolio, fotografowie. Schema.org ImageObject jest komplementarne (semantic HTML), oba razem = max coverage. VIDEO SITEMAP — dla stron z osadzonymi video (YouTube, Vimeo, własny hosting). Format: <video:video><video:thumbnail_loc>...</video:thumbnail_loc><video:title>...</video:title><video:description>...</video:description><video:content_loc>...</video:content_loc><video:duration>180</video:duration><video:expiration_date>...</video:expiration_date></video:video>. Pomaga Google Video Search rankings. Schema.org VideoObject = komplementarne.

Submit sitemap do Google Search Console + Bing IndexNow

GOOGLE SEARCH CONSOLE — krok po kroku: (1) Zaloguj się GSC, wybierz property. (2) Lewe menu → Sitemaps. (3) Dodaj URL sitemap (np. /sitemap.xml lub /sitemap_index.xml). (4) Submit. (5) Status powinien być "Success" + liczba "Discovered URLs". Jeśli "Couldn't fetch" → sprawdź robots.txt nie blokuje, sitemap.xml zwraca HTTP 200. (6) Re-submit po większych zmianach (nowe sekcje, masowy re-publish). BING WEBMASTER TOOLS — analogicznie. INDEXNOW (rok 2021+, Microsoft + Yandex + Naver + Cloudflare) — push notifications zamiast pull. Po publikacji nowego URL wyślij POST na api.indexnow.org/indexnow z URL. Crawler indexuje w ~30 sek (vs 1-30 dni dla Google). Cloudflare Workers integration auto-pinguje. SUPPORT: Bing, Yandex, DuckDuckGo, Naver, Seznam (CZ). Google NIE wspiera (jeszcze). PROGRAMOWO: w Next.js dodaj revalidatePath() + ping IndexNow w build pipeline.

Sitemap index — kiedy podzielić sitemap na pliki

LIMIT 50 000 URL per pojedynczy sitemap.xml + 50MB skompresowany (gzip). Powyżej tego musisz zrobić "sitemap index" — XML który listuje inne sitemap pliki. PRZYKŁAD: /sitemap.xml = index, listuje /sitemap-products.xml, /sitemap-blog.xml, /sitemap-images.xml etc. KIEDY DZIELIĆ: (1) E-COMMERCE z 10k+ produktami — osobne sitemapy per kategoria. (2) NEWS site z 10k+ artykułami — osobne per rok. (3) MARKETPLACES — osobne per seller. KORZYŚCI Z PODZIAŁU: szybsze crawl per sitemap, łatwiejsza diagnoza błędów (Google pokazuje per-sitemap stats), niezależna re-indexacja sekcji. PRZYKŁAD INDEX: <?xml version="1.0" encoding="UTF-8"?><sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>https://example.com/sitemap-products.xml</loc><lastmod>2026-04-25</lastmod></sitemap><sitemap><loc>https://example.com/sitemap-blog.xml</loc><lastmod>2026-04-20</lastmod></sitemap></sitemapindex>. NEXT.JS 13+: app/sitemap.ts może zwrócić array sitemaps automatycznie generując sitemap index gdy >50k URL.

Najczęstsze błędy w sitemap.xml

10 najczęstszych błędów audit GMWEB: (1) URL Z 4XX/5XX — sitemap zawiera URL które zwracają 404 lub 500. Google wyrzuci całą sitemap. Fix: tylko URL z HTTP 200. (2) URL Z REDIRECT — Sitemap zawiera /strona-stara/ która redirectuje do /strona-nowa/. Fix: tylko końcowe URL. (3) NIEZGODNOŚĆ Z CANONICAL — sitemap ma /produkt?id=1 ale strona ma canonical /produkt. Fix: tylko canonical URL. (4) NOINDEX URL — strona ma <meta robots="noindex"> ale jest w sitemap. Konfliktowy sygnał. Fix: usuń noindex strony z sitemap. (5) ZBYT ŚWIEŻE LASTMOD — wszystkie URL z lastmod="2026-04-25" gdy edytowano tylko 1 stronę. Google ignoruje (spam signal). Fix: tylko realnie edytowane URL aktualizuj lastmod. (6) ZBYT WYSOKI PRIORITY — wszystkie URL priority=1.0. Bezsensowne (priority jest relatywne). Fix: home=1.0, kluczowe=0.9, podstawowe=0.5. (7) HTTP zamiast HTTPS — gdy strona HTTPS. Fix: zawsze HTTPS w sitemap. (8) BRAK SLASH — niespójność /produkt vs /produkt/. Fix: sitemap dopasuj do canonical. (9) ZBYT DUŻO URL (>50k) — bez sitemap index. Fix: dziel na sitemap index. (10) ZAPOMNIANE re-submit — sitemap statyczny od 2 lat. Fix: dynamic generation w build.

Sitemap a SEO — czy naprawdę pomaga w rankingu?

NIE BEZPOŚREDNIO — sitemap NIE jest sygnałem rankingowym (John Mueller, Google, 2018-2024). NIE wpływa na pozycję strony w SERP. ALE — pomaga POŚREDNIO przez: (1) ODKRYCIE STRON — Google szybciej znajduje nowe / zmienione strony. Bez sitemap nowy URL bez backlinków może być niezauważony przez crawler tygodniami. (2) CRAWL BUDGET — duże strony (>10k URL) Google nie crawluje wszystkiego. Sitemap mówi "hej, te 50k URL wszystkie ważne". Crawler mądrzej alokuje budżet. (3) DEEPER PAGES — strony >3 kliknięć od home crawlowane rzadziej. Sitemap "promuje" je do bezpośredniego crawl. (4) DIAGNOSTYKA — w GSC widzisz "submitted vs indexed" stats — szybko widzisz problemy indexacji per sekcja. (5) HREFLANG — multilingual sitemap = primary signal Google dla international SEO. NA SUMĘ: sitemap to NICE TO HAVE dla małych stron (<100 URL), MUST HAVE dla średnich (100-10k), KRYTYCZNE dla dużych (10k+). Wszystkie strony GMWEB mają sitemap auto-generated z Next.js.

Audyt sitemap.xml + technical SEO

Sprawdzimy Twój sitemap (canonical, hreflang, image/video, sitemap index, GSC submission), audytujemy 40 punktów technical SEO, dostarczamy raport + plan działania w 5 dni roboczych. Od 1 800 zł.

Zamów audyt