Установка модуля last modified в apache. If-Modified-Since и кеширование

В области поисковой оптимизации сайтов (SEO) гуляет вообще очень много разных мифов. Какие-то из них имеют под собой основу, какие вообще взялись не пойми откуда. В этой заметке рассмотрим один из них — использование заголовка ответа last-Modified.

Некоторое время назад к нам попал некий документ, озаглавленный «Рекомендации Ingate для веб студий по продвигаемым сайтам». И одна из «рекомендаций» была следующей:

После редизайна или на новом разрабатываемом сайте должна быть прописана дата последней модификации страниц сайта (Last Modified)

Для добавления на сайт на PHP информации о дате последней модификации страниц необходимо в самое начало исходного кода каждой страницы вставить скрипт

header ("Last-Modified: " . date("D, d M Y H:i:s", time()) . " GMT");
?>

Именно эта дикая ахинея, эта несусветная чушь и откровенно бредовый код и сподвигли меня написать эту заметку. Здесь я постараюсь объяснить, что такое Last-Modified, зачем он нужен и как его используют браузеры и поисковые машины.

Что такое Last-Modified

Веб-сервер при передаче информации клиенту (браузеры или поисковому роботу) сообщает довольно много дополнительных данных. Их можно посмотреть в консоли браузера, например:

настройте сервер на выдачу корректных заголовков ответов (например, если страница не существует, выдавать ошибку 404, а если поступил запрос If-Modified-Since, то выдавать код 304, если страница с указанной в запросе даты не изменялась).

Также можно увидеть, что если сервер никак не реагирует на условный запрос GET, то он ничем не отличается от обычного запроса. То есть, заголовок Last-Modified с текущим временем, к тому же и неправильно сформированным (привет Интегйту!) вообще не нужен!

Так нужен ли Last-Modified или нет?

Вообще нужен. Но важно понимать, что не сам заголовок играет какую-либо роль, а весь сценарий условных запросов, который должен быть реализован сайтом до конца. Именно в этом случае мы получим высокую скорость индексации сайта.

Но зачастую реализовать это в готовой CMS бывает весьма затруднительно. Возможно для этого потребуется довольно значительные изменения кода самой CMS.

Хотя для ряда CMS это можно реализовать включением кэширования страниц. Если CMS кэширует страницы, создавая и отдавая фактически статичные файлы, то сам веб-сервер будет правильно отвечать на условные запросы. Например, в WordPress это можно реализовать с помощью плагина WP Super Cache :

Проверим его в работе. Я включил этот плагин, открыл браузер в анонимном режиме и сделал два запроса одной страницы. Хорошо видно, что второй ответ правильный — 304 Not Modified:

Вместо заключения

Таким образом, мы разобрались с заголовком Last-Modified. Во-первых, он должен передавать информацию о дате и времени реального изменения документа. Во-вторых, крайне важна реакция сервера на условный запрос с заголовком If-Modified-Since.

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

Зачем настраивать заголовок Last-Modified. Давайте попробуем максимально быстро и просто разобраться с настройкой заголовка Last-Modified.

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

Цель этого заголовка — сообщить клиенту (браузеру или поисковику) информацию о последних изменениях конкретной страницы. Клиент передает серверу заголовок If-Modified-Since. Если изменений на странице не обнаружено, то от сервера возвращается заголовок «304 Not Modified». При этом страница не загружается.

Если же изменения вносились, то это будет учтено, и сервер вернет заголовок «200 OK» (страница загрузится с обновленным содержимым).

Корректная настройка Last-Modified дает следующие преимущества:

  • в результатах поиска отображается дата последнего обновления содержимого страницы;
  • страницы при сортировке в поисковике по дате занимают более высокие позиции;
  • существенно ускоряется индексация страниц.
  • Почему же роботы быстрее индексируют сайты с настроенным Last-Modified?

    Ответ прост: если на сайте было изменено всего 20 страниц, то роботу не нужно индексировать все 500 в поисках нового контента, поскольку Last-Modified укажет страницы с изменениями.

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

    Как настроить Last-Modified

    Для начала необходимо проверить, настроен ли у вас этот заголовок. Для этого можно использовать сервисы varvy.com , last-modified.com или tools.seo-auditor.com.ru . Если проверка показала отсутствие заголовка, то следует приступить к его настройке.

    Если у вас статический сайт, то для каждой страницы необходимо прописать код, который вы видите на экране:

    После каждого изменения содержимого вручную изменяем дату в коде. И что, каждый раз так, спросите вы меня? Да, если сайт статический.

    Если сайт динамический, то используем настройку в PHP. Часто встречается вот такой код:

    header(«Last-Modified: » . date(‘r’,strtotime($post->post_modified)))

    Его необходимо добавить в header.php. Но он будет работать только для записей и страниц и не будет срабатывать на главной. Также он недействителен для таксономий, архивов и учета новых комментариев.

    $LastModified_unix = 1294844676;

    $Last Modified = 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’);

    header(‘Last-Modified: ‘ . $LastModified);

    Также можно настроить заголовок, прописав две строки в файле.htaccess:

    RewriteRule .* —

    RewriteRule .* —

    Но в этом случае необходимо проверить, не возникнет ли проблем со стороны хостинга.

    Чтобы не прописывать коды, можно использовать готовые решения для настройки Last-Modified. Например, для CMS WordPress есть плагины Clearfy и Last Modified Timestamp. Настройку можно выполнить с помощью плагина WP Super Cache. Для этого в расширенных настройках активируйте пункт «Ошибка 304» (поддержка ответа 304 отключена по умолчанию, так как на некоторых хостингах могут возникать проблемы). Для других CMS также существуют свои плагины, ну или в крайнем случае, можно заказать плагин у программиста.

    Следует понимать, что настройка Last-Modified не всегда полезна (например, когда на каждой странице установлен «сквозной» блок информации с регулярно меняющимся контентом одинакового содержания). В этом случае поисковики могут перестать воспринимать информацию как новую и станут реже посещать ваш сайт.

    В остальных случаях, настроив Last-Modified, вы получаете:

    • экономию трафика;
    • ускоряете работу сайта;
    • выполняете рекомендации поисковиков Google и Яндекс, что значительно ускоряет индексацию и повышает видимость страниц в поиске. Особенно хорошо это заметно на ресурсах с большим количеством страниц.

    Смысл if modified since заключается в том, что поисковик (в интернетах пишут что и браузеры сегодня такое умеют, не проверял) заходя на страницу считывают заголовок last modified (время последнего изменения документа) . При следующем обращении поисковик посылает запомненную дату, задача сайта проверить не обновилась ли страница с предыдущего раза и в случае совпадения дат ответить заголовком 304 Not Modified и остановить выполнения скрипта. Данные заголовки увеличат скорость переиндексации сайта.

    Как добавить заголовок if modified since

    Если у вашего сайта ещё нет заголовка if modified since , внесите правку в файл:
    /inc/_func.php найдите (~220+ строка)

    } if(!getvars()){ ... } Добавьте ниже чтоб получилось так: } if(!getvars()){ ... }else{ $a=array(); if(isset($a[$g->item(0).$g->item(1).$g->item(2)])) $t=time();//TIME;//в более поздних else{ $t=filemtime($g->file); if(isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"])>=$t){ header("HTTP/1.1 304 Not Modified"); die(); } } header("Last-Modified: ".gmdate("D, d M Y H:i:s \G\M\T",$t)); }

    Если на сайте есть динамические разделы: отзывы, каталог товаров итп. добавьте их названия в массив $a, взять можно из адресной строки браузера или в разделе панели управления править меню --> ссылка.

    $a=array("reviews"=>1); $a=array("reviews"=>1,"catalog"=>1);

    Как проверить 304 not modified и if modified since

    1) Проверить заголовки 304 not modified и if modified since можно при помощи сервиса проверка ответа сервера в яндекс вебмастере https://webmaster.yandex.ru/server-response.xml . Поставьте галочку "добавить заголовок If-Modified-Since" и поставьте там дату час тому назад должен выдать Код статуса https: "304 Not Modified". Далее установите дату на сутки назад - получим статус Код статуса https: "200 OK". Ура всё работает.
    Само собой страница тестирования должна быть изменена перед проверкой.


    2) Способ попроще https://last-modified.com/ru/if-modified-since.html . Вставляем адрес и вуаля, там всё по русски напишет чего найдено чего не найдено.

    304 not modified не найден

    Заголовок http if modified since будет найден в любом случае, а вот статус второго может оказаться таким: 304 not modified не найден , по 2-му способу проверки, по 1-му в яндексе он просто 200-й покажет.
    Скорее всего проблема в том что через проксирующий сервер nginx 304 last modified не передаются заголовки или Apache не передаёт.

    Я не наблюдаю такой проблемы сейчас, с Apache 2.2.27, но на всякий случай для связки Apache + php решается это двумя способами, если php установлен не как cgi:

    Htaccess в самом низу приводим к виду: 1) Только в php RewriteRule (.*) index.php?q=$1 2) На все фалы RewriteRule (.*) index.php?q=$1 RewriteRule .* - #RewriteRule .* -

    304 not modified nginx

    Здесь немного сложнее, чтобы передавался заголовок back-end-у необходимо ему от этом сообщить. Если nginx работает как проксирующий сервер я бы сперва попробовал переключить на HTTP 1.1 - proxy_http_version 1.1; Nginx с Apache по умолчанию взаимодействуют по 1.0. Но к примеру на одном из моих серверов я так и не смог этого добиться за разумное время, в качестве проксирующего для отдачи статики стоял модуль к сипанели Nginx Admin (v4.8 Stable). Решил просто удалением модуля с front-end-ом.

    Location / { chunked_transfer_encoding off; proxy_http_version 1.1; proxy_pass https://localhost:9001; proxy_buffering off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:9001; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Upgrade websocket; #? }

    Если же речь идёт об отдельном сервере под сайт, то конфигурации могут быть разными:

    Location ~ \.php$ { if_modified_since off; #На сайте nginx кто-то там писал что # для скриптов это и так отключено, данный флаг отключает внутреннюю проверку, пробуйте.. fastcgi_pass fcgi; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /путь/web$fastcgi_script_name; fastcgi_pass_header Last-Modified; include fastcgi_params; }

    В данный момент мне негде поэкспериментировать, так что отправляю дальше в гугл ищите:

    Proxy_set_header If-Modified-Since $http_if_modified_since; proxy_pass_header If-Modified-Since; fastcgi_param If-Modified-Since; underscores_in_headers on; ignore_invalid_headers off;

    Если у кого есть работающие конфигурации пишите на почту выложу.

    Заголовки Last-Modified и If-Modified-Since для WordPress

    Мало кто обращает внимание на HTTP заголовки Last-Modified и If-Modified-Since при оптимизации своего сайта, а зря! Важно, чтобы страница, контент которой не менялся с последнего визита поискового робота отдавала 304 код, который собственно и говорит о том, что данная конкретная страница ничем не дополнялась – Вы не редактировали и не дополняли текст, к этой записи не добавлялись комментарии и т.п.

    Если данный http-заголовок отсутствует, то в Яндексе, при сортировке результатов по дате, сайт не будет виден большинству юзеров.

    Именно поэтому важно, чтобы Вы не только его правильно настроили, но и каждый раз, когда редактируете запись, обновляли дату на текущую. Это нужно будет делать вручную.

    С комментариями попроще: когда посетитель добавляет комментарий, то в переменную $last_modified_time время добавления комментария заносится автоматически - это и будет датой последнего изменения страницы.

    Зачем нужны заголовки Last-Modified и If-Modified-Since?

    1. Когда сервер отдаёт такой код, то выполнение всех PHP сценариев на странице даже не запускается. Страница загружается из кэша поиска, а это, как Вы понимаете, весьма существенно снижает нагрузку на сервер к вящей радости Вашего хостера и ускоряет загрузку страницы у посетителя, что тоже не может не радовать.

    Как это происходит?

    Сканируя интернет, пауки Google и Яндекса сохраняют в своей базе копию каждого сайта. Эта копия служит неким образцом для сравнения: все ли по-прежнему или произошли изменения. И если не настроены заголовки Last-Modified и If-Modified-Since или настроены неправильно, новые страницы сайта проходят индексацию, а главная в кэше поисковиков долго не обновляется, как не обновляется и лента комментариев.

    Но для часто обновляемых страниц (новостных лент, обновляемых по многу раз в сутки, активно комментируемых блогов и т.п.) у него есть один недостаток: информация в кэше слишком быстро устаревает и человек, даже перезагружая страницу, не видит свежих новостей, не видит новых комментариев. Но это еще полбеды. Беда в том, что робот этого тоже не видит, если только не включен правильный заголовок Last-Modified.

    header("Last-Modified: ".gmdate("D, d M Y H:i:s ")."GMT");

    Если Ваш сайт обновляется часто (например, Ваши записи часто комментируют) можно отключить кеширование следующим набором заголовков:

    header("Expires: ".gmdate("D, d M Y H:i:s", time() + 7200)." GMT");

    Это означает, что действительность сохранённой копии должна перепроверяться при каждом запросе.

    Как работает кэширование в браузерах?

    Если оно не запрещено вызовом функции no_cache , то в Firefox и в IE страница сохраняется в кэше, при всех последующих запросах выдается именно она.

    Чтобы обновить страницу и получить ее свежую версию, нужно нажать комбинацию клавиш Ctrl + F5 , обычная кнопка «Обновить» (F5) не срабатывает. И надо сказать, документы в кэше IE могут храниться очень-очень долго.

    В Опере страница кэш очищается по нажатию кнопки «Обновить» или клавиши F5. Сочетание CRTL+F5 в Опере - перезагрузка всех открытых вкладок, Как Вы понимаете, если Вы их много наоткрывали – в процессе ожидания у Вас может отрасти борода.

    Если запретить кэширование страницы функцией no_cache , то Опера и Firefox при обращении к такой странице используют механизм с заголовком If-Modified-Since . Таким образом, кэширование происходит, но браузер спрашивает у сервера, изменилась ли страница на самом деле, или нет – это правильная постановка вопроса.

    Следовательно, нужно подключить обработку и этого параметра. Я не буду расписывать, что и какая функция означает, просто приведу код, который корректно отдает заголовки и не вызывает конфликтов на большинстве хостингов, с которыми мне приходилось работать. Эта конструкция работает на sweb.ru, eomy.net, timeweb.ru, fastvps.ru, startlogic.com

    header("Expires: ".gmdate("D, d M Y H:i:s", time() + 7200)." GMT");
    header("Cache-Control: no-cache, must-revalidate");
    $mt = filemtime($file_name);
    $mt_str = gmdate("D, d M Y H:i:s ")."GMT";
    if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) &&
    strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) >= $mt)
    {header("HTTP/1.1 304 Not Modified");
    die;
    }
    header("Last-Modified: ".$mt_str);
    echo $text;
    header("Vary: Accept-Encoding");
    header("Accept-Encoding:gzip,deflate,sdch");
    ?>

    Таким образом, все, что Вам нужно сделать, это скопировать данный код и добавить его в файл header.php Вашей темы оформления НАД . Т.е. этот код – находится в самом верху файла ДО всего остального кода


    Внимание! Прежде чем что-то добавлять – сохраните этот файл у себя на компьютере, чтобы можно было восстановить первоначальный вариант, если Ваш не позволяет такую конфигурацию заголовков.

    Проверяем результат на сервисе проверки заголовков Last-Modified и If-Modified-Since http://last-modified.com/ru/if-modified-since.html


    • Если результат положительный – утираем пот со лба и идем пить чай.
    • Если результат отрицательный, ту же конструкцию можно добавить в файл index.php в корне Вашего WordPress (с этим я столкнулась на хостинге timeweb.ru). Точно так же, выше всего остального в нем. Только не забудьте про это, когда будете обновлять – индексный файл перезапишется в стандартном его виде.

    Вуаля! Правильно настроив заголовки Last-Modified и If-Modified-Since, мы получили кучу бонусов:

    • Увеличили скорость загрузки страниц, что важно для робота Google и приятно для людей.
    • Снизили нагрузку на сервер, чем порадовали хостера.
    • В поисковой выдаче Яндекса будет отображаться дата последнего обновления страницы, что в отдельных случаях очень актуально для людей, а потому косвенно это положительно отразится на поведенческих факторах.
    • Страницы нашего сайта будут участвовать в сортировке поисковых систем по дате – да-да, этим пользуются продвинутые пользователи.
    • И, как следствие всего вышесказанного, весьма ускорится индексирование нашего сайта поисковиками.

    В этой статье мы будем настраивать важнейший заголовок ответа сервера - Last-Modified, благодаря чему нагрузка на сервер снизится на 20-30%, а индексация вашего сайта ускорится в разы. Также мы научим ваш сервер выдавать 304 ошибку, в случае, когда поисковый робот обращается к вашему сайту с заголовком If-Modified-Since.

    Зачем нужен заголовок Last-Modified

    Прежде всего хотелось бы обсудить значимость заголовка Last-Modified. Но, как показывает практика, наряду со своей чрезвычайной значимостью и необходимостью, этот заголовок почему-то повсеместно забывается и совершенно несправедливо недооценивается. Если вы почитаете рекомендации поисковых систем, в которых четко и открыто говорится и важности передачи в заголовках Last-Modified (даты последнего изменения той или иной страницы), то у вас не останется никаких сомнений, что это обязательно нужно сделать и чем быстрее, тем лучше. Особенно это касается ресурсов с большой и средней посещаемостью, с регулярно пополняемым контентом. Статичные сайты с 10 страницами могут обойтись и без этого, хотя данная функция никак отрицательно не скажется и не помешает.

    Заголовок Last-Modified содержит в себе дату и время по Гринвичу, когда страница последний раз изменялась. У каждой страницы своя дата. Практически любые из существующих CMS сейчас сохраняют дату редактирования страниц или записей, также дата обновления страницы изменяется, когда кто-либо оставил индексируемый комментарий (все зависит от ваших конкретных настроек). Только вот почему-то далеко не все современные системы администрирования предусматривают отправку той самой даты изменения страницы в виде заголовка и уж, тем более, никак не реагируют на получаемый заголовок If-Modified-Since, но об этом чуть позже.

    Дело в том, что поисковый робот может довольно часто заходить на регулярно обновляемый сайт и сканировать его страницы в порядке приоритета, иногда даже приходится выставлять параметр Crawl-delay в robots.txt, чтобы немного умерить пыл излишне активных роботов, перегружающих несчастный сервер, а иногда, наоборот, люди месяцами напряженно работают, не видя никаких результатов, лишь бы только увеличить частоту посещения сайта поисковым роботом . Если такой сайт не сообщает поисковому сканеру о том, когда какие страницы последний раз изменялись и изменялись ли они вообще со времени прошлого визита, сканер в свою очередь проходится по страницам снова и снова, так как будто они изменились, хотя это может быть и не так. А так как количество загружаемых страниц за один заход поискового бота ограничено, он может просто не добраться до ваших новых статей и уйти восвояси, израсходовав лимит на старые страницы, которые и вовсе не обновлялись. Несомненно, рано или поздно сканер все-таки доберется и до новых страниц, но это будет гораздо позже. Это нужно запомнить как аксиому, а кто не верит, читает на сайте Яндекса о last-modified .

    То же самое касается и обычных посетителей сайта, ведь если ваша старая статья находится в локальном кеше, а сервер не отправляет заголовок 304 Not Modified, то она будет грузиться снова и снова, каждый раз с нуля, тем самым нагрузка на сервер будет выше. Если же со времени последнего посещения какой-то страницы и добавления ее в кеш ничего не изменилось, нужно, чтобы ваш сервер отправлял в ответе заголовок 304 Not Modified и прекращал дальнейшую генерацию страницы. Зачем каждый раз подгружать старые страницы, если на них ничего не изменилось? Их содержание можно взять из кеша. Элементарно и эффективно!

    Ответ сервера на заголовок If-Modified-Since

    Мы плавно подошли с вами ко второму, не менее важному моменту - реакции вашего сервера на посылаемый поисковыми ботами заголовок If-Modified-Since. Делают они это для того, чтобы проверить, изменялась ли ваша страница со времени последнего посещения и собственно передают в заголовке это самое время. Ваш сервер в таком случае должен сопоставить время последнего обновления страницы, к которой обратился бот и время ее последнего посещения, которое он вам сообщает. Если с тех пор ничего нового на странице не появилось, сервер должен ответить заголовком 304 Not Modified и остановить передачу данных, выйдя из исполняющего скрипта (в случае с PHP - это функция exit ). Получив 304 ответ, поисковый робот поймет, что делать тут пока больше нечего и пойдет на следующую страницу, тем самым экономя уйму времени.

    Благодаря этому индексация вашего сайта значительно ускоряется, а также снижается ненужная нагрузка на сервер.

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

    PHP-функция

    Итак, давайте перейдем непосредственно к делу и рассмотрим функцию, разработанную нашими специалистами и успешно оттестированную на нескольких сайтах:

    Function lastModified($gmdate) { $IfModifiedSince = false; if (isset($_ENV["HTTP_IF_MODIFIED_SINCE"]) or isset($_SERVER["HTTP_IF_MODIFIED_SINCE"])) { $IfModifiedSince = strtotime(substr(($_ENV["HTTP_IF_MODIFIED_SINCE"] ? $_ENV["HTTP_IF_MODIFIED_SINCE"] : $_SERVER["HTTP_IF_MODIFIED_SINCE"]), 5)); } if ($IfModifiedSince && $IfModifiedSince >= strtotime($gmdate)) { header($_SERVER["SERVER_PROTOCOL"]." 304 Not Modified"); exit; } header("Last-Modified: ".$gmdate); }

    Хочется подчеркнуть, что функция в качестве единственного аргумента принимает дату и время по Гринвичу - gmdate() , а не date() , просьба не путать, пожалуйста. Принимаемый функцией аргумент - это и есть дата и время последнего изменения страницы. То, где вы будете ее брать - зависит от системы администрирования, вот, например, в WordPress ее можно получить так:

    $WordpressPageLastModified = get_the_modified_date("r");

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

    $StaticPageLastModified = gmdate("D, d M Y H:i:s \G\M\T", filemtime($_SERVER["DOCUMENT_ROOT"]."/index.php"));

    В данном случае мы используем функцию filemtime() , которая возвращает время последнего редактирования файла в формате Unix time.

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

    Проверка ответа сервера

    В интернете есть несколько сервисов проверки ответа сервера, но, как оказалось, не всех из них делают это корректно и не все позволяют отследить поведение вашего сервера в ответ на передаваемый заголовок If-Modified-Since, а нам то нужно убедиться, что сервер отправляет заголовок 304 Not Modified, если страница не обновлялась с момента последнего посещения.

    Проверить ответ сервера можно и на нашем сайте, но для наиболее полной картины мы все-таки рекомендуем воспользоваться официальным сервисом Яндекса . Там вы сможете указать все необходимые заголовки, а также выбрать фиктивное время последнего посещения. Так же Яндекс позволит вам выбрать тип поискового бота, но для использования этого инструмента необходимо добавить и подтвердить права на управление сайтом в Яндекс.Вебмастере, что вообще, честно говоря, нужно всегда делать первым делом.



    Есть вопросы?

    Сообщить об опечатке

    Текст, который будет отправлен нашим редакторам: