Sviatoslav Cherneckii sesiuni de ID-uri și crawlerele

Identificatorii sesiune și crawlerele

Despre pagini duplicat, am vorbit deja. Ei nu doresc motoarele de căutare să indexeze, le fac rău site-ul și au nevoie pentru a scăpa de ele complet. Dar, pe multe site-uri pot conține link-uri la ID-ul de sesiune, și nu se poate face fără ele. Cum de a face cu ei?

Mulți dezvoltatori abordează această chestiune este simplu. pentru a identifica Cookie inventat, astfel încât nu este nevoie de a utiliza ID-uri de sesiune în adresa URL. Sunt, probabil, dispus să-l accepte. Cu toate acestea, unii dintre vizitatori pentru a dezactiva cookie în browserele lor ... sunt, știi, undeva am auzit că prin Cookie poate veni un fel de amenințare la adresa securității și a decis să joace în condiții de siguranță. Prostii, desigur - pentru a intercepta identificatorul în link-ul poate avea loc mult mai ușor, pur și simplu prin neglijența utilizatorului. Cu toate acestea, în acest nonsens să continue să creadă. Și proprietarul unui magazin online nu vrea să piardă clientul din cauza acestor prejudecăți ridicole. Hai mai bine să fie trimiteri la „coada“.

Un compromis rezonabil este evident. roboți sesiune nu deschide. Cum de a face acest lucru, în cazul în care motorul este gata și roboți de control nu sunt disponibile?

Este necesar doar să se introducă în mediul de testare a motorului variabil HTTP_USER_AGENT. În cazul în care conține numele unui bot de căutare, pe care noi nu vrem să dau link-ul de la sesiunile, primul lucru pe care trebuie să nu înceapă o sesiune. Și dacă un robot a venit la link-ul care conține deja ID-ul de sesiune, trebuie să-i dea HTTP antet cu statut de „404 Not Found», robotul a considerat acest link nevalid. Deci, noi nu împiedică numai apariția unor astfel de legături în index, dar, de asemenea, pentru a forța motorul de căutare pentru a șterge toate referințele la ID-ul de sesiune, ca și inexistentă.

Mai jos - un exemplu de cod pentru un astfel de test. Această bucată de cod care urmează să fie introdus în toate script-urile motorului în locul apelului funcției session_start ().

$ Se_mask = "(Yandex | Googlebot | StackRambler | Slurp Yahoo | WebAlta | msnbot)";
if (ereg ($ se_mask, $ _ SERVER [ 'HTTP_USER_AGENT'])) în cazul în care capul ($ _ SERVER [ 'SERVER_PROTOCOL'] "404 Not Found".) (gol ($ _ GET [ 'PHPSESSID'])!);
ieșire ();
>
> Session_start Else ();
>

Destul de simplu. $ Se_mask variabilă conține o mască de expresie regulată, listarea numele roboților, care nu doriți să dea identificatorul de link-ul. Dacă nici unul dintre numele nu vor fi găsite în HTTP_USER_AGENT, începe sesiunea. Deci, vin vizitatorul normal (sau un robot necunoscut ... dar dacă nu l-am chemat aici, problemele pe care le avem și un pic ingrijorat).

Acest motor de depanare simplu face ca motorul de căutare de ceva timp pentru a elimina toate trimiterile din index cu un identificator de sesiune, care robotul a colectat deja.

Camuflat considerat problema alegerii în aceleași pagini URL cu conținut diferit - este o opțiune pentru oameni și alți roboți.

Și noi am citit este împiedicat duplicat pagini de căutare robot cu URL-uri diferite. Pentru că nu va fi nici o sancțiune din motorul de căutare. Dimpotrivă, recomandările pentru motoarele de căutare webmasteri sunt rugați să nu dea afară roboți lor de a se leagă de identificatorul de sesiune. Nici Yandex sau Google nu are nevoie pentru a stoca miliarde de copii ale paginii.