Blog

Dekabr ayı üzrə krol: HTTP keşləmə

9 dekabr 2024-cü il, Bazar ertəsi

Zəhmət olmasa, keşləməyə icazə verin.

İnternet illər ərzində böyüdükcə, Google-un indeksləmə (crawl) həcmi də artdı. Google-un indeksləmə infrastrukturu evristik keşləmə mexanizmlərini dəstəkləsə də və əslində həmişə dəstəkləmiş olsa da, yerli keşlərdən geri qaytarıla bilən sorğuların sayı azalıb: 10 il əvvəl ümumi sorğuların təxminən 0,026%-i keşlənə bilən idi ki, bu da elə də təsirli rəqəm deyil; bu gün isə bu rəqəm 0,017%-dir.

Keşləmə niyə vacibdir?

Keşləmə internet adlı böyük tapmacanın kritik bir hissəsidir. Keşləmə səhifələrin təkrar ziyarət zamanı ildırım sürəti ilə yüklənməsinə imkan verir, hesablama resurslarına və bununla da təbii resurslara qənaət edir, həmçinin həm müştərilər, həm də serverlər üçün külli miqdarda bahalı bant genişliyinə (bandwidth) qənaət edir.

Xüsusilə, fərdi URL-lər altında nadir hallarda dəyişən məzmuna malik böyük bir saytınız varsa, yerli keşləməyə icazə vermək saytınızın daha səmərəli indekslənməsinə kömək edə bilər. Google-un indeksləmə infrastrukturu HTTP keşləmə standartı tərəfindən müəyyən edildiyi kimi, xüsusilə ETag cavab və If-None-Match sorğu başlığı, həmçinin Last-Modified cavab və If-Modified-Since sorğu başlığı vasitəsilə evristik HTTP keşləməni dəstəkləyir.

Biz ETag istifadə etməyi şiddətlə tövsiyə edirik, çünki o, səhvlərə daha az meyillidir (dəyəri Last-Modified dəyərindən fərqli olaraq strukturlaşdırılmayıb). Və əgər imkanınız varsa, hər ikisini qurun: internet sizə təşəkkür edəcək. Bəlkə də.

Müştərilərin keşlərini yeniləməsini tələb edən bir dəyişiklik kimi nəyi nəzərdə tutmağınız sizə bağlıdır. Bizim tövsiyəmiz budur ki, məzmununuzda əhəmiyyətli dəyişikliklər olduqda keş yenilənməsini tələb edəsiniz; əgər sadəcə səhifənizin altındakı müəllif hüququ tarixini yeniləmisinizsə, bu, yəqin ki, əhəmiyyətli deyil.

ETag və If-None-Match

Google-un botları ETag əsaslı şərti sorğuları tam olaraq HTTP keşləmə standartında müəyyən edildiyi kimi dəstəkləyir. Yəni, Google-un botlarına keşləmə seçimini bildirmək üçün Etag dəyərini daxil olunan URL tərəfindən yerləşdirilən məzmunun təsviri üçün unikal olan istənilən ixtiyari ASCII sətrinə (adətən məzmunun heşi və ya versiya nömrəsi, lakin π-nin bir hissəsi də ola bilər, sizə qalmışdır) təyin edin. Məsələn, eyni məzmunun fərqli versiyalarını eyni URL altında yerləşdirirsinizsə (məsələn, mobil və masaüstü versiya), hər versiyanın öz unikal ETag dəyəri ola bilər.

Keşləməni dəstəkləyən Google botları, həmin URL-in əvvəlki indekslənməsi üçün qaytarılan ETag dəyərini If-None-Match başlığında göndərəcək. Əgər bot tərəfindən göndərilən ETag dəyəri serverin yaratdığı cari dəyərlə uyğun gəlirsə, serveriniz HTTP 304 (Dəyişdirilməyib) status kodunu heç bir HTTP gövdəsi olmadan qaytarmalıdır. Bu son hissə, yəni HTTP gövdəsinin olmaması, bir neçə səbəbə görə vacibdir:

  • serveriniz məzmun yaratmaq üçün hesablama resursları sərf etmək məcburiyyətində qalmır; yəni pula qənaət edirsiniz
  • serveriniz HTTP gövdəsini ötürmək məcburiyyətində qalmır; yəni pula qənaət edirsiniz

Müştəri tərəfində, məsələn, istifadəçinin brauzeri və ya Googlebot-da, həmin URL altındakı məzmun müştərinin daxili keşindən götürülür. Heç bir məlumat ötürülməsi olmadığı üçün bu, ildırım sürəti ilə baş verir, istifadəçiləri xoşbəxt edir və potensial olaraq onlar üçün də bəzi resurslara qənaət edir.

Last-Modified və If-Modified-Since

ETag-ə bənzər şəkildə, Google-un botları Last-Modified əsaslı şərti sorğuları da tam olaraq HTTP Keşləmə standartında müəyyən edildiyi kimi dəstəkləyir. Bu, semantik baxımdan ETag ilə eyni şəkildə işləyir — resursun keşlənə bilən olub-olmadığını müəyyən etmək üçün bir identifikator istifadə olunur — və müştəri tərəfində ETag ilə eyni faydaları təmin edir.

Əgər Last-Modified-i keşləmə direktivi kimi istifadə edirsinizsə, bir neçə tövsiyəmiz var:

  1. Last-Modified başlığındakı tarix HTTP standartına uyğun formatlanmalıdır. Təhlil problemlərinin qarşısını almaq üçün aşağıdakı tarix formatından istifadə etməyi tövsiyə edirik:
    “Həftə günü, GG Ay YYYY SS:DD:SN Zaman qurşağı”. Məsələn,
    “Fri, 4 Sep 1998 19:15:56 GMT“.
  2. Məcburi olmasa da, botların konkret URL-i nə vaxt yenidən indeksləyəcəyini müəyyən etməsinə kömək etmək üçün Cache-Control başlığının max-age sahəsini də təyin etməyi düşünün. max-age sahəsinin dəyərini məzmunun dəyişməz qalacağı gözlənilən saniyə sayı ilə təyin edin. Məsələn, Cache-Control: max-age=94043.

Nümunələr

Əgər mənim kimi düşünürsünüzsə, evristik keşləmənin necə işlədiyini anlamaq çətindir, lakin sorğu və cavab zəncirinin nümunəsini göstərmək mənə kömək edir. Budur iki zəncir — biri ETag/If-None-Match, digəri isə Last-Modified/If-Modified-Since üçün — necə işləməli olduğunu vizuallaşdırmaq üçün:

ETag/If-None-MatchLast-Modified/If-Modified-Since
Serverin indeksləmə sorğusuna cavabı: Bu, botun ETag və Last-Modified ilkin şərt başlığı sahələrini saxlaya biləcəyi cavabdır.
Botun sonrakı şərti sorğusu: Şərti sorğu əvvəlki sorğudan saxlanılan ilkin şərt başlığı dəyərlərinə əsaslanır. Dəyərlər yoxlama üçün If-None-Match və If-Modified-Since sorğu başlıqlarında serverə geri göndərilir.
Serverin şərti sorğuya cavabı: Bot tərəfindən göndərilən ilkin şərt başlığı dəyərləri server tərəfində yoxlanıldığı üçün server bota 304 HTTP status kodu (HTTP gövdəsi olmadan) qaytarır. Bu, ilkin şərtlər yoxlanılana qədər (server tərəfində ETag və ya Last-Modified tarixi dəyişənə qədər) hər sonrakı sorğuda baş verəcək.

Əgər istifadəçilərinizi xoşbəxt etmək istəyirsinizsə və bəlkə də hostinq xərclərinizə bir az qənaət etmək istəyirsinizsə, hostinq və ya CMS provayderinizlə və ya tərtibatçılarınızla saytınız üçün HTTP keşləməni necə aktivləşdirmək barədə danışın. Heç olmasa, istifadəçiləriniz sizi bir az daha çox sevəcək.

Keşləmə haqqında söhbət etmək istəyirsinizsə, ən yaxın Search Central yardım icmasına baş çəkin və əgər keşləmə ilə bağlı şərhləriniz varsa, bu bloq yazısı ilə birlikdə dərc etdiyimiz keşləmə haqqında sənədlərə rəy bildirin.


İndeksləmə haqqında daha çox öyrənmək istəyirsiniz? Bütün “Crawling December” silsiləsinə nəzər salın:

Alien Road

Bunu necə tətbiq edirik

We archive Search Central announcements because client questions often trace back to a change that was announced years ago. Reading the original is faster than reconstructing it from second-hand summaries.

Əlaqəli xidmətlər

Paylaş

© Copyright 2026 Alien Road. All rights reserved.