Od Dodaj do koszyka do BuyAction: techniczne SEO akcji produktowych

Przycisk „Dodaj do koszyka” na karcie klocków hamulcowych Brembo P85075 działa dla użytkownika. Ale product_purchase_link_readiness wynosi 65/100 – bo guide_product_link_alignment jest zerowy. Strona z poradnikiem „Jak wybrać klocki hamulcowe” nie linkuje do konkretnych produktów w sklepie. Użytkownik czyta poradnik, wraca do wyników wyszukiwania i szuka produktu od nowa. Od „Dodaj do koszyka” do BuyAction w schema jest kilka kroków technicznych, które decydują o tym, czy maszyna – wyszukiwarka, system AI, agent zakupowy – może przeprowadzić transakcję. W 2026 roku te kroki stały się pilniejsze, bo transakcje coraz częściej inicjują nie ludzie, lecz agenty AI działające w imieniu użytkowników.

Od przycisku do BuyAction: co się zmienia?

Przycisk „Dodaj do koszyka” to element interfejsu: HTML button lub link z eventem JavaScript. Użytkownik klika, produkt trafia do koszyka, sesja zakupowa się rozpoczyna. Ale dla maszyny ten przycisk jest nieczytelny – bot nie klika buttonów, nie wykonuje JS, nie ma sesji. Patent US12561387B2 opisuje system, w którym akcje na stronie (buy, reserve, compare) są indeksowane razem z ich parametrami i target URL-ami. BuyAction w schema to deklaratywna forma tego samego działania: „na tej stronie można kupić ten produkt, klikając ten URL z tymi parametrami”.

Różnica jest fundamentalna. Przycisk mówi do człowieka. BuyAction mówi do maszyny. W erze agentic commerce – gdzie systemy AI wykonują zakupy w imieniu użytkownika – strona bez BuyAction jest jak sklep bez drzwi: produkt widoczny, ale niemożliwy do kupienia przez agenta. Więcej o gotowości na agentic commerce: checklista agentic commerce readiness.

Mechanizm działania BuyAction opiera się na trzech elementach. Pierwszy: typ akcji – BuyAction deklaruje, że na tej stronie można dokonać zakupu. Drugi: target jako EntryPoint z urlTemplate – adres URL, pod który agent wysyła żądanie dodania produktu do koszyka. Trzeci: parametry (SKU, ilość, wariant) – informacje potrzebne do prawidłowego wykonania akcji. Bez któregokolwiek z tych elementów deklaracja jest niekompletna i agent nie może jej zinterpretować jednoznacznie.

Ramka metodologiczna. Analiza opiera się na patencie US12561387B2 (resource action indexability) i US20160267569A1 (product purchase link results). Narzędzia GSCGA MCP: ecom_resource_action_indexability_audit, product_purchase_link_readiness_audit, ecom_feed_page_schema_consistency_audit. Scoringi są diagnostyczne. BuyAction nie jest obietnicą lepszego rankingu – to deklaracja techniczna, która umożliwia maszynom interpretację akcji zakupowej.

Agentic commerce: dlaczego BuyAction staje się koniecznością

W 2025 roku agentic commerce przeszedł z fazy koncepcyjnej do fazy wdrożeniowej. Trzy niezależne źródła danych rysują ten sam obraz: zakupy inicjowane przez agenty AI rosną wykładniczo, a sklepy bez maszynowo czytelnych akcji zakupowych tracą nowy kanał sprzedaży. To zmiana, która wpływa na pozycjonowanie sklepu internetowego na poziomie fundamentalnym.

Według Morgan Stanley, liczba użytkowników agentów zakupowych AI wzrośnie z poziomu bliskiego zeru w 2026 do 126 milionów do 2030 (~połowa kupujących online w USA). Wartość transakcji: 385 miliardów dolarów. Dane Salesforce potwierdzają trend: w sezonie świątecznym 2025 AI wpłynęło na 20% globalnej sprzedaży online (262 mld USD), ruch AI do retailu wzrósł o 805% rok do roku, a konwersja z AI jest 8x wyższa niż z social media. Na Shopify ruch z AI wzrósł 8x, zamówienia 15x rok do roku.

Wspólny mianownik: agent zakupowy nie przegląda, nie scrolluje, nie porównuje interfejsów. Szuka maszynowo czytelnej ścieżki do zakupu. Sklep bez strukturalnej deklaracji akcji zakupowej jest dla agenta niewidoczny.

Trzy platformy, ten sam wymóg: strukturalne dane akcji

Google AI Mode wprowadził agentic checkout: użytkownik rozmawia z AI, które wyszukuje produkty, porównuje ceny i finalizuje zakup przez Google Pay. Google wymaga danych strukturalnych Product z Offer dla organicznych Merchant Listings. OpenAI i ChatGPT uruchomiły Instant Checkout (wrzesień 2025), a ze Stripe opracowały Agentic Commerce Protocol (ACP) – standaryzowane API do katalogów, cen i checkout. Salesforce Agentforce uruchomił trzy typy agentów (Shopper, Buyer, Merchant) z natywną integracją z ChatGPT, Google AI Mode i Gemini.

Żadna z tych platform nie klika przycisków na stronach – to fundamentalna zmiana w pozycjonowaniu AI. Wszystkie wymagają strukturalnych deklaracji akcji. BuyAction jest jedynym standardem czytelnym jednocześnie dla wyszukiwarek (Google), agentów konwersacyjnych (ChatGPT) i platform commerce (Salesforce).

Jak agenty AI interpretują akcje na stronie

Aby zrozumieć, dlaczego BuyAction jest istotny, trzeba zrozumieć, jak agenty AI czytają strony e-commerce. Istnieją dwie fundamentalnie różne metody: parsowanie danych strukturalnych i scrapowanie DOM.

Parsowanie schema (metoda 1): agent pobiera stronę, wyodrębnia JSON-LD, szuka @type: Product → offers.price → offers.availability → potentialAction @type: BuyAction → target.urlTemplate. Proces deterministyczny, trwa milisekundy, nie wymaga renderowania JS. Scrapowanie DOM (metoda 2): agent analizuje HTML, szuka buttonów z tekstem „koszyk”/„kup”/„buy”, próbuje rozpoznać formularz i odgadnąć strukturę URL-a. Proces heurystyczny – każdy sklep ma inną strukturę. Agent musi najpierw wyrenderować stronę (rendering readiness), a potem odgadnąć, co jest przyciskiem zakupowym.

Case study Cubitrek (norweski sklep outdoorowy) ilustruje różnicę: po wdrożeniu BuyAction na 2400 kartach produktowych, agent-to-cart latency wyniósł 1,4 sekundy vs 9,2 sekundy u konkurencji (scrapowanie DOM). Czas ekstrakcji danych to pochodna extractability score karty produktowej. Różnica 6,5x w czasie wykonania przekłada się na doświadczenie użytkownika zlecającego agentowi zakup.

Dane strukturalne a cytowalność przez AI

Dane wspierają tę obserwację. Według Lantern Digital, strony ze structured data uzyskują o 35% wyższy CTR z wyników wzbogaconych. 71% stron cytowanych przez ChatGPT i 65% cytowanych przez Google AI Mode zawiera dane strukturalne (korelacja, nie przyczyna). Według eFulfillment Service, sklepy z 99,9% kompletności atrybutów obserwują 3-4x wyższą widoczność w rekomendacjach AI. BuyAction bez kompletnych atrybutów Product (nazwa, GTIN, cena, dostępność, marka) jest praktycznie nieużyteczny dla agenta. Kompletność atrybutów to element szerszego audytu widoczności w AI.

Case study 1: sklep z częściami samochodowymi

Przeanalizowaliśmy 5 kart produktowych sklepu z częściami samochodowymi (dane zanonimizowane): klocki hamulcowe Brembo P85075 (289 zł), filtr oleju Mann W712/95 (32 zł), amortyzator Bilstein B4 (445 zł), klocki hamulcowe TRW GDB1763 (145 zł) i świeca zapłonowa NGK BKR6EIX-11 Iridium (42 zł, PreOrder). Każdy produkt ma GTIN, markę i kategorię. Wszystkie mają purchase link – ale z różną kompletością parametrów.

Wyniki audytu

MetrykaScoreInterpretacja
product_purchase_link_readiness65/100Linki zakupowe istnieją, ale brak powiązania z treścią poradnikową
purchase_link_completeness100/100Wszystkie 5 produktów ma purchase link
guide_product_link_alignment0/100Brak linków z poradników do produktów

Score 65/100 wynika z zerowego guide_product_link_alignment. Patent US20160267569A1 opisuje system, w którym wyniki wyszukiwania łączą treść informacyjną (poradnik) z linkami zakupowymi do konkretnych produktów. Użytkownik szukający „jak wybrać klocki hamulcowe” powinien zobaczyć poradnik z linkami do rekomendowanych produktów. W naszym audycie poradniki istnieją, ale nie linkują do kart produktowych – treść informacyjna i transakcyjna żyją w oddzielnych silosach.

Porównanie: produkt prosty vs wariantowy

Produkt prosty: filtr oleju Mann W712/95. Jeden SKU (MANN-W712-95), jeden GTIN (4011558738402), jeden purchase link (/cart/add/MANN-W712-95?qty=1). BuyAction dla tego produktu jest trywialna: typ Product, jeden Offer, jeden EntryPoint z prostym urlTemplate. Parametr qty domyślnie 1 – filtr oleju kupuje się po sztuce.

Produkt z implikowanym wariantem: klocki hamulcowe TRW GDB1763. SKU jedno (TRW-GDB1763), GTIN jedno, ale purchase link ma qty=2 i label „Dodaj do koszyka (komplet)”. Klocki hamulcowe wymienia się parami – strona poprawnie ustawia domyślną ilość na 2. Ale w BuyAction ta informacja musi być jawna: qty=2 jako domyślny parametr lub osobna jednostka sprzedaży (komplet vs sztuka). Jeśli agent zakupowy doda qty=1, klient dostanie połowę kompletu.

Produkt PreOrder: świeca NGK BKR6EIX-11. Dostępność: PreOrder, label: „Zamów (dostępne za 3-5 dni)”. Tu BuyAction nie pasuje – produkt nie jest InStock. Poprawna deklaracja to OrderAction z availabilityStarts lub potentialAction z opisem czasu dostawy. Schema Offer powinien mieć availability: PreOrder, a nie InStock. W naszym audycie feed deklaruje „preorder”, ale strona produktu nie komunikuje przewidywanej daty dostępności w danych strukturalnych.

Case study 2: sklep ze sprzętem outdoorowym

Drugi audyt przeprowadziliśmy na 5 kartach produktowych sklepu ze sprzętem outdoorowym i trekkingowym. Branża outdoorowa ma specyficzne cechy, które komplikują wdrożenie BuyAction: produkty premium z rozbudowanymi specyfikacjami technicznymi, sezonowość (szczyty sprzedaży wiosna-lato), częste warianty (rozmiary, kolory, wersje lewo/praworęczne) i silna rola treści poradnikowej w procesie decyzyjnym.

Przeanalizowane produkty: namiot Hilleberg Nallo 2 GT (4 890 zł), kurtka Gore-Tex Mammut Nordwand Advanced HS Hooded (3 299 zł), buty trekkingowe Salomon X Ultra 4 GTX (699 zł), plecak Osprey Atmos AG 65 (1 149 zł) i mata samopompująca Therm-a-Rest NeoAir XTherm (899 zł).

Wyniki audytu outdoorowego

Produktpurchase_linkBuyAction readyWariantyGłówna luka
Hilleberg Nallo 2 GTTakCzęściowoKolor (green/red/sand)urlTemplate bez parametru wariantu koloru
Mammut NordwandTakNieRozmiar (S-XXL), kolor (3)Brak EntryPoint; przycisk wymaga JS do wyboru rozmiaru
Salomon X Ultra 4 GTXTakCzęściowoRozmiar (EU 40-48)urlTemplate z rozmiarem, ale bez walidacji dostępności per rozmiar
Osprey Atmos AG 65TakTakRozmiar (S/M, L/XL)Brak – pełna deklaracja z wariantami
Therm-a-Rest NeoAir XThermTakCzęściowoRozmiar (Regular/Large)Feed deklaruje wagę 340g, strona 354g (z pokrowcem)

Ogólny product_purchase_link_readiness: 72/100. Wyższy niż w sklepie motoryzacyjnym (65/100), głównie dzięki lepszemu guide_product_link_alignment – sklep outdoorowy linkuje z poradników (np. „Jak wybrać namiot trekkingowy”) do konkretnych produktów. Podobny mechanizm opisujemy w kontekście UGC i opinii klientów jako źródła treści poradnikowej. Ale resource_action_indexability jest niski (48/100), bo tylko 1 z 5 produktów (Osprey Atmos AG 65) ma pełną deklarację BuyAction z obsługą wariantów.

Problem wariantów w sprzęcie outdoorowym

Kurtka Mammut Nordwand illustruje typowy problem premium outdoor. Produkt ma 3 kolory i 6 rozmiarów = 18 wariantów. Przycisk „Dodaj do koszyka” jest nieaktywny, dopóki użytkownik nie wybierze rozmiaru z dropdownu – co jest poprawne z perspektywy UX (nie można kupić kurtki bez rozmiaru). Ale z perspektywy BuyAction oznacza to, że nie istnieje pojedynczy urlTemplate, który agent mógłby wywołać.

Rozwiązanie: urlTemplate z parametrami wariantu. Zamiast jednego endpointu agent dostaje szablon:

{
  "@type": "BuyAction",
  "target": {
    "@type": "EntryPoint",
    "urlTemplate": "https://sklep-outdoor.pl/cart/add/MAMMUT-NORDWAND?size={size}&color={color}&qty={quantity}",
    "actionPlatform": [
      "https://schema.org/DesktopWebPlatform",
      "https://schema.org/MobileWebPlatform"
    ]
  },
  "object": {
    "@type": "Product",
    "name": "Mammut Nordwand Advanced HS Hooded",
    "brand": {"@type": "Brand", "name": "Mammut"},
    "offers": [
      {
        "@type": "Offer",
        "price": 3299,
        "priceCurrency": "PLN",
        "availability": "https://schema.org/InStock",
        "sku": "MAMMUT-NORDWAND-M-BLACK",
        "size": "M",
        "color": "black"
      },
      {
        "@type": "Offer",
        "price": 3299,
        "priceCurrency": "PLN",
        "availability": "https://schema.org/OutOfStock",
        "sku": "MAMMUT-NORDWAND-XXL-BLACK",
        "size": "XXL",
        "color": "black"
      }
    ]
  }
}

Wariant XXL w kolorze black ma availability: OutOfStock. Agent parsujący tę deklarację wie, że nie może zamówić tej kombinacji – bez informacji w schema musiałby wywołać endpoint i dopiero po błędzie serwera dowiedzieć się o braku dostępności.

Rozbieżność feed-strona: waga Therm-a-Rest

Mata Therm-a-Rest NeoAir XTherm ilustruje problem spójności danych. Feed deklaruje wagę 340 g (sama mata), strona wyświetla 354 g (z pokrowcem). Obie wartości technicznie poprawne, ale rozbieżność generuje feed_page_schema_consistency 68/100. Dla agenta AI porównującego maty na podstawie danych strukturalnych – to rozbieżność podważająca wiarygodność obu wartości. Rozwiązanie: ujednolicić wagę w feedzie, na stronie i w schema do jednej definicji.

Kontekst branżowy: Cubitrek i BuyAction w outdoorze

Nasze obserwacje korespondują z wynikami Cubitrek, norweskiego sklepu ze sprzętem outdoorowym, który wdrożył BuyAction na 2400 kartach produktowych w Q4 2025. Cubitrek raportuje wzrost cytowań przez systemy AI (ChatGPT, Perplexity) o 412%, 18% nowego przychodu z kanału agentic commerce i agent-to-cart latency 1,4 sekundy w porównaniu z 9,2 sekundy u konkurencji. To dane jednego sklepu, więc traktujemy je jako obserwację, nie uniwersalną prawidłowość. Ale kierunek jest spójny z tym, co widzimy w naszych audytach: kompletna deklaracja BuyAction z obsługą wariantów dramatycznie skraca ścieżkę agenta do transakcji.

BuyAction vs OrderAction vs ReserveAction: kiedy który typ?

Drzewo decyzyjne: który typ akcji schema dla produktu - BuyAction, OrderAction czy ReserveAction
Drzewo decyzyjne: BuyAction (InStock), OrderAction (PreOrder) czy ReserveAction (usługa) – na podstawie dostępności i typu oferty.

Schema.org definiuje kilka typów akcji transakcyjnych w hierarchii TradeAction. Wybór niewłaściwego typu nie jest błędem walidacji (Rich Results Test nie zgłosi ostrzeżenia), ale jest błędem semantycznym, który może wprowadzić agenta AI w błąd. Poniżej porównanie trzech najczęstszych typów w kontekście e-commerce.

CechaBuyActionOrderActionReserveAction
PrzeznaczenieNatychmiastowy zakup produktu fizycznego lub cyfrowegoZłożenie zamówienia (może wymagać potwierdzenia, PreOrder)Rezerwacja zasobu (pokój, bilet, termin)
Dostępność produktuInStock – produkt gotowy do wysyłkiInStock lub PreOrder – zamówienie może czekać na realizacjęLimitedAvailability – zasób o ograniczonej pojemności
Typowe branżeRetail, e-commerce, produkty fizyczne i cyfroweProdukcja na zamówienie, PreOrder, konfiguratoryHotelarstwo, bilety, usługi, gastronomia
Parametry targetSKU, qty, wariant (rozmiar, kolor)SKU, qty, konfiguracja, data dostawyData, godzina, liczba osób, typ zasobu
Przykład: sklep outdoorowyKup kurtkę Mammut Nordwand, rozmiar M, kolor blackZamów namiot Hilleberg w custom color (czas realizacji 8 tyg.)Zarezerwuj miejsce na kurs wspinaczki 15.09
Przykład: sklep motoryzacyjnyKup filtr oleju Mann W712/95, 1 szt.Zamów świecę NGK BKR6EIX-11 (PreOrder, 3-5 dni)Zarezerwuj termin wymiany opon na 20.10, godz. 10:00

Najczęstszy błąd: BuyAction na produktach PreOrder lub OutOfStock. BuyAction = „kup teraz” (InStock). PreOrder → OrderAction. OutOfStock → brak akcji. Drugi błąd: brak rozróżnienia BuyAction/ReserveAction w sklepach łączących produkty z usługami. Kurtka = BuyAction, wypożyczenie sprzętu = ReserveAction.

Specyfika branży motoryzacyjnej

Części samochodowe mają cechy, które komplikują BuyAction bardziej niż w typowym e-commerce. Po pierwsze: kompatybilność. Klocki Brembo P85075 pasują do VW Golf VII, Audi A3 8V, Seat Leon III. Ale nie pasują do Golf VI ani A3 8P. Jeśli BuyAction nie deklaruje kompatybilności (vehicleCompatibility lub isCompatibleWith), agent zakupowy nie wie, czy część pasuje do samochodu użytkownika. To nie jest problem SEO – to problem bezpieczeństwa: złe klocki hamulcowe to poważne ryzyko.

Po drugie: GTIN jest obowiązkowy. W branży motoryzacyjnej GTIN (EAN) to identyfikator jednoznaczny – Brembo P85075 ma GTIN 8020584057070 niezależnie od sklepu. Google Merchant Center wymaga GTIN dla części samochodowych. BuyAction bez GTIN w schema Product jest niekompletna z punktu widzenia walidacji produktu.

Po trzecie: ilość domyślna. Klocki hamulcowe = komplet (2 lub 4 szt.), świece zapłonowe = komplet (4 lub 6 szt. zależnie od silnika), filtry = 1 szt. BuyAction powinien deklarować domyślną ilość lub jednostkę sprzedaży. Bez tego agent zakupowy może zamówić 1 świecę zamiast kompletu 4.

Jak wdrożyć BuyAction krok po kroku

Infografika: 7 kroków wdrożenia BuyAction - od inwentaryzacji purchase links do testu endpoint bez sesji
7 kroków wdrożenia BuyAction z kluczowymi metrykami z audytu i porównaniem trzech platform agentic commerce.

Krok 1: inwentaryzacja purchase links. Dla każdego produktu w katalogu sprawdź: czy purchase link istnieje, czy prowadzi do działającego endpointu, czy zawiera poprawne parametry (SKU, qty). Narzędzie ecom_resource_action_indexability_audit weryfikuje te elementy automatycznie. W naszym audycie motoryzacyjnym: purchase_link_completeness 100% – punkt startowy jest dobry. W audycie outdoorowym: również 100%, ale 4 z 5 endpointów wymagały dodatkowej pracy nad obsługą wariantów.

Krok 2: klasyfikacja produktów według typu akcji. Nie każdy produkt dostaje BuyAction. Przejdź przez katalog i przypisz typ akcji na podstawie dostępności: InStock → BuyAction, PreOrder → OrderAction, OutOfStock → brak akcji, usługa/rezerwacja → ReserveAction. W sklepie motoryzacyjnym: 4 produkty InStock (BuyAction), 1 produkt PreOrder (OrderAction). W sklepie outdoorowym: 5 produktów InStock (BuyAction), ale 1 wariant (Mammut XXL black) OutOfStock – ten konkretny wariant nie powinien mieć BuyAction.

Krok 3: dodaj BuyAction do schema Product. Dla produktów InStock: BuyAction z EntryPoint (urlTemplate z parametrem product i opcjonalnie qty). Dla PreOrder: OrderAction z availabilityStarts. Nie deklaruj BuyAction na produktach OutOfStock. Przykład dla klocków:

{
  "@type": "Product",
  "name": "Klocki hamulcowe Brembo P85075",
  "gtin13": "8020584057070",
  "brand": {"@type": "Brand", "name": "Brembo"},
  "offers": {
    "@type": "Offer",
    "price": 289,
    "priceCurrency": "PLN",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition"
  },
  "potentialAction": {
    "@type": "BuyAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://sklep-czesci.pl/cart/add/BREMBO-P85075?qty={quantity}",
      "actionPlatform": [
        "https://schema.org/DesktopWebPlatform",
        "https://schema.org/MobileWebPlatform"
      ]
    }
  }
}

Krok 4: obsłuż warianty. urlTemplate z parametrami wariantów ({size}, {color}), osobny Offer per kombinacja z własnym SKU i dostępnością. Jeden Offer z InStock dla produktu z wariantami OutOfStock jest technicznie niepoprawny.

Krok 5: połącz poradniki z produktami. Główna luka w audycie motoryzacyjnym (guide_product_link_alignment: 0). Patent US20160267569A1 opisuje wzorzec: treść informacyjna + link zakupowy. Poradnik „Jak wybrać klocki hamulcowe” powinien linkować do Brembo P85075 z kontekstem kompatybilności (VW Golf VII). Sklep outdoorowy robi to lepiej: poradnik „Jak wybrać namiot trekkingowy” linkuje do Hilleberg Nallo 2 GT.

Krok 6: waliduj spójność feed ↔ strona ↔ schema. W naszym audycie feed deklaruje „preorder” dla świecy NGK, ale strona nie komunikuje daty dostępności. Feed mówi „in_stock” dla klocków, strona mówi „Dodaj do koszyka” – spójne. Rozbieżności między feedem, stroną i schema to sygnał niskiej jakości danych dla Merchant Center. Więcej o spójności: DOM-Product-Schema spójność.

Krok 7: testuj endpoint bez sesji. Wywołaj urlTemplate z parametrami w przeglądarce w trybie incognito. Produkt powinien trafić do koszyka bez logowania, bez aktywnej sesji, bez cookies. Jeśli endpoint zwraca błąd 401 lub przekierowuje na stronę logowania – BuyAction jest niekompletna. Agent zakupowy nie ma sesji, nie loguje się, nie akceptuje cookies. Jeśli endpoint wymaga autoryzacji, deklaruj to jawnie w schema (actionAccessibilityRequirement). Ten test powinien być częścią każdego audytu SEO sklepu internetowego.

Agentic Commerce Protocol i nowe kanały sprzedaży

Agentic Commerce Protocol (ACP) to inicjatywa OpenAI i Stripe standaryzująca komunikację agentów AI ze sklepami. ACP definiuje trzy warstwy: odkrywanie produktów (katalog), negocjacja (ceny i warunki) i finalizacja (transakcja przez zintegrowaną płatność). BuyAction na stronie i feed do ACP muszą deklarować te same dane – rozbieżność cenowa podważa wiarygodność obu źródeł.

ACP vs Google AI Mode: dwie architekury, jeden wymóg

ACP nie zastępuje BuyAction – uzupełnia go. BuyAction jest czytelny dla crawlerów (Googlebot, Bingbot) i systemów AI parsujących strony. Feed ACP jest czytelny dla agentów OpenAI komunikujących się bezpośrednio z API sklepu. Sklep widoczny w obu kanałach potrzebuje: BuyAction na stronie + feed ACP.

Google AI Mode checkout działa inaczej: Google pośredniczy między użytkownikiem a sklepem, opierając się na zaindeksowanych danych (schema + Merchant Center), a finalizacja odbywa się przez Google Pay. Kluczowa różnica dla strategii wdrożenia: ACP wymaga aktywnego API (real-time), Google AI Mode wymaga doskonałych danych statycznych (schema + feed).

Praktyczna implikacja: jeden źródłowy katalog produktowy, z którego generowane są: (1) schema Product z BuyAction na stronie, (2) feed do Google Merchant Center, (3) feed do ACP dla OpenAI, (4) feed do Salesforce Commerce Cloud. Rozbieżności między kanałami to najczęstszy problem w audytach ecom_feed_page_schema_consistency_audit.

Spójność feed ↔ schema ↔ DOM: matryca walidacji

Spójność danych produktowych między feedem (Google Merchant Center, ACP), danymi strukturalnymi (schema.org JSON-LD) i zawartością widoczną na stronie (DOM) to fundament wiarygodności w oczach systemów AI. Rozbieżność w dowolnym punkcie to sygnał, że dane mogą być nieaktualne, niepoprawne lub celowo manipulowane.

Na podstawie naszych dwóch case studies zbudowaliśmy matrycę walidacji obejmującą najczęstsze pola, w których pojawiają się rozbieżności.

PoleFeed (GMC/ACP)Schema (JSON-LD)DOM (strona)Typowa rozbieżnośćWpływ na agenta AI
Cenaprice: 289.00offers.price: 289„289 zł”Feed z VAT, schema bez; zaokrągleniaAgent porównujący ceny widzi dwa różne produkty
Dostępnośćin_stockInStock„Dodaj do koszyka”Feed: in_stock, schema: InStock, ale przycisk disabled (JS)Agent próbuje kupić niedostępny produkt
Nazwa produktuBrembo P85075Klocki hamulcowe Brembo P85075„Brembo P85075 – klocki hamulcowe przód”Różne poziomy szczegółowości nazwyAgent nie rozpoznaje produktu jako ten sam
GTIN8020584057070gtin13: 8020584057070Brak (nie wyświetlany)GTIN w feedzie i schema, ale niewidoczny w DOMMinimalny – agenty parsują schema, nie DOM
Waga340 gweight: 340 g„354 g (z pokrowcem)”Feed: waga netto, strona: waga bruttoAgent porównujący parametry widzi rozbieżność
Wariant (rozmiar)M, L, XLoffers[].size: M, L, XLDropdown z opcjami S-XXLFeed bez S i XXL, DOM z nimi (OutOfStock)Agent nie wie o wariantach S i XXL
ZdjęcieURL głównego zdjęciaimage: URLGaleria 5 zdjęćFeed wskazuje stare zdjęcie, schema noweMinimalny dla transakcji, ale wpływa na porównania

Reguła kciuka: feed, schema i DOM powinny deklarować identyczne wartości dla: ceny, dostępności, GTIN, nazwy produktu (z tolerancją na format) i wariantów. Pole, w którym tolerancja jest najniższa, to cena i dostępność (element, który weryfikujemy w ramach audytu treści) – tu rozbieżność jest traktowana jako poważny sygnał jakościowy zarówno przez Google Merchant Center, jak i przez agenty AI.

Proces walidacji

Walidacja przebiega w pięciu krokach: (1) eksport feedu do CSV/JSON (pola: price, availability, gtin, title, brand, size, color), (2) ekstrakcja JSON-LD z kart produktowych (offers.price, offers.availability, gtin13, name), (3) porównanie pole po polu: feed.price == schema.price, feed.availability → schema.availability (in_stock → InStock), feed.gtin == schema.gtin13, (4) weryfikacja DOM – czy cena na stronie zgadza się ze schema, czy przycisk jest aktywny gdy schema deklaruje InStock, (5) raport rozbieżności posortowany od najwyższego ryzyka (cena, dostępność) do najniższego (zdjęcie). Narzędzie ecom_feed_page_schema_consistency_audit automatyzuje cały proces.

Ryzyka i pułapki wdrożenia BuyAction

Wdrożenie BuyAction nie jest trudne technicznie – trudne jest utrzymanie spójności i poprawności deklaracji w czasie. Najczęstsze problemy z audytów:

1. BuyAction na produkcie OutOfStock. Schema nie aktualizowany dynamicznie po wyprzedaniu – agent próbuje kupić, endpoint zwraca błąd. Rozwiązanie: generuj schema server-side na podstawie stanu magazynowego; przy OutOfStock usuwaj potentialAction.

2. BuyAction bez EntryPoint. Schema zawiera @type: BuyAction, ale bez target z urlTemplate. Agent widzi akcję, ale nie ma endpointu do wywołania.

3. Endpoint wymaga sesji/CSRF. Purchase link działa w przeglądarce z cookies, ale zwraca 403 dla stateless request agenta. Rozwiązanie: endpoint koszyka gościa lub jawne actionAccessibilityRequirement w schema.

4. Nieaktualna cena. Schema generowany raz dziennie, cena zmienia się w ciągu dnia (promocje flash). Rozwiązanie: generuj schema przy renderowaniu strony (SSR).

5. Brak wariantów w urlTemplate. /cart/add/SKU?qty=1 bez parametrów rozmiaru/koloru. Agent nie wie, który wariant dodać. Rozwiązanie: urlTemplate z {size}, {color} i osobne Offer per kombinacja.

6. Duplikacja BuyAction. Strona kategorii i karta produktu deklarują BuyAction dla tego samego produktu. Rozwiązanie: BuyAction tylko na kanonicznej karcie produktu.

7. Brak actionStatus. BuyAction powinien deklarować actionStatus: PotentialActionStatus. Większość wdrożeń to pomija – nie jest krytyczne, ale ogranicza informację dla systemów AI.

Źródła i narzędzia

Narzędzia GSCGA MCP (diagnostyczne wskaźniki Semgence): ecom_resource_action_indexability_audit, product_purchase_link_readiness_audit, ecom_feed_page_schema_consistency_audit. Scoringi to wewnętrzne wskaźniki diagnostyczne Semgence, nie wyniki ani metryki Google.

Patenty: US12561387B2 (indexing actions for resources) i US20160267569A1 (product purchase link results) – Google LLC. Patenty opisują rozwiązania techniczne; ich istnienie nie oznacza wdrożenia w produkcyjnym algorytmie. Specyfikacje: schema.org/BuyAction, schema.org Actions, Google Product structured data, OpenAI ACP.

Źródła danych: Morgan Stanley, Salesforce Agentforce, Lantern Digital, eFulfillment Service, Cubitrek. Audyt: 10 kart produktowych (5 motoryzacja + 5 outdoor), sierpień 2026. Mała próba – obserwacje, nie uniwersalne prawidłowości. BuyAction nie gwarantuje lepszego rankingu.

Pełny audyt purchase link readiness: konsultacje SEO. Więcej o action readiness: zapytanie transakcyjne bez akcji.

Podobne wpisy

Dodaj komentarz

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