Această pagină a fost modificată ultima dată în 1576. Un blog care are o mulțime de informații interesante…. Accelerează indexarea de către motoarele de căutare

Antet HTTP Ultima modificare (ultimele modificări) transferă timp clientului ultima schimbare document (pagina web). Clientul (browserul sau robotul de căutare) trimite antetul " Dacă-Modificat-De vreme ce" și dacă data la care pagina a fost modificată ultima dată se potrivește, serverul returnează antetul " 304 Nemodificat" și nu încarcă pagina. Dacă ultima oră modificată este diferită (sau ultimul antet modificat nu este configurat) - serverul returnează antetul " 200 OK" și încarcă pagina. Adică, în loc să reîncarce pagina din nou și să actualizeze memoria cache, clientul doar primește antetul 304. Clientul economisește trafic, iar serverul trimite mai puține date - economii reciproce.

Dar de ce ar exista acest articol dacă nu pentru a vorbi despre beneficiile pe care le aduce setarea antetului Last-Modified pentru, sau mai precis, pentru accelerarea indexării site-urilor. Nu este greu de ghicit că 10 pagini ale unui site vor fi indexate mai repede decât 1000. Același principiu care vă permite să optimizați încărcarea paginii funcționează și pentru indexare. Un motor de căutare nu trebuie să indexeze 1.000 de pagini pentru a găsi 10 pagini noi. Datorită ultimei modificări, lăsăm doar pagini noi (sau actualizate) pentru robot. Robotul vine pe site și ia mai întâi ceea ce are nevoie, apoi totul.

Setarea antetului Ultima modificare

Asigurați-vă că anteturile dvs. http sunt corecte. În special, ceea ce este important este conținutul răspunsului pe care serverul îl dă la cererea „dacă-modificat-de vreme ce”. Antetul Ultima modificare trebuie să indice data corectă la care documentul a fost modificat ultima dată. Chiar dacă serverul nu afișează data ultimei modificări a documentului, site-ul dvs. va fi indexat. Cu toate acestea, în acest caz, ar trebui să luați în considerare următoarele: - rezultatele căutării nu vor afișa data lângă paginile site-ului dvs.; - la sortarea după dată, site-ul nu va fi vizibil pentru majoritatea utilizatorilor; - robotul nu va putea obține informații despre dacă pagina site-ului a fost actualizată de la ultima indexare. Și deoarece numărul de pagini pe care robotul le primește de pe site într-o singură vizită este limitat, paginile modificate vor fi reindexate mai rar. Asigurați-vă că serverul dvs. web acceptă antetul HTTP „If-Modified-Since”. Acest antet va permite serverului web să spună Google dacă conținutul site-ului s-a modificat de la ultima accesare cu crawlere. Suportul acestei caracteristici reduce consumul general și lățimea de bandă.

Iată exemple despre cum să configurați antetul ultima modificat pentru a fi trimis și If-Modified-Since să fie tratat corect.

Cum se configurează meta Last-Modified pentru pagini html statice

Cum se configurează Last-Modified în php

= $LastModified_unix) ( header($_SERVER["SERVER_PROTOCOL"] . " 304 Nemodificat"); ieșire; ) header ("Ultima modificare: ". $Ultima modificare); ?>

Cum se configurează .htaccess Last-Modified

RewriteRule .* - RewriteRule .* -

Cum se configurează Last-Modified nginx + php

locație ~ .php$ ( ... if_modified_since off; fastcgi_pass fcgi; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /<путь >/web$fastcgi_script_name; ... fastcgi_pass_header Ultima modificare; include fastcgi_params; )

Verificați Ultima modificare

Când trecerea antetului către client este configurată, nu strica verifica ultima modificare pentru corectitudine. Puteți verifica Last-Modified pe cont propriu sau pe un site web al unei terțe părți prin intermediul serviciilor online.

Sau verificați singur pentru procesarea corectă a antetului Ultima modificare:

Setarea antetului Ultima modificare iar procesarea antetului If-Modified-Since va fi extrem de utilă pentru orice site mai mare sau mai mic. Viteza de procesare a paginilor site-ului poate deveni semnificativă. Configurarea relativ simplă nu va crea probleme, mai ales că pentru CMS-uri populare precum joomla, wordpress, modx etc. există soluții gata făcute.

Există o mulțime de mituri diferite în domeniul optimizării pentru motoarele de căutare (SEO) pentru site-uri web. Unele dintre ele au o bază, altele au venit de nicăieri. În această notă ne vom uita la unul dintre ele - folosind antetul de răspuns Last-Modified.

Cu ceva timp în urmă, am primit un document intitulat „Introducere recomandări pentru studiourile web pe site-urile promovate”. Și una dintre „recomandări” a fost următoarea:

După o reproiectare sau pe un nou site în curs de dezvoltare, trebuie indicată data ultimei modificări a paginilor site-ului (Last Modified).

Pentru a adăuga pe site la informații PHP data ultimei modificări a paginilor este necesară chiar de la început cod sursa inserați un script în fiecare pagină


antet("Ultima modificare: " . data("Z, d M Y H:i:s", ora()) . " GMT");
?>

Această prostie sălbatică, această prostie totală și un cod sincer nebun m-au determinat să scriu această notă. Aici voi încerca să explic ce este Last-Modified, de ce este necesar și cum îl folosesc browserele și motoarele de căutare.

Ce este ultima modificare

Atunci când transmiteți informații către client (browsere sau robot de căutare), serverul web raportează destul de multe date suplimentare. Acestea pot fi vizualizate în consola browserului, de exemplu:

configurați serverul să emită antete de răspuns corecte (de exemplu, dacă pagina nu există, emiteți o eroare 404 și dacă se primește o solicitare If-Modified-Since, atunci emiteți un cod 304 dacă pagina nu a fost modificată de la data specificată în cerere).

De asemenea, puteți vedea că, dacă serverul nu răspunde în niciun fel la o solicitare GET condiționată, atunci nu este diferit de o solicitare obișnuită. Adică, antetul Last-Modified cu ora curentă, care este, de asemenea, format incorect (bună ziua Integgate!) nu este deloc necesar!

Deci Last-Modified este necesar sau nu?

În general necesar. Dar este important de înțeles că nu antetul în sine joacă vreun rol, ci întregul scenariu de solicitare condiționată, care trebuie implementat pe deplin de către site. În acest caz vom obține o viteză mare de indexare a site-ului.

Dar este adesea foarte dificil să implementați acest lucru într-un CMS gata făcut. Acest lucru poate necesita modificări destul de semnificative ale codului CMS-ului în sine.

Deși pentru un număr de CMS, acest lucru poate fi realizat prin activarea stocării în cache a paginii. Dacă CMS-ul memorează în cache pagini, creând și servind în esență fișiere statice, atunci serverul web însuși va răspunde corect la solicitările condiționate. De exemplu, în WordPress acest lucru poate fi realizat folosind pluginul WP Super Cache:

Să o verificăm în acțiune. Am activat acest plugin, am deschis browserul în modul anonim și am făcut două solicitări pentru aceeași pagină. Se vede clar că al doilea răspuns este corect - 304 Nemodificat:

În loc de o concluzie

Astfel, ne-am ocupat de antetul Last-Modified. În primul rând, trebuie să transmită informații despre data și ora la care documentul a fost efectiv modificat. În al doilea rând, răspunsul serverului la o solicitare condiționată cu antetul If-Modified-Since este extrem de important.

Ei bine, ascultați mai puțin SEO care nu cunosc elementele de bază ale modului în care funcționează Internetul.

Una dintre etapele optimizării unui site web pentru funcționarea corectă și promovarea cu succes este optimizarea pe server. Alte puncte includ configurarea răspunsului corect al serverului la cererea „Ultima modificare”. Setarea corectă a acestui parametru poate crește viteza de încărcare a site-ului și poate avea un efect pozitiv asupra indexării acestuia de către roboții de căutare.

Ce este Ultima modificare și de ce este nevoie?

După cum sugerează și numele, antetul Last-Modified îi spune clientului (vizitatorul site-ului) despre ultima dată când o anumită pagină a site-ului a fost modificată. Dacă un robot de căutare acționează ca un vizitator al site-ului și răspunsul Ultima modificare la documentul sau pagina solicitată nu este configurat (sau configurat incorect) pe site (server), robotul de căutare nu are de ales decât să indexeze toate paginile de pe Internet resursă din nou și din nou la fiecare vizită, creând astfel o anumită încărcare pe serverul situat pe site-ul de găzduire. Ce se întâmplă dacă numărul de pagini este de sute sau chiar de mii? În funcție de caracteristicile și capacitățile serverului, există posibilitatea de a întâlni un fel de eroare pe partea de găzduire. În plus, trebuie remarcat faptul că robotul de căutare are o limită a numărului de pagini indexate „la un moment dat”, deci dacă nu există setări corecte Antet Last-Modified, riscăm ca paginile nemodificate să fie indexate de robot, dar paginile noi de care avem nevoie nu.

Pe baza specificației RFC 2616 care descrie protocolul HTML Hypertext Transfer Protocol, un client poate „întreba” serverul dacă o pagină s-a schimbat de la o anumită dată, trimițând serverului un antet „If-Modified-Since”. Dacă pagina solicitată nu s-a schimbat, serverul va returna un antet „304 Not Modified” și browserul nu va încărca pagina și serverul web nu va trimite multe date. În caz contrar (dacă pagina site-ului s-a schimbat de la solicitarea anterioară), serverul va returna un răspuns „200 OK” și direct codul paginii în sine.

Pe lângă cele de mai sus, menționăm recomandările Yandex: „Robotul nu va putea obține informații despre dacă pagina site-ului a fost actualizată de la ultima indexare. Și, deoarece numărul de pagini pe care robotul le primește de pe site într-o singură vizită este limitat, paginile modificate vor fi reindexate mai rar.”

TOTAL: Scopul important al antetului „Ultima modificare” este de a informa vizitatorul site-ului și robot de căutare data ultimei modificări a oricărui document.

De ce trebuie să configurați corect Last-Modified?

Prin configurarea corectă a răspunsului serverului Last-Modified, putem obține mai multe rezultate pozitive pentru site-ul nostru:

  • Viteza de încărcare a paginii site-ului crește pentru oameni: dacă pagina a fost deja vizitată de utilizator și la momentul următoarei vizite pagina nu s-a schimbat, browserul vizitatorului nu va reîncărca pagina, ci va afișa copia ei în cache;
  • Încărcarea pe platforma de găzduire (server) este redusă: cu acest algoritm de operare, serverul va fi încărcat mult mai puțin datorită necesității de a transfera doar volumul paginilor modificate către vizitatorul site-ului;
  • Este afișată data ultimului document din rezultatele căutării: acest fapt poate atrage vizitatori pe site-ul dvs. dacă este afișată o dată „proaspătă”;
  • Sortati dupa data: paginile site-ului vor participa la sortarea după dată în rezultatele căutării;
  • Indexarea site-ului de către roboții de căutare este accelerată semnificativ: Datorită răspunsului rapid al site-ului dvs. cu privire la data paginilor accesate cu crawlere, paginile vechi (deja indexate) vor fi „aruncate deoparte”, dând loc documentelor „proaspete”. Acest punct este cel mai important atunci când promovezi un site, deoarece... viteza mare de indexare crește nivelul de încredere în site în rândul roboților de căutare.

Cum se verifică dacă Last-Modified este configurat corect?

Unul dintre serviciile în care puteți verifica corectitudinea (și într-adevăr existența) răspunsului configurat al serverului Last-Modified este eponimul last-modified.com

În câmpul de introducere trebuie să scrieți adresa site-ului dvs. sau a unei anumite pagini și faceți clic pe butonul „Verifică”. Rezultatul serviciului va fi o demonstrație a răspunsului site-ului dvs. la o solicitare pentru anteturile „Ultima modificare” și „304 nemodificat”. Un exemplu de astfel de verificare:

Configurarea Ultima modificare

Să ne uităm la implementarea răspunsului de antet HTTP Last-Modified în PHP.

Pe Internet puteți găsi adesea următoarele recomandări pentru configurarea Last-Modified:

Vreau doar să exclam: „Nu avem nevoie de acest tip de hochei!” Și să ne dăm seama de ce. Ca răspuns la o solicitare a utilizatorului, funcția gmdate ne-o va returna data curenta Greenwich Mean Time (GMT). Și acest lucru se va întâmpla de fiecare dată cu fiecare solicitare din partea unui utilizator sau a unui robot de căutare - serverul își va întoarce exact data curenta. Se pare că de fiecare dată când motoarele de căutare vă vizitează site-ul, vor vedea că pagina solicitată tocmai a fost actualizată. Acest lucru poate fi „util” doar de câteva ori... După un timp, motorul de căutare își va da seama că este „păcălit” și își va pierde orice încredere în site-ul tău. Prin urmare, o astfel de implementare nu ne convine.

Să apelăm la resursa de mai sus pentru ajutor. last-modified.com. Prezintă, de asemenea, o implementare a antetului HTTP Last-Modified în PHP. Arata cam asa:

$LastModified_unix = 1294844676;

$IfModifiedSince = fals;



if ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) (
Ieșire;
}

Să vedem cum funcționează acest cod. Variabil $LastModified_unix setați manual în format Marca temporală Unix(numărul de secunde care au trecut de la începutul erei Unix - de la 1 ianuarie 1970).

Funcţie gmdate returnează ora GMT curentă în format Ziua, ZZ Luni AN HH:MM:SS GMT.

În continuare: obțineți ora la care pagina a fost modificată ultima dată, verificați disponibilitatea Dacă-Modificat-De vreme ce, dacă există unul, îl dăm 304 Nemodificatși opriți scenariul. În caz contrar, generăm un antet Modificat ultima datăși predați întreaga pagină.

În opțiunea de mai sus se propune setarea orei $LastModified_unix manual. Dar dacă sunt multe pagini pe site? Pentru a face acest lucru, să „modernizăm” puțin scriptul, înlocuind doar prima linie din el:

$LastModified_unix = strtotime(data("D, d M Y H:i:s", filectime($_SERVER["SCRIPT_FILENAME"])));
$LastModified = gmdate("D, d M Y H:i:s \G\M\T", $LastModified_unix);
$IfModifiedSince = fals;

if (isset($_ENV["HTTP_IF_MODIFIED_SINCE")))
$IfModifiedSince = strtotime(substr($_ENV["HTTP_IF_MODIFIED_SINCE"], 5));

if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE")))
$IfModifiedSince = strtotime(substr($_SERVER["HTTP_IF_MODIFIED_SINCE"], 5));

if ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) (
antet($_SERVER["SERVER_PROTOCOL"] . " 304 Nemodificat");
Ieșire;
}

header("Ultima modificare: ". $Ultima modificare);

În versiunea actualizată, prima linie de cod convertește reprezentarea text a datei în Limba engleză la o etichetă în format Marca temporală Unix, folosind astfel timpul de schimbare calculat automat al paginii curente a site-ului.

Totul este gata! Acum tot ce trebuie să facem este să lipim codul rezultat în secțiune ... fiecare pagină a site-ului și bucurați-vă de încărcarea și indexarea paginilor de mare viteză de către roboții de căutare.

Lăsați-ne să vă ajutăm cu configurarea Last-Modified!

Începeți cu un apel simplu la T-Design! Numărul nostru de telefon este 8 499 340-17-82 - functioneaza in mod non-stop, astfel incat sa puteti primi rapid informatiile care va intereseaza in rezolvarea problemelor de dezvoltare si sustinere a site-ului dumneavoastra. Sau scrie la e-mail. Vă vom sfătui la toate întrebările și vom selecta tariful optim pentru compania ta.

Sintaxă

În cazul în care a fost modificat: , ::GMT

Directive

Unul dintre „Luni”, „Marți”, „Miercuri”, „Joi”, „Vineri”, „Sâmbătă” sau „Doarece” (sensibil la majuscule și minuscule). Numărul zilei din 2 cifre, de ex. „04” sau „23”. Una dintre „Ian”, „Feb”, „Mar”, „Apr”, „Mai”, „Iun”, „Iul”, „Aug”, „Sep”, „Oct”, „Nov”, „Dec” ( caz sensibil). Numărul anului din 4 cifre, de ex. „1990” sau „2016”. Număr de oră din 2 cifre, de ex. „09” sau „23”. Număr minut din 2 cifre, de ex. „04” sau „59”. Al doilea număr din 2 cifre, de ex. „04” sau „59”. GMT

Greenwich Mean Time. Datele HTTP sunt întotdeauna exprimate în GMT, niciodată în ora locală.

Exemple

Dacă a fost modificat de la: miercuri, 21 octombrie 2015 07:28:00 GMT

Specificații

Specificație Titlu
RFC 7232, secțiunea 3.3: Dacă-Modificat-Deoarece Protocol de transfer hipertext (HTTP/1.1): Cereri condiționate

Compatibilitate browser

Tabelul de compatibilitate din această pagină este generat din date structurate. Dacă doriți să contribuiți la date, vă rugăm să consultați https://github.com/mdn/browser-compat-data și să ne trimiteți o cerere de extragere.

Actualizați datele de compatibilitate pe GitHub

DesktopMobil
CromMargineFirefoxInternet ExplorerOperăSafariVizualizare web AndroidChrome pentru AndroidFirefox pentru AndroidOpera pentru AndroidSafari pe iOSSamsung Internet
Dacă-Modificat-De vreme ceChrome Suport complet DaEdge Suport complet 12Firefox Suport complet DaIE Suport complet DaOpera Suport complet DaSafari Suport complet DaWebView Android Suport complet DaChrome Android Suport complet DaFirefox Android Suport complet DaOpera Android Suport complet DaSafari iOS Suport complet DaSamsung Internet Android Suport complet Da

Anteturile ultima modificate și dacă sunt modificate pentru WordPress

Puțini oameni acordă atenție antetelor HTTP Modificat ultima datăȘi Dacă-Modificat-De vreme ce la optimizarea site-ului, dar degeaba! Este important ca pagina, al cărei conținut nu s-a schimbat de la ultima vizită a robotului de căutare, să returneze un cod 304, care indică de fapt că această pagină anume nu a fost completată cu nimic - nu ați editat sau completat textul , nu au fost adăugate comentarii la această postare etc. P.

Dacă acest antet http lipsește, atunci în Yandex, atunci când sortați rezultatele după dată, site-ul nu va fi vizibil pentru majoritatea utilizatorilor.

De aceea este important nu numai să o configurați corect, ci și să actualizați data la cea actuală de fiecare dată când editați o înregistrare. Acest lucru va trebui făcut manual.

Cu comentarii este mai simplu: când un vizitator adaugă un comentariu, atunci în variabilă $last_modified_time ora a fost adăugată comentariul este introdusă automat - aceasta va fi data la care pagina a fost modificată ultima dată.

De ce avem nevoie de anteturile Last-Modified și If-Modified-Since?

1. Când serverul trimite un astfel de cod, execuția tuturor scripturilor PHP de pe pagină nici măcar nu începe. Pagina este încărcată din memoria cache de căutare, iar acest lucru, după cum înțelegeți, reduce foarte semnificativ încărcarea de pe server, spre bucuria hosterului dvs., și accelerează încărcarea paginii pentru vizitator, ceea ce este și o veste bună.

Cum se întâmplă asta?

Când accesează cu crawlere pe internet, păianjenii Google și Yandex salvează o copie a fiecărui site în baza lor de date. Această copie servește ca un fel de probă pentru comparație: este totul la fel sau s-au produs modificări. Și dacă anteturile Last-Modified și If-Modified-Since nu sunt configurate sau sunt configurate incorect, paginile noi de pe site sunt indexate, iar pagina principală din memoria cache a motorului de căutare nu este actualizată mult timp, la fel ca și comentariul feedul nu este actualizat.

Dar pentru paginile actualizate frecvent (fluxuri de știri actualizate de mai multe ori pe zi, bloguri comentate activ etc.) are un dezavantaj: informațiile din cache devin depășite prea repede și o persoană, chiar și reîncărcând pagina, nu vede cele mai recente știri. , nu vede comentarii noi. Dar asta nu e chiar atât de rău. Problema este că nici robotul nu vede asta, decât dacă este pornit titlu corect Modificat ultima dată.

antet("Ultima modificare: ".gmdate("D, d M Y H:i:s ")."GMT");

Dacă site-ul dvs. este actualizat frecvent (de exemplu, postările dvs. sunt adesea comentate), puteți dezactiva stocarea în cache cu următorul set de anteturi:

antet("Expiră: ".gmdate("D, d M Y H:i:s", time() + 7200)." GMT");

Aceasta înseamnă că validitatea copiei stocate trebuie verificată de două ori cu fiecare cerere.

Cum funcționează memorarea în cache în browsere?

Dacă nu este dezactivată prin apelarea funcției no_cache, atunci în Firefox și IE pagina este stocată în cache, iar pentru toate solicitările ulterioare, această pagină este returnată.

Pentru a reîmprospăta pagina și a obține cea mai recentă versiune, trebuie să apăsați combinația de taste Ctrl+F5, butonul obișnuit „Actualizare” (F5) nu funcționează. Și trebuie să spun că documentele din cache-ul IE pot fi stocate foarte, foarte mult timp.

În Opera, pagina de cache este șters apăsând butonul „Reîmprospătare” sau tasta F5. Combinația CRTL+F5 în Opera - reîncarcă toate filele deschise. După cum ai înțeles, dacă le deschizi mult, s-ar putea să-ți crească barba în timp ce aștepți.

Dacă dezactivați memoria cache a paginii cu funcția no_cache, atunci Opera și Firefox, atunci când accesați o astfel de pagină, utilizați mecanismul cu antetul If-Modified-Since. Astfel, are loc memorarea în cache, dar browserul întreabă serverul dacă pagina s-a schimbat sau nu - acesta este modul corect de a pune întrebarea.

Prin urmare, trebuie să activați și procesarea acestui parametru. Nu voi descrie ce înseamnă această funcție, voi da doar cod care trimite antete corect și nu provoacă conflicte pe majoritatea site-urilor de găzduire cu care am lucrat. Acest design funcționează sweb.ru, eomy.net, timeweb.ru, fastvps.ru, startlogic.com

antet("Expiră: ".gmdate("D, d M Y H:i:s", time() + 7200)." GMT");
header("Control-cache: fără cache, trebuie revalidat");
$mt = filemtime($file_name);
$mt_str = gmdate("D, d M Y H:i:s ")."GMT";
if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE")) &&
strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) >= $mt)
(header ("HTTP/1.1 304 nemodificat");
a muri;
}
header("Ultima modificare: ".$mt_str);
echo $text;
antet ("Vary: Accept-Encoding");
header("Accept-Encoding:gzip,deflate,sdch");
?>

Deci tot ce trebuie să faceți este să copiați acest cod și să-l adăugați în fișier header.php Tema ta DE MAI SUS . Acestea. acest cod se află în partea de sus a fișierului ÎNAINTE de restul codului


Atenţie!Înainte de a adăuga ceva, salvați acest fișier pe computer, astfel încât să puteți restaura versiunea originală dacă a dvs. nu permite o astfel de configurare a antetului.

Verificăm rezultatul utilizând serviciul de verificare a antetului Last-Modified și If-Modified-Since http://last-modified.com/ru/if-modified-since.html


  • Dacă rezultatul este pozitiv, ne ștergem transpirația de pe frunte și mergem să bem ceai.
  • Dacă rezultatul este negativ, aceeași construcție poate fi adăugată la fișier index.phpîn rădăcina WordPress-ului dvs. (am întâlnit asta pe găzduirea timeweb.ru). La fel, mai presus de orice altceva în ea. Doar nu uitați de acest lucru când actualizați - fișierul index va fi suprascris în forma sa standard.

Voila! Prin setarea corectă a antetelor Last-Modified și If-Modified-Since, am primit o grămadă de bonusuri:

  • Am crescut viteza de încărcare a paginii, ceea ce este important pentru robotul Google și plăcut pentru oameni.
  • Am redus încărcătura pe server, ceea ce a mulțumit hosterului.
  • Data va fi afișată în rezultatele căutării Yandex Ultima actualizare pagini, care în unele cazuri este foarte important pentru oameni și, prin urmare, indirect, acest lucru va avea un efect pozitiv asupra factorilor comportamentali.
  • Paginile site-ului nostru vor fi implicate în sortarea motoarelor de căutare după dată - da, da, asta folosesc utilizatorii avansați.
  • Și, ca o consecință a tuturor celor de mai sus, indexarea site-ului nostru de către motoarele de căutare se va accelera foarte mult.



Top