Menu
Jest wolny
Rejestracja
Dom  /  Programy/ Mity SEO: Wszystko o ostatniej modyfikacji nagłówka. Blog z mnóstwem ciekawych informacji… Po co nam nagłówki Last-Modified i If-Modified-Since

Mity SEO: Wszystko o ostatniej modyfikacji nagłówka. Blog z mnóstwem ciekawych informacji… Po co nam nagłówki Last-Modified i If-Modified-Since

Nagłówek HTTP Last-Modified (ostatnia modyfikacja) przekazuje klientowi czas ostatniej modyfikacji dokumentu (strony internetowej). Klient (przeglądarka lub robot indeksujący) wysyła nagłówek „ Jeśli-zmodyfikowano-od' a jeśli data ostatniej modyfikacji strony pasuje, serwer zwraca tytuł ' 304 Nie zmodyfikowano' i nie ładuje strony. Jeśli czas ostatniej modyfikacji jest inny (lub ostatni zmodyfikowany nagłówek nie jest skonfigurowany), serwer zwraca nagłówek " 200 OK' i ładuje stronę. Oznacza to, że zamiast przeładowywać stronę i aktualizować pamięć podręczną, klient otrzymuje tylko pozycja 304. Klient oszczędza ruch, a serwer daje mniej danych - obopólna oszczędność.

Ale dlaczego ten artykuł miałby być, jeśli nie mówić o korzyściach płynących z ustawienia nagłówka Last-Modified dla, a raczej przyspieszenia indeksowania witryny. Łatwo zgadnąć, że 10 stron witryny zostanie zaindeksowanych szybciej niż 1000. Ta sama zasada, która pozwala na optymalizację ładowania strony, działa na indeksowanie. Wyszukiwarka nie musi indeksować 1000 stron, aby znaleźć 10 nowych stron. Dzięki ostatniej modyfikacji pozostawiamy dla robota tylko nowe strony (lub zaktualizowane). Robot przychodzi na miejsce i najpierw zabiera to, czego potrzebuje, a potem wszystko inne.

Ustawianie ostatnio zmodyfikowanego nagłówka

Upewnij się, że Twoje nagłówki http są poprawne. W szczególności ważna jest treść odpowiedzi, którą serwer udziela na żądanie „if-modified-since”. Nagłówek Last-Modified musi zwracać poprawną datę ostatniej modyfikacji dokumentu. Nawet jeśli serwer nie zwróci daty ostatniej modyfikacji dokumentu (ostatniej modyfikacji), Twoja witryna zostanie zaindeksowana. Jednak w tym przypadku należy wziąć pod uwagę: - data nie będzie wyświetlana przy stronach Twojej witryny w wynikach wyszukiwania; - przy sortowaniu według daty strona nie będzie widoczna dla większości użytkowników; - robot nie będzie mógł uzyskać informacji o tym, czy strona serwisu została zaktualizowana od ostatniego indeksowania. A ponieważ liczba stron, które robot otrzymuje z witryny podczas jednej wizyty, jest ograniczona, zmienione strony będą rzadziej reindeksowane. Upewnij się, że Twój serwer internetowy obsługuje nagłówek HTTP „If-Modified-Since”. Ten nagłówek umożliwi serwerowi internetowemu poinformowanie Google, czy zawartość witryny zmieniła się od czasu ostatniego jej indeksowania. Obsługa tej funkcji zmniejsza obciążenie i wykorzystanie przepustowości.

Oto przykłady konfiguracji wysyłania ostatniego zmodyfikowanego nagłówka i prawidłowej obsługi If-Modified-Since.

Jak skonfigurować meta Last-Modified dla statycznych stron HTML?

Jak skonfigurować ostatnią modyfikację w php

= $LastModified_unix) ( header($_SERVER["SERVER_PROTOCOL"] . "304 Not Modified"); exit; ) header("Last-Modified: ". $LastModified); ?>

Jak skonfigurować Last-Modified .htaccess

RewriteRule .* - RewriteRule .* -

Jak skonfigurować ostatnią modyfikację nginx + php

lokalizacja ~ .php$ ( ... if_modified_since off; fastcgi_pass fcgi; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /<путь >/web$fastcgi_script_name; ... fastcgi_pass_header Ostatnia modyfikacja; dołącz fastcgi_params; )

Sprawdź ostatnią modyfikację

Gdy nagłówek przechodzący do klienta jest skonfigurowany, to nie boli ostatnia modyfikacja czeku za poprawność. Możesz sprawdzić ostatnią modyfikację w witrynie własnej lub strony trzeciej za pośrednictwem usług online.

Lub dokonaj własnego sprawdzenia poprawności przetwarzania nagłówka Last-Modified:

Ustawianie ostatnio zmodyfikowanego nagłówka a przetwarzanie nagłówka If-Modified-Since będzie niezwykle przydatne dla każdej mniej lub bardziej dużej witryny. Szybkość przetwarzania stron w witrynie może stać się znacząca. Stosunkowo prosta konfiguracja nie spowoduje problemów, zwłaszcza że dla popularnych CMSów, takich jak joomla, wordpress, modx itp. istnieją gotowe rozwiązania.

Dlaczego ten post jest w sekcji SEO? Ostatnia modyfikacja, jak zapewniają wyszukiwarki, to bardzo ważny nagłówek http, który jest potrzebny do zaraportowania daty ostatniej modyfikacji dokumentu, czyli daty ostatniej zmiany na stronie.

W związku z tym, jeśli ten nagłówek nie istnieje, a raczej nie zostanie podany, strona traci pewne zalety. W szczególności oto, co przeczytałem w sieci o zaletach ostatniej modyfikacji:

  1. Szybkość indeksowania nowych stron poprawia się, a robot może wprowadzić więcej stron do indeksu podczas jednej wizyty.
  2. Zwiększa szybkość ponownego indeksowania stron, na których wprowadzono zmiany. Jest to bardzo przydatne, ale bez tego nagłówka do publikowania zmian musisz poczekać dłużej.

W zasadzie to już wystarczy, aby chcieć sprawdzić i w razie potrzeby dostosować ten nagłówek.

Jak sprawdzić ostatnią modyfikację?

Jest kilka narzędzi, najbardziej mi się to podobało − http://www.tools.seo-auditor.com.ru/if-modified-since/
Tutaj wystarczy wpisać adres strony głównej lub dowolnego artykułu, a następnie wybrać robota wyszukiwania - Yandex.

Ostatnia modyfikacja znaleziona na mojej stronie, jest świetna. Ale początkowo go tam nie było, jak to ustawiłem?


Jak skonfigurować ostatnią modyfikację?

Szczerze mówiąc, nic mi nie pomogło. Może dlatego, że serwer to nginx . Zainstalowałem AddHeaders - ta wtyczka umieszcza wszystkie przydatne nagłówki http, w tym ostatnio modyfikowane, ale ta wtyczka mi nie pomogła, chociaż około rok temu z powodzeniem aktywowała ten nagłówek na mojej stronie.

Również na tym blogu umieściłem wtyczkę premium Clearfy, o której pisałem. Przydatną rzeczą jest też funkcja, która pozwoliłaby wstawić ostatnią modyfikację.

Aktywowałem opcję, ale tytuł nie został zwrócony na podstawie wyników sprawdzenia. Ale ostatecznie o wszystkim zadecydował apel do nich. obsługa wtyczek - tam opisałem konfigurację mojego serwera i dali mi konkretną radę - wejdź do panelu kontrolnego serwera, wyłącz to i tamto. Ledwie powiedziano, że zrobiono, a teraz podaje się tytuł.

Myślę, że dodanie nagłówka będzie miało pozytywny wpływ na moje strony.

Uniwersalne rozwiązanie - wtyczka AddHeaders jest najprawdopodobniej odpowiednia dla Ciebie, jeśli masz serwer Apache. Jeśli nginx, spróbuj wyłączyć ssi w ustawieniach domeny i ponownie aktywuj tę wtyczkę.

„W szczególności istotna jest treść odpowiedzi, jakiej serwer udziela na żądanie „if-modified-since”. Nagłówek Last-Modified musi zwracać poprawną datę ostatniej modyfikacji dokumentu."

Sprawdźmy jak działa Last-Modified w różnych CMS-ach.

# telnet www.example.com 80

i wprowadź następujące dane:

GET /index.html HTTP/1.0 User-Agent: Mozilla/5.0 Od: coś.somewhere.net Akceptuj: text/html,text/plain,application/* Host: www.example.com If-Modified-Since: Śr, 19 paź 2005 10:50:00 GMT

jeśli serwer zwraca 304 (Niezmodyfikowany), to obsługuje If-Modified-Since, ale strona nie została zmodyfikowana. Kod 200 (OK) oznacza, że ​​strona się zmieniła.

Sprawdzanie, czy-zmodyfikowano-od w C#

Możesz sprawdzić, jak If-Modified-Since działa z następującym kodem C#:

Private HttpWebResponse GetPage() ( string url = @"http://....."; // Umieść żądanie sieciowe na serwerze, określając adres URL HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);// Nie ma potrzeby żądania trwałego połączenia.KeepAlive = false // Łącze, które przekierowało nas do żądania adresu URL.Referer = url; // Agent użytkownika żądania przeglądarki.UserAgent = "Mozilla/4.0 (kompatybilny; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50215)"; //Zamiast HTTP 1.1 użyję HTTP 1.0. Gdy żądanie mówi serwerowi, że używa 1.0, //serwer nie chce" t odpowiedz na fragmenty danych, ale wyśle ​​odpowiedź za jednym razem.request.ProtocolVersion = new Version(1, 1); request.IfModifiedSince = DateTime.Now.AddDays(-5); // Uzyskaj odpowiedź z powrotu serwera ( HttpWebResponse )request.GetResponse(); ) private void TestLastModified(VirtueMartContext db, jos_vm_product product) ( using (HttpWebResponse response = GetPage()) ( Debug.Print("Kod stanu: (0), Opis: (1)\n", odpowiedź.Kod stanu, odpowiedź.Opis stanu); ciąg tekstowy = WebResponceReader.GetResponceText(odpowiedź); Debug.Print(text.Substring(0, 100)); ) )

używając tej metody, możesz upewnić się, że Joomla zawsze zwraca StatusCode=200 (OK), niezależnie od wartości request.IfModifiedSince.

Sprawdzanie, czy-zmodyfikowano-od, za pośrednictwem usługi Yandex

Jeśli klikniesz przycisk w Yandex Webmaster „Sprawdź odpowiedź serwera”, otrzymamy tutaj:

tutaj ponownie widać, że witryna i odpowiednio WordPress bez wtyczki WP Super Cache nie dodaje nagłówka Last-Modified.

Cóż, wymyśliliśmy CMS, ale jak działa sam Yandex?

Tutaj możesz podać przykład: dzisiaj jest 07.07.2011, zawartość w Joomla została zaktualizowana 20.06.2011, a Yandex ma wersję z pamięci podręcznej 06/11/2011, chociaż po tej dacie robot przyszedł więcej niż raz. W takim przypadku Yandex pobiera aktualizacje z bardzo dużym opóźnieniem. Pytanie brzmi: dlaczego?

Oto, co mówi o tym Platon Shchukin:

Podczas indeksowania witryny robot będzie również omijał wskazaną stronę, po czym, wraz z aktualizacją baz wyszukiwania, zostanie zaktualizowany w wynikach wyszukiwania. Staramy się, aby stało się to jak najszybciej.

Ze swojej strony możesz również pomóc robotowi szybciej indeksować witrynę, korzystając z poniższych zaleceń z

Nagłówek HTTP Last-Modified informuje klienta, kiedy strona (obiekt) została ostatnio zmodyfikowana. Jeżeli klient (przeglądarka, robot wyszukiwania) otrzymał nagłówek Last-Modified, to przy następnym dostępie do adresu, pod warunkiem, że strona (obiekt) znajduje się w lokalnej pamięci podręcznej, doda pytanie If-Modified-Since (czy strona zmieniła się od daty otrzymanej w Last-Modified). Z kolei serwer, po otrzymaniu żądania If-Modified-Since, musi sprawdzić otrzymany znacznik czasu z czasem ostatniej modyfikacji strony i jeśli strona się nie zmieniła, odpowiedzieć komunikatem 304 Not Modified .

Oszczędzaj ruch

Jeśli strona nie uległa zmianie, to serwer przestanie przesyłać dane po przesłaniu nagłówków z kodem 304 Not Modified, treść strony, obrazy i inne obiekty nie zostaną przesłane.

Zmniejszone obciążenie serwera

Prawidłowa implementacja sprawdzania czasu ostatniej modyfikacji strony może znacząco (nawet o 30% lub więcej) zmniejszyć obciążenie serwera. Prawidłowa implementacja oznacza sprawdzenie czasu przed rozpoczęciem generowania strony w dynamicznej witrynie. W takim przypadku wszystkie czynności związane z generowaniem strony (żądanie treści z bazy danych, parsowanie szablonów, odbieranie komentarzy itp.) nie zostaną wykonane. Dotyczy to zwłaszcza witryn o dużym natężeniu ruchu i długim czasie wizyty użytkownika. Przykład: użytkownik znajduje się w witrynie z wiadomościami sportowymi i stale odświeża stronę główną w oczekiwaniu na opublikowanie wyniku meczu. W ciągu kilku minut stronę można zamówić i otrzymać dziesiątki razy. Jeśli podano nagłówek Last-Modified i żądanie If-Modified-Since zostanie przetworzone poprawnie, strona zostanie faktycznie przesłana raz, a wszystkie kolejne żądania otrzymają odpowiedź 304 Not Modified.

Przyspiesz indeksowanie przez wyszukiwarki

Wyszukiwarki zalecają przesłanie nagłówka Last-Modified i odpowiednią obsługę If-Modified-Since zgodnie ze wskazówkami dla webmasterów.


Upewnij się, że Twój serwer internetowy obsługuje nagłówek HTTP If-Modified-Since. Ten nagłówek umożliwi serwerowi internetowemu poinformowanie Google, czy zawartość witryny zmieniła się od czasu ostatniego jej indeksowania. Obsługa tej funkcji zmniejszy wykorzystanie przepustowości i obciążenie.

Upewnij się, że Twoje nagłówki http są poprawne. W szczególności istotna jest treść odpowiedzi, której serwer udziela na żądanie if-modified-since. Nagłówek Last-Modified musi zwracać poprawną datę ostatniej modyfikacji dokumentu. Jeśli serwer nie zwróci daty ostatniej modyfikacji dokumentu, witryna zostanie zaindeksowana, ale:
- wyniki wyszukiwania nie pokażą daty obok stron Twojej witryny;
- przy sortowaniu według daty strona nie będzie widoczna dla większości użytkowników;
- robot nie będzie mógł uzyskać informacji o tym, czy strona serwisu została zaktualizowana od ostatniego indeksowania. A ponieważ liczba stron, które robot otrzymuje z witryny podczas jednej wizyty, jest ograniczona, zmienione strony będą rzadziej reindeksowane.

Składnia

Jeśli-zmodyfikowano-od: , ::GMT

Dyrektywy

Jedno z „Pon”, „Wt”, „Śr”, „Czw”, „Pt”, „Sob” lub „Nd” (wielkość liter ma znaczenie). 2-cyfrowy numer dnia, np. „04” lub „23”. Jeden z „sty”, „lut”, „mar”, „kwi”, „maj”, „cze”, „lip”, „sierpień”, „wrzesień”, „październik”, „listopad”, „grudzień” ( wielkość liter ma znaczenie). 4-cyfrowy numer roku, np. „1990” lub „2016”. 2-cyfrowy numer godziny, np. „09” lub „23”. 2-cyfrowa liczba minut, np. „04” lub „59”. 2-cyfrowa druga liczba, np. „04” lub „59”. GMT

Czas środkowoeuropejski. Daty HTTP są zawsze podawane w GMT, nigdy w czasie lokalnym.

Przykłady

Jeśli-zmodyfikowano-od: śr, 21 paź 2015 07:28:00 GMT

Specyfikacje

Specyfikacja Tytuł
RFC 7232, sekcja 3.3: Jeśli-zmodyfikowano-od Protokół przesyłania hipertekstu (HTTP/1.1): żądania warunkowe

Kompatybilność z przeglądarką

Tabela zgodności na tej stronie jest generowana na podstawie uporządkowanych danych. Jeśli chcesz wnieść swój wkład w dane, wejdź na https://github.com/mdn/browser-compat-data i wyślij nam pull request.

Zaktualizuj dane zgodności na GitHub

Pulpitmobilny
ChromBrzegFirefoxInternet ExplorerOperasafariwidok na AndroidaChrome na AndroidaFirefox dla AndroidaOpera na AndroidaSafari na iOSSamsung Internet
Jeśli-zmodyfikowano-odPełna obsługa Chrome TakKrawędź Pełne wsparcie 12Firefox Pełna obsługa TakIE Pełne wsparcie TakOpera Pełne wsparcieTakSafari Pełne wsparcie TakPełna obsługa WebView Android TakPełna obsługa Chrome na Androida TakPełna obsługa Firefoksa AndroidTakPełna obsługa Opery Android TakSafari iOS Pełna obsługa TakSamsung Internet Android Pełna obsługa Tak