تم تعديل هذه الصفحة آخر مرة في عام 1576. مدونة تحتوي على الكثير من المعلومات المثيرة للاهتمام…. تسريع الفهرسة بواسطة محركات البحث

رأس HTTP آخر تعديل (آخر التغييرات)ينقل الوقت إلى العميل اخر تغيروثيقة (صفحة ويب). يرسل العميل (المتصفح أو روبوت البحث) الرأس " إذا تم تعديله منذ ذلك الحين"وإذا كان تاريخ آخر تعديل للصفحة متطابقًا، فسيقوم الخادم بإرجاع الرأس" 304 لم يتم تعديله"ولا يقوم بتحميل الصفحة. إذا كان وقت التعديل الأخير مختلفًا (أو لم يتم تكوين آخر رأس تم تعديله) - يقوم الخادم بإرجاع الرأس " 200 موافق" ويقوم بتحميل الصفحة. وهذا هو، بدلا من إعادة تحميل الصفحة مرة أخرى وتحديث ذاكرة التخزين المؤقت، يتلقى العميل فقط رأس 304. يحفظ العميل حركة المرور، ويرسل الخادم بيانات أقل - مدخرات متبادلة.

ولكن لماذا يكون هناك هذا المقال إن لم يكن للحديث عن الفوائد التي يجلبها تعيين رأس Last-Modified، أو بشكل أكثر دقة، لتسريع فهرسة الموقع. ليس من الصعب تخمين أنه سيتم فهرسة 10 صفحات من موقع ما بشكل أسرع من 1000 صفحة. نفس المبدأ الذي يسمح لك بتحسين تحميل الصفحة يعمل أيضًا على الفهرسة. لا يحتاج محرك البحث إلى فهرسة 1000 صفحة للعثور على 10 صفحات جديدة. بفضل التعديل الأخير، نترك فقط الصفحات الجديدة (أو الصفحات المحدثة) للروبوت. يأتي الروبوت إلى الموقع ويأخذ أولاً ما يحتاج إليه، ثم كل شيء آخر.

ضبط رأس آخر تعديل

تأكد من صحة رؤوس http الخاصة بك. على وجه الخصوص، المهم هو محتوى الرد الذي يقدمه الخادم لطلب "إذا تم التعديل منذ ذلك الحين". يجب أن يشير رأس "آخر تعديل" إلى التاريخ الصحيح الذي تم فيه آخر تعديل للمستند. حتى إذا لم يعرض الخادم تاريخ آخر تعديل للمستند، فسيتم فهرسة موقعك. لكن في هذه الحالة عليك مراعاة ما يلي: - لن تظهر نتائج البحث التاريخ بجوار صفحات موقعك؛ - عند الفرز حسب التاريخ، لن يكون الموقع مرئيًا لمعظم المستخدمين؛ - لن يتمكن الروبوت من الحصول على معلومات حول ما إذا كانت صفحة الموقع قد تم تحديثها منذ آخر فهرسة. وبما أن عدد الصفحات التي يتلقاها الروبوت من الموقع في زيارة واحدة محدود، فستتم إعادة فهرسة الصفحات التي تم تغييرها بشكل أقل. تأكد من أن خادم الويب الخاص بك يدعم رأس HTTP "If-Modified-Since". سيسمح هذا الرأس لخادم الويب بإخبار Google ما إذا كان محتوى الموقع قد تغير منذ آخر مرة تم الزحف إليه. يؤدي دعم هذه الميزة إلى تقليل استخدام الحمل وعرض النطاق الترددي.

فيما يلي أمثلة لكيفية تكوين الرأس الذي تم تعديله مؤخرًا ليتم إرساله والتعامل مع If-Modified-Since بشكل صحيح.

كيفية إعداد meta Last-Modified لصفحات html الثابتة

كيفية إعداد آخر تعديل في php

= $LastModified_unix) ( header($_SERVER["SERVER_PROTOCOL"] . " 304 غير معدل");exit; ) header("Last-Modified: ".$LastModified); ?>

كيفية تكوين آخر تعديل .htaccess

قاعدة إعادة الكتابة .* - قاعدة إعادة الكتابة .* -

كيفية تكوين آخر تعديل 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 آخر تعديل؛ تشمل fastcgi_params؛ )

تحقق من آخر تعديل

عند تكوين تمرير الرأس إلى العميل، فإنه لا يضر تحقق من آخر تعديلمن أجل الصواب. يمكنك التحقق من آخر تعديل على موقع الويب الخاص بك أو على موقع ويب تابع لجهة خارجية من خلال الخدمات عبر الإنترنت.

أو قم بإجراء فحص خاص بك للتأكد من المعالجة الصحيحة لرأس Last-Modified:

ضبط رأس آخر تعديلوستكون معالجة رأس If-Modified-Since مفيدة للغاية لأي موقع أكبر أو أصغر. يمكن أن تصبح سرعة معالجة صفحات الموقع كبيرة. لن يؤدي الإعداد البسيط نسبيًا إلى حدوث مشكلات، خاصة أنه بالنسبة لأنظمة إدارة المحتوى الشائعة مثل joomla وwordpress وmodx وما إلى ذلك. هناك حلول جاهزة.

هناك الكثير من الخرافات المختلفة التي تدور حول مجال تحسين محركات البحث (SEO) على مواقع الويب. بعضها له أساس، وبعضها جاء من العدم. في هذه المذكرة، سنلقي نظرة على إحداها - باستخدام رأس الاستجابة last-Modified.

لقد تلقينا منذ بعض الوقت مستندًا بعنوان "توصيات Ingate لاستوديوهات الويب على المواقع التي يتم الترويج لها". وكانت إحدى "التوصيات" كما يلي:

بعد إعادة التصميم أو على موقع جديد قيد التطوير، يجب الإشارة إلى تاريخ آخر تعديل لصفحات الموقع (آخر تعديل).

للإضافة إلى الموقع في معلومات PHPتاريخ التعديل الأخير للصفحات ضروري في البداية مصدر الرمزإدراج برنامج نصي في كل صفحة


header("آخر تعديل: " . date("D, d M Y H:i:s"، time()) . "GMT");
?>

لقد كان هذا الهراء الجامح، هذا الهراء المطلق والرمز المجنون بصراحة هو الذي دفعني لكتابة هذه المذكرة. سأحاول هنا شرح ما هو Last-Modified ولماذا هو مطلوب وكيف تستخدمه المتصفحات ومحركات البحث.

ما هو آخر تعديل

عند نقل المعلومات إلى العميل (المتصفحات أو روبوت البحث)، يقوم خادم الويب بالإبلاغ عن الكثير من البيانات الإضافية. ويمكن الاطلاع عليها في وحدة تحكم المتصفح، على سبيل المثال:

قم بتكوين الخادم لإصدار رؤوس الاستجابة الصحيحة (على سبيل المثال، إذا كانت الصفحة غير موجودة، قم بإصدار خطأ 404، وإذا تم تلقي طلب If-Modified-Since، فقم بإصدار رمز 304 إذا لم يتم تغيير الصفحة منذ التاريخ المحدد في الطلب).

يمكنك أيضًا أن ترى أنه إذا لم يستجب الخادم بأي شكل من الأشكال لطلب GET المشروط، فهذا لا يختلف عن الطلب العادي. وهذا يعني أن رأس Last-Modified مع الوقت الحالي، والذي تم تكوينه بشكل غير صحيح أيضًا (hello Integgate!) ليس مطلوبًا على الإطلاق!

إذن هل التعديل الأخير ضروري أم لا؟

ضروري عموما. ولكن من المهم أن نفهم أن الرأس نفسه لا يلعب أي دور، ولكن سيناريو الطلب الشرطي بأكمله، والذي يجب تنفيذه بالكامل بواسطة الموقع. في هذه الحالة سنحصل على سرعة عالية في فهرسة الموقع.

ولكن غالبًا ما يكون من الصعب جدًا تنفيذ ذلك في نظام إدارة المحتوى الجاهز. قد يتطلب هذا تغييرات كبيرة جدًا في كود نظام إدارة المحتوى نفسه.

على الرغم من أنه يمكن تحقيق ذلك بالنسبة لعدد من أنظمة إدارة المحتوى (CMS) عن طريق تمكين التخزين المؤقت للصفحة. إذا قام نظام إدارة المحتوى (CMS) بتخزين الصفحات مؤقتًا، وإنشاء ملفات ثابتة وعرضها بشكل أساسي، فسوف يستجيب خادم الويب نفسه بشكل صحيح للطلبات الشرطية. على سبيل المثال، في WordPress يمكن تحقيق ذلك باستخدام المكون الإضافي WP Super Cache:

دعونا التحقق من ذلك في العمل. لقد قمت بتمكين هذا البرنامج المساعد، وفتحت المتصفح في الوضع المجهول وقدمت طلبين لنفس الصفحة. ومن الواضح أن الإجابة الثانية صحيحة - 304 غير معدلة:

بدلا من الاستنتاج

وهكذا، تعاملنا مع رأس Last-Modified. أولاً، يجب أن ينقل معلومات حول تاريخ ووقت تعديل المستند فعليًا. ثانيًا، تعد استجابة الخادم للطلب الشرطي باستخدام رأس If-Modified-Since أمرًا في غاية الأهمية.

حسنًا، استمع بشكل أقل إلى مُحسّنات محرّكات البحث (SEO) الذين لا يعرفون أساسيات كيفية عمل الإنترنت.

إحدى مراحل تحسين موقع الويب للتشغيل السليم والترويج الناجح هي التحسين من جانب الخادم. تتضمن النقاط الأخرى إعداد استجابة الخادم الصحيحة لطلب "آخر تعديل". يمكن أن يؤدي تعيين هذه المعلمة بشكل صحيح إلى زيادة سرعة تحميل الموقع ويكون له تأثير إيجابي على فهرسته بواسطة روبوتات البحث.

ما هو آخر تعديل ولماذا هو مطلوب؟

كما يوحي الاسم، يخبر رأس "آخر تعديل" العميل (زائر الموقع) عن آخر مرة تم فيها تعديل صفحة معينة من الموقع. إذا كان روبوت البحث يعمل كزائر للموقع ولم يتم تكوين استجابة آخر تعديل للمستند أو الصفحة المطلوبة (أو تم تكوينها بشكل غير صحيح) على الموقع (الخادم)، فلن يكون أمام روبوت البحث خيار سوى فهرسة جميع صفحات الإنترنت المورد مرارا وتكرارا عند كل زيارة، وبالتالي خلق حمل معين على الخادم الموجود على موقع الاستضافة. وماذا لو كان عدد الصفحات مئات أو حتى آلاف؟ اعتمادًا على خصائص الخادم وإمكانياته، هناك احتمالية الوقوع في نوع من الأخطاء من جانب الاستضافة. بالإضافة إلى ذلك، تجدر الإشارة إلى أن روبوت البحث لديه حد لعدد الصفحات المفهرسة "في المرة الواحدة"، فإذا لم يكن هناك الإعدادات الصحيحةرأس آخر تعديل، نحن نخاطر بأن يتم فهرسة الصفحات غير المعدلة بواسطة الروبوت، لكن الصفحات الجديدة التي نحتاجها لن يتم فهرستها.

استنادًا إلى مواصفات RFC 2616 التي تصف بروتوكول نقل النص التشعبي بتنسيق HTML، يمكن للعميل "سؤال" الخادم عما إذا كانت الصفحة قد تغيرت منذ تاريخ معين عن طريق إرسال رأس "If-Modified-Since" إلى الخادم. إذا لم تتغير الصفحة المطلوبة، فسيقوم الخادم بإرجاع رأس "304 غير معدل" ولن يقوم المتصفح بتحميل الصفحة ولن يرسل خادم الويب الكثير من البيانات. بخلاف ذلك (إذا تغيرت صفحة الموقع منذ الطلب السابق)، فسيقوم الخادم بإرجاع استجابة "200 موافق" ومباشرة رمز الصفحة نفسها.

بالإضافة إلى ما سبق، نذكر توصيات ياندكس: “لن يتمكن الروبوت من الحصول على معلومات حول ما إذا كانت صفحة الموقع قد تم تحديثها منذ آخر فهرسة. وبما أن عدد الصفحات التي يتلقاها الروبوت من الموقع في زيارة واحدة محدود، فستتم إعادة فهرسة الصفحات التي تم تغييرها بشكل أقل.

المجموع:الغرض المهم من رأس "آخر تعديل" هو إعلام زائر الموقع و روبوت البحثتاريخ آخر تعديل لأي وثيقة.

لماذا تحتاج إلى تكوين Last-Modified بشكل صحيح؟

من خلال تكوين استجابة الخادم Last-Modified بشكل صحيح، يمكننا تحقيق العديد منها نتائج إيجابيةلموقعنا:

  • تزداد سرعة تحميل صفحة الموقع للأشخاص:إذا تمت زيارة الصفحة بالفعل من قبل المستخدم وفي وقت الزيارة التالية لم تتغير الصفحة، فلن يقوم متصفح الزائر بإعادة تحميل الصفحة، ولكنه سيعرض نسختها المخزنة مؤقتًا؛
  • تم تقليل الحمل على منصة الاستضافة (الخادم):باستخدام خوارزمية التشغيل هذه، سيتم تحميل الخادم بشكل أقل بكثير بسبب الحاجة إلى نقل حجم الصفحات المتغيرة فقط إلى زائر الموقع؛
  • يتم عرض تاريخ آخر مستند في نتائج البحث:يمكن لهذه الحقيقة أن تجذب الزوار إلى موقعك إذا تم عرض تاريخ "جديد"؛
  • رتب حسب التاريخ:ستشارك صفحات الموقع في الفرز حسب التاريخ في نتائج البحث؛
  • تم تسريع فهرسة الموقع بواسطة روبوتات البحث بشكل ملحوظ:نظرًا للاستجابة السريعة لموقعك فيما يتعلق بتاريخ الصفحات التي تم الزحف إليها، سيتم "التخلص" من الصفحات القديمة (المفهرسة بالفعل)، مما يفسح المجال للمستندات "الجديدة". هذه النقطة هي الأهم عند الترويج لموقع ما، لأن... سرعة الفهرسة العالية تزيد من مستوى الثقة في الموقع بين روبوتات البحث.

كيفية التحقق من تكوين Last-Modified بشكل صحيح؟

إحدى الخدمات التي يمكنك من خلالها التحقق من صحة (وفي الواقع وجود) استجابة خادم Last-Modified هي خدمة last-modified.com التي تحمل الاسم نفسه

في حقل الإدخال، تحتاج إلى كتابة عنوان موقع الويب الخاص بك أو صفحة معينة والنقر على زر "التحقق". ستكون نتيجة الخدمة بمثابة عرض توضيحي لاستجابة موقعك لطلب الترويسات "Last-Modified" و"304 Not Modified". مثال على هذا الفحص:

إعداد آخر تعديل

دعونا نلقي نظرة على تنفيذ استجابة رأس HTTP Last-Modified في PHP.

على الإنترنت، يمكنك غالبًا العثور على التوصيات التالية لإعداد Last-Modified:

أريد فقط أن أصرخ: "لسنا بحاجة إلى هذا النوع من الهوكي!" ودعونا معرفة السبب. استجابة لطلب المستخدم، الوظيفة gmdateسوف يعيده إلينا التاريخ الحاليتوقيت غرينتش (GMT). وسيحدث هذا في كل مرة مع كل طلب من مستخدم أو روبوت بحث - سيعيد الخادم طلبه بالضبط التاريخ الحالي. اتضح أنه في كل مرة تزور فيها محركات البحث موقعك، سيرون أن الصفحة المطلوبة قد تم تحديثها للتو. قد يكون هذا "مفيداً" عدة مرات فقط... وبعد فترة سيدرك محرك البحث أنه "ينخدع" وسيفقد أي ثقة في موقعك. وعليه فإن مثل هذا التنفيذ لا يناسبنا.

دعنا ننتقل إلى المورد أعلاه للحصول على المساعدة. last-modified.com. كما يقدم أيضًا تطبيقًا لرأس HTTP الذي تم تعديله مؤخرًا في PHP. تبدو هكذا:

$LastModified_unix = 1294844676;

$IfModifiedSince = false;



إذا ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) (
مخرج؛
}

دعونا نلقي نظرة على كيفية عمل هذا الرمز. عامل $LastModified_unixتعيين يدويا في الشكل طابع زمني يونكس(عدد الثواني التي مرت منذ بداية عصر يونكس - منذ 1 يناير 1970).

وظيفة gmdateإرجاع توقيت GMT الحالي بالتنسيق اليوم، اليوم، الاثنين، السنة HH:MM:SS بتوقيت جرينتش.

التالي: احصل على وقت آخر تعديل للصفحة، وتحقق من توفرها إذا تم تعديله منذ ذلك الحين، إذا كان هناك واحد، فإننا نعطيه 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;

إذا (isset($_ENV["HTTP_IF_MODIFIED_SINCE"]))
$IfModifiedSince = strtotime(substr($_ENV["HTTP_IF_MODIFIED_SINCE"], 5));

إذا (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]))
$IfModifiedSince = strtotime(substr($_SERVER["HTTP_IF_MODIFIED_SINCE"], 5));

إذا ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) (
header($_SERVER["SERVER_PROTOCOL"] . "304 غير معدل");
مخرج؛
}

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

في الإصدار المحدث، يقوم السطر الأول من التعليمات البرمجية بتحويل تمثيل النص للتاريخ إلى اللغة الإنجليزيةإلى تسمية في التنسيق طابع زمني يونكسوبالتالي استخدام وقت التغيير المحسوب تلقائيًا لصفحة الموقع الحالية.

كل شيء جاهز! الآن كل ما علينا فعله هو لصق الكود الناتج في القسم ... كل صفحة من صفحات الموقع والاستمتاع بتحميل وفهرسة الصفحات بسرعة عالية بواسطة روبوتات البحث.

اسمح لنا بمساعدتك في إعداد Last-Modified!

ابدأ بمكالمة بسيطةفي تي ديزاين! رقم هاتفنا هو 8 499 340-17-82 - يعمل في الوضع بدون توقف، حتى تتمكن من الحصول بسرعة على المعلومات التي تهمك في حل مشاكل تطوير ودعم موقعك. أو الكتابة إلى بريد إلكتروني. سوف نقوم بتقديم المشورة بشأن جميع الأسئلة و سنختار التعريفة المثاليةلشركتك.

بناء الجملة

إذا تم التعديل منذ: , ::بتوقيت غرينيتش

التوجيهات

أحد أيام "الاثنين" أو "الثلاثاء" أو "الأربعاء" أو "الخميس" أو "الجمعة" أو "السبت" أو "الأحد" (حساس لحالة الأحرف). رقم اليوم المكون من رقمين، على سبيل المثال "04" أو "23". أحد أيام "يناير" و"فبراير" و"مارس" و"أبريل" و"مايو" و"يونيو" و"يوليو" و"أغسطس" و"سبتمبر" و"أكتوبر" و"نوفمبر" و"ديسمبر" ( حساسية الموضوع). رقم السنة المكون من 4 أرقام، على سبيل المثال "1990" أو "2016". رقم الساعة المكون من رقمين، على سبيل المثال "09" أو "23". عدد الدقائق مكون من رقمين، على سبيل المثال "04" أو "59". الرقم الثاني المكون من رقمين، على سبيل المثال "04" أو "59". بتوقيت غرينيتش

توقيت غرينيتش. يتم التعبير عن تواريخ HTTP دائمًا بتوقيت جرينتش، وليس بالتوقيت المحلي أبدًا.

أمثلة

إذا-تم التعديل-منذ: الأربعاء، 21 أكتوبر 2015 07:28:00 بتوقيت جرينتش

تحديد

تخصيص عنوان
RFC 7232، القسم 3.3: إذا تم تعديله منذ ذلك الحين بروتوكول نقل النص التشعبي (HTTP/1.1): الطلبات المشروطة

التوافق المتصفح

يتم إنشاء جدول التوافق الموجود في هذه الصفحة من البيانات المنظمة. إذا كنت ترغب في المساهمة في البيانات، يرجى مراجعة https://github.com/mdn/browser-compat-data وإرسال طلب سحب إلينا.

تحديث بيانات التوافق على GitHub

سطح المكتبمتحرك
كرومحافةثعلب النارمتصفح الانترنتالأوبراسفاريعرض ويب أندرويدكروم لنظام أندرويدفايرفوكس لالروبوتأوبرا للأندرويدسفاري على نظام iOSإنترنت سامسونج
إذا تم تعديله منذ ذلك الحيندعم كروم الكامل نعمحافة الدعم الكامل 12دعم كامل لفايرفوكس نعمIE الدعم الكامل نعمأوبرا الدعم الكامل نعمدعم سفاري الكامل نعمدعم WebView Android الكامل نعمدعم Chrome Android الكامل نعمدعم كامل لفايرفوكس أندرويد نعمدعم Opera Android الكامل نعمدعم Safari iOS الكامل نعمدعم Samsung Internet Android الكامل نعم

رؤوس Last-Modified وIf-Modified-Since لـ WordPress

قليل من الناس يهتمون برؤوس HTTP آخر تعديلو إذا تم تعديله منذ ذلك الحينعند تحسين موقعك، ولكن دون جدوى! من المهم أن تقوم الصفحة، التي لم يتغير محتواها منذ آخر زيارة لروبوت البحث، بإرجاع رمز 304، والذي يشير في الواقع إلى أن هذه الصفحة بالذات لم يتم استكمالها بأي شيء - لم تقم بتحرير النص أو استكماله ، لم تتم إضافة أي تعليقات على هذا المنشور، الخ.

إذا كان رأس http هذا مفقودًا، ففي Yandex، عند فرز النتائج حسب التاريخ، لن يكون الموقع مرئيًا لمعظم المستخدمين.

ولهذا السبب من المهم ألا تقوم فقط بإعداده بشكل صحيح، ولكن أيضًا تحديث التاريخ إلى التاريخ الحالي في كل مرة تقوم فيها بتحرير سجل. يجب أن يتم ذلك يدويًا.

مع التعليقات يكون الأمر أبسط: عندما يضيف الزائر تعليقًا، يتم ذلك في المتغير $last_modified_timeيتم إدخال وقت إضافة التعليق تلقائيًا - سيكون هذا هو تاريخ آخر تعديل للصفحة.

لماذا نحتاج إلى الرؤوس Last-Modified و If-Modified-Since؟

1. عندما يرسل الخادم مثل هذا الرمز، لا يبدأ حتى تنفيذ جميع نصوص PHP النصية على الصفحة. يتم تحميل الصفحة من ذاكرة التخزين المؤقت للبحث، وهذا، كما تفهم، يقلل بشكل كبير من الحمل على الخادم، مما يسعد مضيفك كثيرًا، ويسرع تحميل الصفحة للزائر، وهو أيضًا خبر جيد.

كيف يحدث هذا؟

عند الزحف على الإنترنت، تقوم عناكب Google وYandex بحفظ نسخة من كل موقع في قاعدة بياناتها. تعمل هذه النسخة كنوع من العينة للمقارنة: هل لا يزال كل شيء كما هو أم حدثت تغييرات. وإذا لم يتم تكوين رؤوس Last-Modified و If-Modified-Since أو تم تكوينها بشكل غير صحيح، فسيتم فهرسة الصفحات الجديدة في الموقع، ولا يتم تحديث الصفحة الرئيسية في ذاكرة التخزين المؤقت لمحرك البحث لفترة طويلة، تمامًا كما التعليق لا يتم تحديث الخلاصة.

ولكن بالنسبة للصفحات التي يتم تحديثها بشكل متكرر (يتم تحديث موجزات الأخبار عدة مرات يوميًا، والمدونات التي يتم التعليق عليها بشكل نشط، وما إلى ذلك) فإن لها عيبًا واحدًا: المعلومات الموجودة في ذاكرة التخزين المؤقت تصبح قديمة بسرعة كبيرة جدًا ولا يرى الشخص آخر الأخبار، حتى عند إعادة تحميل الصفحة. ، لا يرى تعليقات جديدة. ولكن هذا ليس سيئا للغاية. المشكلة هي أن الروبوت لا يرى ذلك أيضًا، إلا إذا تم تشغيله العنوان الصحيحآخر تعديل.

header("آخر تعديل: ".gmdate("D, d M Y H:i:s ")."GMT");

إذا تم تحديث موقعك بشكل متكرر (على سبيل المثال، غالبًا ما يتم التعليق على منشوراتك)، فيمكنك تعطيل التخزين المؤقت باستخدام مجموعة الرؤوس التالية:

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

وهذا يعني أنه يجب التحقق من صحة النسخة المخزنة مع كل طلب.

كيف يعمل التخزين المؤقت في المتصفحات؟

إذا لم يتم تعطيلها عن طريق استدعاء وظيفة no_cache، فسيتم تخزين الصفحة في Firefox وIE في ذاكرة التخزين المؤقت، وبالنسبة لجميع الطلبات اللاحقة، يتم إرجاع هذه الصفحة.

لتحديث الصفحة والحصول على أحدث إصدار، تحتاج إلى الضغط على مجموعة المفاتيح السيطرة+F5، زر "التحديث" المعتاد (F5) لا يعمل. ويجب أن أقول أنه يمكن تخزين المستندات الموجودة في ذاكرة التخزين المؤقت لـ IE لفترة طويلة جدًا.

في Opera، يتم مسح صفحة ذاكرة التخزين المؤقت بالضغط على زر "تحديث" أو المفتاح F5. تعمل مجموعة CRTL+F5 في Opera على إعادة تحميل جميع علامات التبويب المفتوحة، وكما تعلم، إذا قمت بفتحها كثيرًا، فقد تنمو لحيتك أثناء الانتظار.

إذا قمت بتعطيل التخزين المؤقت للصفحة باستخدام وظيفة no_cache، فإن Opera وFirefox، عند الوصول إلى مثل هذه الصفحة، استخدما الآلية مع رأس 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("التحكم في ذاكرة التخزين المؤقت: عدم وجود ذاكرة تخزين مؤقت، يجب إعادة التحقق");
$mt = filemtime($file_name);
$mt_str = gmdate("D, d M Y H:i:s ")."GMT";
إذا (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) &&
strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) >= $mt)
(header("HTTP/1.1 304 غير معدل");
موت؛
}
header("آخر تعديل: ".$mt_str);
صدى النص $؛
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في جذر WordPress الخاص بك (لقد واجهت هذا على استضافة timeweb.ru). وكذلك فوق كل شيء آخر فيه. فقط لا تنسَ ذلك عند التحديث - سيتم الكتابة فوق ملف الفهرس في شكله القياسي.

هاهو! من خلال ضبط ترويسات Last-Modified وIf-Modified-Since بشكل صحيح، حصلنا على مجموعة من المكافآت:

  • لقد قمنا بزيادة سرعة تحميل الصفحة، وهو أمر مهم لروبوت Google وممتع للأشخاص.
  • قمنا بتقليل العبء على الخادم، الأمر الذي أسعد المضيف.
  • سيتم عرض التاريخ في نتائج بحث Yandex اخر تحديثالصفحات، والتي في بعض الحالات تكون مهمة جدًا للأشخاص، وبالتالي بشكل غير مباشر سيكون لها تأثير إيجابي على العوامل السلوكية.
  • ستشارك صفحات موقعنا في فرز محركات البحث حسب التاريخ - نعم، نعم، هذا ما يستخدمه المستخدمون المتقدمون.
  • ونتيجة لكل ما سبق، فإن فهرسة موقعنا بواسطة محركات البحث سوف تتسارع بشكل كبير.



قمة