Praćenje kretanja korisnika kroz stranice

Jutros nešto razmišljam o podršci i praćenju korisnika - ne bi li bilo lepo znati koje je stranice korisnik prethodno posetio (i kako je došao do njih) pre nego što vas je kontaktirao za pomoć? Iz toga bi se dosta dalo zaključiti: koliko posetioci stvarno obraćaju pažnju na dokumentaciju, da li prvo pretražuju ili odmah klikaju na Contact dugme itd.

I tako nažvrljam na papiru sledeće:

posete -< otvorene stranice

Svaka poseta može da ima niz otvorenih stranica. Dovoljno jednostavno samo po sebi, ali nedovoljno ukoliko se ne prati sa koje stranice je korisnik došao na koju stranicu. Davno smo prerasli browsere sa jednim prozorom i doba kada su se korisnici linearno kretali kroz sajt. Ponašanje današnjih korisnika više liči na drvo sa gomilom račvanja nego na flat listu stranica koje su posetili.

I tu je problem - kako pratiti koje stranice otvaraju koje stranice?

Prva stvar koja mi je pala na pamet je jednostavno kačenje ID-ja trenutno otvorene stranice na sve linkove na stranici (jedna linija JavaScripta bi sasvim lako nakačila ove vrednosti):

http://www.activecollab.com/contact?from=123

gde je from vrednost ID trenutno otvorene stranice u logu. Najveći problem kod ovog pristupa je što se "prljaju" URL-ovi sa podacima koji bi generalno trebalo da se prenose u pozadini.

Takođe ne znam kako botovi pretraživača tretiraju ovakve URL-ove. Da li smatraju stranicu drugačijom kada je GET parametar drugačiji? U kojoj situaciji ignorišu određene GET parametre? Kada liče na hash? Ima li neko više informacija o ovome?

Očigledno "prljanje" bi se dalo rešiti JavaScriptom tako što se presreće klik događaj svakog linka i pre same redirekcije kači ID trenutno otvorene stranice. Ovo ne bi radilo kada posetilac otvara linkovanu stranicu u novom tabu jer se tada preskače klik događaj. Otvaranje stranica u novom tabu je dosta čest slučaj, posebno kada se traže neke informacije bez da se jasno zna gde se iste nalaze (nakon pretrage foruma npr - posetilac će isklikati sve top teme u novim tabovima i tražiti odgovor na svoj upit u njima).

Druga opcija je da se oslonimo na browser da nam kaže odakle je korisnik došao. Ovo je nepraktično zato što nije potpuno rešenje (neki korisnici isključu prosleđivanje referrer informacija) i što bi onda na osnovu referer stranice morali da kopamo po logu i tražimo tačan ID prethodne stranice. Deluje kao nepotreban korak pošto taj info već ionako imamo na prethodnoj stranici.

Treća opcija koja mi je pala na pamet je da se jednostavno svim linkovima doda rel="nofollow", a struktura sajta ponudi kao sitemap. Ovo je naravno jako glupo pošto bi pretraživač video gomilu stranica na koje ni jedna druga stranica "zvanično" ne linkuje i verovatno bi im dobrano oborio vrednost.

I tako ne dođoh ni do kakvog zaključka... Cela ova priča je samo razmišljanje naglas. Zakucam tako ponekad sa problemom koji mi deluje interesantno iako i nemam stvarnu potrebu za rešavanjem istog. Zanimljivo je ipak, kao vežba za vijuge ako ništa više :)