Давайте сьогодні розглянемо таке питання: що таке Last Modified і If-Modified-Since, навіщо вони потрібен і як додати їх в WordPress.
Що таке Last Modified
Це один з відповідей сервера при відкритті будь-якої сторінки Вашого сайту. Він містить в собі дату останньої зміни сторінки в певному Unix-форматі.
Пошукові системи дивляться цей заголовок під час індексації перед тим, як завантажити сторінку і порівнюють з уже існуючою записом у них. Якщо нічого не змінилося - пошуковик пропускає сторінку і переходить до наступної. Якщо є зміни - він викачує її заново і перевіряє, що змінилося.
Що таке If-Modified-Since
Це заголовок, який посилає пошукова система, що містить дату останньої індексації сторінки. Наш сайт на цей заголовок повинен правильно зреагувати - віддати правильну відповідь. Якщо сторінка не була змінена за цей час - дати відповідь 304 Not Modified, який скаже пошуковій системі, що сторінка не змінювалася і можна переходити до наступної. У разі, якщо сторінка була оновлена - віддати відповідь 200 OK
Як же це впливає на індексацію?
Пошуковик за раз може пройти тільки певну кількість сторінок на Вашому сайті і, якщо він буде кожну викачувати і перевіряти на зміни, ліміт швидко закінчиться і частина сторінок він просто не встигне перевірити. В індекс потрапить значно менше нових сторінок, ніж могло бути. Особливо це актуально тоді, коли кількість сторінок переходить за тисячу.
Якщо пошуковик бачить, що зміни не було - він просто пропускає сторінку і відразу переходить до наступної.
- Таким чином він може за раз пройти більше сторінок
- Обсяг нових сторінок, що потрапляють в індекс, збільшується
- Навантаження на Ваш сайт знижується (тому що пошукач не викачує сторінки без змін)
- Пошуковик при сортуванні результатів видачі за датою почне показувати Ваш сайт
Ось, що пише у себе Яндекс з приводу Last Modified, якщо такий заголовок віддається:
- в результатах пошуку не відображатиметься дата поруч зі сторінками вашого сайту;
- час сортування за датою сайт не буде видно більшості користувачів
- робот не зможе отримати інформацію про те, чи оновилася сторінка сайту з моменту останнього індексування. А так як число сторінок, одержуваних роботом з сайту за один захід, обмежена, змінилися сторінки будуть переіндексувати рідше.
Висновок: віддавати заголовок Last Modified і правильну відповідь на If-Modified-Since в крайньому ступені бажано, якщо Ви не хочете проблем з індексацією.
Перевірити Ваш сайт можна за посиланням.
Як додати Last Modified?
Інтернет рясніє такого роду рішеннями:
Або копирсання в ядрі движка. Обидва варіанти не підходять. Пояснимо чому.
Перший варіант пропонується додавати в header.php. Які тут мінуси:
Чому необхідний If-Modified-Since?
При повторному відвідуванні Вашого сайту пошукова система додати до запиту заголовок If-Modified-Since і не отримавши відповіді 304 Not Modified - вона буде заново викачувати сторінку і порівнювати її. Одним Last-Modified не відбутися. Пошуковик повинен саме отримати відповідь на питання: «змінювалася чи сторінка з".
Як додати If-Modified-Since
Для цього потрібно дивитися наявність $ _SERVER [ 'HTTP_IF_MODIFIED_SINCE'] і порівнювати його з датою останнього зміни сторінки. Якщо зміни були - віддати відповідь 200, якщо змін не було - дати відповідь 304.
Як перевірити, чи працює у мене Last Modified?
Створіть у себе на хостингу файл з вмістом:
Відкрийте його в браузері і перевірте заголовки.
Де знайти правильне робоче рішення?
І все це ми упакували в одну з функцій нашого плагіна - Clearfy. Перевірте опис плагіна - це справжній комбайн корисних поліпшень Вашого блогу за мінімальною ціною.
Результат роботи плагіна Clearfy: