Jak stworzyć automatyczne generowanie sitemap XML w czystym WordPress (bez Yoasta)

Mapa witryny (ang. sitemap) to specjalny plik XML, który informuje wyszukiwarki (np. Google) o strukturze Twojej strony i wszystkich dostępnych podstronach. Dzięki niej roboty indeksujące szybciej odnajdują nowe treści i lepiej rozumieją hierarchię witryny.

Wielu użytkowników korzysta z gotowych wtyczek, takich jak Yoast SEO czy Rank Math, ale w rzeczywistości — stworzenie prostego i lekkiego generatora sitemap XML w czystym WordPressie jest bardzo proste.

Poniżej znajdziesz gotowy kod, który możesz dodać do swojego motywu lub wtyczki.


Dlaczego warto stworzyć własną sitemap?

Własny generator sitemap to:

  • brak zależności od wtyczek SEO,
  • pełna kontrola nad tym, jakie elementy są dodawane,
  • mniejsze obciążenie serwera,
  • lepsza wydajność przy dużych witrynach.

Jeśli Twoja strona nie wymaga zaawansowanej analizy SEO, samodzielne rozwiązanie jest wystarczające i bezpieczniejsze.


Krok 1: Utwórz własną funkcję generującą sitemap

Dodaj poniższy kod do pliku functions.php lub do swojej wtyczki niestandardowej:

function pp_generate_sitemap() {
    header('Content-Type: application/xml; charset=utf-8');

    $postsForSitemap = get_posts(array(
        'numberposts' => -1,
        'post_type'   => array('post', 'page'),
        'post_status' => 'publish'
    ));

    echo '<?xml version="1.0" encoding="UTF-8"?>';
    echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

    foreach ($postsForSitemap as $post) {
        $postdate = explode(" ", $post->post_modified);
        echo '<url>'.
             '<loc>' . get_permalink($post->ID) . '</loc>'.
             '<lastmod>' . $postdate[0] . '</lastmod>'.
             '<changefreq>weekly</changefreq>'.
             '<priority>0.8</priority>'.
             '</url>';
    }

    echo '</urlset>';
}

Ten kod pobiera wszystkie opublikowane wpisy i strony, a następnie tworzy z nich plik XML z podstawowymi tagami <url>.


Krok 2: Utwórz adres URL sitemap

Aby mapa była dostępna pod adresem np. https://twojastrona.pl/sitemap.xml, dodaj nowy rewrite rule:

function pp_add_sitemap_rewrite() {
    add_rewrite_rule('sitemap\.xml$', 'index.php?sitemap=1', 'top');
}
add_action('init', 'pp_add_sitemap_rewrite');

function pp_sitemap_query_var($vars) {
    $vars[] = 'sitemap';
    return $vars;
}
add_filter('query_vars', 'pp_sitemap_query_var');

function pp_template_redirect() {
    if (get_query_var('sitemap')) {
        pp_generate_sitemap();
        exit;
    }
}
add_action('template_redirect', 'pp_template_redirect');

Teraz WordPress sam rozpozna żądanie sitemap.xml i wywoła naszą funkcję.
Po wklejeniu kodu wejdź w Ustawienia → Bezpośrednie odnośniki i kliknij „Zapisz zmiany”, by odświeżyć reguły przepisywania.


Krok 3: Dodaj sitemap do Google Search Console

Po utworzeniu sitemap odwiedź Google Search Console, wybierz swoją witrynę i w zakładce Mapy witryn dodaj adres:

https://twojastrona.pl/sitemap.xml

Po kilku minutach Google rozpocznie analizę i indeksację Twojej strony.


Krok 4: Rozszerzenie funkcji

Jeśli chcesz, możesz rozbudować generator o:

  • dodanie niestandardowych typów postów,
  • uwzględnienie obrazów (image sitemap),
  • dynamiczne generowanie sitemap dla kategorii i tagów,
  • automatyczne aktualizacje po publikacji nowych treści.

Podsumowanie

Tworzenie własnej mapy witryny w czystym WordPressie to świetny sposób na odchudzenie strony i lepszą kontrolę nad procesem indeksowania.
Nie potrzebujesz do tego ciężkich wtyczek SEO — wystarczy kilkadziesiąt linijek kodu, a Twoja sitemap XML będzie działać automatycznie.

Dzięki temu Twoja strona będzie:

  • szybsza,
  • bardziej zoptymalizowana,
  • lepiej widoczna w wynikach wyszukiwania.
KROK 1 Z 4

Z CZYM POTRZEBUJESZ POMOCY?