С тех пор, как появилась Альтависта, большинство посетителей
стали приходить на сайты из поисковых машин. И головной боли стало больше. Теперь
мало написать сайт, нужно сделать его совместимым с поисковыми ботами.
Одна из тех задач, которую приходится решать — быстрая
переиндексация обновлений на сайте. Поисковые роботы чаще посещают те сайты,
которые чаще меняются. Для этого они посылают запрос с заголовком If-Modified-Since,
а также обрабатывают заголовок Last-Modified,
который возвращает сервер. Именно так роботы получают информацию о времени
последнего изменения страниц, и могут «оценить» частоту обновлений.
И Apache, и IIS корректно обрабатывают такие запросы, если речь идёт о
статических страницах. Но у них возникают проблемы с динамическими страницами
(это касается и PHP, и ASP.NET) — они не могут использовать время последнего
изменения файла. Что, если код написан месяц назад, а новость из базы данных
опубликована сегодня утром?
С другой стороны, мы могли внести правки в мастер-страницу (master page)
или пользовательский элемент управления (ascx-файл). Эти
модификации влияют на содержимое страницы, которое «видит» поисковый робот, и,
значит, время её последнего изменения должно быть новым.
Вероятно, вы думаете, что нам придётся искать все файлы, связанные
с aspx-страницей и выбирать среди них самый новый? Нет.
Один простой трюк позволит уместить весь наш код в одну строку.
Комментарии