Як правильно налаштувати відповідь сервера last-modified
Технічна підтримка Інформаційна підтримка Графічна підтримка Економія на техпідтримку Тарифи: Разовий - 1 500 руб. в годину Лайт - 3 000 руб. в місяць Оптима - 6 000 руб. в місяць Стандарт - 9 000 руб. в місяць Комфорт - 17 000 руб. в місяць Екстра - 30 000 руб. в місяць Порівняння тарифів
Сайти: створення та підтримка Логотипи, фірмовий стиль Поліграфія Фотозйомка, обробка фотографій 3D-моделювання
У нас низькі ціни на техпідтримку
Це просто свято якесь!
Робимо сайти. створюємо дизайн
Якісно, швидко, недорого
Виводимо бізнес на нову орбіту
В інтернеті
Розкриємо Ваш бізнес
В мережі
Підтримка Вашого бізнесу
Кожен день, цілий рік
Наша відмінність - низькі ціни
Це просто свято якесь!
Нові технології - нові ідеї
для розвитку вашого бізнесу
Робимо сайти. створюємо дизайн
Швидко, недорого і сердито
Новітні технології для розвитку
вашого бізнесу
Бізнес не стане чекати
Почніть розвиток бізнесу в інтернеті вже зараз
Ваш сайт працює і розвивається
вам комфортно
Ваш сайт працює на Вас
Вам зручно розвиватися
Наші пристрасть і натхнення.
Ви їх теж оціните
Ваш сайт працює. ви розвиваєтеся
вам комфортно
Ось уже 14 років ми працюємо з Вами
Працюємо для Вас
Підтримка Вашого сайту
Це наша робота
Ваш сайт працює на Вас
Вам комфортно розвиватися
Робимо сайти. створюємо дизайн
Якісно, швидко
Ваш сайт працює на Вас
Це наша робота
Якісна підтримка сайту
Візьмемо на обслуговування будь-який ресурс
Підтримка сайту - запорука здоров'я
Вашого інтернет-ресурсу і бізнесу в мережі
Підтримка сайтів від 3 000 рублів
Так це правда
Ваш особистий веб-майстер
Займеться підтримкою сайту. створеного на будь-який CMS
Підтримаємо Ваш сайт
А Ви в цей час будете спокійно розвиватися
Веб-майстер в оренду
Чи підтримає Ваш сайт. створений на будь-який CMS
Кожному сайту потрібна підтримка
Підтримаємо Вас і Ваш сайт
Підтримаємо Ваш сайт
А в цей час Ви будете спокійно розвиватися
Один з етапів оптимізації інтернет-ресурсу для успішного просування і підтримки сайту - оптимізація на стороні сервера. Серед інших моментів - настройка правильної відповіді сервера на запит Last-Modified. Правильна настройка даного параметра допоможе в збільшенні швидкості завантаження сайту і позитивно позначиться на його індексації пошуковими роботами.
Що таке Last-Modified і навіщо він потрібен?
Як видно з назви, заголовок Last-Modified говорить клієнту (відвідувачеві сайту) про час останньої зміни тієї чи іншої сторінки сайту. Якщо в якості відвідувача сайту виступає пошуковий робот і на сайті (на сервері) не налаштований (або налаштований неправильно) відповідь Last-Modified на запитуваний документ або сторінку, пошуковому роботу нічого не залишається, як проводити індексацію всіх сторінок інтернет-ресурсу знову і знову при кожному відвідуванні, таким чином створюючи певне навантаження на сервер, розташований на хостинг-майданчику. А якщо кількість сторінок сотні або навіть тисячі? Залежно від характеристик і можливостей і сервера, існує ймовірність «нарватися» на якусь помилку з боку хостингу. На додаток до цього слід зазначити, що пошуковий робот має ліміт на кількість індексованих «за раз» сторінок, тому в разі відсутності правильного налаштування заголовка Last-Modified, ми ризикуємо тим, що незмінені сторінки проиндексируется роботом, а потрібні нам нові сторінки - немає.
Виходячи з специфікації rfc 2616, клієнт може «запитати» у сервера, чи не змінилася сторінка з певної дати, пославши сервера заголовок «If-Modified-Since». Якщо запитувана сторінка не змінилася, сервер поверне заголовок «304 Not Modified" та браузер не буде завантажувати сторінку, а web-сервер не буде віддавати багато даних. В іншому випадку (якщо сторінка сайту змінювалася з часу попереднього запиту), сервер поверне відповідь «200 OK» і безпосередньо код самої сторінки.
На додаток до вищесказаного згадаємо рекомендації Яндекса: «Робот не зможе отримати інформацію про те, чи оновилася сторінка сайту з моменту останнього індексування. А так як число сторінок, одержуваних роботом з сайту за один захід, обмежена, змінилися сторінки будуть переіндексувати рідше ».
РАЗОМ: важливим призначенням заголовка «Last-Modified» служить інформування користувача сайту про дату останньої модифікації будь-якого документа.
Для чого потрібна правильна настройка Last-Modified?
За допомогою правильного налаштування відповіді сервера Last-Modified ми зможемо досягти відразу кілька позитивних результатів для нашого сайту:
- Збільшується швидкість завантаження сторінки сайту для людей: у разі, якщо сторінка вже переглянуло користувачем і на момент наступних відвідин сторінка не змінювалася, браузер відвідувача не буде заново завантажувати сторінку, а відобразить її збережену копію;
- Знижується навантаження на хостинг-майданчик (сервер): при такому алгоритмі роботи сервер буде завантажуватися набагато менше за рахунок необхідності передачі відвідувачеві сайту обсягу тільки змінених сторінок;
- Відображається дата останнього документа в пошуковій видачі: цей факт може залучати відвідувачів до вашого сайту, якщо буде відображатися «свіжа» дата;
- Сортування за датою: сторінки сайту візьмуть участь в сортування за датою в пошуковій видачі;
- Істотно прискорюється індексація сайту пошуковими роботами: за рахунок швидкої відповіді вашого сайту про дату сканованих сторінок, старі (вже проіндексовані) сторінки будуть «відкидатися в сторону», поступаючись місцем «свіжим» документам. Цей пункт є найбільш значущим при просуванні сайту. тому висока швидкість індексації підвищує рівень довіри до сайту у пошукових роботів).
Як перевірити, чи коректно налаштований Last-Modified?
Налаштовуємо Last-Modified
Розглянемо реалізацію відповіді HTTP-заголовка Last-Modified на PHP.
В інтернеті дуже часто зустрічаються такі рекомендації по налаштуванню Last-Modified:
Так і хочеться вигукнути: «Такий хокей нам не потрібен!» І давайте розберемося чому. У відповідь на запит користувача функція gmdate поверне нам поточну дату за Гринвічем (GMT). І так буде відбуватися кожного разу при кожному запиті користувача або пошукового робота - сервер буде повертати нам саме свою поточну дату. Виходить, що при кожному відвідуванні вашого сайту пошуковими системами, вони будуть бачити, що запитувана сторінка тільки що оновлена. Це може бути «корисним» лише кілька разів. Через деякий час пошуковик зрозуміє, що його «дурять» і втратить будь-яку довіру до вашого сайту. Відповідно, така реалізація нам не підходить.
Звернемося за допомогою до вищезгаданого ресурсу last-modified.com. На ньому також представлений варіант реалізації HTTP-заголовка Last-Modified на PHP. Виглядає він у такий спосіб:
$ LastModified_unix = 1294844676;
$ LastModified = gmdate ( "D, d M Y H: i: s \ G \ M \ T", $ LastModified_unix);
$ IfModifiedSince = false;
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) header ($ _ SERVER [ 'SERVER_PROTOCOL']. '304 Not Modified');
exit;
>
Функція gmdate повертає поточний час за Гринвічем в форматі Day, DD Mon YEAR HH: MM: SS GMT.
Далі: отримуємо час останньої зміни сторінки, перевіряємо наявність If-Modified-Since. якщо є - віддаємо 304 Not Modified і зупиняємо роботу скрипта. В іншому випадку генеруємо заголовок Last-Modified і віддаємо сторінку цілком.
В даному варіанті пропонується задавати час $ LastModified_unix вручну. А що робити, якщо на сайті дуже багато сторінок?
Для цього трохи «модернізуємо» скрипт, замінивши в ньому всього одну лише перший рядок:
$ LastModified_unix = strtotime (date ( "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;
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) header ($ _ SERVER [ 'SERVER_PROTOCOL']. '304 Not Modified');
exit;
>
В оновленому варіанті перший рядок коду перетворює текстове представлення дати англійською мовою в мітку в форматі Unix Time Stamp. таким чином використовуючи автоматично обчислене час зміни поточної сторінки сайту.
Усе! Готово! Тепер нам залишається вставити отриманий код в розділ
. кожної сторінки сайту і насолоджуватися високою швидкістю завантаження сторінок і їх індексації пошуковими роботами.