Zgodność cen w Google Merchant Center (brutto vs netto)

Problem

Google Merchant Center porównuje cenę z feeda produktowego z ceną odczytaną ze strony produktu. Jeśli na stronie widoczne są dwie ceny (np. netto i brutto), Google może:

  • odczytać nieprawidłową cenę (np. netto),
  • uznać ją za właściwą,
  • zgłosić błąd “Mismatched value (page crawl) [price]” albo nawet nadpisać cenę z feeda.

Najczęściej dotyczy to sklepów B2C w Polsce, gdzie cena brutto (z VAT) jest tą, którą klient faktycznie płaci.


Jak Google odczytuje cenę

Google korzysta z kilku źródeł jednocześnie:

  1. Feed produktowy (Merchant Center)
  2. Dane strukturalne na stronie (Schema.org: Product / Offer)
  3. Treść strony (DOM) – tzw. advanced data extraction

Jeśli ceny się różnią, Google wybiera jedną z nich (często niższą), co prowadzi do konfliktu.


Prawidłowa konfiguracja (rekomendowana)

1. Jedna cena ofertowa w danych strukturalnych

  • W danych strukturalnych (Offer.price) musi znajdować się tylko jedna cena.
  • Powinna to być cena brutto, zgodna z feedem.
  • Waluta: PLN

Zalecane: użycie JSON-LD zamiast microdata.

Przykład (JSON-LD):

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Nazwa produktu",
  "offers": {
    "@type": "Offer",
    "price": "123.00",
    "priceCurrency": "PLN",
    "availability": "https://schema.org/InStock"
  }
}

2. Cena netto jako informacja pomocnicza

  • Cena netto nie może:

    • mieć itemprop="price",
    • znajdować się w Offer,
    • być częścią AggregateOffer (lowPrice, highPrice).
  • Najlepiej opisać ją tekstowo, np.:

    Cena netto (dla firm): 100,00 zł

Google musi jednoznacznie widzieć, że nie jest to cena oferty.


3. Unikaj wielu Offerów

Częste błędy:

  • dwa Offer (netto i brutto),
  • AggregateOffer z lowPrice = 100,
  • osobny Offer dla B2B.

➡ Google często wybiera najniższą cenę jako obowiązującą.


4. Automatyczne aktualizacje cen w Merchant Center

W Merchant Center:

  • Produkty → Ustawienia → Automatyczne aktualizacje
  • Jeśli włączona jest aktualizacja ceny, Google może nadpisywać cenę z feeda tym, co odczyta ze strony.

Na czas testów warto:

  • tymczasowo wyłączyć aktualizacje ceny,
  • sprawdzić, czy problem nadal występuje.

5. Po zmianach – ponowne sprawdzenie

Po poprawkach:

  • użyj inspekcji URL w Merchant Center,
  • albo poczekaj na ponowny crawl (zwykle 1–3 dni),
  • upewnij się, że cena w feedzie = cena brutto na stronie = cena w structured data.

Checklist (TL;DR)

✔ Jedna cena w Offer.price ✔ Cena brutto zgodna z feedem ✔ Cena netto bez znaczników ceny ✔ Brak AggregateOffer z niższą ceną ✔ Sprawdzone automatyczne aktualizacje w GMC


Oficjalne źródła Google


Jeśli pojawiają się dalej problemy mimo poprawnej konfiguracji, najczęściej oznacza to, że gdzieś na stronie nadal istnieje druga cena, którą Google interpretuje jako ofertową (nawet jeśli wizualnie wygląda niegroźnie).