IndexNow dla e-commerce – natychmiastowa indeksacja zmian cen i produktów

Sklep internetowy zmienia ceny na 500 produktów o 18:00 w czwartek przed Black Friday. Googlebot odkrywa nowe ceny w poniedziałek. Trzy dni najważniejszego weekendu sprzedażowego w roku – z nieaktualnymi cenami w wynikach Google. IndexNow rozwiązuje ten problem: zamiast czekać aż wyszukiwarka sama odkryje zmianę, sklep wysyła ping „ta strona się zmieniła, zaindeksuj ją ponownie”. Bing indeksuje zmianę w godzinach zamiast dni. A ponieważ ChatGPT Search używa Bing – nowe ceny trafiają też do odpowiedzi AI.

Czym jest IndexNow i jak działa?

IndexNow to otwarty protokół natychmiastowego powiadamiania wyszukiwarek o zmianach na stronie. Został uruchomiony w 2021 roku przez Microsoft (Bing) i Yandex. Zamiast modelu „pull” (wyszukiwarka crawluje stronę i sama odkrywa zmiany), IndexNow działa w modelu „push” – strona aktywnie informuje wyszukiwarkę: „ten URL się zmienił”. Według oficjalnej dokumentacji IndexNow, protokół wspierają: Bing, Yandex, Seznam (Czechy) i Naver (Korea). Google oficjalnie nie wspiera IndexNow.

Zasada działania jest prosta: wysyłasz HTTP request z URL-em, który się zmienił, i kluczem API potwierdzającym własność domeny. Wyszukiwarka odbiera zgłoszenie i priorytetyzuje crawl tego URL-a. Ważne: odpowiedź HTTP 200 oznacza tylko, że wyszukiwarka odebrała zgłoszenie – nie gwarantuje indeksacji. Decyzja o indeksacji nadal zależy od jakości strony.

Dlaczego IndexNow jest szczególnie ważny dla e-commerce?

Sklepy internetowe mają specyficzny problem, którego nie mają blogi ani serwisy usługowe: tysiące stron, które zmieniają się codziennie. Treść artykułu blogowego zmienia się raz na kilka miesięcy. Cena produktu może zmienić się kilka razy dziennie.

  • Zmiany cen i promocje – wyprzedaż -30% na 500 produktów, ale Google nadal pokazuje starą cenę w rich results. Użytkownik widzi cenę 299 zł w Google, klika, a na stronie jest 209 zł. Albo odwrotnie: promocja się skończyła, Google nadal pokazuje obniżoną cenę, użytkownik czuje się oszukany.
  • Stany magazynowe – produkt wyprzedany, ale Google nadal go wyświetla w wynikach. Użytkownik klika, trafia na „Brak w magazynie”, wraca do wyników i kupuje u konkurencji.
  • Nowe produkty – dodajesz 200 produktów przed sezonem, Googlebot dociera do nich po 2 tygodniach. Tracisz 2 tygodnie sprzedaży na nowym asortymencie.
  • Usunięte produkty – produkt wycofany, przekierowanie 301 na kategorię ustawione, ale Google nadal wyświetla starą kartę produktu przez tygodnie.

IndexNow nie rozwiązuje tych problemów w 100% (Google go nie wspiera), ale rozwiązuje je dla Bing – a przez Bing, pośrednio, dla ChatGPT Search. Więcej o wpływie na AI opisujemy w sekcji poniżej.

Jak wdrożyć IndexNow krok po kroku?

Implementacja IndexNow składa się z trzech kroków: wygenerowanie klucza API, umieszczenie pliku weryfikacyjnego na serwerze i wysyłanie requestów. Poniżej dokładna instrukcja zgodna z oficjalną dokumentacją IndexNow.org.

Krok 1: Wygeneruj klucz API

Klucz API to ciąg od 8 do 128 znaków. Dozwolone znaki: małe litery (a-z), wielkie litery (A-Z), cyfry (0-9) i myślniki (-). Klucz możesz wygenerować dowolnym generatorem losowych ciągów lub użyć UUID. Przykład klucza:

e4b2c8d1a5f7093b

Krok 2: Umieść plik weryfikacyjny na serwerze

Stwórz plik tekstowy o nazwie identycznej jak klucz, z rozszerzeniem .txt. Wewnątrz pliku umieść sam klucz – nic więcej, bez spacji, bez znaków nowej linii. Plik umieść w katalogu głównym domeny:

# Nazwa pliku: e4b2c8d1a5f7093b.txt
# Lokalizacja: https://twojsklep.pl/e4b2c8d1a5f7093b.txt
# Zawartość pliku (tylko klucz, nic więcej):
e4b2c8d1a5f7093b

Sprawdź w przeglądarce, czy plik jest dostępny: wejdź na https://twojsklep.pl/e4b2c8d1a5f7093b.txt – powinien wyświetlić się sam klucz jako plain text. Jeśli widzisz błąd 404 – plik nie jest w odpowiednim katalogu. Jeśli widzisz HTML – stworzyłeś niewłaściwy typ pliku.

Krok 3a: Powiadomienie o zmianie jednego URL (GET)

Najprostszy sposób – GET request z dwoma parametrami (url i key). Możesz go wykonać z przeglądarki, curlem, wget lub z kodu PHP/Python:

# curl - powiadomienie Bing o zmianie jednego URL
curl "https://www.bing.com/indexnow?url=https://twojsklep.pl/produkt/nike-air-max-90&key=e4b2c8d1a5f7093b"

# Odpowiedź HTTP 200 = Bing odebrał zgłoszenie
# Odpowiedź HTTP 202 = Odebrał, weryfikacja klucza w toku
# Odpowiedź HTTP 429 = Za dużo requestów, zwolnij

Krok 3b: Powiadomienie o zmianie wielu URLi (POST batch)

Dla sklepów, które zmieniają ceny na setkach produktów naraz, IndexNow obsługuje batch POST z JSON payload – do 10 000 URLi w jednym request:

# curl - batch POST z wieloma URLami
curl -X POST "https://www.bing.com/indexnow" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{
    "host": "twojsklep.pl",
    "key": "e4b2c8d1a5f7093b",
    "keyLocation": "https://twojsklep.pl/e4b2c8d1a5f7093b.txt",
    "urlList": [
      "https://twojsklep.pl/produkt/nike-air-max-90",
      "https://twojsklep.pl/produkt/adidas-ultraboost-22",
      "https://twojsklep.pl/produkt/asics-gel-kayano-30",
      "https://twojsklep.pl/kategoria/buty-do-biegania"
    ]
  }'

Parametr keyLocation jest opcjonalny jeśli plik klucza jest w katalogu głównym domeny. Staje się wymagany, gdy plik jest w innej lokalizacji. Wszystkie URLe muszą należeć do domeny podanej w host.

Jakie kody odpowiedzi zwraca API IndexNow?

Tabela kodów odpowiedzi HTTP zgodna z oficjalną dokumentacją IndexNow.org:

HTTPOdpowiedźCo oznaczaCo zrobić
200OKURL przyjęty pomyślnieNic, wszystko działa
202AcceptedURL odebrany, weryfikacja klucza w tokuPoczekaj, sprawdź plik klucza
400Bad RequestNieprawidłowy format requestuSprawdź składnię JSON, URL encoding
403ForbiddenKlucz nieprawidłowy (brak pliku .txt lub klucz nie pasuje)Sprawdź plik weryfikacyjny na serwerze
422Unprocessable EntityURL nie należy do domeny lub klucz nie pasuje do schematuSprawdź czy URL pasuje do host
429Too Many RequestsZa dużo requestów (podejrzenie spamu)Zmniejsz częstotliwość, dodaj debouncing
Kody odpowiedzi HTTP z API IndexNow. Źródło: indexnow.org/documentation

Jak zautomatyzować IndexNow w sklepie?

Ręczne wysyłanie requestów nie ma sensu w sklepie z tysiącami produktów. Automatyzacja powinna odpalać IndexNow za każdym razem, gdy produkt jest dodany, zaktualizowany (cena, stan, opis) lub usunięty. Poniżej gotowe implementacje per platforma.

WooCommerce (PHP)

Dodaj poniższy kod do pliku functions.php motywu potomnego lub do pluginu Code Snippets. Hook woocommerce_update_product odpala się przy każdej aktualizacji produktu (cena, stan, opis):

/**
 * IndexNow - automatyczne powiadamianie Bing o zmianie produktu
 * Hook: woocommerce_update_product
 * Docs: https://www.indexnow.org/documentation
 */
add_action( 'woocommerce_update_product', 'indexnow_notify_product_change' );

function indexnow_notify_product_change( $product_id ) {
    $url = get_permalink( $product_id );
    $key = 'e4b2c8d1a5f7093b'; // Zamień na swój klucz

    if ( empty( $url ) ) {
        return;
    }

    $api_url = add_query_arg(
        array(
            'url' => urlencode( $url ),
            'key' => $key,
        ),
        'https://api.indexnow.org/indexnow'
    );

    wp_remote_get( $api_url, array(
        'timeout'   => 5,
        'blocking'  => false, // nie blokuj zapisu produktu
        'sslverify' => true,
    ) );
}

Uwaga: parametr 'blocking' => false sprawia, że request do IndexNow nie spowalnia zapisu produktu w WooCommerce – wysyłka dzieje się w tle. Alternatywnie: zainstaluj oficjalny plugin IndexNow od Microsoftu z repozytorium WordPress – robi to samo bez pisania kodu.

Batch: Python – zmiana cen na wielu produktach

Skrypt do uruchomienia po masowej aktualizacji cen (np. import z ERP, zmiana kursów walut, wyprzedaż sezonowa):

"""
IndexNow batch submission - e-commerce price update
Docs: https://www.indexnow.org/documentation
Limit: max 10 000 URLi per request
"""
import requests
import json

INDEXNOW_KEY = "e4b2c8d1a5f7093b"  # Zamień na swój klucz
HOST = "twojsklep.pl"

# Lista URLi produktów ze zmienioną ceną
updated_urls = [
    f"https://{HOST}/produkt/nike-air-max-90",
    f"https://{HOST}/produkt/adidas-ultraboost-22",
    f"https://{HOST}/produkt/asics-gel-kayano-30",
    # ... do 10 000 URLi
]

payload = {
    "host": HOST,
    "key": INDEXNOW_KEY,
    "keyLocation": f"https://{HOST}/{INDEXNOW_KEY}.txt",
    "urlList": updated_urls
}

response = requests.post(
    "https://api.indexnow.org/indexnow",
    headers={"Content-Type": "application/json; charset=utf-8"},
    data=json.dumps(payload)
)

print(f"Status: {response.status_code}")
# 200 = OK, 202 = Accepted, 429 = Too Many Requests

PrestaShop

PrestaShop nie ma natywnej integracji IndexNow, ale dostępne są moduły na oficjalnym marketplace. Najpopularniejszy to Op’art IndexNow – automatycznie powiadamia wyszukiwarki o zmianach w produktach, kategoriach, stronach CMS, dostawcach i producentach. Obsługuje multi-shop i jest kompatybilny z narzędziami do masowej edycji (Store Commander, Store Manager). Moduł prowadzi log wszystkich przesłanych URLi i pozwala na ręczne ponowne wysyłanie.

Shopify

Shopify ogłosił natywną integrację z IndexNow w maju 2025 roku (według oficjalnego bloga Bing). Dodatkowo dostępna jest aplikacja InstaIndex (4.7/5 gwiazdek) dla starszych wersji. Po instalacji każda zmiana produktu automatycznie wysyła ping do IndexNow bez dodatkowej konfiguracji.

Magento / Adobe Commerce

Magento nie ma oficjalnego modułu IndexNow, ale implementacja jest prosta przez event observer. Podepnij się pod event catalog_product_save_after i wyślij HTTP request do API IndexNow z URL produktu:

# Magento 2 - Observer na catalog_product_save_after
# Plik: app/code/Vendor/IndexNow/Observer/ProductSaveAfter.php

namespace Vendor\IndexNow\Observer;

use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\HTTP\Client\Curl;

class ProductSaveAfter implements ObserverInterface
{
    private Curl $curl;
    private const INDEXNOW_KEY = 'e4b2c8d1a5f7093b'; // Zamień na swój klucz

    public function __construct(Curl $curl)
    {
        $this->curl = $curl;
    }

    public function execute(Observer $observer): void
    {
        $product = $observer->getEvent()->getProduct();
        $url = $product->getProductUrl();

        $apiUrl = sprintf(
            'https://api.indexnow.org/indexnow?url=%s&key=%s',
            urlencode($url),
            self::INDEXNOW_KEY
        );

        try {
            $this->curl->setOption(CURLOPT_TIMEOUT, 5);
            $this->curl->get($apiUrl);
        } catch (\Exception $e) {
            // Nie blokuj zapisu produktu przy błędzie IndexNow
        }
    }
}

Zarejestruj observer w etc/events.xml: <event name="catalog_product_save_after"><observer name="indexnow_product_save" instance="Vendor\IndexNow\Observer\ProductSaveAfter"/></event>. Pamiętaj o pliku weryfikacyjnym {klucz}.txt w katalogu pub/ (Magento serwuje pliki statyczne z tego katalogu).

IndexNow vs sitemap.xml vs Google Search Console – porównanie

MetodaCzas do indeksacjiLimit URLiGoogleBingAutomatyzacja
IndexNow APIGodziny10 000/requestNIETAKPełna (hook/skrypt)
sitemap.xmlDni-tygodnie50 000/plikTAKTAKPełna (generowany)
GSC URL InspectionGodziny-dni~10/dzień (ręcznie)TAKNIEOgraniczona (API)
Google Indexing APIMinuty-godziny200/dzieńTAK*NIEPełna (API)
*Google Indexing API oficjalnie tylko dla JobPosting i BroadcastEvent, choć w praktyce działa szerzej. Źródło: dokumentacje Google i IndexNow.org

Optymalna strategia dla sklepu: sitemap.xml jako fundament (Google + Bing) + IndexNow dla szybkich zmian (Bing) + GSC URL Inspection dla krytycznych stron (Google). Te metody się nie wykluczają – używaj wszystkich trzech równolegle.

Jak IndexNow wpływa na widoczność w ChatGPT i AI Search?

ChatGPT Search używa Bing jako backendu wyszukiwania (bot OAI-SearchBot crawluje strony z indeksu Bing). Bing wspiera IndexNow. Połączenie tych dwóch faktów oznacza: jeśli wdrożysz IndexNow, Twoje nowe produkty i zmienione ceny trafią do indeksu Bing szybciej, a przez Bing – do ChatGPT Search szybciej. Użytkownik, który zapyta ChatGPT „jaki ekspres do kawy kupić do 3000 zł”, dostanie odpowiedź z aktualnymi cenami z Twojego sklepu zamiast cen sprzed tygodnia.

Więcej o mechanizmie cytowania przez AI (w tym roli Bing jako backendu ChatGPT) opisujemy w artykule jak AI wybiera źródła do cytowania. O dostępności technicznej dla botów AI (robots.txt, OAI-SearchBot, PerplexityBot) piszemy w kontekście audytu widoczności w AI.

Kto już wdrożył IndexNow i jakie ma wyniki?

IndexNow nie jest eksperymentem – to protokół w produkcji na masową skalę. Według oficjalnego bloga Bing (maj 2025), 22% wszystkich klikniętych URLi w wynikach Bing pochodzi z URLi przesłanych przez IndexNow – wzrost z 18% na początku 2025 roku. Globalnie przez protokół przechodzi ponad 5 miliardów URLi dziennie (źródło: Pressonify.ai).

  • Amazon i Shopify zintegrowały IndexNow natywnie w swoich platformach. Każdy sklep na Shopify może włączyć IndexNow jednym kliknięciem przez aplikację InstaIndex (4.7/5 gwiazdek w Shopify App Store). Amazon wykorzystuje IndexNow do natychmiastowego powiadamiania Bing o zmianach cen i dostępności milionów produktów.
  • Milestone Inc. (CMS dla branży hotelowej i e-commerce) wdrożyło IndexNow w swojej platformie obsługującej setki hoteli i sklepów. Efekt: nowe oferty i zmiany cen indeksowane w Bing w „near real-time” zamiast standardowego cyklu crawlowania trwającego dni.
  • Home Depot (jeden z największych sklepów budowlanych na świecie) uczestniczył w pilotażu IndexNow (źródło: Indexly.ai). Nowe strony produktowe były indeksowane w Bing w godzinach zamiast dni – co jest szczególnie istotne przy sezonowych zmianach asortymentu (wiosna: narzędzia ogrodowe, jesień: ogrzewanie).
  • Wydawca newsowy (case study White Bunnie, Azja) – po włączeniu IndexNow artykuły były indeksowane w Bing w 30 minut zamiast godzin. Przy newsach, gdzie liczy się każda minuta, to różnica między byciem pierwszym źródłem a byciem duplikatem.

W ekosystemie WordPress IndexNow ma ponad 10 milionów aktywnych instalacji – przez oficjalny plugin Microsoftu oraz integracje w Yoast SEO i Rank Math. Cloudflare oferuje natywną integrację IndexNow – włączasz jednym przełącznikiem w panelu bez dotykania kodu.

Poniżej jak wygląda panel IndexNow w RankMath:

Panel IndexNow w RankMath

Ograniczenia i pułapki IndexNow

  • Google nie wspiera IndexNow – to największe ograniczenie. Dla Google nadal potrzebujesz sitemap.xml i cierpliwości. IndexNow przyspiesza indeksację w Bing, Yandex i pośrednio w ChatGPT, ale nie w Google.
  • HTTP 200 nie oznacza indeksacji – wyszukiwarka potwierdziła odbiór, ale może zdecydować, że strona nie zasługuje na indeksację (niska jakość, duplikat, thin content). IndexNow nie omija filtrów jakościowych.
  • Nie wysyłaj niezmienionych URLi – wysyłanie tych samych stron wielokrotnie bez zmian nie przyspieszy indeksacji. Może skutkować odpowiedzią HTTP 429 (Too Many Requests). Wysyłaj tylko URLe, które faktycznie się zmieniły.
  • Debouncing – jeśli cena produktu zmienia się 5 razy dziennie (np. dynamic pricing), nie wysyłaj IndexNow 5 razy. Dodaj debouncing: czekaj minimum 5 minut między submisje tego samego URL. Według FAQ IndexNow, zbyt częste submisje mogą być traktowane jako spam.
  • Klucz API to nie tajemnica absolutna – klucz jest publiczny (plik .txt na serwerze), ale tylko właściciel domeny może wysyłać URLe z tej domeny. Nie musisz się martwić o „kradzież” klucza.

Podsumowanie – IndexNow jako element strategii indeksacji sklepu

IndexNow nie zastępuje sitemap.xml ani Google Search Console – uzupełnia je o natychmiastowe powiadamianie Bing (i pośrednio ChatGPT Search) o zmianach w sklepie. Implementacja zajmuje 15-30 minut: wygeneruj klucz, umieść plik .txt na serwerze, dodaj hook w WooCommerce lub skrypt Python do procesu aktualizacji cen. Dla sklepów z częstymi zmianami cen, stanów magazynowych i dużym asortymentem – to jedno z najprostszych usprawnień technicznych z bezpośrednim wpływem na aktualność danych w wyszukiwarkach.

Agencja SEO Semgence wdraża IndexNow w ramach pozycjonowania sklepów internetowych – od konfiguracji klucza API po automatyzację batch submission zintegrowaną z procesem aktualizacji cen w ERP. Sprawdź naszą ofertę audytu sklepu lub skontaktuj się z nami.

FAQ

Czy Google wspiera IndexNow?

Nie. Google oficjalnie nie wspiera protokołu IndexNow. Google ma własne mechanizmy: Indexing API (tylko dla JobPosting i BroadcastEvent), URL Inspection API w Search Console i standardowy crawling przez Googlebot. IndexNow działa z Bing, Yandex, Seznam i Naver. Ponieważ ChatGPT Search używa Bing jako backendu, IndexNow pośrednio wpływa na widoczność w ChatGPT.

Ile URLi można wysłać jednym requestem IndexNow?

Do 10 000 URLi w jednym POST request z JSON payload. Dla pojedynczych URLi można użyć prostszego GET request. Limit dzienny nie jest oficjalnie określony, ale zbyt częste wysyłanie tych samych URLi może skutkować odpowiedzią HTTP 429 (Too Many Requests).

Czy IndexNow gwarantuje indeksację strony?

Nie. Odpowiedź HTTP 200 oznacza tylko, że wyszukiwarka odebrała zgłoszenie. Decyzja o indeksacji zależy od jakości strony, crawl budgetu i polityki wyszukiwarki. IndexNow przyspiesza odkrycie zmiany, ale nie omija filtrów jakościowych.

Jak wdrożyć IndexNow w WooCommerce?

Najprostszy sposób: zainstaluj plugin IndexNow z repozytorium WordPress (np. plugin od Microsoftu). Alternatywnie: dodaj hook PHP na akcję woocommerce_update_product, który wysyła GET request do API IndexNow z URL produktu. Klucz API umieść w pliku .txt w katalogu głównym domeny.

Podobne wpisy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *