Dokumentacja

Dodaj mapę strony

Dodaj mapę strony

Mapa strony (sitemap) to plik XML z listą podstron, często z datą ostatniej zmiany każdej z nich. Google i tak znajduje strony po linkach, ale dzięki mapie szybciej odwiedza nowe i zmienione podstrony i dociera do tych, do których prowadzi mało linków: produktów głęboko w sklepie, starych wpisów na blogu, stron docelowych spoza menu. W Google Search Console pokazuje też, ile z wymienionych stron jest faktycznie zaindeksowanych.

Lista kontrolna strony oznacza brak mapy strony jako Sprawdź. To nie jest sytuacja awaryjna, ale na większości stron ustawisz ją w kilka minut.

Czego szuka lista kontrolna

Sprawdzamy dwa miejsca, w tej kolejności:

  1. https://example.com/sitemap.xml (przekierowanie na inny adres jest w porządku);
  2. pierwszą linię Sitemap: w robots.txt, dla map pod innymi adresami, np. /sitemap_index.xml lub /wp-sitemap.xml.

Plik musi zwracać 200 i być prawdziwą mapą strony: <urlset> (lista stron) albo <sitemapindex> (lista map). Strona główna zwracana dla każdego nieznanego adresu się nie liczy.

Sprawdź sam

Zamiast example.com wpisz swoją stronę:

curl -sL https://example.com/sitemap.xml | head -c 400
curl -sL https://example.com/robots.txt | grep -i '^sitemap:'

Pierwsze polecenie powinno wypisać XML zawierający <urlset lub <sitemapindex. Jeśli wypisze HTML lub błąd, drugie pokaże, czy robots.txt wskazuje gdzie indziej. Wystarczy jedno z dwóch.

Jak to naprawić

Większość systemów już tworzy mapę strony, a poprawka polega na jej włączeniu lub wskazaniu. Wskaż ją w robots.txt jedną linią w dowolnym miejscu pliku, z pełnym adresem:

Sitemap: https://example.com/sitemap_index.xml

WordPress

WordPress ma wbudowaną mapę strony od wersji 5.5, pod /wp-sitemap.xml. /sitemap.xml na nią przekierowuje, a generowany robots.txt ją wymienia. Jest wyłączona, gdy zaznaczone jest Settings → Reading → Search engine visibility, co jest kolejnym powodem, by na działającej stronie to odznaczyć.

Wtyczki SEO zastępują ją własną, pod /sitemap_index.xml:

  • Yoast SEO: Yoast SEO → Settings → Site features, włącz XML sitemaps.
  • Rank Math: Rank Math SEO → Dashboard → Modules, włącz Sitemap; ustawienia są w Rank Math SEO → Sitemap Settings.

Używaj jednej mapy, nie dwóch. Jeśli /sitemap.xml po włączeniu nadal zwraca 404, wejdź w Settings → Permalinks i kliknij Save Changes (odświeża to reguły przepisywania), potem wyczyść pamięć podręczną strony. Jeśli strona ma fizyczny plik robots.txt, dodaj do niego linię Sitemap: samodzielnie.

cPanel

Panel hostingu nie tworzy map strony; robi to CMS albo generator. Jeśli strona to zwykły HTML, wygeneruj sitemap.xml narzędziem do generowania map strony, potem prześlij go przez Files → File Manager do folderu głównego strony (zwykle public_html), obok index.html. W tym samym folderze dodaj linię Sitemap: do robots.txt.

Pamiętaj, żeby wygenerować plik ponownie po dodaniu stron. Dla strony, która często się zmienia, lepszy jest CMS lub aplikacja, która sama buduje mapę.

Node.js i Next.js

W Next.js App Router dodaj app/sitemap.js; Next.js serwuje go pod /sitemap.xml:

export default async function sitemap() {
    const posts = await getPosts(); // Twoje dane

    return [
        { url: 'https://example.com/', lastModified: new Date() },
        ...posts.map((post) => ({
            url: `https://example.com/blog/${post.slug}`,
            lastModified: post.updatedAt,
        })),
    ];
}

Wskaż go w app/robots.js przez sitemap: 'https://example.com/sitemap.xml'. W Pages Router lub innych frameworkach to samo robi krok budowania, który zapisuje public/sitemap.xml.

Laravel

Pakiet spatie/laravel-sitemap buduje mapę strony z Twoich modeli albo przez przeszukanie strony:

composer require spatie/laravel-sitemap
use Spatie\Sitemap\Sitemap;
use Spatie\Sitemap\Tags\Url;

Sitemap::create()
    ->add(Url::create('/'))
    ->add(Post::all())   // model implementuje Sitemapable
    ->writeToFile(public_path('sitemap.xml'));

Uruchamiaj to z zaplanowanego polecenia (raz dziennie wystarczy), żeby nowe strony pojawiały się same, i dodaj linię Sitemap: do public/robots.txt.

Statyczny HTML

Napisz sitemap.xml w katalogu głównym strony, jeden <url> na stronę:

<?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-10-01</lastmod>
  </url>
  <url>
    <loc>https://example.com/contact/</loc>
  </url>
</urlset>

Używaj pełnych adresów z tym samym https:// i www (lub bez www) co działająca strona. Generator stron statycznych (Hugo, Eleventy, Astro, Jekyll) może tworzyć ten plik przy każdym budowaniu.

Shopify

Shopify sam tworzy mapę strony pod /sitemap.xml i wymienia ją w robots.txt. Nie trzeba niczego włączać. Jeśli lista kontrolna jej nie znajduje, sprawdź, czy sklep nie jest chroniony hasłem (Online Store → Preferences).

Wix

Wix sam tworzy mapę strony pod /sitemap.xml, gdy strona jest opublikowana na domenie. Strony ukryte przed wyszukiwarkami są w niej pominięte.

Webflow

Otwórz Site settings → SEO, włącz Auto-generate sitemap i kliknij Publish. Mapa jest pod /sitemap.xml i jest odbudowywana przy każdej publikacji.

Squarespace

Squarespace sam tworzy mapę strony pod /sitemap.xml. Nie trzeba niczego włączać.

Powiedz o tym Google

Gdy mapa strony już istnieje, prześlij ją raz w Google Search Console: Indexing → Sitemaps, wpisz adres (na przykład sitemap_index.xml) i kliknij Submit. Raport pokaże potem, kiedy Google ostatnio ją odczytał i ile jej stron jest zaindeksowanych. Bing Webmaster Tools ma to samo w Sitemaps.

Mapa strony powinna wymieniać tylko strony, które chcesz mieć w wyszukiwarce: działający adres każdej, zwracający 200, bez noindex. Mapa pełna przekierowań i błędów 404 uczy Google, by ufał jej mniej.

Potwierdź poprawkę

Uruchom ponownie oba polecenia curl z sekcji Sprawdź sam, potem otwórz cel w PulseKeeper i kliknij Sprawdź teraz na zakładce Lista kontrolna. Pozycja zmieni się na OK w ciągu kilku minut, a nie dopiero przy kolejnym codziennym sprawdzeniu.