Przejdź do głównej zawartości

Filtrowanie parametrów query

Domyślnie jakikolwiek parametr query w żądaniu czyni je uncacheable — link ?utm_source=newsletter i goły URL inaczej tworzyłyby osobne wpisy cache, wysadzając rozmiar cache i wymuszając MISS dla każdego linka trackingowego w Twoim marketingu.

Ustawienie Ignored Query Parameters to naprawia, listując parametry, które cache powinien usunąć z URL-a przed wyliczeniem klucza cache.

Konfigurowane pod Settings → Speed Boost → Dashboard → Query Parameter Filtering → Ignored Query Parameters.

Input to pole w stylu tag — wpisz nazwę parametru, naciśnij Enter, powtórz. Plugin ship’uje z sensowną domyślną listą, która pokrywa typowe parametry trackingowe.

Typowe wpisy do dodania:

  • utm_source, utm_medium, utm_campaign, utm_term, utm_content
  • gclid (Google Ads)
  • fbclid (Facebook)
  • msclkid (Microsoft Ads)
  • mc_cid, mc_eid (Mailchimp)
  • _ga, _gid (Google Analytics)
  • Każdy wewnętrzny parametr trackingowy, który dodaje Twój zespół

Gdy żądanie przychodzi:

  1. Każdy parametr query jest porównywany z listą Ignored Query Parameters.
  2. Parametry z listy są usuwane z klucza cache, więc cache’owany wpis jest dzielony z gołym URL.
  3. Parametry są wciąż widoczne dla Twojego storefrontu / JavaScript — Shopware otrzymuje pełne żądanie, co oznacza, że skrypty analityki wciąż widzą wartości UTM.

Więc odwiedzający korzysta z cache HIT, a Twój tracking wciąż działa.

Parametr query nie z listy dyskwalifikuje żądanie z cache:

  • Odpowiedź jest generowana normalnie
  • Nie jest zapisana pod żadnym kluczem cache
  • Kolejne żądania z tym samym parametrem rebuildują stronę

Jeśli znajdziesz wewnętrzny parametr cicho bypassowujący cache, dodaj go do listy.

Niektóre parametry naprawdę zmieniają odpowiedź — nie ignoruj ich:

  • Paginacja (p, page) — inna strona = inna treść
  • Sortowanie (order) — inna kolejność = inna treść
  • Filtr (min-price, max-price, properties) — należą do flow AJAX listingu, który ma własne cache’owanie
  • Search (search) — inny search = inna treść

Plugin już obsługuje to poprawnie przez AJAX-owe trasy listingu — nie musisz dodawać ich sam.

Listę można nadpisać per kanał sprzedaży. W większości sklepów trzymasz jedną globalną listę.

Otwórz stronę produktu dwa razy:

Okno terminala
curl -sI 'https://example.com/p/foo' | grep -i p2lab
curl -sI 'https://example.com/p/foo?utm_source=newsletter' | grep -i p2lab

Oba powinny zwrócić HIT (zakładając, że utm_source jest na liście i wpis jest już cache’owany).