Оваа страница последен пат е изменета на 1576 година. Блог кој има многу интересни информации…. Забрзајте го индексирањето од пребарувачите

Заглавие на HTTP Последно изменето (последни промени)префрла време на клиентот последна променадокумент (веб-страница). Клиентот (прелистувач или робот за пребарување) го испраќа заглавието " Ако-Модифициран-Од"и ако датумот на последната измена на страницата се совпаѓа, серверот го враќа заглавието" 304 Не е изменето" и не ја вчитува страницата. Ако последното изменето време е различно (или последното изменето заглавие не е конфигурирано) - серверот го враќа заглавието " 200 ОК" и ја вчитува страницата. Односно, наместо повторно да се вчита страницата и да се ажурира кешот, клиентот добива само заглавие 304. Клиентот заштедува сообраќај, а серверот испраќа помалку податоци - меѓусебни заштеди.

Но, зошто би го имал овој напис ако не зборуваме за придобивките што ги носи поставувањето на заглавието Последно изменето за, или поточно, за забрзување на индексирањето на страницата. Не е тешко да се погоди дека 10 страници на страницата ќе бидат индексирани побрзо од 1000. Истиот принцип што ви овозможува да го оптимизирате вчитувањето на страниците, работи и за индексирање. Пребарувачот не треба да индексира 1.000 страници за да пронајде 10 нови страници. Благодарение на последното изменето, оставаме само нови страници (или ажурирани) за роботот. Роботот доаѓа на страницата и прво го зема она што му треба, а потоа се останато.

Поставување на заглавието Последно изменето

Проверете дали вашите http заглавија се точни. Особено, она што е важно е содржината на одговорот што серверот го дава на барањето „if-modified- since“. Заглавието Последно изменето мора да го означи точниот датум кога документот е последен пат изменет. Дури и ако серверот не го прикаже последниот изменет датум на документот, вашата страница ќе биде индексирана. Меѓутоа, во овој случај, треба да го земете предвид следново: - резултатите од пребарувањето нема да го покажат датумот до страниците на вашата страница; - при сортирање по датум, страницата нема да биде видлива за повеќето корисници; - роботот нема да може да добие информации за тоа дали страницата на страницата е ажурирана од последното индексирање. И бидејќи бројот на страници што роботот ги добива од страницата во една посета е ограничен, променетите страници ќе се реиндексираат поретко. Проверете дали вашиот веб-сервер го поддржува заглавието на HTTP „If-Modified-Since“. Ова заглавие ќе му овозможи на веб-серверот да му каже на Google дали содржината на страницата се сменила од последниот пат кога била индексирана. Поддршката на оваа функција го намалува користењето на горните трошоци и пропусниот опсег.

Еве примери за тоа како да се конфигурира последното изменето заглавие да се испрати и If-Modified-Since да се ракува правилно.

Како да поставите мета Последно изменето за статични HTML страници

Како да поставите Last-Modified во php

= $LastModified_unix) ( заглавие ($_SERVER["SERVER_PROTOCOL"] . " 304 Не е изменето"); излез; ) header ("Последно изменето: ". $LastModified); ?>

Како да го конфигурирате Last-Modified .htaccess

RewriteRule .* - RewriteRule .* -

Како да го конфигурирате Последно изменето nginx + php

локација ~ .php$ ( ... if_modified_since off; fastcgi_pass fcgi; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /<путь >/web$fastcgi_script_name; ... fastcgi_pass_header Последно изменето; вклучуваат fastcgi_params; )

Проверете го Последно изменето

Кога се конфигурира заглавјето на клиентот, тоа не боли проверка последен пат е изменетаза исправност. Можете да го проверите Last-Modified на своја или на веб-локација на трета страна преку онлајн услуги.

Или направете своја сопствена проверка за правилна обработка на заглавието Последно изменето:

Поставување на заглавието Последно изменетои обработката на заглавието If-Modified-Since ќе биде исклучително корисна за која било поголема или помала локација. Брзината на обработка на веб-страниците може да стане значајна. Релативно едноставното поставување нема да создаде проблеми, особено затоа што за популарните CMS како joomla, wordpress, modx итн. има готови решенија.

Постојат многу различни митови кои лебдат наоколу во областа на оптимизација на веб-страниците за пребарување (SEO). Некои од нив имаат основа, некои од нив дошле од никаде. Во оваа белешка ќе погледнеме еден од нив - користејќи го заглавието на последен изменет одговор.

Пред извесно време добивме документ со наслов „Ингајт препораки за веб студиа на промовирани сајтови“. А една од „препораките“ беше следнава:

По редизајнот или на нова локација која се развива, мора да се наведе датумот на последната модификација на страниците на страницата (Последно изменето).

За да додадете на страницата на PHP информациидатумот на последната измена на страниците е неопходен на самиот почеток изворен кодвметнете скрипта на секоја страница


header("Last-Modified: " . date("D, d M Y H:i:s", time()) . "GMT");
?>

Токму оваа дива глупост, оваа крајна глупост и искрено луд код ме поттикна да ја напишам оваа белешка. Овде ќе се обидам да објаснам што е Last-Modified, зошто е потребно и како прелистувачите и пребарувачите го користат.

Што е последно изменето

Кога се пренесуваат информации до клиентот (прелистувачи или робот за пребарување), веб-серверот известува доста дополнителни податоци. Тие можат да се видат во конзолата на прелистувачот, на пример:

конфигурирајте го серверот да издава точни заглавија на одговор (на пример, ако страницата не постои, издадете грешка 404 и ако е примено барање If-Modified-Since, тогаш издадете код 304 ако страницата не е променета од датум наведен во барањето).

Можете исто така да видите дека ако серверот не одговори на кој било начин на условно барање GET, тогаш тоа не се разликува од обичното барање. Односно, заглавјето Last-Modified со тековното време, кое исто така е погрешно формирано (здраво Integgate!) воопшто не е потребно!

Значи, дали е потребно Last-Modified или не?

Општо потребно. Но, важно е да се разбере дека не е самото заглавие што игра каква било улога, туку целото сценарио за условно барање, кое мора целосно да го имплементира страницата. Во овој случај ќе добиеме голема брзина на индексирање на страницата.

Но, често е многу тешко да се имплементира ова во готов CMS. Ова може да бара доста значајни промени во кодот на самиот CMS.

Иако за голем број CMS ова може да се постигне со овозможување на кеширање на страници. Ако CMS кешира страници, создавајќи и опслужувајќи суштински статични датотеки, тогаш самиот веб-сервер правилно ќе одговори на условните барања. На пример, во WordPress ова може да се постигне со помош на приклучокот WP Super Cache:

Ајде да го провериме на дело. Го овозможив овој приклучок, го отворив прелистувачот во анонимен режим и направив две барања за истата страница. Јасно се гледа дека вториот одговор е точен - 304 Не е изменето:

Наместо заклучок

Така, се занимававме со последното изменето заглавие. Прво, тој мора да пренесе информации за датумот и времето кога документот всушност бил изменет. Второ, одговорот на серверот на условно барање со заглавието If-Modified-Since е исклучително важен.

Па, помалку слушајте ги оптимизацијата кои не ги знаат основите за тоа како функционира Интернетот.

Една од фазите на оптимизирање на веб-локација за нејзино правилно функционирање и успешна промоција е оптимизација од страна на серверот. Други точки вклучуваат поставување на точниот одговор на серверот на барањето „Последно изменето“. Правилно поставување на овој параметар може да ја зголеми брзината на вчитување на страницата и да има позитивен ефект врз неговото индексирање од роботите за пребарување.

Што е Last-Modified и зошто е потребно?

Како што сугерира името, заглавието Последно изменето му кажува на клиентот (посетителот на страницата) за последниот пат кога одредена страница на страницата била изменета. Ако роботот за пребарување делува како посетител на страницата и последниот изменет одговор на бараниот документ или страница не е конфигуриран (или конфигуриран погрешно) на страницата (сервер), роботот за пребарување нема друг избор освен да ги индексира сите страници на Интернет. ресурс повторно и повторно при секоја посета, со што се создава одредено оптоварување на серверот лоциран на страницата за хостирање. Што ако бројот на страници е стотици или дури илјадници? Во зависност од карактеристиките и можностите на серверот, постои можност да наиде на некаков вид на грешка на страната на хостинг. Дополнително на ова, треба да се забележи дека роботот за пребарување има ограничување на бројот на страници индексирани „во исто време“, па ако нема точни поставкиПоследно изменето заглавие, ризикуваме непроменетите страници да бидат индексирани од роботот, но новите страници што ни требаат нема.

Врз основа на спецификацијата RFC 2616 што го опишува HTML протоколот за пренос на хипертекст, клиентот може да го „праша“ серверот дали страницата се сменила од одреден датум со испраќање на серверот заглавие „If-Modified-Since“. Ако бараната страница не е променета, серверот ќе врати заглавие „304 Not Modified“ и прелистувачот нема да ја вчита страницата и веб-серверот нема да испраќа многу податоци. Во спротивно (ако страницата на страницата е променета од претходното барање), серверот ќе врати одговор „200 OK“ и директно кодот на самата страница.

Покрај горенаведеното, ги споменуваме препораките на Yandex: „Роботот нема да може да добие информации за тоа дали страницата на страницата е ажурирана од последното индексирање. И бидејќи бројот на страници што роботот ги добива од страницата во една посета е ограничен, променетите страници ќе се реиндексираат поретко“.

ВКУПНО:Важната цел на заглавието „Последно изменето“ е да го информира посетителот на страницата и робот за пребарувањедатумот на последната измена на кој било документ.

Зошто треба правилно да го конфигурирате Last-Modified?

Со правилно конфигурирање на последниот изменет одговор на серверот, можеме да постигнеме неколку позитивни резултатиза нашата страница:

  • Брзината на вчитување на страницата на страницата се зголемува за луѓето:ако страницата веќе била посетена од корисникот и во моментот на следната посета страницата не е променета, прелистувачот на посетителот нема повторно да ја вчита страницата, туку ќе ја прикаже нејзината кеширана копија;
  • Оптоварувањето на платформата за хостирање (сервер) е намалено:со овој оперативен алгоритам, серверот ќе се вчита многу помалку поради потребата да се пренесе само обемот на променетите страници на посетителот на страницата;
  • Се прикажува датумот на последниот документ во резултатите од пребарувањето:овој факт може да привлече посетители на вашата страница ако се прикаже „свеж“ датум;
  • Подреди по датум:страниците на сајтот ќе учествуваат во сортирањето по датум во резултатите од пребарувањето;
  • Индексирањето на страницата од роботите за пребарување е значително забрзано:Поради брзиот одговор на вашата страница за датумот на индексирани страници, старите (веќе индексирани) страници ќе бидат „фрлени настрана“, давајќи им место на „свежи“ документи. Оваа точка е најзначајна при промоција на сајт, бидејќи ... високата брзина на индексирање го зголемува нивото на доверба во страницата меѓу роботите за пребарување.

Како да проверите дали Last-Modified е правилно конфигуриран?

Една од услугите каде што можете да ја проверите исправноста (и навистина постоењето) на конфигурираниот одговор на серверот Last-Modified е истоимениот last-modified.com

Во полето за внесување треба да ја напишете адресата на вашата веб-страница или одредена страница и кликнете на копчето „Провери“. Резултатот од услугата ќе биде демонстрација на одговорот на вашата страница на барање за насловите „Последно изменето“ и „304 не е изменето“. Пример за таква проверка:

Поставување Последно изменето

Ајде да ја погледнеме имплементацијата на одговорот на заглавието на HTTP последен пат изменет во PHP.

На Интернет често можете да ги најдете следниве препораки за поставување на Последно изменето:

Само сакам да извикам: „Не ни треба ваков вид хокеј! И да разбереме зошто. Како одговор на барање на корисникот, функцијата gmdateќе ни го врати тековен датумСредно време на Гринич (GMT). И ова ќе се случува секој пат со секое барање од корисник или робот за пребарување - серверот ќе го врати токму својот тековен датум. Излегува дека секој пат кога пребарувачите ќе ја посетат вашата страница, ќе видат дека бараната страница штотуку е ажурирана. Ова може да биде „корисно“ само неколку пати... По некое време, пребарувачот ќе сфати дека се „залажува“ и ќе ја изгуби довербата во вашата страница. Според тоа, таквата имплементација не ни одговара.

Ајде да се свртиме кон горенаведениот ресурс за помош. last-modified.com. Исто така, претставува имплементација на последното изменето HTTP заглавие во PHP. Изгледа вака:

$LastModified_unix = 1294844676;

$IfModifiedSince = неточно;



ако ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) (
излез;
}

Ајде да погледнеме како функционира овој код. Променлива $LastModified_unixпоставете рачно во формат Временски печат на Unix(бројот на секунди што поминале од почетокот на ерата на Unix - од 1 јануари 1970 година).

Функција gmdateго враќа тековното време GMT ​​во формат Ден, ДД Пон ГОДИНА HH:MM:SS GMT.

Следно: добијте го времето кога страницата е последен пат изменета, проверете дали е достапно Ако-Модифициран-Од, ако има, го подаруваме 304 Не е изменетои прекинете го сценариото. Во спротивно, генерираме заглавие Последно изменетои предадете ја целата страница.

Во горната опција се предлага да се постави времето $LastModified_unixрачно. Но, што ако има многу страници на страницата? За да го направите ова, ајде малку да го „модернизираме“ сценариото, заменувајќи ја само првата линија во неа:

$LastModified_unix = strtotime(датум("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 = неточно;

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));

ако ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) (
header($_SERVER["SERVER_PROTOCOL"] . " 304 Не е изменето");
излез;
}

header("Last-Modified: ". $LastModified);

Во ажурираната верзија, првата линија на код го конвертира текстуалното претставување на датумот во Англиски јазикна етикета во формат Временски печат на Unix, со што се користи автоматски пресметаното време на промена на тековната страница на страницата.

Сè е подготвено! Сега сè што треба да направиме е да го залепиме добиениот код во делот ... секоја страница на страницата и уживајте во вчитување и индексирање на страници со голема брзина од роботите за пребарување.

Дозволете ни да ви помогнеме со поставувањето на Last-Modified!

Започнете со едноставен повикво T-Design! Нашиот телефонски број е 8 499 340-17-82 - работи во режим нон-стоп, за да можете брзо да ги добивате информациите за кои сте заинтересирани да ги решите проблемите за развој и поддршка на вашата страница. Или пишете на е-пошта. Ние ќе советуваме за сите прашања и ќе ја избереме оптималната тарифаза вашата компанија.

Синтакса

If-Modified-Since: , ::GMT

Директиви

Еден од „Пон“, „Втор“, „Сре“, „Чет“, „Петок“, „Саб“ или „Сонце“ (чувствително на големи букви). Двоцифрен број на ден, на пр. „04“ или „23“. Еден од „јан“, „фев“, „мар“, „април“, „мај“, „јуни“, „јул“, „август“, „сеп“, „окт“, „ноем“, „дек“ ( чувствителна на големи букви). 4-цифрен годишен број, на пр. „1990“ или „2016“. 2 цифрен број на час, на пр. „09“ или „23“. 2 цифрен број на минути, на пр. „04“ или „59“. 2 цифрен втор број, на пр. „04“ или „59“. GMT

Време на Гринич. Датумите на HTTP секогаш се изразуваат во GMT, никогаш во локално време.

Примери

Ако-изменето-од: сре, 21 октомври 2015 07:28:00 GMT

Спецификации

Спецификација Наслов
RFC 7232, дел 3.3: If-Modified-Since Протокол за пренос на хипертекст (HTTP/1.1): Условни барања

Компатибилност со прелистувачот

Табелата за компатибилност на оваа страница е генерирана од структурирани податоци. Ако сакате да придонесете за податоците, проверете на https://github.com/mdn/browser-compat-data и испратете ни барање за повлекување.

Ажурирајте ги податоците за компатибилност на GitHub

ДесктопМобилен
ХромРаботFirefoxInternet ExplorerОпераСафариАндроид веб-прегледХром за АндроидFirefox за АндроидОпера за АндроидСафари на iOSСамсунг Интернет
Ако-Модифициран-ОдChrome Целосна поддршка ДаEdge Целосна поддршка 12Целосна поддршка на Firefox ДаIE Целосна поддршка ДаOpera Целосна поддршка ДаСафари Целосна поддршка ДаWebView Android Целосна поддршка ДаХром Андроид Целосна поддршка ДаFirefox Android Целосна поддршка ДаOpera Android Целосна поддршка ДаSafari iOS Целосна поддршка ДаСамсунг Интернет Андроид Целосна поддршка Да

Последно изменето и If-Modified-Since Headers за WordPress

Малкумина обрнуваат внимание на заглавијата на HTTP Последно изменетоИ Ако-Модифициран-Одпри оптимизирање на вашиот сајт, но залудно! Важно е страницата, чија содржина не е променета од последната посета на роботот за пребарување, да врати шифра 304, што всушност укажува дека оваа конкретна страница не е дополнета со ништо - не сте го уредиле или дополниле текстот , нема додадени коментари на оваа објава итн. П.

Ако ова http заглавие недостасува, тогаш во Yandex, при сортирање на резултатите по датум, страницата нема да биде видлива за повеќето корисници.

Затоа е важно не само правилно да го поставите, туку и да го ажурирате датумот на тековниот секој пат кога уредувате запис. Ова ќе треба да се направи рачно.

Со коментарите е поедноставно: кога посетителот додава коментар, тогаш во променливата $last_modified_timeвремето кога е додаден коментарот се внесува автоматски - ова ќе биде датумот кога страницата е последен пат изменета.

Зошто ни се потребни заглавијата Last-Modified и If-Modified-Since?

1. Кога серверот испраќа таков код, извршувањето на сите PHP скрипти на страницата дури и не започнува. Страницата се вчитува од кешот за пребарување, а тоа, како што разбирате, значително го намалува оптоварувањето на серверот, на задоволство на вашиот хостерот и го забрзува вчитувањето на страницата за посетителот, што е исто така добра вест.

Како се случува ова?

Кога ползат на Интернет, пајаците на Google и Yandex зачувуваат копија од секоја локација во нивната база на податоци. Оваа копија служи како еден вид примерок за споредба: дали сè уште е исто или се случиле промени. И ако заглавијата Last-Modified и If-Modified-Since не се конфигурирани или се конфигурирани погрешно, новите страници на страницата се индексираат, а главната страница во кешот на пребарувачот не се ажурира долго време, исто како и коментарот доводот не е ажуриран.

Но, за често ажурирани страници (доводи за вести се ажурираат многу пати на ден, активно коментирани блогови итн.) има еден недостаток: информациите во кешот стануваат премногу брзо застарени и лицето, дури и повторно ја вчитува страницата, не ги гледа најновите вести , не гледа нови коментари. Но, тоа не е толку лошо. Проблемот е што роботот не го гледа ниту ова, освен ако не е вклучен правилен насловПоследно изменето.

header ("Последно изменето: ".gmdate("D, d M Y H:i:s ")."GMT");

Ако вашата страница често се ажурира (на пример, вашите објави често се коментираат), можете да го оневозможите кеширањето со следниов сет на заглавија:

header ("Истекува: ".gmdate("D, d M Y H:i:s", time() + 7200)." GMT");

Ова значи дека валидноста на зачуваната копија мора да се проверува двапати со секое барање.

Како функционира кеширањето во прелистувачите?

Ако не е оневозможено со повикување на функцијата no_cache, тогаш во Firefox и IE страницата се зачувува во кешот, а за сите наредни барања се враќа оваа страница.

За да ја освежите страницата и да ја добиете најновата верзија, треба да ја притиснете комбинацијата на копчиња Ctrl+F5, вообичаеното копче „Ажурирај“ (F5) не работи. И морам да кажам, документите во кешот на IE може да се чуваат многу, многу долго време.

Во Opera, страницата за кеш се брише со притискање на копчето „Освежи“ или копчето F5. Комбинацијата CRTL+F5 во Opera - повторно ги вчитува сите отворени јазичиња.Како што разбирате, ако ги отворате многу, може да пуштите брада додека чекате.

Ако го оневозможите кеширањето на страницата со функцијата no_cache, тогаш Opera и Firefox, кога пристапувате до таква страница, користете го механизмот со заглавието If-Modified-Since. Така, се случува кеширање, но прелистувачот го прашува серверот дали страницата навистина се променила или не - ова е правилниот начин да се постави прашањето.

Затоа, треба да овозможите обработка и на овој параметар. Нема да опишам што значи оваа функција, само ќе дадам код кој правилно испраќа заглавија и не предизвикува конфликти на повеќето хостинг сајтови со кои сум работел. Овој дизајн работи sweb.ru, eomy.net, timeweb.ru, fastvps.ru, startlogic.com

header ("Истекува: ".gmdate("D, d M Y H:i:s", time() + 7200)." GMT");
header ("Cache-Control: no-cache, must-revalidate");
$mt = време на датотека ($име на датотека);
$mt_str = gmdate("D, d M Y H:i:s ")."GMT";
ако (исет ($_SERVER["HTTP_IF_MODIFIED_SINCE"]) &&
strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) >= $mt)
(заглавие („HTTP/1.1 304 не е изменето“);
умре;
}
header("Last-Modified: ".$mt_str);
ехо $текст;
header ("Вари: Прифати-енкодирање");
header ("Прифати-кодирање:gzip,deflate,sdch");
?>

Значи, сè што треба да направите е да го копирате овој код и да го додадете во датотеката заглавие.phpВашата тема ГОРЕ . Оние. овој код е на самиот врв на датотеката ПРЕД остатокот од кодот


Внимание!Пред да додадете било што, зачувајте ја оваа датотека на вашиот компјутер за да можете да ја вратите оригиналната верзија доколку вашата не дозволува таква конфигурација на заглавието.

Го проверуваме резултатот користејќи ги услугите за проверка на заглавието Last-Modified и If-Modified-Since http://last-modified.com/ru/if-modified-since.html


  • Ако резултатот е позитивен, ја бришеме потта од челото и одиме да пиеме чај.
  • Ако резултатот е негативен, истата конструкција може да се додаде во датотеката индекс.phpво коренот на вашиот WordPress (ова го сретнав на хостинг timeweb.ru). Исто така, над сè друго во него. Само не заборавајте за ова кога ќе ажурирате - датотеката со индекс ќе биде препишана во својата стандардна форма.

Voila! Со правилно поставување на заглавијата Last-Modified и If-Modified-Since, добивме еден куп бонуси:

  • Ја зголемивме брзината на вчитување на страницата, што е важно за роботот Google и пријатно за луѓето.
  • Го намаливме оптоварувањето на серверот, што го задоволи хостерот.
  • Датумот ќе биде прикажан во резултатите од пребарувањето на Yandex последно ажурирањестраници, што во некои случаи е многу важно за луѓето, и затоа индиректно ова ќе има позитивен ефект врз факторите на однесувањето.
  • Страниците на нашата страница ќе бидат вклучени во сортирање на пребарувачите по датум - да, да, тоа го користат напредните корисници.
  • И, како последица на сето горенаведено, индексирањето на нашата страница од пребарувачите значително ќе се забрза.



Врв