Як налаштувати last-modified
От не було у мене печалі, поки не встановив собі сьогодні плагін Seo Scan. Хороший плагін, який показує, що може не сподобатися google в вашому сайті і сервері. І мій сайт де в чому не сподобався точно - це відсутність last-modified.
Трохи теорії, сам тільки сьогодні про це дізнався. Last-modified - це http заголовок, який посилає сигнал про те, чи були на такій-то сторінці зміни чи ні, посилаючи відповідь If-Modified-Since з кодом 304. Як то так.
Хоча без усього цього сайт буде індексуватися, як каже Яндекс, але є й істотні мінуси при відсутності цього заголовка:
- в результатах пошуку не відображатиметься дата поруч зі сторінками сайту;
- час сортування за датою сайт не буде видно користувачам;
- робот не зможе отримати інформацію про те, чи оновилася сторінка сайту з моменту останнього індексування. А так як число сторінок, одержуваних роботом з сайту за один захід, обмежена, змінилися сторінки будуть переіндексувати рідше.
Як бачите, мінусів багато, і в першу чергу - це не дуже спритна індексація і переіндексація сайту. Тобто, ви внесли до статті КОРИСНЕ зміна, а я їх зараз роблю багато кожен день, а Яндекс і Google можуть побачити це тільки через пару місяців! Ні, такий хокей нам не потрібен, тепер я розіб'юся в коржик, а виправлю цей недолік!
Як перевірити last-modified?
Перевірити можна різними способами, в wordpress найпростіше - це встановити вищезгаданий плагін Seo Scan. у мене він видав таке:



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

Як налаштувати 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 дату внесення останніх змін. Приклади на скріншотах.
Якщо у вас немає дуже великої відвідуваності сайту то кешувати сторінки сайту на стороні браузера немає сенсу.

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