Sitemap.xml
ważność średniamierzonysposób sitemap
Obecność i dostępność /sitemap.xml lub /sitemap_index.xml. Brak to wolniejsze indeksowanie nowych podstron.
WIKI
artykuł z 16.09.2026 · źródeł 9Sitemap.xml to parametr monitoringu stron internetowych, który sprawdza, czy serwis udostępnia mapę witryny pod jednym z typowych adresów: /sitemap.xml, /sitemap_index.xml albo /wp-sitemap.xml, czy plik da się pobrać i odczytać jako XML oraz ile adresów stron zawiera. Wynikiem pomiaru jest obecność mapy, adres, pod którym ją znaleziono, i liczba adresów URL; nagła zmiana tej liczby jest sygnałem do sprawdzenia serwisu. Mapy witryn są prostym sposobem, w jaki właściciele serwisów informują wyszukiwarki o stronach dostępnych do przeszukiwania przez roboty [1].
Jak działa
Google opisuje mapę witryny jako plik z informacjami o stronach, filmach i innych plikach w serwisie oraz o relacjach między nimi [3]. Mapa pomaga wyszukiwarce wydajniej przeszukiwać serwis: wskazuje, które strony właściciel uważa za ważne, i podaje metadane, na przykład datę ostatniej aktualizacji [3].
W protokole Sitemaps mapa jest plikiem XML. Wymagane są trzy znaczniki: <urlset> jako element główny, <url> dla każdego wpisu i <loc> z adresem strony [2]. Opcjonalne pole <lastmod> podaje się w formacie W3C Datetime, a część z godziną można pominąć i zapisać samą datę RRRR-MM-DD [2]. Plik musi być kodowany w UTF-8, a znaki specjalne, takie jak &, zapisuje się jako encje [2]. Wszystkie adresy w mapie muszą pochodzić z jednego hosta i leżeć w katalogu mapy albo w jego podkatalogach [2].
Gdy map jest kilka, łączy je plik indeksu ze znacznikami <sitemapindex>, <sitemap> i <loc> [2]. Indeks może wskazywać wyłącznie mapy z tego samego serwisu co on sam [2]. O mapie wyszukiwarka dowiaduje się ze zgłoszenia w jej narzędziach albo z dyrektywy Sitemap: w pliku robots.txt; dyrektywa nie zależy od linii User-agent, więc jej miejsce w pliku nie ma znaczenia [2]. Google przyjmuje mapy przez raport map witryn w Search Console, przez API Search Console i przez dyrektywę w robots.txt [4].
Mapa jest wskazówką, a nie poleceniem. Protokół Sitemaps nie gwarantuje, że strony trafią do wyszukiwarki, tylko pomaga robotom lepiej przeszukiwać serwis [1]. Według Google mapa pomaga odkrywać adresy, ale nie gwarantuje, że wszystkie jej pozycje zostaną przeszukane i zindeksowane [3], a samo zgłoszenie mapy nie gwarantuje nawet, że Google ją pobierze [4]. Google pomija wartości <priority> i <changefreq>, a <lastmod> bierze pod uwagę, gdy jest konsekwentnie i sprawdzalnie dokładne [4]. Mapa przydaje się zwłaszcza serwisom dużym (zwykle powyżej 500 stron), nowym, z niewielką liczbą linków z zewnątrz, oraz bogatym w filmy, obrazy i wiadomości [3].
Standardy i specyfikacje
- Protokół Sitemaps ogranicza jeden plik mapy do 50 000 adresów i 50 MB (52 428 800 bajtów). Plik można skompresować gzipem, ale po rozpakowaniu nie może przekroczyć 50 MB. Ten sam limit, 50 000 map i 50 MB, dotyczy pliku indeksu [2].
- Google Search Central stosuje te limity do wszystkich formatów map; większy zbiór adresów trzeba podzielić na kilka map. Adresy mają być pełne i bezwzględne, a plik kodowany w UTF-8 [4].
- WordPress 5.5 wprowadził do rdzenia podstawowe, rozszerzalne mapy witryn z indeksem pod
/wp-sitemap.xml[5]. Pojedyncza mapa mieści domyślnie najwyżej 2000 pozycji, a limit można zmienić filtrem [5]. Plik robots.txt generowany przez WordPressa wskazuje indeks map, a filtrwp_sitemaps_enabledpozwala zmienić domyślne zachowanie [5]. - Yoast SEO udostępnia indeks pod
/sitemap_index.xml, a żądania/sitemap.xmlprzekierowuje na ten adres [6]. Domyślnie jedna mapa zawiera najwyżej 1000 pozycji, a wpis indeksu ma polalocilastmod[6]. - Rank Math tworzy indeks map pod
/sitemap_index.xml[8]. Domyślna liczba linków w jednej mapie wynosiła wcześniej 1000; producent obniżył ją do zalecanych 200 [8].
Zagrożenia i skutki
Brak mapy. Mały serwis z dobrym linkowaniem wewnętrznym może mapy nie potrzebować, a dużemu albo nowemu jej brak utrudnia wydajne przeszukiwanie [3]. W WordPressie zmiana ustawienia widoczności tak, by zniechęcać wyszukiwarki do indeksowania, wyłącza mapy rdzenia [5]. Zniknięcie /wp-sitemap.xml może więc towarzyszyć zablokowaniu indeksowania całego serwisu.
Spadek liczby adresów. Yoast SEO nie umieszcza w mapie stron, które wysyłają dyrektywę noindex w znaczniku meta albo w nagłówku HTTP [6]. Nagły spadek liczby adresów może więc oznaczać, że część treści oznaczono jako wyłączoną z indeksu.
Kilka generatorów naraz. Mapa pod /sitemap.xml, której nie utworzył Yoast SEO, pochodzi według producenta zwykle z innej wtyczki albo z rdzenia WordPressa; przed włączeniem map wtyczki zaleca on wyłączenie innych wtyczek map i usunięcie fizycznych plików [7]. Generatory dzielą adresy na mapy różnej wielkości [5] [6] [8], dlatego porównuje się łączną liczbę adresów, a nie liczbę plików.
Spam SEO po włamaniu. Atak znany jako Japanese keyword hack tworzy w serwisie nowe strony z automatycznie generowanym japońskim tekstem w katalogach o losowych nazwach [9]. Atakujący często modyfikują mapę witryny albo dodają nowe mapy, żeby ich adresy szybciej trafiły do indeksu [9]. Zwykle dopisują się też jako właściciele serwisu w Search Console, by zmieniać ustawienia, takie jak kierowanie geograficzne czy mapy [9]. Stosują maskowanie treści (ang. cloaking), żeby właściciel uznał stronę za naprawioną; podejrzane strony w indeksie pomaga znaleźć wyszukiwanie z operatorem site: [9]. Nagły wzrost liczby adresów w mapie nie przesądza o włamaniu, bo może wynikać z importu treści, ale uzasadnia sprawdzenie, jakie adresy doszły.
Przykłady
| Sytuacja | Co widać w mapie | Typowa przyczyna |
|---|---|---|
| WordPress bez wtyczki SEO | indeks /wp-sitemap.xml, do 2000 pozycji w mapie [5] | mapy rdzenia od wersji 5.5 [5] |
| Yoast SEO | indeks /sitemap_index.xml, /sitemap.xml przekierowuje [6] | mapy wtyczki, do 1000 pozycji w mapie [6] |
| Rank Math | indeks /sitemap_index.xml [8] | zalecane 200 linków w mapie [8] |
| Mapa rdzenia niedostępna | brak indeksu /wp-sitemap.xml | zniechęcanie wyszukiwarek w ustawieniach albo filtr wp_sitemaps_enabled [5] |
| Spadek liczby adresów | mniej pozycji w <urlset> | strony oznaczone noindex wypadają z mapy [6] |
| Nagły wzrost liczby adresów | tysiące adresów w losowych katalogach | spam SEO po włamaniu, zmieniona lub dodana mapa [9] |
| Mapa ponad limit | ponad 50 000 adresów albo 50 MB w jednym pliku [2] | brak podziału na kilka map z indeksem [4] |
- [1] What are Sitemaps? — sitemaps.org · sitemaps.org
- [2] Sitemaps XML format — Sitemap protocol · sitemaps.org
- [3] Learn about sitemaps · Google Search Central
- [4] Build and submit a sitemap · Google Search Central
- [5] New XML Sitemaps Functionality in WordPress 5.5 · Make WordPress Core
- [6] Yoast SEO XML Sitemaps: Functional specification · Yoast
- [7] XML sitemaps in the Yoast SEO plugin · Yoast
- [8] How to Configure Sitemaps in Rank Math · Rank Math
- [9] Fix the Japanese keyword hack · web.dev (Google)
STATS
wyniki z systemu · tylko liczby zbiorczeTen parametr nie zapisuje odczytu per strona — przebieg zostawia tylko ustalenia, więc liczby sprawdzonych stron i wyników „ok” system nie ma. Pojawią się po wdrożeniu zapisu przebiegów per strona per parametr.
Ten parametr nie otworzył jeszcze żadnego ustalenia w bazie LAB247. Pusto nie znaczy „czysto” — znaczy, że nic nie przekroczyło reguły.
- Przebiegów
- 33sposób sitemap
- W 30 dni
- 33przebiegów
- Ostatni
- 19.09.2026start przebiegu
- Stron w przebiegach
- —33 przebiegów bez liczby stron
CARD
karta z kodu CREATO_PING, odczyt 16.09.2026| Obszar i ważność | SEO · średnia (S02) |
|---|---|
| Workflow i częstotliwość | creato_ping_security_v2 · P3 działa na LAB247cron co 24 h, T1–T3; T4 raz po anomalii · Dokładny skan. dns_integrity porównuje NS, MX, SPF i DMARC z wzorcem z poprzedniego przebiegu. |
| Sonda i helper | sposób sitemap · CREATO_PING/helpers/sitemap_check.py |
| Testy |
|
| Typ wyniku | 0 albo 1 ustalenie sitemap_absurd_url_count + statystyka: znaleziona mapa, adres, liczba URL, najnowszy lastmod |
| Jednostka | liczba adresów URL w mapie witryny |
| Próg i reguła | Timeout 10,0 s, połączenie 2,0 s. Próg: więcej niż 1000 URL przy typie usługi Strona WWW. |
| Gdzie leżą pokrętła | CREATO_PING/helpers/sitemap_check.py → SITEMAP_PATHS, ABSURD_URL_THRESHOLD, _SITEMAP_CAPCREATO_PING/helpers/security_runner.py → _TASK_SEVERITIESCREATO_PING/config/incident_policy.toml → [finding] sitemap_absurd_url_countCREATO_PING/workflows/_prod/creato_ping_security_v2.json → service_type w partii stron |
| Retencja odczytów | Żadna: ustalenie nie powstaje, a statystyka mapy zostaje w wyjściu przebiegu, którego workflow nie zapisuje. |
| Znane rozbieżności |
|
| Karta przepisana z | CREATO_PING/helpers/sitemap_check.py · CREATO_PING/helpers/security_runner.py · CREATO_PING/config/incident_policy.toml · CREATO_PING/workflows/_prod/creato_ping_security_v2.json · odczyt 16.09.2026 |
W produkcji ustalenie nie powstaje: workflow przekazuje każdej stronie pusty typ usługi, a reguła wymaga Strona WWW. Gdyby powstało, powaga normalna odpadłaby w filtrze przebiegu. Statystyk mapy żaden workflow nie zapisuje.
| Ustalenie | Powaga | Pewność | Skutek | Subtask / alarm | Co zrobić |
|---|---|---|---|---|---|
| Podejrzana liczba URL w sitemapsitemap_absurd_url_count | Normalne | Niepewne | DO WERYF. | nie / nie | Przejrzyj sitemap pod kątem obcych adresów. |
LOOP
pętli: 1Trafności jeszcze nie liczymy: zamknięcie subtaska nie niesie dziś werdyktu (prawdziwy / fałszywy / nie dało się sprawdzić). Cztery liczby pojawią się, gdy każde zamknięcie dostanie werdykt — to warunek startu pętli 1.
Sygnał: Brak pamięci podczas skanu: publiczny debug.log jednej ze stron był bardzo duży, a klient HTTP buforował całą odpowiedź. · dotyczy też: Ekspozycja plików wrażliwych, Ekspozycja .env, Ekspozycja .htaccess.bak, Dostępność xmlrpc.php, REST API: enumeracja użytkowników, Ekspozycja .git/HEAD, Dostępność readme.html, Dostępność wp-cron.php, Ekspozycja kopii zapasowych, Ekspozycja zrzutu bazy, Ekspozycja manifestów dev, Ekspozycja .DS_Store
- 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
- 2. Werdyktręcznieawaria procesu przypisana ścieżce debug.log
- 3. Miarabrakliczników trafności wtedy nie było
- 4. Kartabrakkarta parametru powstała 2026-09-16
- 5. Zmianazrobionestrumień z limitem 64 KB
- 6. Replaybrakbrak zapisanych odczytów do replayu
| Data | Zmiana | Powód | Wpływ na system | Commit · replay |
|---|---|---|---|---|
| 2026-07-19 | Odpowiedź sondy czytana strumieniem do 64 KB; do oceny idzie pierwsze 5000 znaków.helpers/exposure_check.py · helpers/html_fetch.py · helpers/sitemap_check.py | Do rozpoznania ekspozycji wystarcza początek pliku; zmiana dotyczy sposobu czytania, nie werdyktu. | cały system Brak pamięci w helperze zatrzymywał cały proces skanu bezpieczeństwa partii stron; ten sam limit dostało sprawdzenie sitemap. | 343b699bez replayubez zapisu zatwierdzenia |