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

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

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

تنظیم هدر آخرین اصلاح شده

مطمئن شوید که هدرهای http شما صحیح است. به طور خاص، محتوای پاسخی که سرور به درخواست "if-modified-since" می دهد مهم است. هدر Last-Modified باید تاریخ صحیح آخرین ویرایش سند را برگرداند. حتی اگر سرور تاریخ آخرین اصلاح سند (آخرین اصلاح) را برنگرداند، سایت شما ایندکس می شود. اما در این مورد باید موارد زیر را در نظر گرفت: - تاریخ در کنار صفحات سایت شما در نتایج جستجو نشان داده نخواهد شد. - هنگام مرتب سازی بر اساس تاریخ، سایت برای اکثر کاربران قابل مشاهده نخواهد بود. - ربات نمی تواند اطلاعاتی در مورد به روز رسانی صفحه سایت از آخرین نمایه سازی دریافت کند. و از آنجایی که تعداد صفحاتی که ربات در یک بازدید از سایت دریافت می کند محدود است، صفحات تغییر یافته کمتر ایندکس می شوند. مطمئن شوید که سرور وب شما از هدر 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 خودتان بررسی کنید:

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

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

چند وقت پیش با سندی با عنوان "دستورالعمل های Ingate برای استودیوهای وب در سایت های تبلیغاتی" مواجه شدیم. و یکی از "توصیه ها" به شرح زیر بود:

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

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


سربرگ ("آخرین تغییر: " . date("D, d M Y H:i:s", time()) . "GMT");
?>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

آخرین تغییر تنظیمات صحیح برای چیست؟

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

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

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

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

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

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

بیایید نگاهی به اجرای پاسخ سرصفحه HTTP آخرین اصلاح شده توسط PHP بیندازیم.

در اینترنت، اغلب چنین توصیه هایی برای راه اندازی Last-Modified وجود دارد:

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

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

$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، دکمه Refresh معمولی (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، ما یکسری پاداش دریافت کردیم:

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



بالا