Перейти к основному содержанию

Твой сервер отдает запрос с параметром: If-Modified-Since, корректно?

Опубликовано: сб, 06.02.2021 - 13:41
KonKin - автор блога.

Проверь ответ своего сервера на этом сервисе. Один из простейших способов сбросить свой сайт на дно поисковой выдачи — некорректно передавать данные поисковым системам. Обмани Гугл раз, обмани два, и на третий он к тебе уже не зайдёт.

Поисковая система экономит ресурсы своего сервера, обходя твой сайт стороной. А сам сайт постепенно теряет позиции.

Частая и очень критичная ошибка — неправильно настроенный HTTP заголовок Last-Modified и отклик на запрос If-Modified-Since. В этой статье разберёмся почему это важный параметр и как с ним работать.

За что поисковик тебя возненавидит

Любой поисковый бот, хоть Гугл, хоть Яндекс — это программный код, который выполняется серверами поисковых систем. На этих же серверах хранятся данные про каждый индексированный сайт. 

Каждый раз, когда поисковая система заходит к тебе, на севере сохраняются запрошенные страницы. Так формируется поисковый индекс.

Как всё это работает?

Принцип работы поисковика прост. Он делает то же, что бы сделал обычный человек: заходит на сайт и начинает переходить по ссылкам. Он внимательно смотрит и запоминает как куда-то перейти, как обратиться на ту или иную страницу.

Этот процесс называется сканированием, после чего страницы добавляются в индекс. Если всё гладко — сканирование проходит быстро и без лишних нагрузок. Но если с твоим сайтом что-то не так, любовь закончится быстро.

Поисковику необходимо хранить актуальную и максимально свежую информацию. Но ему совершенно невыгодно делать лишние бессмысленные действия.

Чтобы постоянно получать свежие данные, сервер заходит на сайт и проверяет изменения. Если появилось что-то новое — обновляет данные своего кэша. 

Каждая такая проверка отнимает ресурсы. И чем крупнее сайт, тем больше ресурсов требуется. 

Когда поисковик заходит на сайт на котором нет изменений, он впустую тратит свои ресурсы. Чтобы такая ситуация не повторялась, сайт помечается как нечестный. 

Как легко потерять доверие Гугла

Существуют миллионы, десятки миллионов сайтов. Впустую перепроверять каждый на наличие изменения — нерациональная трата ресурсов. 

Поэтому прежде чем повторно посетить сайт, поисковик отправляет запрос If-Modified-Since. Это позволяет сверить текущие данные с данными сохраненной страницы. Если на сайте более свежая версия — он отправляется на поиски изменений.

А теперь представь, что поисковая система получила ответ на запрос и пошла на твой сайт. Но на самом деле оказывается, что никаких изменений не произошло. Смысла в переиндексации нет, это были впустую потраченные силы.

В результате поисковик считает что у тебя вышла новая статья или изменилась существующая. Но оказывается, что материал абсолютно тот же. Слово в слово.

На тебя ставится клеймо обманщика. Нет смысла заходить на сайт, если натыкаешься на те же версии страниц. Сайт обречен, гугл на него больше не заходит., снижает частоту посещения. Меньше обновлений, медленней растут позиции.

Даже если ты что-то изменил на сайте, добавил статью или сделал новый раздел в старой, поисковик об этом не узнает. Гугл считает что твой сайт врет.

Это работает и наоборот. Если If-Modified-Since постоянно даёт корректный ответ, поисковик чаще проверяет и посещает сайт. Ему выгодно максимально эффективно расходовать ресурсы, поэтому выбирает те сайты, посещение которых будет наверняка не впустую.

Почему If-Modified-Since даёт неверный ответ? Из-за того что сервер настроен некорректно и при каждом сохранении документа обновляется дата. Даже если не было никаких изменений.

Почему настройка важна даже когда с поисковиком все ок

Для СЕО-шника, конечно, важнее всего поисковая выдача. Но правильная настройка Last-Modified и ответа на запрос If-Modified-Since отражается и на производительности твоего сайта.

Проверка последнего изменения страницы происходит всегда. Не важно, кто её посещает — поисковик или реальный человек. Если всё это дело работает «на костылях», то страницы будут грузиться медленней. И, наоборот, правильная настройка поможет ускорить загрузку на 30% и более процентов.

Это архиважно если у тебя сайт с высокой посещаемостью. Например, интернет-магазин, новостной портал или форум. Огромное количество людей ежедневно ходит по твоим страничкам, и тебе нужно, чтобы сервер справлялся с нагрузкой. Лишние движения тут только помешают. 

Давай рассмотрим на примере, чтобы тебе было более понятно.

Допустим, у тебя есть интернет-магазин. Сегодня анонсирован выпуск лимитированного набора и тысячи клиентов жаждут получить его. Количество ограничено, опоздать не хочется, поэтому они раз за разом обновляют страницу в надежде успеть сделать заказ.

Если у тебя неправильно настроен заголовок Last-Modified, страница будет постоянно прогружаться заново. Каждый раз, при каждом нажатии F5, твой сервер будет передавать данные, хоть в этом и нет нужды.

Если же у тебя с Last-Modified всё в порядке, сервер будет просто выдавать ответ 304 Not Modified. Никакой повторной прогрузки страницы, никаких лишних затрат ресурсов.

Как проверить сайт

Многие владельцы сайтов даже не догадываются о том что с их порталом что-то не то. Поисковые позиции падают, посещений всё меньше и меньше, но почему — непонятно.

Даже если ты уверен, что уж с твоим-то сайтом всё отлично, советую перестраховаться. Благо ты можешь воспользоваться сервисами для проверки If-Modified-Since.

Если с твоим порталом что-то не то — ты сразу об этом узнаешь. Останется только пофиксить настройки и ждать, когда поисковик увидит что ты исправился и снова тебя полюбит.

Как настраивать If-Modified-Since

Тонкость настройки http-заголовков и отклика сервера во многом зависит от того, где размещён твой сайт. Скажу сразу — не все хостинги дают достаточно свободы для корректной настройки всех параметров. По-настоящему грамотно организовать всё можно только на своём выделенном сервере. 

Другой камень преткновения — техническая сторона. Для того чтобы скорректировать работу сайта нужно уметь кодить. Без этого, к сожалению, не обойтись.

Единственное исключение, о котором я знаю, — это WordPress. В нём можно установить плагин для настройки нужных нам заголовков. Это либо ClearfyPRO, либо if modified since. Искать их лучше напрямую на сайте WordPress, а не через админку.

Для Drupal 8 я использую вот этот модуль: lastmodified_since. Просто включаешь его и все работает.

Впрочем, вариант с кодингом для WordPress тоже подходит. Главное — не лезь в ядро! Ты можешь наткнуться на подобные советы в интернете, но ты рискуешь создать кучу конфликтов: с сервером, плагинами, шаблоном и т.д. 

Что делать? Можно посоветоваться с экспертом или найти инструкцию и попытаться сделать всё самостоятельно. Но я тебе рекомендую нанять человека, который сделает из твоего сайта конфетку. Ты ещё не раз будешь благодарен себе за это единоразовое вложение.

Если ты хочешь чтобы сайт прочно держался на своих позициях, а, может быть, и рос в поисковой выдаче — позаботься о корректной настройке заголовков. Даже если сейчас с позициями в поиске всё в порядке.

Может ты подумаешь, что стоит и вовсе отказаться от Last-Modified. Но это тоже не лучшая идея. Как минимум поисковик не будет знать дату создания страницы. А это значит, что при сортировке по дате пользователи просто не увидят твой ресурс. Мы же с тобой не к этому стремимся?

Один раз правильно настроенный заголовок — один из факторов успешного продвижения сайта.

Category

Добавить комментарий

Ограниченный HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.