Як налаштувати last-modified

От не було у мене печалі, поки не встановив собі сьогодні плагін Seo Scan. Хороший плагін, який показує, що може не сподобатися google в вашому сайті і сервері. І мій сайт де в чому не сподобався точно - це відсутність last-modified.

Трохи теорії, сам тільки сьогодні про це дізнався. Last-modified - це http заголовок, який посилає сигнал про те, чи були на такій-то сторінці зміни чи ні, посилаючи відповідь If-Modified-Since з кодом 304. Як то так.

Хоча без усього цього сайт буде індексуватися, як каже Яндекс, але є й істотні мінуси при відсутності цього заголовка:

  • в результатах пошуку не відображатиметься дата поруч зі сторінками сайту;
  • час сортування за датою сайт не буде видно користувачам;
  • робот не зможе отримати інформацію про те, чи оновилася сторінка сайту з моменту останнього індексування. А так як число сторінок, одержуваних роботом з сайту за один захід, обмежена, змінилися сторінки будуть переіндексувати рідше.

Як бачите, мінусів багато, і в першу чергу - це не дуже спритна індексація і переіндексація сайту. Тобто, ви внесли до статті КОРИСНЕ зміна, а я їх зараз роблю багато кожен день, а Яндекс і Google можуть побачити це тільки через пару місяців! Ні, такий хокей нам не потрібен, тепер я розіб'юся в коржик, а виправлю цей недолік!

Як перевірити last-modified?

Перевірити можна різними способами, в wordpress найпростіше - це встановити вищезгаданий плагін Seo Scan. у мене він видав таке:

Як налаштувати last-modified
Швидкість сервера теж барахлить, але це інша історія, потім поколупатися і з цим. Можна так само перевірити last-modified через сервіс з однойменною назвою last-modified.com

Як налаштувати last-modified
Як бачите, і тут показує відсутність відповіді If-Modified-Since - Last Modifed не знайден! А можна використовувати сервіс Яндекса Перевірка відповіді сервера

Як налаштувати last-modified
Тут те ж саме - Код статусу HTTP: "304 Not Modified" - значить не працює система. Хоча через якийсь час явна помилка пропала, але код відповіді 304 так і не з'явився.

Відразу стало цікаво, а у кого-то хоч це працює? Вирішив перевірити це у тих блогерів, які самі писали мануали на цю тему:

Як налаштувати last-modified
Так, у хлопця з ТОПу по цьому запиту Last-Modified знайдений, а значить це можливо і для мене. До речі, в його статті перераховуються багато способів настройки Last Modified, спробуємо і їх, хоча я знайшов і інші.

Як налаштувати last-modified?

Буду описувати всі способи, які спробував і відразу говорити, запрацювало у мене чи ні. Але майте на увазі, що якщо не запрацювало у мене, то це не означає, що не запрацює у вас.

1. Перший спосіб - установка плагіна

Найпростіший спосіб для тих, у кого WordPress - це встановити плагіни, для цього призначені, наприклад: Add Headers, If Modified Since або If Modified Since Header.

У мене жоден з цих доданків не дав результату, не знаю чому. Може запрацює у вас?

2. Другий спосіб - PHP код

Сервіс last-modified.com. описаний вище, пропонує в файл header.php, в самий початок, помістити такий php код:

Мені це теж не допомогло. Пропоную так само спробувати розмістити його в файлі index.php в корені сайту, але мені і це не допомогло.

3. Третій спосіб - запис в .htaccess

Якщо у вас сервер на Apache, то швидше за все у вас це запрацює. Потрібно в файл .htaccess в корені сайту вставити код:

У мене не запрацювало, так як у мене стоїть зв'язка Ngnix + Apache і всі ці маніпуляції з .htaccess найчастіше не спрацьовують.
Після всіх цих мук подумав: а чого це я один мучуся? Напишу як в службу підтримки хостингу, там люди грамотні, може підкажуть? Написав, сиджу чекаю.

Прийшла відповідь від техпідтримки:

Все просто. Сторінки вашого сайту генеруються php-скриптами які не видають браузеру цей заголовок.
Веб-сервер (nginx) для статичних файлів (jpg, gif, css, js і т.д.) видає в заголовку last-modified дату внесення останніх змін. Приклади на скріншотах.
Якщо у вас немає дуже великої відвідуваності сайту то кешувати сторінки сайту на стороні браузера немає сенсу.

Як налаштувати last-modified

P.S. Вирішив проблему просто: відключив ngnix, залишив тільки apache, все запрацювало, в продуктивності різниці не помітив.

Сподобалася ГРА? Візьми КОД. постав собі на сайт і поліпшити поведінкові чинники!