Košarica (0)
  • Vaša košarica je trenutno prazna

NEOSERV BLOG

Novice in nasveti iz sveta domen, gostovanja, SSL certifikatov, spletnih strani, spletnih trgovin in ostalih področij spleta.

Nedavno smo na našem blogu pisali o tem, kako se pripraviti na povečan obisk spletne strani, do katerega lahko pride ob večji oglaševalski kampanji. Našteli smo celo vrsto pomembnih ukrepov za hitro delovanje strani, med katerimi je bila izpostavljena nastavitev učinkovitega predpomnjenja.

Predpomnjenje omogoča, da se elementi spletne strani posameznemu obiskovalcu ne nalagajo vedno znova, temveč so shranjeni v predpomnilniku, kar omogoča mnogo hitrejše nalaganje. Pri tem pa morate biti uporabniki platforme WordPress pozorni, da pri vtičniku za predpomnjenje pravilno nastavite ignoriranje t. i. poizvedbenih nizov (ang. query strings).

Težava je namreč v tem, da se lahko obiskovalcem, ki do vašega spletnega mesta dostopajo prek oglasov (Google, Facebook, Instagram, …) ali povezav v e-novicah, nalagajo strani, ki niso predpomnjene. In če je takšnih obiskovalcev v kratkem času veliko, lahko vaša spletna stran prične delovati zelo počasi ali celo preneha delovati.

Kazalo

Kaj je poizvedbeni niz?

Poizvedbeni niz (ang. query string) je del spletne povezave oz. URL-ja (Uniform Resource Locator), ki dodeljuje vrednosti določenim atributom, znanim kot ključi ali parametri.

Uporaba poizvedbenih nizov

Poizvedbeni nizi se uporabljajo za pošiljanje dodatnih podatkov na strežnik, na primer za:

  • filtriranje vsebine (npr. v spletnih trgovinah),
  • iskanje informacij (npr. v spletnih iskalnikih),
  • uporabo sledilnih piškotkov (npr. v oglasih in e-novicah),
  • prenos nastavitev uporabnika (npr. prek kontaktnih obrazcev),
  • prenos drugih podatkov, potrebnih za obdelavo zahteve.

Primeri poizvedbenih nizov

Oglejmo si nekaj primerov URL naslovov, ki vključujejo poizvedbeni niz:

  • https://www.spletna-trgovina.com/tekaska-obutev?brand=salomon&size=43&color=white
  • https://duckduckgo.com/?q=poizvedba&df=y&ia=web
  • https://www.vasadomena.si/?fbclid=IwZXh0bgNhZW0CeTAAAR2wroBdH8Wj34YF1ArTFBp
  • https://domena.io/blog?utm_source=newsletter&utm_medium=email&utm_campaign=julij24

Struktura poizvedbenega niza

Spoznajte strukturo poizvedbenega niza in znake, ki se v njem uporabljajo:

  • poizvedbeni niz se začne z znakom vprašaja (?),
  • sledi en ali več parov “ključ – vrednost”, kjer sta elementa ločena z znakom za enačaj (=),
  • posamezni pari “ključ – vrednost” so med seboj ločeni z znakom ampersand (&).

Poizvedbeni nizi so pomemben del spletnih tehnologij, saj omogočajo dinamično interakcijo med uporabniki in strežnikom. Zaradi svoje enostavnosti in funkcionalnosti so pogosto uporabljeni v različnih spletnih aplikacijah.

Težava s predpomnjenjem poizvedbenih nizov

Vtičniki za predpomnjenje delujejo tako, da v predpomnilnik shranijo vsak URL posebej. Predpostavimo, da ima vaše spletno mesto tri strani:

  • https://www.vasadomena.si/izdelki
  • https://www.vasadomena.si/storitve
  • https://www.vasadomena.si/o-podjetju

Vtičnik bo shranil eno kopijo vsake strani v predpomnilnik in to kopijo serviral obiskovalcem, s čimer bo nalaganje posameznih strani bistveno hitrejše. Na ta način se namreč v ozadju ne bodo vedno znova izvajale številne poizvedbe v podatkovni bazi in nalaganje posameznih elementov.

Do težave pa pride pri URL naslovih, ki vsebujejo poizvedbeni niz, saj vtičniki za predpomnjenje tudi takšne povezave zaznajo kot edinstvene strani. V predpomnilnik se tako shranijo strani:

  • https://www.vasadomena.si/izdelki
  • https://www.vasadomena.si/izdelki?brand=nike
  • https://www.vasadomena.si/izdelki?brand=nike&size=43
  • https://www.vasadomena.si/izdelki?fbclid=AR2wroBdHoWj34YF1bATroBdH8Wj3
  • https://www.vasadomena.si/izdelki?utm_source=google&utm_medium=cpc

Vtičnik zgornjih pet strani zazna kot unikatne, zato vsako posebej shrani v predpomnilnik, čeprav je vsebina na nekaterih izmed njih povsem identična. Nekatere poizvedbene nize bi torej bilo treba shraniti ločeno, spet druge ne.

  • Poizvedbeni niz, ki vpliva na prikaz strani (npr. uporaba filtrov v spletni trgovini), je v predpomnilnik smiselno shraniti posebej, saj vsak vrne drugačno vsebino strani.
  • Poizvedbeni niz, ki ne vpliva na vsebino ali strukturo strani (npr. sledilni piškotki), bi moral biti predpomnjen kot izvirna stran.

Poizvedbeni nizi, ki jih je smiselno izvzeti iz predpomnjenja

Najpogostejši poizvedbeni nizi, povezani s sledilnimi piškotki (ang. tracking cookies), ki bi morali biti predpomnjeni kot izvirna stran, so:

  • fbclid – poizvedbeni niz Facebook doda vsem povezavam, ki s Facebooka vodijo na druge spletne strani.
  • ref – poizvedbeni niz Google uporablja za sledenje konverzijam.
  • utm* – poizvedbeni niz uporabljajo mnogi vtičniki oz. storitve za sledenje napotiteljem.
  • gad – poizvedbeni niz Google uporablja za diagnostiko in odpravljanje težav z oglasi v platformi Google Ads.

Zgornje poizvedbene nize je iz sistema predpomnjenja smiselno izvzeti zaradi treh razlogov:

  • Vtičnik bo naložil isto predpomnjeno stran kot izvoren URL brez poizvedbenega niza, s čimer bo spletna stran obiskovalcu prikazana bistveno hitreje.
  • Vtičnik ne bo porabil (ogromno) prostora na strežniku s stalnim kreiranjem novih predpomnjenih strani za vsak nov poizvedbeni niz.
  • Ker bo obiskovalcem za različne poizvedbene nize prikazana predpomnjena izvorna stran, tudi ob hkratnem navalu več uporabnikov (npr. med oglasno kampanjo) ne bo prišlo do preobremenitve spletne strani.

Če vaše WordPress spletno mesto uporablja tudi druge poizvedbene nize, ki jih zgoraj nismo našteli, jih z uporabo naprednega vtičnika za predpomnjenje lahko izvzamete. Brez skrbi, tudi če izključite poizvedbene nize, ki služijo sledenju (npr. konverzij), bodo funkcije delovale normalno, saj bo strežnik še vedno zabeležil zadetke (ang. hits) za te URL-je s poizvedbenimi nizi.

Optimizacija WordPress vtičnikov za predpomnjenje

Če ste natančno preverili zgornje primere poizvedbenih nizov, ste verjetno opazili atribut ?fbclid= z vrednostjo naključnega zaporedja znakov, ki ga na povezave do spletnih strani doda platforma Facebook. To lahko predstavlja veliko težavo v primeru obsežne oglaševalske kampanje, pri kateri povezave vodijo do spletne strani ali trgovine, kjer predpomnjenje ni urejeno z mislijo na možnost “neskončnega” števila različnih poizvedbenih nizov.

Rezultat tega je, da se vsakemu posameznemu obiskovalcu prikaže ne-predpomnjena verzija spletne strani, kar pomeni počasnejše nalaganje, ob sočasnem obisku velikega števila obiskovalcev pa celo možnost preobremenitve oz. nedelovanja spletnega mesta.

Najbolj popularni WordPress vtičniki za predpomnjenje omogočajo, da se kljub poizvedbenemu nizu v URL-ju obiskovalcem naložijo predpomnjene strani, s čimer se opisani težavi izognemo.

LiteSpeed Cache

LiteSpeed Cache v predpomnilnik privzeto shranjuje vse poizvedbene nize. Če želite posamezne nize izključiti iz sistema predpomnjenja, lahko to uredite v nastavitvah vtičnika:

LiteSpeed Cache -> Cache -> Drop Query String

V večini primerov je v polje smiselno vnesti naslednje zapise:

  • fbclid
  • gclid
  • utm*
  • _ga
  • gad

LiteSpeed Cache - Drop Query String

Dokumentacija: https://docs.litespeedtech.com/lscache/lscwp/cache/

WP Rocket

WP Rocket v predpomnilnik privzeto ne shranjuje strani s poizvedbenimi nizi. Za vse spodaj navedene parametre ignorira poizvedbeni niz in naloži standardno datoteko iz predpomnilnika, ne glede na vrednosti parametrov v URL-ju:

  • utm*
  • fb_action_ids
  • fb_action_types
  • fb_source
  • fbclid
  • _ga
  • gclid
  • age-verified
  • ao_noptimize
  • usqp
  • cn-reloaded

Vtičnik omogoča, da vnesete poizvedbene nize, za katere želite, da se shranijo v predpomnilnik. Če bi npr. želeli predpomniti strani, ki vsebujejo poizvedbeni niz country, lahko omenjeni zapis na seznam dodate tukaj:

WP Rocket -> Advanced Rules -> Cache Query String(s)

WP Rocket - Cache Query Strings

Dokumentacija: https://docs.wp-rocket.me/article/971-caching-query-strings

Če želite spremeniti privzete nastavitve predpomnjanja poizvedbenih nizov ali med izvzete nize dodati nove, morate namestiti dodaten vtičnik: WP Rocket | Ignore Query Strings. Na povezavi boste našli tudi navodila za pravilno nastavitev omenjenega vtičnika.

Swift Performance

Swift Performance privzeto zaobide predpomnjenje za zahteve POST in vse zahteve GET, kjer poizvedbeni niz ni prazen. Vtičnik ignorira naslednje GET parametre:

  • utm_source
  • utm_campaign
  • utm_medium
  • utm_expid
  • utm_term
  • utm_content
  • fb_action_ids
  • fb_action_types
  • fb_source
  • fbclid
  • _ga
  • gclid
  • age-verified

Kot prikazano na spodnji sliki, vtičnik omogoča dodajanje dodatnih GET parametrov, izvzetih iz sistema predpomnjenja.

Swift Performance - Ignore GET Params

Dokumentacija: https://docs.swiftperformance.io/knowledgebase/ignore-get-params/

Cloudflare: predpomnjenje poizvedbenih nizov

Cloudflare je omrežje za dostavo vsebin (CDN – Content Delivery Network), ki omogoča hitrejše nalaganje spletnih strani na način, da posameznemu obiskovalcu vsebino prikaže z njemu najbližjega strežnika. Za izboljšanje hitrosti in učinkovitosti spletnih strani uporablja tehnologijo predpomnjenja, zato si v nadaljevanju poglejmo, kaj v povezavi s predpomnjenjem poizvedbenih nizov lahko urejate v sistemu Cloudflare.

Raven predpomnjenja (ang. Caching Level)

Znotraj uporabniškega računa lahko nastavite, koliko statične vsebine spletnega mesta želite, da Cloudflare shrani v predpomnilnik. Višji nivo predpomnjenja lahko pospeši čas nalaganja strani.

Nastavitev je na voljo tu: Cloudflare -> Caching -> Configuration -> Caching Level

Cloudflare - Caching Level

Izbirate lahko med tremi nivoji predpomnjenja:

  • No query string: Sistem servira vir iz predpomnilnika, ko ni poizvedbenega niza.
  • Ignore query string: Sistem servira isti vir vsem, neodvisno od poizvedbenega niza.
  • Standard: Sistem servira drug vir vsakič, ko se poizvedbeni niz spremeni.

Dokumentacija: https://developers.cloudflare.com/cache/how-to/set-caching-levels/

Svetujemo vam, da izberete nastavitev, ki vsem servira isti vir, neodvisno od poizvedbenega niza (Ignore query string), nato pa po potrebi nastavite dodatna pravila predpomnjenja, o čemer smo več zapisali v nadaljevanju.

Z izbiro omenjene ravni predpomnjenja (Ignore query string) boste dosegli, da bodo vašim obiskovalcem servirane predpomnjene izvirne strani, tudi če bo URL vseboval poizvedbeni niz (npr. fbclid ali gclid).

Pravila predpomnjenja (ang. Cache Rules)

Sekcija nastavitev Cache Rules omogoča nastavitev pravil, kateri viri naj bodo predpomnjeni in kako dolgo naj v predpomnilniku ostanejo shranjeni.

Nastavitev je na voljo tu: Cloudflare -> Caching -> Cache Rules

Cloudflare - Cache Rules - URI Query String

  1. Kliknite na modri gumb Create rule.
  2. V polje Rule name vnesite smiselno ime novega pravila za predpomnjenje.
  3. V polju Field izberite URI Query String, v polju Operator nastavite contains, v polje Value pa vnesite poizvedbeni niz, ki ga želite dodati v proces predpomnjenja. Na desni strani kliknite na gumb Or, da vnesete še morebitne dodatne poizvedbene nize.
  4. Pri nastavitvi Cache elibility izberite možnost Eligible for cache.
  5. Shranite in aktivirajte novo pravilo s klikom na gumb Deploy.

Dokumentacija: https://developers.cloudflare.com/cache/how-to/cache-rules/

Z dodatnimi pravili za predpomnjenje boste dosegli, da se bodo v predpomnilnik shranile strani z določenimi poizvedbenimi nizi. V primeru spletne trgovine je denimo smiselno predpomniti strani, ki jih ustvari možnost filtriranja, npr. prikaz izdelkov po blagovnih znamkah (brand).

Z učinkovitim upravljanjem predpomnjenja strani, ki vključujejo poizvedbeni niz, ne boste zgolj pospešili delovanja svojega spletnega mesta. Hkrati boste poskrbeli za to, da bo le-to delovalo brezhibno tudi ob sočasnem obisku večjega števila obiskovalcev.

KOMENTARJI

KOMENTIRAJTE OBJAVO

(obvezno)
(obvezno, e-poštni naslov bo skrit)
(neobvezno)
Varnostno vprašanje, ki potrdi, da ste resnična oseba.