Техподдержка сайтов
+7 (904) 589-06-04
+7 (904) 589-06-04
telegram @sng24
MAX
info@sng-it.ru
ПРОГРАММИСТ 1С-БИТРИКС
ПРОГРАММИСТ 1С-БИТРИКС
разработка · доработка · техподдержка
  • О себе
  • Услуги
    Обновление сайтов на 1С-БитриксPHP 8.2+, MySQL 8, ядро и модули›Поиск и удаление вирусовПроверка, очистка и защита сайта›Создание сайтовРазработка сайтов под задачи бизнеса›Интеграция сайта с 1СОбмен товарами, остатками и заказами›Композитный сайт›Внутренняя оптимизация сайтаТехническое SEO и оптимизация›Доработка сайтовНовые функции, интеграции, нестандартные решения›Импорт каталога из файла поставщикаИмпорт и обновление товарных данных›Перенос сайта на 1С БитриксМиграция сайта на 1С-Битрикс›Парсинг контентаСбор и импорт данных›Установка готового сайтаУстановка и настройка готового решения›Купить лицензию 1С Битрикс›Битрикс 24CRM и автоматизация бизнеса›Выгрузка товаров в Яндекс.Маркет›Настройка служб доставкиИнтеграция служб доставки›Интеграция с соцсетями›Заказ на Маркете›Перевод сайта на https›Сопровождение сайтов на 1С БитриксОбслуживание и развитие сайтов›Настройка платежных системПодключение и настройка оплаты›
    Все услуги →
  • Портфолио
  • Готовые сайты
    Недвижимость›Медицина›Ресторанный бизнес›Автомобили и автозапчасти›Бухгалтерские и юридические услуги›Государство›Детские товары›Красота и здоровье›Мебель, интерьер, декор›Образование›Одежда и обувь›Подарки и сувениры›Продукты питания›Спорт, туризм и отдых›Строительство, ремонт, инструменты›Товары для животных›ТСЖ, ЖСК›Украшения, аксессуары, подарки›Электроника и бытовая техника›Универсальные›
    Все готовые сайты →
  • 1С Битрикс
    Старт (7 100 ₽)›Стандарт (20 500 ₽)›Малый бизнес (47 000 ₽)›Бизнес (96 500 ₽)›Интернет-магазин + CRM (109 000 ₽)›Продление лицензии›Сравнить редакции›
  • CRM
  • Контакты
ПРОГРАММИСТ 1С-БИТРИКС
ПРОГРАММИСТ 1С-БИТРИКС
О себе
Услуги
Портфолио
Готовые сайты
1С Битрикс
CRM
Контакты
ПРОГРАММИСТ 1С-БИТРИКС
ПРОГРАММИСТ
1С-БИТРИКС
  • Главная
  • О себе
  • Услуги
    • Назад
    • Услуги
    • Обновление сайтов на 1С-Битрикс
    • Поиск и удаление вирусов
    • Создание сайтов
    • Интеграция сайта с 1С
    • Композитный сайт
    • Внутренняя оптимизация сайта
    • Доработка сайтов
    • Импорт каталога из файла поставщика
    • Перенос сайта на 1С Битрикс
    • Парсинг контента
    • Установка готового сайта
    • Купить лицензию 1С Битрикс
    • Битрикс 24
    • Выгрузка товаров в Яндекс.Маркет
    • Настройка служб доставки
    • Интеграция с соцсетями
    • Заказ на Маркете
    • Перевод сайта на https
    • Сопровождение сайтов на 1С Битрикс
    • Настройка платежных систем
  • Портфолио
  • Готовые сайты
    • Назад
    • Готовые сайты
    • Недвижимость
    • Медицина
    • Ресторанный бизнес
    • Автомобили и автозапчасти
    • Бухгалтерские и юридические услуги
    • Государство
    • Детские товары
    • Красота и здоровье
    • Мебель, интерьер, декор
    • Образование
    • Одежда и обувь
    • Подарки и сувениры
    • Продукты питания
    • Спорт, туризм и отдых
    • Строительство, ремонт, инструменты
    • Товары для животных
    • ТСЖ, ЖСК
    • Украшения, аксессуары, подарки
    • Электроника и бытовая техника
    • Универсальные
    • Разное
  • 1С Битрикс
    • Назад
    • 1С Битрикс
    • Старт (7 100 ₽)
    • Стандарт (20 500 ₽)
    • Малый бизнес (47 000 ₽)
    • Бизнес (96 500 ₽)
    • Интернет-магазин + CRM (109 000 ₽)
    • Продление лицензии
    • Сравнить редакции
  • CRM
  • Контакты
  • Личный кабинет
  • +7 (904) 589-06-04
Будьте на связи
info@sng-it.ru
  • Вконтакте
  • YouTube

Добавить Last-Modified и Expires в 1С Битрикс

  • Главная
  • ❶ Сниппеты
  • ❷ Добавить Last-Modified и Expires в 1С Битрикс

Добавляем Last-Modified и Expires на все страницы сайта, проверку делаем здесь https://last-modified.com/.

Актуальность: Использование Last-Modified и Expires ускоряет загрузку сайта, оптимизирует время на индексацию страниц поисковиками и, в результате, позитивно сказывается на его SEO-позициях. Last-Modified - передает дату изменения страницы, бот не будет повторно индексировать страницу, если изменений не было.

В товаре можно привязаться к дате изменения элемента, если дата изменения более 30 дней, то переопределяем ее для заголовков. Заводим глобальную переменную $lastModified, чтобы знать, что заголовки у страницы установлены.

Для этого в компоненте каталога, в файле element.php ставим код:


	$arSelect = Array("IBLOCK_ID", "ID", "TIMESTAMP_X");  
	$arFilter = Array("IBLOCK_ID"=>$arParams["IBLOCK_ID"], "ID"=>$arResult['VARIABLES']['ELEMENT_ID'], "ACTIVE"=>"Y");   
	$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);    
	if ($res->SelectedRowsCount()==1)  
	{  
		$arItem=$res->GetNext();  
		$days = ceil((time()-strtotime($arItem["TIMESTAMP_X"]))/86400);

		if($days > 30){
			$date = new DateTime('-20 days');
			$dateExpires = new DateTime('30 days');
 
			$lastModifiedTimestamp = strtotime($date->format('Y-m-d').' 12:00:00 GMT'); 
			$lastModifiedTimestampExpires = strtotime($dateExpires->format('Y-m-d').' 12:00:00 GMT'); 
			
			header('Expires: ' . gmdate('D, d M Y H:i:s', $lastModifiedTimestampExpires) . ' GMT');
			header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $lastModifiedTimestamp) . ' GMT');			
		}
		else{
			$date = new DateTime('-15 days');
			$dateExpires = new DateTime('30 days');
			
			$lastModifiedTimestamp = strtotime($date->format('Y-m-d').' 12:00:00 GMT'); 
			$lastModifiedTimestampExpires = strtotime($dateExpires->format('Y-m-d').' 12:00:00 GMT'); 
		
			header('Expires: ' . gmdate('D, d M Y H:i:s', $lastModifiedTimestampExpires) . ' GMT');
			header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $lastModifiedTimestamp) . ' GMT');	
		}
	       GLOBAL $lastModified;	
               $lastModified = $lastModifiedTimestamp;	

		global $setExpiresFlag;
		$setExpiresFlag == 1;
	}

Для остальных страниц в footer.php шаблона добавляем код:


	global $setExpiresFlag;
		if($setExpiresFlag != 1){
		
			if($APPLICATION->GetCurDir() == "/"){
				$date = new DateTime('-3 days');
				$dateExpires = new DateTime('3 days');
			}
			else{
				$date = new DateTime('-7 days');
				$dateExpires = new DateTime('7 days');			
			}
			$lastModifiedTimestamp = strtotime($date->format('Y-m-d').' 12:00:00 GMT'); 
			$lastModifiedTimestampExpires = strtotime($dateExpires->format('Y-m-d').' 12:00:00 GMT'); 
GLOBAL $lastModified;	
$lastModified = $lastModifiedTimestamp;
			header('Expires: ' . gmdate('D, d M Y H:i:s', $lastModifiedTimestampExpires) . ' GMT');
			header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $lastModifiedTimestamp) . ' GMT');	
			
		}
 

В init ставим проверку Last-Modified:


/*Проверка If-Modified-Since и вывод 304 Not Modified */
AddEventHandler('main', 'OnEpilog', array('CBDPEpilogHooks', 'CheckIfModifiedSince'));
class CBDPEpilogHooks
{
    function CheckIfModifiedSince()
    {
        GLOBAL $lastModified;
        
        if ($lastModified)
        {
            header("Cache-Control: public");
            header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $lastModified) . ' GMT');
            if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) >= $lastModified) {
                $GLOBALS['APPLICATION']->RestartBuffer();CHTTP::SetStatus('304 Not Modified');
                exit();
                /*header('HTTP/1.1 304 Not Modified');
                exit;*/
            }
        }
    }
}

Теги: Last-Modified, Expires

11.11.2024

Поделиться:
Назад к списку
  • Услуги
  • Обновление сайтов на 1С-Битрикс
  • Поиск и удаление вирусов
  • Интеграция сайта с 1С
  • Создание сайтов
  • Композитный сайт
  • Внутренняя оптимизация сайта
    • Доработка сайтов
    • Импорт каталога из файла поставщика
    • Парсинг контента
    • Перенос сайта на 1С Битрикс
    • Установка готового сайта
    • Купить лицензию 1С Битрикс
      • Битрикс 24
        • Выгрузка товаров в Яндекс.Маркет
        • Заказ на Маркете
        • Интеграция с соцсетями
        • Настройка служб доставки
        • Перевод сайта на https
        • Сопровождение сайтов на 1С Битрикс
        • Настройка платежных систем
        Аудит сайта
        Записаться на техподдержку

        Программист 1С-Битрикс — Семён Голиков
        Программист 1С-Битрикс
        разработка · доработка · техподдержка
        Работаю с 1С-Битрикс с 2010 года
        Есть задача по 1С-Битрикс?
        Выберите удобное время в календаре техподдержки.
        Выбрать времяНаписать в Telegram
        Услуги
        Доработка сайтовСопровождение сайтовОбновление 1С-БитриксПоиск и удаление вирусовИнтеграция с 1СХостинг для битрикса
        Проекты и продукты
        ПортфолиоГотовые сайтыЛицензии 1С-БитриксБитрикс24Отзывы
        Материалы
        БлогСниппетыВидеоурокиОптимизация сайтаАкции
        Связаться со мной
        +7 (904) 589-06-04Позвонитьinfo@sng-it.ruНаписать на e-mail
        Telegram M MAX
        Обычно отвечаю в течение дня
        © 2010-2026 Семён Голиков · программист 1С-Битрикс
        Политика конфиденциальностиОбработка персональных данныхКарта сайта
        VK
        Спасибо за заявку!
        Мы свяжемся с Вами в ближайшее
        время и ответим на все вопросы.
        Заполните форму и отправьте
        заявку на консультацию!