این صفحه آخرین بار در سال 1576 اصلاح شد. وبلاگی که اطلاعات جالب زیادی دارد…. افزایش سرعت نمایه سازی توسط موتورهای جستجو

هدر HTTP آخرین تغییر (آخرین تغییرات)زمان را به مشتری منتقل می کند آخرین تغییرسند (صفحه وب). مشتری (مرورگر یا ربات جستجوگر) هدر را ارسال می کند. If-Modified-Since"و اگر تاریخ آخرین تغییر صفحه مطابقت داشته باشد، سرور هدر را برمی گرداند" 304 اصلاح نشده است"و صفحه را بارگذاری نمی کند. اگر آخرین زمان اصلاح شده متفاوت باشد (یا آخرین هدر اصلاح شده پیکربندی نشده باشد) - سرور هدر را برمی گرداند " 200 باشه"و صفحه را بارگذاری می کند. یعنی به جای بارگذاری مجدد صفحه و به روز رسانی کش، مشتری فقط دریافت می کند سربرگ 304. مشتری ترافیک را ذخیره می کند و سرور داده های کمتری را ارسال می کند - پس انداز متقابل.

اما اگر در مورد مزایایی که تنظیم هدر آخرین اصلاح برای افزایش سرعت نمایه سازی سایت به ارمغان می آورد، چرا این مقاله وجود دارد. حدس زدن اینکه 10 صفحه از یک سایت سریعتر از 1000 ایندکس می شود کار دشواری نیست. همان اصل که به شما امکان می دهد بارگذاری صفحه را بهینه کنید برای نمایه سازی نیز کار می کند. یک موتور جستجو برای یافتن 10 صفحه جدید نیازی به فهرست کردن 1000 صفحه ندارد. با تشکر از آخرین تغییرات، ما فقط صفحات جدید (یا صفحات به روز شده) را برای ربات باقی می گذاریم. ربات به سایت می آید و ابتدا آنچه را که نیاز دارد و سپس هر چیز دیگری را می گیرد.

تنظیم هدر Last-Modified

مطمئن شوید که هدرهای http شما صحیح است. به طور خاص، آنچه مهم است محتوای پاسخی است که سرور به درخواست “if-modified-since” می دهد. سربرگ آخرین تغییر باید تاریخ صحیح آخرین ویرایش سند را نشان دهد. حتی اگر سرور تاریخ آخرین ویرایش سند را نمایش ندهد، سایت شما ایندکس می شود. با این حال، در این مورد، شما باید موارد زیر را در نظر بگیرید: - نتایج جستجو تاریخ را در کنار صفحات سایت شما نشان نمی دهد. - هنگام مرتب سازی بر اساس تاریخ، سایت برای اکثر کاربران قابل مشاهده نخواهد بود. - ربات نمی تواند اطلاعاتی در مورد به روز رسانی صفحه سایت از آخرین نمایه سازی به دست آورد. و از آنجایی که تعداد صفحاتی که یک ربات از یک سایت در یک بازدید دریافت می کند محدود است، صفحات تغییر یافته کمتر ایندکس می شوند. مطمئن شوید که سرور وب شما از هدر HTTP "If-Modified-Since" پشتیبانی می کند. این هدر به وب سرور اجازه می دهد تا به Google بگوید که آیا محتوای سایت از آخرین باری که خزیده شده است تغییر کرده است یا خیر. پشتیبانی از این ویژگی باعث کاهش مصرف سربار و پهنای باند می شود.

در اینجا نمونه هایی از نحوه پیکربندی هدر آخرین اصلاح شده برای ارسال و If-Modified-Since برای مدیریت صحیح وجود دارد.

نحوه تنظیم متا Last-Modified برای صفحات استاتیک html

نحوه راه اندازی Last-Modified در php

= $LastModified_unix) ( header($_SERVER["SERVER_PROTOCOL"] . " 304 Not Modified"); exit; ) header("Last-Modified: ". $LastModified); ?>

نحوه پیکربندی Last-Modified .htaccess

RewriteRule .* - RewriteRule .* -

نحوه پیکربندی Last-Modified nginx + php

مکان ~ .php$ ( ... if_modified_since off; fastcgi_pass fcgi; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /<путь >/web$fastcgi_script_name; ... fastcgi_pass_header Last-Modified; شامل fastcgi_params. )

Last-Modified را بررسی کنید

هنگامی که ارسال هدر به کلاینت پیکربندی می شود، ضرری ندارد چک آخرین ویرایشبرای صحت می‌توانید Last-Modified را در وب‌سایت خودتان یا شخص ثالث از طریق خدمات آنلاین بررسی کنید.

یا برای پردازش صحیح هدر Last-Modified خودتان بررسی کنید:

تنظیم هدر Last-Modifiedو پردازش هدر If-Modified-Since برای هر سایت بزرگتر یا کوچکتر بسیار مفید خواهد بود. سرعت پردازش صفحات وب سایت می تواند قابل توجه باشد. راه اندازی نسبتا ساده مشکلی ایجاد نمی کند، به خصوص که برای CMS های محبوب مانند جوملا، وردپرس، modx و غیره. راه حل های آماده وجود دارد

افسانه های مختلفی در زمینه بهینه سازی وب سایت برای موتورهای جستجو (SEO) وجود دارد. برخی از آنها مبنایی دارند، برخی از آنها از ناکجاآباد آمده اند. در این یادداشت به یکی از آنها نگاه می کنیم - با استفاده از سربرگ پاسخ آخرین اصلاح شده.

مدتی پیش سندی با عنوان «توصیه‌های Ingate برای استودیوهای وب در سایت‌های تبلیغاتی» دریافت کردیم. و یکی از "توصیه ها" این بود:

پس از طراحی مجدد یا در حال توسعه یک سایت جدید، تاریخ آخرین اصلاح صفحات سایت (آخرین اصلاح) باید مشخص شود.

برای افزودن به سایت در اطلاعات PHPتاریخ آخرین اصلاح صفحات در همان ابتدا ضروری است کد منبعدر هر صفحه یک اسکریپت وارد کنید


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

این مزخرفات وحشیانه، این مزخرفات مطلق و رمز دیوانه وار بود که مرا به نوشتن این یادداشت برانگیخت. در اینجا سعی خواهم کرد توضیح دهم Last-Modified چیست، چرا به آن نیاز است و مرورگرها و موتورهای جستجو چگونه از آن استفاده می کنند.

آخرین ویرایش چه چیزی است

هنگام انتقال اطلاعات به مشتری (مرورگرها یا ربات جستجو)، وب سرور داده های اضافی زیادی را گزارش می کند. آنها را می توان در کنسول مرورگر مشاهده کرد، به عنوان مثال:

سرور را به گونه ای پیکربندی کنید که هدرهای پاسخ صحیح را صادر کند (به عنوان مثال، اگر صفحه وجود ندارد، خطای 404 را صادر کنید، و اگر درخواست If-Modified-Since دریافت شد، سپس اگر صفحه از زمان تغییر صفحه تغییر نکرده است، یک کد 304 صادر کنید. تاریخ مشخص شده در درخواست).

همچنین می توانید ببینید که اگر سرور به هیچ وجه به یک درخواست GET مشروط پاسخ ندهد، تفاوتی با یک درخواست معمولی ندارد. یعنی هدر Last-Modified با زمان فعلی که اشتباه هم تشکیل شده (سلام Integgate!) اصلا نیازی نیست!

پس آیا Last-Modified لازم است یا خیر؟

به طور کلی ضروری است. اما درک این نکته مهم است که این خود هدر نیست که نقشی را ایفا می کند، بلکه کل سناریوی درخواست شرطی است که باید به طور کامل توسط سایت پیاده سازی شود. در این صورت است که به سرعت بالای ایندکس سایت دست خواهیم یافت.

اما اغلب پیاده سازی آن در یک CMS آماده بسیار دشوار است. این ممکن است به تغییرات قابل توجهی در کد خود CMS نیاز داشته باشد.

اگرچه برای تعدادی از CMS ها می توان با فعال کردن کش صفحه به این امر دست یافت. اگر CMS صفحات را ذخیره کند و فایل‌های اساساً ثابت را ایجاد و ارائه کند، خود سرور وب به درخواست‌های شرطی به درستی پاسخ می‌دهد. به عنوان مثال، در وردپرس می توان با استفاده از افزونه WP Super Cache به این امر دست یافت:

بیایید آن را در عمل بررسی کنیم. من این افزونه را فعال کردم، مرورگر را در حالت ناشناس باز کردم و دو درخواست برای یک صفحه انجام دادم. به وضوح مشاهده می شود که پاسخ دوم صحیح است - 304 اصلاح نشده است:

به جای نتیجه گیری

بنابراین، ما با هدر Last-Modified سروکار داریم. اول، باید اطلاعاتی در مورد تاریخ و زمانی که سند واقعاً اصلاح شده است را منتقل کند. ثانیا، پاسخ سرور به یک درخواست شرطی با هدر If-Modified-Since بسیار مهم است.

خوب، کمتر به سئوکارانی که اصول کار اینترنت را نمی دانند گوش دهید.

یکی از مراحل بهینه سازی وب سایت برای عملکرد صحیح و ارتقای موفق آن، بهینه سازی سمت سرور است. نکات دیگر شامل تنظیم پاسخ صحیح سرور به درخواست "آخرین اصلاح" است. تنظیم صحیح این پارامتر می تواند سرعت بارگذاری سایت را افزایش داده و تاثیر مثبتی بر ایندکس شدن آن توسط ربات های جستجوگر داشته باشد.

Last-Modified چیست و چرا لازم است؟

همانطور که از نام آن پیداست، هدر Last-Modified به مشتری (بازدید کننده سایت) آخرین باری که صفحه خاصی از سایت تغییر کرده است می گوید. اگر یک ربات جستجوگر به عنوان بازدیدکننده سایت عمل کند و پاسخ آخرین اصلاح شده به سند یا صفحه درخواستی در سایت (سرور) پیکربندی نشده باشد (یا به درستی پیکربندی نشده باشد)، ربات جستجو چاره ای جز فهرست کردن تمام صفحات اینترنت ندارد. در هر بازدید دوباره و دوباره منابع را دریافت کنید، بنابراین بار مشخصی بر روی سرور واقع در سایت میزبان ایجاد می کند. اگر تعداد صفحات صدها یا حتی هزاران باشد چه؟ بسته به ویژگی ها و قابلیت های سرور، احتمال بروز نوعی خطا در سمت میزبانی وجود دارد. علاوه بر این، لازم به ذکر است که ربات جستجوگر دارای محدودیتی در تعداد صفحات فهرست شده "در یک زمان" است، بنابراین در صورت عدم وجود تنظیمات صحیحهدر آخرین ویرایش، ما این خطر را داریم که صفحات اصلاح نشده توسط ربات ایندکس شوند، اما صفحات جدیدی که به آن نیاز داریم ایندکس نمی شوند.

بر اساس مشخصات RFC 2616 که پروتکل انتقال ابرمتن HTML را توصیف می کند، یک کلاینت می تواند با ارسال سرصفحه "If-Modified-Since" به سرور از سرور بپرسد که آیا صفحه ای از تاریخ خاصی تغییر کرده است یا خیر. اگر صفحه درخواستی تغییر نکرده باشد، سرور هدر "304 Not Modified" را برمی گرداند و مرورگر صفحه را بارگذاری نمی کند و وب سرور داده های زیادی ارسال نمی کند. در غیر این صورت (اگر صفحه سایت نسبت به درخواست قبلی تغییر کرده باشد)، سرور یک پاسخ "200 OK" و مستقیماً کد خود صفحه را برمی‌گرداند.

علاوه بر موارد فوق، توصیه های Yandex را ذکر می کنیم: "روبات نمی تواند اطلاعاتی در مورد اینکه آیا صفحه سایت از آخرین نمایه سازی به روز شده است یا خیر به دست آورد. و از آنجایی که تعداد صفحاتی که ربات در یک بازدید از سایت دریافت می کند محدود است، صفحات تغییر یافته کمتر ایندکس می شوند.

جمع:هدف مهم هدر "آخرین اصلاح" اطلاع رسانی به بازدید کننده سایت و ربات جستجوگرتاریخ آخرین اصلاح هر سند.

چرا باید Last-Modified را به درستی پیکربندی کنید؟

با پیکربندی صحیح پاسخ سرور Last-Modified، می توانیم به چندین مورد دست پیدا کنیم نتایج مثبتبرای سایت ما:

  • سرعت بارگذاری صفحه سایت برای افراد افزایش می یابد:اگر صفحه قبلاً توسط کاربر بازدید شده باشد و در زمان بازدید بعدی صفحه تغییر نکرده باشد، مرورگر بازدیدکننده صفحه را بارگیری مجدد نمی کند، اما کپی ذخیره شده آن را نمایش می دهد.
  • بار روی پلت فرم هاست (سرور) کاهش می یابد:با این الگوریتم عملیاتی، سرور به دلیل نیاز به انتقال تنها حجم صفحات تغییر یافته به بازدید کننده سایت، بسیار کمتر بارگذاری می شود.
  • تاریخ آخرین سند در نتایج جستجو نمایش داده می شود:اگر تاریخ «تازه» نمایش داده شود، این واقعیت می تواند بازدیدکنندگان را به سایت شما جذب کند.
  • به ترتیب تاریخ مرتب کن:صفحات سایت در مرتب سازی بر اساس تاریخ در نتایج جستجو شرکت خواهند کرد.
  • نمایه سازی سایت توسط روبات های جستجوگر به طور قابل توجهی تسریع می شود:با توجه به پاسخ سریع سایت شما در مورد تاریخ صفحات خزیده شده، صفحات قدیمی (از قبل ایندکس شده) "کنار گذاشته می شوند" و جای خود را به اسناد "تازه" می دهند. این نکته در هنگام تبلیغ یک سایت بیشترین اهمیت را دارد، زیرا ... سرعت ایندکس بالا باعث افزایش سطح اعتماد به سایت در بین ربات های جستجوگر می شود.

چگونه بررسی کنیم Last-Modified به درستی پیکربندی شده است؟

یکی از سرویس‌هایی که می‌توانید درستی (و در واقع وجود) پاسخ سرور پیکربندی‌شده Last-Modified را بررسی کنید، همان last-modified.com است.

در قسمت ورودی باید آدرس وب سایت یا یک صفحه خاص را بنویسید و روی دکمه «بررسی» کلیک کنید. نتیجه سرویس نمایشی از پاسخ سایت شما به درخواست سرصفحه‌های «آخرین تغییر» و «304 بدون تغییر» خواهد بود. نمونه ای از چنین چک:

راه اندازی Last-Modified

بیایید به اجرای آخرین پاسخ هدر HTTP در PHP نگاه کنیم.

در اینترنت اغلب می توانید توصیه های زیر را برای راه اندازی Last-Modified پیدا کنید:

من فقط می خواهم فریاد بزنم: "ما به این نوع هاکی نیاز نداریم!" و بیایید بفهمیم چرا در پاسخ به درخواست کاربر، تابع gmdateآن را به ما باز خواهد گرداند تاریخ فعلیبه وقت گرینویچ (GMT). و این هر بار با هر درخواست کاربر یا ربات جستجو اتفاق می افتد - سرور دقیقاً آن را برمی گرداند تاریخ فعلی. به نظر می رسد که هر بار که موتورهای جستجو از سایت شما بازدید می کنند، می بینند که صفحه درخواستی به تازگی به روز شده است. این ممکن است فقط چند بار «مفید» باشد... پس از مدتی، موتور جستجو متوجه می‌شود که در حال «گول زدن» است و اعتماد به سایت شما را از دست خواهد داد. بر این اساس، چنین اجرایی مناسب ما نیست.

بیایید برای کمک به منبع بالا مراجعه کنیم. last-modified.com. همچنین اجرای آخرین هدر HTTP اصلاح شده در PHP را ارائه می دهد. به نظر می رسد این است:

$LastModified_unix = 1294844676;

$IfModifiedSince = false;



اگر ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) (
خروج؛
}

بیایید ببینیم این کد چگونه کار می کند. متغیر $LastModified_unixبه صورت دستی در قالب تنظیم کنید تمبر زمان یونیکس(تعداد ثانیه هایی که از آغاز عصر یونیکس می گذرد - از اول ژانویه 1970).

تابع gmdateزمان فعلی GMT ​​را در قالب برمی گرداند روز، DD دوشنبه سال HH:MM:SS GMT.

بعدی: زمان آخرین تغییر صفحه را دریافت کنید، در دسترس بودن را بررسی کنید If-Modified-Since، اگر وجود داشته باشد، آن را می دهیم 304 اصلاح نشده استو فیلمنامه را متوقف کنید. در غیر این صورت یک هدر تولید می کنیم آخرین تغییرو کل صفحه را تحویل دهید.

در گزینه فوق تنظیم زمان پیشنهاد شده است $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));

اگر ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) (
header($_SERVER["SERVER_PROTOCOL"] . " 304 Not Modified");
خروج؛
}

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

در نسخه به روز شده، خط اول کد، نمایش متن تاریخ را به زبان انگلیسیبه یک برچسب در قالب تمبر زمان یونیکس، بنابراین از زمان تغییر محاسبه شده خودکار صفحه فعلی سایت استفاده می شود.

همه چیز آماده است! اکنون تنها کاری که باید انجام دهیم این است که کد به دست آمده را در قسمت قرار دهیم ... هر صفحه از سایت و لذت بردن از سرعت بالا بارگذاری صفحات و نمایه سازی توسط روبات های جستجوگر.

اجازه دهید به شما در راه اندازی Last-Modified کمک کنیم!

با یک تماس ساده شروع کنیددر تی دیزاین! شماره تلفن ماست 8 499 340-17-82 - در حالت کار می کند بدون وقفه، تا بتوانید به سرعت اطلاعات مورد نظر خود را برای رفع مشکلات توسعه و پشتیبانی سایت خود دریافت کنید. یا به آن بنویسید پست الکترونیک. ما در مورد تمام سوالات و ما تعرفه بهینه را انتخاب خواهیم کردبرای شرکت شما

نحو

If-Modified-Since: , ::GMT

بخشنامه ها

یکی از «دوشنبه»، «سه‌شنبه»، «چهارشنبه»، «پنج‌شنبه»، «جمعه»، «شنبه» یا «خورشید» (حساس به حروف کوچک و بزرگ). شماره روز 2 رقمی، به عنوان مثال "04" یا "23". یکی از «ژان»، «فوریه»، «مار»، «آوریل»، «مه»، «ژوئن»، «ژوئیه»، «اوت»، «سپتامبر»، «اکتبر»، «نوامبر»، «دسامبر» ( حساس به حروف کوچک و بزرگ). شماره سال 4 رقمی، به عنوان مثال "1990" یا "2016". شماره ساعت 2 رقمی، به عنوان مثال "09" یا "23". عدد دقیقه 2 رقمی، به عنوان مثال "04" یا "59". شماره دوم 2 رقمی، به عنوان مثال "04" یا "59". GMT

به وقت گرینویچ. تاریخ های HTTP همیشه به GMT بیان می شود، هرگز به وقت محلی.

مثال ها

اگر-تغییر شد-از: چهارشنبه، 21 اکتبر 2015، 07:28:00 به وقت گرینویچ

مشخصات فنی

مشخصات عنوان
RFC 7232، بخش 3.3: If-Modified-Since پروتکل انتقال ابرمتن (HTTP/1.1): درخواست های مشروط

سازگاری با مرورگر

جدول سازگاری در این صفحه از داده های ساخت یافته تولید می شود. اگر می‌خواهید در داده‌ها مشارکت کنید، لطفاً https://github.com/mdn/browser-compat-data را بررسی کنید و یک درخواست برای ما ارسال کنید.

داده های سازگاری را در GitHub به روز کنید

دسکتاپسیار
کرومحاشیه، غیرمتمرکزفایرفاکساینترنت اکسپلورراپراسافارینمای وب اندرویدکروم برای اندرویدفایرفاکس برای آندرویداپرا برای اندرویدسافاری در iOSاینترنت سامسونگ
If-Modified-Sinceپشتیبانی کامل کروم بلهپشتیبانی کامل Edge 12پشتیبانی کامل فایرفاکس بلهپشتیبانی کامل IE بلهپشتیبانی کامل اپرا بلهسافاری پشتیبانی کامل بلهWebView Android پشتیبانی کامل بلهChrome Android پشتیبانی کامل بلهفایرفاکس اندروید پشتیبانی کامل بلهاپرا اندروید پشتیبانی کامل بلهسافاری iOS پشتیبانی کامل بلهسامسونگ اینترنت اندروید پشتیبانی کامل بله

هدرهای Last-Modified و If Modified-Since برای وردپرس

افراد کمی به هدرهای HTTP توجه می کنند آخرین تغییرو If-Modified-Sinceهنگام بهینه سازی سایت خود، اما بیهوده! مهم است که صفحه ای که محتوای آن از آخرین بازدید ربات جستجو تغییر نکرده است، یک کد 304 را برگرداند، که در واقع نشان می دهد که این صفحه خاص با چیزی تکمیل نشده است - شما متن را ویرایش یا تکمیل نکرده اید. ، هیچ نظری به این پست اضافه نشده است و غیره پ.

اگر این هدر http از دست رفته باشد، در Yandex، هنگام مرتب سازی نتایج بر اساس تاریخ، سایت برای اکثر کاربران قابل مشاهده نخواهد بود.

به همین دلیل مهم است که نه تنها آن را به درستی تنظیم کنید، بلکه هر بار که یک رکورد را ویرایش می کنید، تاریخ را به تاریخ فعلی به روز کنید. این کار باید به صورت دستی انجام شود.

با نظرات ساده تر است: هنگامی که یک بازدید کننده یک نظر اضافه می کند، سپس در متغیر $last_modified_timeزمانی که نظر اضافه شد به طور خودکار وارد می شود - این تاریخ آخرین تغییر صفحه خواهد بود.

چرا به سربرگ های Last-Modified و If-Modified-Since نیاز داریم؟

1. وقتی سرور چنین کدی را ارسال می کند، اجرای تمام اسکریپت های PHP در صفحه حتی شروع نمی شود. صفحه از کش جستجو بارگیری می شود، و همانطور که می دانید، به میزان قابل توجهی بار روی سرور را کاهش می دهد که باعث خوشحالی میزبان شما می شود و سرعت بارگذاری صفحه را برای بازدید کننده افزایش می دهد که این نیز خبر خوبی است.

چگونه این اتفاق می افتد؟

هنگام خزیدن در اینترنت، عنکبوت های گوگل و یاندکس یک کپی از هر سایت را در پایگاه داده خود ذخیره می کنند. این کپی به عنوان نوعی نمونه برای مقایسه عمل می کند: آیا همه چیز هنوز یکسان است یا تغییراتی رخ داده است. و اگر هدرهای Last-Modified و If-Modified-Since پیکربندی نشده باشند یا به درستی پیکربندی نشده باشند، صفحات جدید در سایت ایندکس می شوند و صفحه اصلی در کش موتور جستجو برای مدت طولانی به روز نمی شود، درست مانند نظر. فید به روز نمی شود

اما برای صفحاتی که اغلب به‌روزرسانی می‌شوند (فیدهای خبری که چندین بار در روز به‌روزرسانی می‌شوند، وبلاگ‌هایی که به طور فعال نظر داده می‌شوند، و غیره) یک اشکال دارد: اطلاعات موجود در حافظه نهان خیلی سریع قدیمی می‌شوند و شخص، حتی صفحه را دوباره بارگذاری می‌کند، آخرین اخبار را نمی‌بیند. ، نظرات جدید را نمی بیند. اما این خیلی بد نیست. مشکل اینجاست که ربات هم این را نمی بیند، مگر اینکه روشن باشد عنوان صحیحآخرین تغییر.

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 غیرفعال نشود، در فایرفاکس و اینترنت اکسپلورر صفحه در کش ذخیره می شود و برای تمام درخواست های بعدی این صفحه است که برگردانده می شود.

برای تازه کردن صفحه و دریافت آخرین نسخه، باید کلید ترکیبی را فشار دهید Ctrl+F5، دکمه معمول "به روز رسانی" (F5) کار نمی کند. و باید بگویم، اسناد در کش IE را می توان برای مدت بسیار بسیار طولانی ذخیره کرد.

در Opera، صفحه کش با فشار دادن دکمه "Refresh" یا کلید F5 پاک می شود. ترکیب CRTL+F5 در Opera - همه برگه‌های باز را بارگیری مجدد می‌کند. همانطور که می‌دانید، اگر آنها را زیاد باز کنید، ممکن است در حین انتظار ریش بگذارید.

اگر کش صفحه را با تابع no_cache غیرفعال کنید، در آن صورت اپرا و فایرفاکس هنگام دسترسی به چنین صفحه ای، از مکانیزم با هدر 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)
(هدر("HTTP/1.1 304 اصلاح نشده");
بمیر
}
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در ریشه وردپرس شما (من در میزبانی timeweb.ru با آن مواجه شدم). به همین ترتیب، بالاتر از هر چیز دیگری در آن است. فقط هنگام به روز رسانی این را فراموش نکنید - فایل فهرست به شکل استاندارد خود بازنویسی می شود.

وویلا! با تنظیم صحیح سرصفحه های Last-Modified و If-Modified-Since، ما یکسری پاداش دریافت کردیم:

  • سرعت بارگذاری صفحه را افزایش دادیم که برای ربات گوگل مهم است و برای مردم خوشایند است.
  • ما بار روی سرور را کاهش دادیم که میزبان را خوشحال کرد.
  • تاریخ در نتایج جستجوی Yandex نمایش داده می شود اخرین بروزرسانیصفحاتی که در برخی موارد برای افراد بسیار حائز اهمیت است و به همین دلیل به صورت غیرمستقیم بر روی عوامل رفتاری تاثیر مثبت خواهد داشت.
  • صفحات سایت ما در مرتب سازی موتورهای جستجو بر اساس تاریخ نقش دارند - بله، بله، این همان چیزی است که کاربران پیشرفته استفاده می کنند.
  • و در نتیجه همه موارد فوق، نمایه سازی سایت ما توسط موتورهای جستجو بسیار تسریع خواهد شد.



بالا