Tutorial: IndexNow na WordPressie krok po kroku

8 listopada, 2026

Wdrożenie IndexNow na WordPressie zajmuje mniej więcej kwadrans, a większość nieudanych wdrożeń psuje się w tym samym miejscu: plik klucza nie odpowiada kodem 200 albo zawiera coś więcej niż sam klucz. Ten tutorial przeprowadza przez cały proces, od wygenerowania klucza do potwierdzenia, że zgłoszenie dotarło do Bing. Jeśli chcesz najpierw zrozumieć, po co w ogóle zgłaszać adresy do Bing i jak to się łączy z Copilotem, zacznij od przewodnika Bing i IndexNow 2026. Tutaj skupiamy się wyłącznie na praktyce.

Jedno zastrzeżenie na start: indexnow wordpress nie przyspieszy indeksacji w Google. Protokół obsługują między innymi Bing, Yandex, Seznam.cz, Naver i Yep, a Google do niego nie dołączył. Dla Google nadal liczą się sitemapa i linkowanie wewnętrzne, co szerzej opisujemy w porównaniu Indexing API i sitemapy XML.

Co przygotować przed startem

Przed pierwszym kliknięciem sprawdź cztery rzeczy. Zajmie to pięć minut i oszczędzi szukania błędu później.

  • Dostęp administratora do WordPressa (do instalacji wtyczki albo edycji pliku motywu potomnego).
  • Dostęp do katalogu głównego domeny przez FTP, SFTP lub menedżer plików hostingu, jeśli wybierzesz wariant z fizycznym plikiem klucza.
  • Zweryfikowaną witrynę w Bing Webmaster Tools. IndexNow działa bez niej, ale bez niej nie zobaczysz, co Bing zrobił ze zgłoszeniami. Najszybciej jest zaimportować witrynę z Google Search Console.
  • Jedną wtyczkę do zgłoszeń, nie trzy. Rank Math, oficjalna wtyczka Microsoftu i niektóre wtyczki cache potrafią zgłaszać adresy równolegle. Dublowane zgłoszenia niczego nie przyspieszają, a utrudniają diagnozę.

Generowanie klucza i publikacja pliku weryfikacyjnego

Klucz to dowód, że zgłoszenie wysyła właściciel domeny. Według dokumentacji IndexNow musi mieć od 8 do 128 znaków i może zawierać tylko małe i wielkie litery (a–z, A–Z), cyfry oraz myślnik. W praktyce wystarczy losowy ciąg 32 znaków szesnastkowych, na przykład wygenerowany poleceniem openssl rand -hex 16.

  1. Utwórz plik tekstowy o nazwie {klucz}.txt, np. 126a2cb944f840f488e8bb69ad5e0a6d.txt.
  2. W środku umieść wyłącznie klucz, w kodowaniu UTF-8, bez spacji i bez pustej linii na końcu.
  3. Wgraj plik do katalogu głównego domeny, tam gdzie leży wp-config.php (o ile WordPress nie jest zainstalowany w podkatalogu).
  4. Otwórz w przeglądarce https://twojadomena.pl/{klucz}.txt. Powinieneś zobaczyć sam klucz, a narzędzie deweloperskie powinno pokazać kod 200.

Specyfikacja pozwala też trzymać plik w innym miejscu i wskazywać go parametrem keyLocation. Wtedy jednak klucz obejmuje tylko adresy z tego samego katalogu: plik w /blog/ nie uwierzytelni zgłoszeń z /sklep/. Dokumentacja wprost zaleca katalog główny i to jest najbezpieczniejszy wybór.

Wariant z wtyczką: konfiguracja i ustawienia

Jeśli na stronie działa już Rank Math, nie potrzebujesz niczego więcej. Moduł Instant Indexing jest w darmowej wersji: włączasz go w Rank Math SEO → Dashboard, a ustawienia znajdziesz w Rank Math SEO → Instant Indexing → Settings. Tam zaznaczasz typy treści do automatycznego zgłaszania (zwykle wpisy i strony, czasem produkty) i zapisujesz zmiany. Rank Math sam generuje klucz i serwuje go dynamicznie, więc nie wgrywasz żadnego pliku; przycisk Check Key otwiera adres, pod którym wyszukiwarka go znajdzie. Według dokumentacji wtyczka nie zgłasza adresów oznaczonych jako noindex. Przy okazji warto przejrzeć resztę ustawień, które opisujemy w tutorialu o konfiguracji Rank Math pod AI search.

Druga opcja to oficjalna wtyczka IndexNow przygotowana przez zespół Bing Webmaster Tools (ponad 100 tys. aktywnych instalacji według katalogu WordPress.org). Po instalacji sama tworzy i hostuje klucz, wykrywa publikację, aktualizację i usunięcie strony, po czym wysyła adres do wspólnego punktu api.indexnow.org. Sprawdza też meta robots i nagłówek X-Robots-Tag, żeby nie zgłaszać stron noindex, pozwala wykluczyć ścieżki wzorcami i ponowić nieudane zgłoszenia z listy ostatnich wysyłek. Wybierz jedną z tych dwóch wtyczek i wyłącz zgłaszanie w drugiej.

Wariant bez wtyczki: własny hook przy publikacji

Jeśli nie chcesz kolejnej wtyczki, wystarczy kilkanaście linii w pliku functions.php motywu potomnego albo w małej wtyczce typu mu-plugin. Poniższy kod reaguje tylko na pierwszą publikację wpisu i wysyła adres w tle, bez blokowania zapisu w edytorze. Plik klucza wgrywasz ręcznie, tak jak w poprzednim kroku.

add_action( 'transition_post_status', function ( $new, $old, $post ) {
    if ( 'publish' !== $new || 'publish' === $old || 'post' !== $post->post_type ) {
        return;
    }
    if ( wp_is_post_revision( $post ) || wp_is_post_autosave( $post ) ) {
        return;
    }
    $key = '126a2cb944f840f488e8bb69ad5e0a6d';
    $url = get_permalink( $post );
    wp_remote_get(
        'https://api.indexnow.org/indexnow?url=' . rawurlencode( $url ) . '&key=' . $key,
        array( 'blocking' => false, 'timeout' => 5 )
    );
}, 10, 3 );

Ten wariant ma dwa ograniczenia, o których trzeba pamiętać. Nie widzisz odpowiedzi serwera (bo wywołanie nie czeka na wynik), więc kontrolę przenosisz do Bing Webmaster Tools. Warunek 'publish' === $old sprawia też, że kod nie zgłasza aktualizacji już opublikowanych wpisów. Jeśli ich potrzebujesz, możesz go usunąć, ale wtedy każda poprawka literówki wyśle kolejne powiadomienie. Podobne podejście bez wtyczek stosujemy przy danych strukturalnych w WordPressie: mniej zależności, ale więcej odpowiedzialności po twojej stronie.

Test zgłoszenia pojedynczego adresu

Niezależnie od wariantu wyślij raz zgłoszenie ręcznie i obejrzyj kod odpowiedzi. Wtyczka, która od tygodni dostaje błąd, zwykle nie mówi o tym głośno.

curl -s -o /dev/null -w '%{http_code}n' 
  "https://api.indexnow.org/indexnow?url=https://twojadomena.pl/nowy-wpis&key=126a2cb944f840f488e8bb69ad5e0a6d"
KodZnaczenieCo zrobić
200zgłoszenie przyjętenic, przejdź do weryfikacji
202przyjęte, weryfikacja klucza w tokunormalne przy pierwszym zgłoszeniu; powtórz test za kilka godzin
400nieprawidłowy formatsprawdź kodowanie adresu i parametry
403klucz nieważnyplik nie istnieje, jest zablokowany albo zawiera inny ciąg
422adres spoza domeny lub klucz niezgodny ze schematemporównaj host w adresie z domeną pliku klucza
429zbyt wiele zgłoszeńzwolnij, nie ponawiaj w pętli

Pamiętaj, że kod 200 oznacza tylko tyle, że wyszukiwarka otrzymała adres. Nie oznacza, że strona zostanie pobrana ani zaindeksowana.

Weryfikacja w Bing Webmaster Tools

Po kilku godzinach od pierwszych zgłoszeń otwórz sekcję IndexNow w Bing Webmaster Tools. Powinieneś zobaczyć liczbę przyjętych adresów w czasie oraz listę ostatnio zgłoszonych URL. Potem sprawdź jeden z nich w URL Inspection: narzędzie pokaże, czy adres jest w indeksie i kiedy bingbot go pobrał. Jeśli zgłoszenia widać, a strona nadal nie jest w indeksie po kilku dniach, problem leży zwykle poza IndexNow, na przykład w robots.txt albo w jakości treści.

Dobrą praktyką jest też zajrzenie do logów serwera. Wizyta bingbota pod adresem pliku klucza, a chwilę później pod zgłoszonym wpisem, to najprostszy dowód, że cały łańcuch działa.

Najczęstsze błędy i jak je rozpoznać

  • Zapora lub CDN blokuje plik .txt. Objaw: stałe 403, choć plik w przeglądarce się otwiera. Reguła bezpieczeństwa może przepuszczać twoją przeglądarkę, a odcinać boty, więc sprawdź logi zapory, a nie tylko podgląd strony.
  • Plik z BOM lub znakiem nowej linii. Edytory w Windows potrafią dodać niewidoczny znak na początku pliku. Zapisz go jako UTF-8 bez BOM.
  • Dwie wtyczki zgłaszają te same adresy. Objaw: w historii Bing każdy wpis pojawia się podwójnie. Zostaw jedno źródło zgłoszeń.
  • Zgłaszanie wszystkiego. Masowe wysyłanie niezmienionych adresów obniża wartość sygnału i kończy się kodem 429. Zgłaszaj nowe treści, istotne aktualizacje i usunięcia.
  • Zmiana domeny lub przejście na https bez zmiany klucza. Klucz jest przypisany do hosta; po migracji sprawdź, czy plik jest dostępny pod nowym adresem.

Co dalej

Gdy test zwraca 200, a sekcja IndexNow w Bing Webmaster Tools pokazuje przyjęte adresy, wdrożenie jest skończone. Raz w miesiącu zajrzyj do historii zgłoszeń i porównaj ją z listą opublikowanych wpisów: nagły spadek do zera prawie zawsze oznacza wyłączoną wtyczkę albo zablokowany plik klucza.

FAQ

Czy IndexNow na WordPressie przyspiesza indeksację w Google?

Nie. Google nie obsługuje protokołu IndexNow. Zgłoszenia trafiają do Bing, Yandex, Seznam.cz, Naver, Yep i innych uczestniczących wyszukiwarek, a dla Google nadal działa sitemapa XML i linkowanie wewnętrzne.

Czy muszę wgrywać plik klucza, jeśli używam Rank Math?

Nie. Rank Math generuje klucz i serwuje go dynamicznie. Przycisk Check Key w ustawieniach Instant Indexing pozwala sprawdzić, czy adres klucza jest dostępny dla wyszukiwarek.

Co oznacza kod 202 przy pierwszym zgłoszeniu?

Wyszukiwarka przyjęła adres, ale jeszcze nie zweryfikowała klucza. To normalne na początku. Jeśli po kilku godzinach kolejne zgłoszenia nadal zwracają 202 albo 403, sprawdź dostępność pliku klucza.

Ile adresów można zgłosić naraz?

Zapytanie POST z treścią JSON może zawierać do 10 000 adresów. Przy migracjach lepiej jednak rozłożyć zgłoszenia na kilka dni i równolegle zaktualizować sitemapę.

Czy zgłoszenie do Bing trafia też do innych wyszukiwarek?

Tak. Wyszukiwarki uczestniczące w IndexNow zobowiązują się udostępniać sobie nawzajem zgłoszone adresy, więc jedno zgłoszenie do api.indexnow.org wystarcza.