If modified since битрикс. Блог в котором есть много интересной информации…

If modified since битрикс. Блог в котором есть много интересной информации…

Every day Yandex indexes millions of pages and adds them to the search database. To avoid filling it with documents that will never show up in the search results, Yandex analyzes each document using a special algorithm.

If the algorithm determines that the page is unlikely to become one of the most relevant answers for any search, the page isn"t included in the current search database.

Thus, not all the indexed documents can be seen in the Yandex search results. The removal of the page from the search database doesn"t affect the page or the site traffic, because this page wouldn"t appear in the search anyway.

In addition, Yandex continues reindexing and analyzing these documents in the same way as others. If at some point the algorithm reveals that the page can get into the search results, it will be added to the search engine database.

What is a page duplicate?

Page duplicates are site pages that have identical content but different URLs.

  • http://example.com and http://example.com/index.php/ ,
  • http://example.com/page/ and http://example.com/page .

If both pages are indexed by the Yandex robot, the indexing system groups them as duplicates. Only one of the pages is listed in the search results.

There are many reasons why duplicate pages may come up:

  • Natural reasons (for example, if a page with a product description is available in several categories of an online store).
  • Issues related to incorrect site structure.

To have the right page in the search results, we recommend that you indicate it for the Yandex robot. Here"s how you can do it:

  • Set up a 301 redirect from one duplicate page to another. In this case the search will register the target of the redirect.
  • Specify the preferred (canonical) URL for the page to be included in the search.

My site has moved (the URL changed). What should we do?

If the old and new site pages are exactly the same, the server should respond with a 301 error (“Moved Permanently” ) when the old page is requested . The Location field should contain the new site"s URL. If the old site has been shut down, you can speed up its removal from the index by filling in this form: Remove URL .

You overloaded my server. Please stop.

You are trying to download confidential information from our server. What should we do?

The robot takes links from other pages. This means that that some other page contains links to confidential sections of your site. You can either protect them with a password or disallow indexing by the Yandex robot in the robots.txt file. In both cases, the robot won"t download confidential information.

How do I protect myself from the fake robots that pretend to be the Yandex robots?

Your robot tries to download my site pages using broken links. Why?

The robot takes links from other pages, which means that one of them contains broken links to your site. Perhaps you changed the site structure and the links on other sites became broken.

What does the robot do if there"s a redirect on the page? What if I use the refresh directive?

When the Yandex robot receives a respond with the 3xx code heading (which means the URL is a redirect), it adds the redirect"s target URL to its crawling list. If it is a constant redirect (301 code or the page contains a refresh directive), the old URL is excluded from the crawling list.

My page is regularly missing from the search results. What"s the problem?

If the robot gets an error when contacting a page (for example, due to unstable hosting), it removes the page from the search until the next successful contact.

Can I manage reindexing frequency with the Revisit-After directive?

No. The Yandex robot ignores it.

Which data transfer protocols are supported for indexing?

Right now, Yandex supports two protocols: HTTP and HTTPS.

How do I tell the robot that it should index pages with or without a forward slash ("/") at the end of the URL?

For the Yandex robot, pages with a “/” at the end of the URL are different from those without it. If the pages are identical, set up a 301 redirect from one page to the other (you can set it in the htaccess file) or indicate the

Зачем настраивать заголовок 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 и Яндекс, что значительно ускоряет индексацию и повышает видимость страниц в поиске. Особенно хорошо это заметно на ресурсах с большим количеством страниц.

    За что я люблю PHP, так это за то, что гениальные вещи на нем пишутся в несколько строчек. В этой заметке я продолжу рассуждать о правильном использовании заголовков в PHP. Если вам не всё равно, как индексируется поисковиками ваш сайт, если вы хотите сэкономить трафик, вы нашли именно то, что нужно.

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

    Для каждого документа, отдаваемого сервером, желательно выдавать заголовок Last-Modified (в том числе для правильной индексации, например, Яндексом):

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

    Для часто обновляемых страниц (я не говорю «динамических», так как страница может каждый раз собираться интерпретатором PHP, но фактически изменяться крайне редко) можно запретить кеширование следующим набором заголовков:

    Function no_cache() { header("Expires: Mon, 26 Jul 1997 00:00:00 GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); }

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

    $mt = filemtime($file_name); $mt_str = gmdate("D, d M Y H:i:s", $mt)." 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;

    В операторе if мы не использовали проверку на равенство $_SERVER["HTTP_IF_MODIFIED_SINCE"] == $mt_str , а преобразовали дату вида Sun, 28 Jan 2007 07:56:48 GMT в формат unixstamp и сравнивали с датой изменения оригинального документа. Это нужно для решения двух проблем.

    Дело в том, что последние версии Opera и Firefox исправно копируют содержимое заголовка Last-Modified ответа сервера в заголовок запроса If-Modified-Since (именно поэтому нам нужно было установить Last-Modified), и проверкой на равенство вполне можно было бы обойтись. Но, как всегда, не обошлось без капризов IE 6. Он к заголовку If-Modified-Since добавляет параметр length , в чем и заключается первая проблема. Ее можно решить применением функции strpos , если бы не вторая проблема - хитрости поисковых роботов. Все они (кроме робота Рамблера, который действует по описанной выше схеме) в заголовке If-Modified-Since (если вообще его используют) передают не значение из Last-Modified , а дату последнего скачивания документа. В такой ситуации уже нельзя обойтись без упомянутого перевода дат в unixstamp (что и делает функция date2unixstamp).

    Как же работает кеширование в браузерах? Если оно не запрещено вызовом функции no_cache , то в Firefox и в IE страница сохраняется в кеше, при последующих запросах выдается только она. Чтобы обновить страницу в кеше, нужно нажать комбинацию клавиш Ctrl + F5 , обычная кнопка «Обновить» (F5) не помогает. Нужно отметить, что документы в кеше IE могут храниться очень долго. В Опере страница загружается из кеша при повторном переходе на нее по ссылкам, но кеш очищается по нажатию кнопки «Обновить» или клавиши F5. Следует быть аккуратным, так как CRTL+F5 в Опере - перезагрузка страниц со всех вкладок, которая может затянуться надолго при их большом числе.

    Если запретить кеширование страницы функцией no_cache , то Опера и Firefox при обращении к такой странице используют механизм с заголовком If-Modified-Since , и это правильно. То есть кеширование всё равно происходит, но браузер спрашивает у сервера, изменилась ли страница на самом деле, или нет. Однако IE запрет на кеширование воспринимает буквально. В ходе экспериментов стало ясно, что если из трех заголовков no_cache убрать второй, то IE версий 6 и 7 начинает работать так, как нам нужно. Может оказаться полезным корректное использование заголовка Expires . В нем можно установить время, в течение которого будет использоваться только локальная копия документа в кеше. Этот способ позволяет справиться с излишне навязчивым кешированием в IE. Например, чтобы копия в кеше была действительна в течение суток, нужно использовать такой оператор:

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

    Итак, как же использовать все эти возможности протокола HTTP? Обработка заголовка If-Modified-Since полезна в любом случае. Например, Яндекс рекомендует ее использовать. Если вы экономите трафик и если страницы обновляются редко, то запрещать их кеширование не нужно. Можно запретить их кеширование, тогда вместо него произойдет запрос к серверу с If-Modified-Since и 304 ответом. Это немного увеличит трафик, но позволит получать более правильную статистику посещений: пользователь зашел на страницу, а мы ему говорим, что страница не изменилась, но в статистике его учитываем. Если документы обновляются часто, практически всегда стоит запрещать их кеширование. Выдача 304 ответа в большинстве случаев скомпенсирует возможное повышение трафика.

    Помимо описанного метода для проверки актуальности копии документа в кеше существует еще один, основанный не на дате изменения страницы, а на уникальном хеш-коде содержимого страницы. Общее название для обоих методов - Conditional Get, вы можете ознакомиться с

    Last modified, как уверяют поисковики, очень важный http-заголовок, который нужен для того, чтобы сообщать дату последней модификации документа, то есть дату последнего изменения на странице.

    Соответственно, если этого заголовка не будет, точнее он не будет отдаваться, то сайт лишается некоторых преимуществ. В частности, вот что я вычитал на просторах сети о пользе last modified:

    1. Улучшается скорость индексации новых страниц, а также за 1 посещение робот может забрать больше страниц в индекс.
    2. Улучшается скорость переиндексации страниц, на которые вы внесли изменения. Это очень полезно, а вот без этого заголовка учета ваших правок нужно ждать дольше.

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

    Как проверить last modified?

    Есть несколько инструментов, мне больше всего понравился этот — http://www.tools.seo-auditor.com.ru/if-modified-since/
    Тут мне просто достаточно ввести адрес главной страницы или любой статьи, а потом выбрать поискового робота — Яндекс.

    Ласт Модифиед на моем сайте нашли, это отлично. Но изначально его не было, как же я его настроил?

    Как настроить last modified?

    Если честно, у меня вышло не так уж и легко с его настройкой. Может из-за того, что сервер nginx . Я ставил AddHeaders — этот плагин ставит все полезные http-заголовки и в их числе есть last modified, но моему сайту он не помог, хотя где-то год назад он успешно активировал на моем сайте этот заголовок.

    Также на этот блог я поставил премиум-плагин Clearfy. Полезная штуковина, там еще и есть функция, которая позволила бы поставить last modified. Я активировал опцию, но заголовок так и не отдавался по результатам проверки. Но в итоге все решило обращение в тех. поддержку плагина — там я описал конфигурацию своего сервера и мне дали конкретный совет — пойти в панель управления сервером, отключить то-то (по-моему SSI). Сказано — сделано и теперь заголовок отдается.

    Один из этапов оптимизации интернет-сайта для его правильной работы и успешного продвижения — оптимизация на стороне сервера. Среди прочих моментов — настройка правильного ответа сервера на запрос «Last-Modified». Правильная настройка этого параметра может повлиять на увеличение скорости загрузки сайта и положительно скажется на его индексации поисковыми роботами.

    Что такое Last-Modified и зачем он нужен?

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

    Исходя из спецификации RFC 2616, описывающей протокол передачи гипертекста HTML, клиент может «спросить» у сервера, не изменилась ли страница с определенной даты, послав серверу заголовок «If-Modified-Since». Если запрашиваемая страница не изменилась, сервер возвратит заголовок «304 Not Modified» и браузер не будет загружать страницу, а web-сервер не будет отдавать много данных. В противном случае (если страница сайта изменялась со времени предыдущего запроса), сервер возвратит ответ «200 OK» и непосредственно код самой страницы.

    В дополнение к вышесказанному упомянем рекомендации Яндекса: «Робот не сможет получить информацию о том, обновилась ли страница сайта с момента последнего индексирования. А так как число страниц, получаемых роботом с сайта за один заход, ограничено, изменившиеся страницы будут переиндексироваться реже» .

    ИТОГО: важным назначением заголовка «Last-Modified» служит информирование посетителя сайта и поискового робота о дате последней модификации какого-либо документа.

    Для чего нужна правильная настройка Last-Modified?

    При помощи правильной настройки ответа сервера Last-Modified мы сможем достичь сразу несколько положительных результатов для нашего сайта:

    • Увеличивается скорость загрузки страницы сайта для людей: в случае, если страница уже была посещена пользователем и на момент следующего посещения страница не менялась, браузер посетителя не будет заново загружать страницу, а отобразит ее сохраненную в кеше копию;
    • Снижается нагрузка на хостинг-площадку (сервер): при таком алгоритме работы сервер будет загружаться гораздо меньше за счет необходимости передачи посетителю сайта объема только измененных страниц;
    • Отображается дата последнего документа в поисковой выдаче: этот факт может привлекать посетителей к вашему сайту, если будет отображаться «свежая» дата;
    • Сортировка по дате: страницы сайта примут участие в сортировке по дате в поисковой выдаче;
    • Существенно ускоряется индексация сайта поисковыми роботами: за счет быстрого ответа вашего сайта о дате сканируемых страниц, старые (уже проиндексированные) страницы будут «отбрасываться в сторону», уступая место «свежим» документам. Этот пункт является наиболее значимым при продвижении сайта , т.к. высокая скорость индексации повышает уровень доверия к сайту у поисковых роботов.

    Как проверить, корректно ли настроен Last-Modified?

    Один из сервисов, на котором можно проверить правильность (да и вообще существование) настроенного ответа сервера Last-Modified - одноименный last-modified.com

    В поле ввода необходимо написать адрес вашего сайта или конкретной страницы и нажать на кнопку «Проверить». Результатом работы сервиса будет демонстрация ответа вашего сайта на запрос заголовков «Last-Modified» и «304 Not Modified». Пример такой проверки:

    Настраиваем Last-Modified

    Рассмотрим реализацию ответа HTTP-заголовка Last-Modified на PHP.

    В интернете очень часто встречаются такие рекомендации по настройке Last-Modified:

    Так и хочется воскликнуть: «Такой хоккей нам не нужен!» И давайте разберемся почему. В ответ на запрос пользователя функция gmdate вернет нам текущую дату по Гринвичу (GMT). И так будет происходить каждый раз при каждом запросе пользователя или поискового робота — сервер будет возвращать нам именно свою текущую дату . Получается, что при каждом посещении вашего сайта поисковиками, они будут видеть, что запрашиваемая страница только что обновлена. Это может быть «полезным» лишь несколько раз... Через некоторое время поисковик поймет, что его «дурят» и утратит какое-либо доверие к вашему сайту. Соответственно, такая реализация нам не подходит.

    Обратимся за помощью к вышеупомянутому ресурсу last-modified.com . На нем также представлен вариант реализации HTTP-заголовка Last-Modified на PHP. Выглядит он следующим образом:

    $LastModified_unix = 1294844676;

    $IfModifiedSince = false;



    if ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) {
    exit;
    }

    Давайте разберем работу этого кода. Переменная $LastModified_unix задается вручную в формате Unix Time Stamp (число секунд, прошедших с начала эпохи Юникс - с 1 января 1970 года).

    Функция gmdate возвращает текущее время по Гринвичу в формате Day, DD Mon YEAR HH:MM:SS GMT .

    Далее: получаем время последнего изменения страницы, проверяем наличие If-Modified-Since , если есть - отдаем 304 Not Modified и останавливаем работу скрипта. В противном случае генерируем заголовок Last-Modified и отдаем страницу целиком.

    В указанном выше варианте предлагается задавать время $LastModified_unix вручную. А что делать, если на сайте очень много страниц? Для этого немного «модернизируем» скрипт, заменив в нем всего лишь одну первую строчку:

    $LastModified_unix = strtotime(date("D, d M Y H:i:s", filectime($_SERVER["SCRIPT_FILENAME"])));
    $LastModified = 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");
    exit;
    }

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

    В обновленном варианте первая строчка кода преобразует текстовое представление даты на английском языке в метку в формате Unix Time Stamp , таким образом используя автоматически вычисленное время изменения текущей страницы сайта.

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

    Поможем с настройкой Last-Modified!

    Начните с простого звонка в «Т-Дизайн»! Наш телефон — 8 499 340-17-82 — работает в режиме нон-стоп , чтобы вы могли оперативно получать интересующую вас информацию по решению задач развития и поддержки вашего сайта. Мы проконсультируем по всем вопросам и подберем оптимальный тариф для вашей компании.



    © 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows