ARK. S02Parametr monitoringuSEO · lista 50 parametrów

Sitemap.xml

ważność średniamierzonysposób sitemap

Obecność i dostępność /sitemap.xml lub /sitemap_index.xml. Brak to wolniejsze indeksowanie nowych podstron.

ARK. 1

WIKI

artykuł z 16.09.2026 · źródeł 9

Sitemap.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].

RYS. 1.1Od indeksu map do podstrony

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 filtr wp_sitemaps_enabled pozwala zmienić domyślne zachowanie [5].
  • Yoast SEO udostępnia indeks pod /sitemap_index.xml, a żądania /sitemap.xml przekierowuje na ten adres [6]. Domyślnie jedna mapa zawiera najwyżej 1000 pozycji, a wpis indeksu ma pola loc i lastmod [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.

RYS. 1.2Od wzrostu liczby URL do podejrzenia

Przykłady

SytuacjaCo widać w mapieTypowa przyczyna
WordPress bez wtyczki SEOindeks /wp-sitemap.xml, do 2000 pozycji w mapie [5]mapy rdzenia od wersji 5.5 [5]
Yoast SEOindeks /sitemap_index.xml, /sitemap.xml przekierowuje [6]mapy wtyczki, do 1000 pozycji w mapie [6]
Rank Mathindeks /sitemap_index.xml [8]zalecane 200 linków w mapie [8]
Mapa rdzenia niedostępnabrak indeksu /wp-sitemap.xmlzniechęcanie wyszukiwarek w ustawieniach albo filtr wp_sitemaps_enabled [5]
Spadek liczby adresówmniej pozycji w <urlset>strony oznaczone noindex wypadają z mapy [6]
Nagły wzrost liczby adresówtysiące adresów w losowych katalogachspam SEO po włamaniu, zmieniona lub dodana mapa [9]
Mapa ponad limitponad 50 000 adresów albo 50 MB w jednym pliku [2]brak podziału na kilka map z indeksem [4]
TAB. 1.1Przypisy9
  1. [1] What are Sitemaps? — sitemaps.org · sitemaps.org
  2. [2] Sitemaps XML format — Sitemap protocol · sitemaps.org
  3. [3] Learn about sitemaps · Google Search Central
  4. [4] Build and submit a sitemap · Google Search Central
  5. [5] New XML Sitemaps Functionality in WordPress 5.5 · Make WordPress Core
  6. [6] Yoast SEO XML Sitemaps: Functional specification · Yoast
  7. [7] XML sitemaps in the Yoast SEO plugin · Yoast
  8. [8] How to Configure Sitemaps in Rank Math · Rank Math
  9. [9] Fix the Japanese keyword hack · web.dev (Google)
ARK. 2

STATS

wyniki z systemu · tylko liczby zbiorcze
TAB. 2.1Odczyty per strona

Ten 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.

TAB. 2.3Ustalenia

Ten parametr nie otworzył jeszcze żadnego ustalenia w bazie LAB247. Pusto nie znaczy „czysto” — znaczy, że nic nie przekroczyło reguły.

TAB. 2.4Przebiegi z tym sposobem sprawdzeniaod 09.09.2026
Przebiegów
33sposób sitemap
W 30 dni
33przebiegów
Ostatni
19.09.2026start przebiegu
Stron w przebiegach
33 przebiegów bez liczby stron
ARK. 3

CARD

karta z kodu CREATO_PING, odczyt 16.09.2026
RYS. 3.1Droga parametru przez system: Sitemap.xml
TAB. 3.1Pomiarpliki: 4
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 helpersposób sitemap · CREATO_PING/helpers/sitemap_check.py
Testy
  1. Tylko przebieg P3; strony w przebiegu sprawdzane po kolei.
  2. GET po kolei /wp-sitemap.xml, /sitemap_index.xml, /sitemap.xml; wygrywa pierwsza odpowiedź 200 zaczynająca się od deklaracji XML. Czytane do 5 MB.
  3. Mapa URL = liczba elementów url; indeks map = pierwsze 20 map podrzędnych zsumowane. Indeksy zagnieżdżone nie są rozwijane.
  4. Ustalenie tylko wtedy, gdy typ usługi strony to Strona WWW i liczba URL przekracza 1000.
Typ wyniku0 albo 1 ustalenie sitemap_absurd_url_count + statystyka: znaleziona mapa, adres, liczba URL, najnowszy lastmod
Jednostkaliczba adresów URL w mapie witryny
Próg i regułaTimeout 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łaCREATO_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
  1. Brak mapy nie daje żadnego ustalenia, choć katalog opisuje parametr jako obecność i dostępność mapy.
  2. Reguła nieosiągalna w produkcji: workflow ustawia pusty typ usługi dla wszystkich stron (service_type: null), a próg działa tylko dla Strona WWW.
  3. Wykrywanie spamu na statycznym progu, bez porównania z poprzednim odczytem — nagły wzrost liczby URL nie jest mierzony.
  4. Mapa ucięta na 5 MB albo z błędem XML liczy się jako 0 URL — największe mapy, czyli właśnie przypadek spamu, wypadają z liczenia; protokół dopuszcza 50 MB.
  5. Liczone tylko pierwsze 20 map z indeksu; zagnieżdżone indeksy dają 0, mapy .xml.gz nie są rozpakowywane; mapa zgłoszona w robots.txt pod inną nazwą nie jest szukana.
  6. Brak trzeciego stanu: 403 z WAF-a, błąd sieci i timeout wyglądają jak brak mapy.
kandydaci do pętli: kod a opis parametru albo specyfikacja
Karta przepisana zCREATO_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
TAB. 3.2Co oznacza failtypów ustaleń: 1

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.

UstaleniePowagaPewnośćSkutekSubtask / alarmCo zrobić
Podejrzana liczba URL w sitemapsitemap_absurd_url_countNormalneNiepewneDO WERYF.nie / niePrzejrzyj sitemap pod kątem obcych adresów.
ARK. 4

LOOP

pętli: 1
RYS. 4.1Pętla parametru — sześć etapów
TAB. 4.1Trafność, 30 dnialarmy · prawdziwe · fałszywe · bez rozstrzygnięcia

Trafnoś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.

TAB. 4.2Pętle1 · zmian: 1 · wpływających na cały system: 1
Limit 64 KB czytanej odpowiedzi po awarii pamięcizamknięta historyczna 2026-07-19

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. 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
  2. 2. Werdyktręcznieawaria procesu przypisana ścieżce debug.log
  3. 3. Miarabrakliczników trafności wtedy nie było
  4. 4. Kartabrakkarta parametru powstała 2026-09-16
  5. 5. Zmianazrobionestrumień z limitem 64 KB
  6. 6. Replaybrakbrak zapisanych odczytów do replayu
DataZmianaPowódWpływ na systemCommit · replay
2026-07-19Odpowiedź sondy czytana strumieniem do 64 KB; do oceny idzie pierwsze 5000 znaków.helpers/exposure_check.py · helpers/html_fetch.py · helpers/sitemap_check.pyDo 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
Blog 24/7
20.09Zastrzeżony PESEL: zmiana raz na 30 minut, blokada przy wypłaciedobreprogramy.pl20.09Fałszywe SMS-y od GITD o mandacie za autostradę wyłudzają dane kartyinstalki.pl20.09Pakiet npm indexed-btree omija blokadę skryptów instalacyjnychbleepingcomputer.com19.09SolarWinds łata CVE-2026-28326 w Access Rights Manager, zdalny kod bez logowaniathehackernews.com19.09Orkes Conductor: luka CVE-2026-58138 atakowana w sieci, poprawka w wersji 3.30.2thehackernews.com19.09Trzy luki jądra Linux w katalogu CISA KEV, Red Hat potwierdza aktywne atakithehackernews.com18.09Publiczne exploity na cztery luki jądra Linux dają lokalnie uprawnienia rootthehackernews.com18.09Brevo: skradziony klucz API Cloudflare i skrypty ClickFix na stronach klientówbleepingcomputer.com18.09WaterPlum z Korei Północnej zainfekowała 30 000 urządzeń w 100 krajachtherecord.media18.09Jedna zgoda OAuth daje napastnikowi dostęp do poczty i plików mimo MFAdarkreading.com