Bu səhifə sonuncu dəfə 1576-cı ildə dəyişdirilib. Çox maraqlı məlumatlar olan bloq.... Axtarış motorları tərəfindən indeksləşdirməni sürətləndirin

HTTP başlığı Son Modifikasiya (son dəyişikliklər) vaxtı müştəriyə köçürür son dəyişiklik sənəd (veb-səhifə). Müştəri (brauzer və ya axtarış robotu) başlığı göndərir " Əgər-Dəyişdirilib-Bundan sonra"və səhifənin sonuncu dəfə dəyişdirildiyi tarix uyğun gəlirsə, server başlığı qaytarır" 304 Dəyişdirilməmişdir" və səhifəni yükləmir. Son dəyişdirilmiş vaxt fərqlidirsə (və ya sonuncu dəyişdirilmiş başlıq konfiqurasiya edilməyibsə) - server başlığı qaytarır " 200 OK" və səhifəni yükləyir. Yəni, səhifəni yenidən yükləmək və keşi yeniləmək əvəzinə müştəri yalnız qəbul edir başlıq 304. Müştəri trafikə qənaət edir, server isə daha az məlumat göndərir - qarşılıqlı qənaət.

Bəs Son Dəyişdirilmiş başlığın təyin edilməsinin, daha doğrusu, saytın indeksləşdirilməsini sürətləndirmək üçün gətirdiyi faydalar haqqında danışmasaq, niyə bu məqalə ola bilər. Saytın 10 səhifəsinin 1000-dən daha tez indekslənəcəyini təxmin etmək çətin deyil. Səhifənin yüklənməsini optimallaşdırmağa imkan verən eyni prinsip indeksləşdirmə üçün də işləyir. Axtarış motorunun 10 yeni səhifə tapmaq üçün 1000 səhifəni indeksləşdirməsinə ehtiyac yoxdur. Sonuncu dəyişdirmə sayəsində biz robot üçün yalnız yeni (və ya yenilənmiş səhifələr) buraxırıq. Robot sayta gəlir və əvvəlcə ona lazım olanı, sonra isə hər şeyi götürür.

Son Dəyişiklik Başlığının qurulması

http başlıqlarınızın düzgün olduğundan əmin olun. Xüsusilə vacib olan, serverin “əgər dəyişdirilmişdirsə” sorğusuna verdiyi cavabın məzmunudur. Son Dəyişiklik Başlığı sənədin sonuncu dəfə dəyişdirildiyi düzgün tarixi göstərməlidir. Server sənədin son dəyişdirilmiş tarixini göstərməsə belə, saytınız indeksləşdiriləcək. Lakin bu halda siz aşağıdakıları nəzərə almalısınız: - axtarış nəticələri saytınızın səhifələrinin yanında tarixi göstərməyəcək; - tarixə görə çeşidləndikdə sayt əksər istifadəçilər üçün görünməyəcək; - robot sayt səhifəsinin son indeksləşdirmədən sonra yenilənib-yenilmədiyi barədə məlumat əldə edə bilməyəcək. Robotun bir ziyarətdə saytdan aldığı səhifələrin sayı məhdud olduğundan, dəyişdirilən səhifələr daha az təkrar indeksləşdiriləcək. Veb serverinizin "İf-Modified-Since" HTTP başlığını dəstəklədiyinə əmin olun. Bu başlıq veb serverə Google-a saytın məzmununun sonuncu dəfə taranmasından sonra dəyişib-dəyişmədiyini bildirməyə imkan verəcək. Bu funksiyanın dəstəklənməsi yerüstü və bant genişliyi istifadəsini azaldır.

Burada göndəriləcək sonuncu dəyişdirilmiş başlığın və If-Modified-Since-in düzgün idarə olunması üçün necə konfiqurasiya olunacağına dair nümunələr verilmişdir.

Statik html səhifələri üçün Son Modifikasiya edilmiş metanı necə qurmaq olar

Php-də Son Modifikasiyanı necə qurmaq olar

= $LastModified_unix) ( başlıq($_SERVER["SERVER_PROTOCOL"] . " 304 Dəyişdirilmədi"); exit; ) başlıq("Son Modifikasiya: ". $Son Modifikasiya); ?>

Son Modifikasiya edilmiş .htaccess-i necə konfiqurasiya etmək olar

RewriteRule .* - RewriteRule .* -

Son Modifikasiya edilmiş nginx + php-ni necə konfiqurasiya etmək olar

yer ~ .php$ ( ... if_modified_sice off; fastcgi_pass fcgi; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /<путь >/web$fastcgi_script_name; ... fastcgi_pass_header Son Modifikasiya; fastcgi_params daxil edin; )

Son Dəyişiklikləri yoxlayın

Başlığın müştəriyə ötürülməsi konfiqurasiya edildikdə, zərər vermir sonuncu dəyişdirildiyini yoxlayın düzgünlük üçün. Son Modifikasiyanı özünüz və ya onlayn xidmətlər vasitəsilə üçüncü tərəfin veb saytında yoxlaya bilərsiniz.

Və ya Son Dəyişdirilmiş başlığın düzgün işlənməsi üçün öz çekinizi edin:

Son Dəyişiklik Başlığının qurulması və If-Modified-Since başlığının işlənməsi hər hansı daha böyük və ya kiçik sayt üçün son dərəcə faydalı olacaq. Veb səhifələrinin emal sürəti əhəmiyyətli ola bilər. Nisbətən sadə quraşdırma problem yaratmayacaq, xüsusən də joomla, wordpress, modx və s. kimi məşhur CMS-lər üçün. hazır həllər var.

Veb sayt axtarış motorunun optimallaşdırılması (SEO) sahəsində bir çox müxtəlif miflər var. Bəzilərinin əsası var, bəziləri heç yerdən gəlib. Bu qeyddə biz onlardan birinə baxacağıq - sonuncu dəyişdirilmiş cavab başlığından istifadə etməklə.

Bir müddət əvvəl biz “Təqdim olunan Saytlarda Veb Studiyaları üçün Tövsiyələri Daxil Et” adlı sənəd aldıq. Və “tövsiyələrdən” biri belə idi:

Yenidən dizayn edildikdən sonra və ya yeni saytda hazırlandıqdan sonra sayt səhifələrinin son modifikasiyası (Son Dəyişiklik) tarixi göstərilməlidir.

Sayta əlavə etmək üçün PHP məlumat səhifələrin son modifikasiya tarixi ən əvvəlində lazımdır mənbə kodu hər səhifəyə bir skript daxil edin


header("Son Modifikasiya: " .tarix("D, d M Y H:i:s", time()) . " GMT");
?>

Məni bu qeydi yazmağa sövq edən bu vəhşi cəfəngiyyat, bu tamamilə cəfəngiyat və açıq desək, çılğın kod idi. Burada Son Modifikasiyanın nə olduğunu, nə üçün lazım olduğunu və brauzerlər və axtarış motorlarının ondan necə istifadə etdiyini izah etməyə çalışacağam.

Son Dəyişiklik nədir

Müştəriyə məlumat ötürərkən (brauzerlər və ya axtarış robotu) veb server kifayət qədər əlavə məlumat verir. Onlara brauzer konsolunda baxmaq olar, məsələn:

serveri düzgün cavab başlıqları vermək üçün konfiqurasiya edin (məsələn, səhifə mövcud deyilsə, 404 xətası verin və Əgər-Modified-Since sorğusu alındıqda, səhifə açılan vaxtdan bəri dəyişdirilməyibsə, 304 kodunu verin. sorğuda göstərilən tarix).

Siz həmçinin görə bilərsiniz ki, əgər server şərti GET sorğusuna heç bir şəkildə cavab vermirsə, bu, adi sorğudan heç bir fərqi yoxdur. Yəni, səhv formalaşdırılmış cari vaxta malik Last-Modified başlığına (salam Integate!) ümumiyyətlə ehtiyac yoxdur!

Beləliklə, Son Modifikasiya lazımdır, ya yox?

Ümumiyyətlə lazımdır. Ancaq başa düşmək lazımdır ki, hər hansı bir rol oynayan başlığın özü deyil, sayt tərəfindən tam şəkildə həyata keçirilməli olan bütün şərti sorğu ssenarisidir. Məhz bu halda saytın indeksləşdirilməsinin yüksək sürətini əldə edəcəyik.

Ancaq bunu hazır CMS-də həyata keçirmək çox vaxt çox çətindir. Bu, CMS-in kodunda kifayət qədər əhəmiyyətli dəyişikliklər tələb edə bilər.

Baxmayaraq ki, bir sıra CMS üçün bu, səhifənin keşləşdirilməsini aktiv etməklə əldə edilə bilər. Əgər CMS əsas etibarilə statik fayllar yaradaraq və onlara xidmət göstərən səhifələri keşləyirsə, onda veb serverin özü şərti sorğulara düzgün cavab verəcəkdir. Məsələn, WordPress-də buna WP Super Cache plaginindən istifadə etməklə nail olmaq olar:

Gəlin bunu hərəkətdə yoxlayaq. Mən bu plagini aktivləşdirdim, brauzeri anonim rejimdə açdım və eyni səhifə üçün iki sorğu etdim. İkinci cavabın düzgün olduğu aydın görünür - 304 Dəyişdirilməmişdir:

Nəticə əvəzinə

Beləliklə, biz Son Modifikasiya başlığı ilə məşğul olduq. Birincisi, o, sənədin faktiki olaraq dəyişdirildiyi tarix və vaxt haqqında məlumat verməlidir. İkincisi, serverin şərti sorğuya If-Modified-Since başlığı ilə cavabı son dərəcə vacibdir.

Yaxşı, İnternetin necə işləməsinin əsaslarını bilməyən SEO-lara daha az qulaq asın.

Veb saytın düzgün işləməsi və uğurlu təşviqi üçün optimallaşdırılmasının mərhələlərindən biri server tərəfi optimallaşdırmasıdır. Digər məqamlara "Son Modifikasiya" sorğusuna düzgün server cavabının qurulması daxildir. Bu parametrin düzgün qurulması saytın yükləmə sürətini artıra və axtarış robotları tərəfindən indeksləşdirilməsinə müsbət təsir göstərə bilər.

Son Modifikasiya nədir və nə üçün lazımdır?

Adından göründüyü kimi, Son Dəyişiklik başlığı müştəriyə (saytın ziyarətçisinə) saytın müəyyən bir səhifəsinin sonuncu dəfə dəyişdirilməsi barədə məlumat verir. Axtarış robotu sayt ziyarətçisi kimi çıxış edirsə və sorğu edilən sənədə və ya səhifəyə Son Dəyişdirilmiş cavab saytda (serverdə) konfiqurasiya olunmayıbsa (və ya səhv konfiqurasiya edilibsə), axtarış robotunun İnternetin bütün səhifələrini indeksləşdirməkdən başqa çarəsi yoxdur. resurs təkrar-təkrar hər səfərdə, beləliklə hosting saytında yerləşən serverdə müəyyən bir yük yaradır. Səhifələrin sayı yüzlərlə, hətta minlərlə olarsa necə? Serverin xüsusiyyətlərindən və imkanlarından asılı olaraq, hostinq tərəfində bir növ səhvə yol vermə ehtimalı var. Bundan əlavə, qeyd etmək lazımdır ki, axtarış robotunda "bir anda" indeksləşdirilmiş səhifələrin sayına məhdudiyyət qoyulur, buna görə də əgər yoxdursa. düzgün parametrlər Son Dəyişiklik Başlığı, biz dəyişdirilməmiş səhifələrin robot tərəfindən indeksləşdirilməsi riskini daşıyırıq, lakin bizə lazım olan yeni səhifələr olmayacaq.

HTML Hypertext Transfer Protocol-u təsvir edən RFC 2616 spesifikasiyasına əsaslanaraq, müştəri serverə "Əgər-Modified-Since" başlığını göndərməklə, müəyyən bir tarixdən sonra səhifənin dəyişib-dəyişmədiyini serverdən "sual edə" bilər. Əgər tələb olunan səhifə dəyişməyibsə, server "304 Dəyişdirilməmiş" başlığını qaytaracaq və brauzer səhifəni yükləməyəcək və veb server çox məlumat göndərməyəcək. Əks halda (əgər sayt səhifəsi əvvəlki sorğudan sonra dəyişibsə), server “200 OK” cavabını və birbaşa səhifənin özünün kodunu qaytaracaq.

Yuxarıda göstərilənlərə əlavə olaraq, Yandex-in tövsiyələrini qeyd edirik: “Robot sayt səhifəsinin son indeksləşdirmədən sonra yenilənib-yenilmədiyi barədə məlumat əldə edə bilməyəcək. Robotun bir ziyarətdə saytdan aldığı səhifələrin sayı məhdud olduğundan, dəyişdirilən səhifələr daha az tez-tez yenidən indeksləşdiriləcək”.

ÜMUMİ:“Son Modifikasiya” başlığının mühüm məqsədi sayt ziyarətçisinə məlumat verməkdir və axtarış robotu hər hansı sənədə son dəyişiklik tarixi.

Niyə Son Modifikasiyanı düzgün konfiqurasiya etməlisiniz?

Son Modifikasiya edilmiş server cavabını düzgün konfiqurasiya etməklə biz bir neçə nəticə əldə edə bilərik müsbət nəticələr saytımız üçün:

  • İnsanlar üçün sayt səhifəsinin yükləmə sürəti artır: səhifəyə istifadəçi artıq daxil olubsa və növbəti ziyarət zamanı səhifə dəyişməyibsə, ziyarətçinin brauzeri səhifəni yenidən yükləməyəcək, lakin onun keşlənmiş nüsxəsini göstərəcək;
  • Hostinq platformasına (serverə) yük azalır: bu əməliyyat alqoritmi ilə server yalnız dəyişdirilmiş səhifələrin həcmini sayt ziyarətçisinə ötürmək ehtiyacı səbəbindən daha az yüklənəcək;
  • Axtarış nəticələrində sonuncu sənədin tarixi göstərilir: bu fakt "təzə" tarix göstərildiyi təqdirdə saytınıza ziyarətçiləri cəlb edə bilər;
  • Tarixə görə çeşidləyin: sayt səhifələri axtarış nəticələrində tarixə görə çeşidlənmədə iştirak edəcək;
  • Axtarış robotları tərəfindən saytın indeksləşdirilməsi əhəmiyyətli dərəcədə sürətlənir: Taranan səhifələrin tarixi ilə bağlı saytınızın tez cavab verməsi səbəbindən köhnə (artıq indekslənmiş) səhifələr yerini “təzə” sənədlərə verərək “kənara atılacaq”. Saytı təbliğ edərkən bu məqam ən əhəmiyyətlidir, çünki... yüksək indeksləşdirmə sürəti axtarış robotları arasında sayta inam səviyyəsini artırır.

Son Modifikasiyanın düzgün konfiqurasiya edilib-edilmədiyini necə yoxlamaq olar?

Konfiqurasiya edilmiş Son Modifikasiya edilmiş server cavabının düzgünlüyünü (və həqiqətən də mövcudluğunu) yoxlaya biləcəyiniz xidmətlərdən biri eyniadlı last-modified.com saytıdır.

Daxiletmə sahəsində veb saytınızın və ya müəyyən bir səhifənin ünvanını yazmalı və “Yoxlama” düyməsini sıxmalısınız. Xidmətin nəticəsi saytınızın “Son Modifikasiya” və “304 Dəyişdirilməmiş” başlıqlarına dair sorğuya cavabının nümayişi olacaq. Belə bir yoxlama nümunəsi:

Son Dəyişikliklərin qurulması

PHP-də Son Modifikasiya edilmiş HTTP başlıq cavabının həyata keçirilməsinə baxaq.

İnternetdə Son Modifikasiyanı qurmaq üçün tez-tez aşağıdakı tövsiyələri tapa bilərsiniz:

Mən sadəcə qışqırmaq istəyirəm: "Bizə bu cür xokkey lazım deyil!" Və gəlin bunun səbəbini anlayaq. İstifadəçi sorğusuna cavab olaraq funksiya gmdate bizə qaytaracaq Hal-hazırki Tarix Qrinviç Orta Vaxtı (GMT). Və bu, hər dəfə istifadəçidən və ya axtarış robotundan gələn hər sorğu ilə baş verəcək - server tam olaraq özünü qaytaracaq Hal-hazırki Tarix. Məlum olub ki, axtarış sistemləri saytınıza hər dəfə daxil olanda tələb olunan səhifənin yenicə yeniləndiyini görəcəklər. Bu, yalnız bir neçə dəfə “faydalı” ola bilər... Bir müddət sonra axtarış sistemi “aldandığını” anlayacaq və saytınıza olan inamı itirəcək. Müvafiq olaraq, belə bir icra bizə uyğun deyil.

Kömək üçün yuxarıdakı mənbəyə müraciət edək. last-modified.com. O, həmçinin PHP-də Son Modifikasiya edilmiş HTTP başlığının tətbiqini təqdim edir. Bu belə görünür:

$LastModified_unix = 1294844676;

$IfModifiedSince = false;



if ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) (
çıxış;
}

Bu kodun necə işlədiyinə baxaq. Dəyişən $LastModified_unix formatda əl ilə təyin edin Unix vaxt möhürü(Unix erasının əvvəlindən keçən saniyələrin sayı - 1970-ci il yanvarın 1-dən).

Funksiya gmdate cari GMT vaxtını formatda qaytarır Gün, GG Baz İL SS:MM:SS GMT.

Sonrakı: səhifənin sonuncu dəfə dəyişdirildiyi vaxtı əldə edin, mövcudluğu yoxlayın Əgər-Dəyişdirilib-Bundan sonra, varsa, biz onu veririk 304 Dəyişdirilməmişdir və skripti dayandırın. Əks halda, başlıq yaradırıq Son Dəyişiklik və bütün səhifəni təhvil verin.

Yuxarıdakı seçimdə vaxtı təyin etmək təklif olunur $LastModified_unixəl ilə. Bəs saytda çoxlu səhifə varsa nə etməli? Bunu etmək üçün, skripti bir az "modernləşdirək", içindəki ilk sətri əvəz edək:

$LastModified_unix = strtotime(tarix("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 = false;

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

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

if ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) (
başlıq($_SERVER["SERVER_PROTOCOL"] . " 304 Dəyişdirilməmişdir");
çıxış;
}

başlıq("Son Modifikasiya: ". $Son Modifikasiya);

Yenilənmiş versiyada kodun birinci sətri tarixin mətn təqdimatını çevirir Ingilis dili formatda etiketə Unix vaxt möhürü, beləliklə, cari sayt səhifəsinin avtomatik hesablanmış dəyişmə vaxtından istifadə etməklə.

Hamısı hazırdır! İndi bizə yalnız nəticə kodunu bölməyə yapışdırmaq qalır ... saytın hər bir səhifəsinə baxın və axtarış robotları tərəfindən yüksək sürətli səhifə yükləməsindən və indeksləşdirilməsindən həzz alın.

Son Modifikasiyanın qurulmasında sizə kömək edək!

Sadə bir zənglə başlayın T-Design-da! Telefon nömrəmizdir 8 499 340-17-82 - rejimində işləyir dayanmadan, beləliklə, saytınızın inkişafı və dəstəklənməsi problemlərinin həllində maraqlı olduğunuz məlumatı tez bir zamanda ala biləsiniz. Və ya yazın e-poçt. Biz bütün suallar üzrə məsləhət və optimal tarifi seçəcəyikşirkətiniz üçün.

Sintaksis

Əgər-Dəyişdirilsə-Bundan sonra: , ::GMT

Direktivlər

"Bazar ertəsi", "Çərşənbə axşamı", "Çərşənbə", "Çərşənbə axşamı", "Cümə", "Şənbə" və ya "Günəş" (həssas hərf) biri. 2 rəqəmli gün nömrəsi, məs. "04" və ya "23". "Yanvar", "Fevral", "Mar", "Aprel", "May", "İyun", "İyul", "Avqust", "Sentyabr", "Oktyabr", "Noyabr", "Dekabr" ( hərflərə həssas). 4 rəqəmli il nömrəsi, məs. "1990" və ya "2016". 2 rəqəmli saat nömrəsi, məs. "09" və ya "23". 2 rəqəmli dəqiqə nömrəsi, məs. "04" və ya "59". 2 rəqəmli ikinci rəqəm, məs. "04" və ya "59". GMT

Qrinviç Orta Vaxtı. HTTP tarixləri həmişə GMT ilə ifadə edilir, heç vaxt yerli vaxtla deyil.

Nümunələr

Dəyişdirildiyi tarixdən etibarən: Çərşənbə axşamı, 21 Oktyabr 2015 07:28:00 GMT

Spesifikasiyalar

Spesifikasiya Başlıq
RFC 7232, bölmə 3.3: Əgər-Dəyişdirilsə-Bundan sonra Hypertext Transfer Protocol (HTTP/1.1): Şərti Sorğular

Brauzer uyğunluğu

Bu səhifədəki uyğunluq cədvəli strukturlaşdırılmış məlumatlardan yaradılıb. Məlumatlara töhfə vermək istəyirsinizsə, lütfən, https://github.com/mdn/browser-compat-data ünvanına daxil olun və bizə sorğu göndərin.

GitHub-da uyğunluq məlumatlarını yeniləyin

İş masasıMobil
ChromeKənarFirefoxinternet ExplorerOperaSafariAndroid veb görünüşüAndroid üçün ChromeAndroid üçün FirefoxAndroid üçün operaiOS-da SafariSamsung İnternet
Əgər-Dəyişdirilib-Bundan sonraChrome Tam dəstək BəliEdge Tam dəstək 12Firefox Tam dəstək BəliIE Tam dəstək BəliOpera Tam dəstək BəliSafari Tam dəstək BəliWebView Android Tam dəstək BəliChrome Android Tam dəstək BəliFirefox Android Tam dəstək BəliOpera Android Tam dəstək BəliSafari iOS Tam dəstək BəliSamsung İnternet Android Tam dəstək Bəli

WordPress üçün başlıqlardan sonra sonuncu dəyişdirilmiş və dəyişdirilmişsə

HTTP başlıqlarına az adam diqqət yetirir Son DəyişiklikƏgər-Dəyişdirilib-Bundan sonra saytınızı optimallaşdırarkən, amma boş yerə! Axtarış robotunun son ziyarətindən bəri məzmunu dəyişməmiş səhifənin 304 kodunu qaytarması vacibdir ki, bu da əslində bu xüsusi səhifənin heç bir şeylə tamamlanmadığını göstərir - mətni redaktə etməmisiniz və ya əlavə etməmisiniz. , bu yazıya heç bir şərh əlavə olunmayıb və s. P.

Bu http başlığı yoxdursa, Yandex-də nəticələri tarixə görə çeşidləyərkən sayt əksər istifadəçilər üçün görünməyəcək.

Buna görə də onu nəinki düzgün qurmağınız, həm də hər dəfə qeydi redaktə etdiyiniz zaman tarixi indiki ilə yeniləməyiniz vacibdir. Bunu əl ilə etmək lazımdır.

Şərhlərlə daha sadədir: ziyarətçi şərh əlavə etdikdə, sonra dəyişəndə $last_modified_timeşərhin əlavə edildiyi vaxt avtomatik olaraq daxil edilir - bu, səhifənin sonuncu dəfə dəyişdirildiyi tarix olacaq.

Niyə bizə Son-Dəyişiklik və Əgər-Modifikasiya olunduqdan sonra başlıqlar lazımdır?

1. Server belə kodu göndərəndə səhifədəki bütün PHP skriptlərinin icrası belə başlamır. Səhifə axtarış keşindən yüklənir və bu, başa düşdüyünüz kimi, serverə yükü çox əhəmiyyətli dərəcədə azaldır, hosterinizi çox sevindirir və ziyarətçi üçün səhifə yüklənməsini sürətləndirir, bu da yaxşı xəbərdir.

Bu necə baş verir?

İnternetdə gəzərkən Google və Yandex hörümçəkləri hər bir saytın bir nüsxəsini öz verilənlər bazasında saxlayırlar. Bu nüsxə müqayisə üçün bir növ nümunə rolunu oynayır: hər şey hələ də eynidir və ya dəyişikliklər baş verib. Və əgər Last-Modified və If-Modified-Since başlıqları konfiqurasiya edilməmişdirsə və ya səhv konfiqurasiya edilmişdirsə, saytda yeni səhifələr indekslənir və axtarış motorunun önbelleğindeki əsas səhifə uzun müddət yenilənmir, eynilə şərhdə olduğu kimi. feed yenilənmir.

Amma tez-tez yenilənən səhifələr üçün (gündə dəfələrlə yenilənən xəbər lentləri, aktiv şəkildə şərh edilən bloqlar və s.) onun bir çatışmazlığı var: keşdəki məlumat çox tez köhnəlir və insan, hətta səhifəni yenidən yükləsə də, ən son xəbərləri görmür. , yeni şərhləri görmür. Amma bu o qədər də pis deyil. Problem ondadır ki, robot işə salınmasa, bunu da görmür düzgün başlıq Son Dəyişiklik.

başlıq("Son Modifikasiya: ".gmdate("D, d M Y H:i:s ")."GMT");

Saytınız tez-tez yenilənirsə (məsələn, yazılarınıza tez-tez şərh verilir), siz aşağıdakı başlıqlar dəsti ilə keşləşdirməni söndürə bilərsiniz:

header("Bitir: ".gmdate("D, d M Y H:i:s", time() + 7200)." GMT");

Bu o deməkdir ki, saxlanılan surətin etibarlılığı hər bir sorğu ilə iki dəfə yoxlanılmalıdır.

Brauzerlərdə keşləmə necə işləyir?

Əgər no_cache funksiyasını çağırmaqla söndürülməyibsə, Firefox və IE-də səhifə keş yaddaşda saxlanılır və bütün sonrakı sorğular üçün məhz bu səhifə qaytarılır.

Səhifəni yeniləmək və ən son versiyanı əldə etmək üçün düymələr birləşməsinə basmalısınız Ctrl+F5, adi “Yeniləmə” düyməsi (F5) işləmir. Və deməliyəm ki, IE keşindəki sənədlər çox, çox uzun müddət saxlanıla bilər.

Opera-da keş səhifəsi “Yenilə” düyməsini və ya F5 düyməsini basmaqla təmizlənir. Operada CRTL+F5 kombinasiyası - bütün açıq tabları yenidən yükləyir.Başa düşdüyünüz kimi, onları çox açsanız, gözləyərkən saqqal uzana bilər.

Əgər no_cache funksiyası ilə səhifənin keşlənməsini söndürsəniz, Opera və Firefox belə bir səhifəyə daxil olarkən If-Modified-Since başlığı ilə mexanizmdən istifadə edin. Beləliklə, keşləmə baş verir, lakin brauzer serverdən səhifənin həqiqətən dəyişib-dəyişmədiyini soruşur - bu sualı vermək üçün düzgün yoldur.

Buna görə də, bu parametrin işlənməsini də aktivləşdirməlisiniz. Bu funksiyanın nə demək olduğunu təsvir etməyəcəyəm, sadəcə başlıqları düzgün göndərən və işlədiyim əksər hostinq saytlarında münaqişə yaratmayan kodu verəcəyəm. Bu dizayn üzərində işləyir sweb.ru, eomy.net, timeweb.ru, fastvps.ru, startlogic.com

header("Bitir: ".gmdate("D, d M Y H:i:s", time() + 7200)." GMT");
başlıq("Keş-nəzarət: önbellek yoxdur, yenidən təsdiq edilməlidir");
$mt = fayl vaxtı($fayl_adı);
$mt_str = gmdate("D, d M Y H:i:s ")."GMT";
əgər (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) &&
strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) >= $mt)
(başlıq("HTTP/1.1 304 Dəyişdirilməmişdir");
ölmək;
}
header("Son modifikasiya: ".$mt_str);
echo $mətn;
başlıq("Dəyişiklik: Qəbul et-kodlaşdırma");
header("Qəbul et-kodlaşdırma:gzip,deflate,sdch");
?>

Beləliklə, sizə lazım olan tək şey bu kodu kopyalayıb fayla əlavə etməkdir header.php Mövzunuz YUXARIDA . Bunlar. bu kod kodun bütün qalan hissəsindən ƏVVƏL faylın ən yuxarı hissəsindədir


Diqqət! Heç bir şey əlavə etməzdən əvvəl bu faylı kompüterinizdə saxlayın ki, əgər sizinki belə başlıq konfiqurasiyasına icazə vermirsə, orijinal versiyanı bərpa edə biləsiniz.

Nəticəni "Son Modifikasiya" və "Əgər Modifikasiya olunduqdan sonra" başlıq yoxlama xidmətindən istifadə edərək yoxlayırıq http://last-modified.com/ru/if-modified-since.html


  • Nəticə müsbət olarsa, alnımızın tərini silib çay içməyə gedirik.
  • Nəticə mənfi olarsa, eyni konstruksiya fayla əlavə edilə bilər index.php WordPress-in kökündə (mən bununla timeweb.ru hostinqində rastlaşdım). Eynilə, içindəki hər şeydən üstündür. Yenilədiyiniz zaman bunu unutmayın - indeks faylı standart formada üzərinə yazılacaq.

Voila! Son Modifikasiya edilmiş və Dəyişdirildikdən sonra başlıqlarını düzgün təyin etməklə biz bir dəstə bonus əldə etdik:

  • Google robotu üçün vacib olan və insanlar üçün xoş olan səhifə yükləmə sürətini artırdıq.
  • Serverdəki yükü azaldıb hosteri məmnun etdik.
  • Tarix Yandex axtarış nəticələrində göstəriləcək Son yeniləmə səhifələr, bəzi hallarda insanlar üçün çox vacibdir və buna görə də dolayısı ilə bu davranış amillərinə müsbət təsir göstərəcəkdir.
  • Saytımızın səhifələri axtarış sistemlərinin tarixə görə çeşidlənməsinə cəlb olunacaq - bəli, bəli, qabaqcıl istifadəçilər bundan istifadə edirlər.
  • Və yuxarıda göstərilənlərin hamısının nəticəsi olaraq, saytımızın axtarış motorları tərəfindən indeksləşdirilməsi çox sürətlənəcəkdir.



Üst