مقاله “همه چیز درباره ی کش وب سایت، کش چیست و چرا مهم است؟” نکات قابل توجهی را مورد بررسی قرار داده است . با ما همراه باشید :

کش وب سایت یکی از تکنولوژی های بسیار سودمند در دسترس است. در مدت کوتاهی ، این تکنولوژی وب سایت شما را  بسیار سریع می کند که باعث می شود نمره ی سئوی آن افزایش یابد و موجب افزایش رضایت کاربران می شود.

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

کش چیست؟

علی رغم اینکه جزئیات دقیق کش بسیار پیچیده است، ایده ی اولیه ی آن در واقع بسیار ساده می باشد. اجازه دهید یک مثال بزنیم:

اگر از شما نتیجه ۵ × ۳ را بپرسیم، پاسخ شما ۱۵خواهد بود. قطعا شما برای پاسخ به پرسش ما محاسبه انجام نمی دهید، در واقع شما در طول زندگی خود بارها آن را حساب کرده اید و دیگر نیاز به محاسبه ندارید. احتمالا شما به راحتی و بدون هیچ گونه فرایند پیچیده ی ذهنی نتیجه را به یاد می آورید. خوب، این دقیقا همان فرایندی است که در کش کردن اتفاق می افتد.

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

چگونه صفحات در حافظه کش می شود

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

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

اما اگر محتوای وب سایت دچار تغییرات شود چه اتفاقی می افتد؟

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

یک کش پیکربندی شده برای وردپرس، زمانی که یک پست جدید منتشر می شود، فایل ذخیره شده در حافظه را پاک می کند.

آیا کش کردن صفحات واقعا موثر است؟

یک وب سایت با کدنویسی خوب، ممکن در کمتر از دو ثانیه بارگذاری شود. (توجه داشته باشید: سرعت بارگذاری یک وب سایت چیزی است که شما به راحتی می توانید آن را با استفاده از خدمات رایگان مانند GTMetrix تست کنید). به اندازه ی کافی سریع نیست؟ آیا واقعا کش کردن ارزشش را دارد؟ پاسخ این است: البته که بله. با استفاده از کش کردن مرورگر و سرور می توانید زمان زیادی را صرفه جویی کنید.

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

حال سوال این است: چگونه کش کردن موثر است؟ با توجه به مطالعات اخیر توسط YUI، ذخیره ی مرورگر می تواند سرعت را به اندازه ی ۳۰۰٪ افزایش دهد!

انواع کش

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

کش مرورگر

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

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

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

کش سرور

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

شما ممکن است اصطلاحات کش شی و یا کش کامل یک صفحه را شنیده باشید. این ها هردو متدهای کش سرور هستند. کش کامل صفحه چیزی است که ما تا کنون درباره ی آن صحبت می کردیم.

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

کش کردن در وردپرس

سه چیز در ارتباط با کش کردن در وردپرس وجود دارد که شما باید بدانید: نوشتن کد کارآمد، استفاده از افزونه ی کش کردن و استفاده از کش درون هاست.

استفاده از افزونه ی کش کردن

مهم ترین قانون کلی، که نمی توانیم به اندازه کافی درمورد آن صحبت کنیم: هرگز، هرگز، هرگز از بیش از یک افزونه برای کش کردن استفاده نکنید. این کار نه تنها باعث نمی شود که سایت شما سریع تر شود؛ بلکه حتی وب سایت تان را چندین برابر کندتر می کند و باعث شکست فرایندهای آن می شود.

همیشه از یک افزونه ی کش کردن استفاده کنید. هنگامی که به درستی پیکربندی انجام شد، این افزونه به شما کمک خواهد کرد تا سرعت وب سایت تان را به طور چشم گیری بالا ببرید. بهترین افزونه های کش کردن عبارتند از:

WP Rocket  ,W3 Total Cache و WP Super Cache.

استفاده از کش کردن درون هاست

این کار به وب سایت هایی که در محیط هاست مدیریت وردپرس اجرا می شوند، اعمال می شود. توصیه ی ما WPEngine،  Flywheel  و Kinsta، است که همگی مکانیسم های بسیار عالی ذخیره سازی را دارا هستند.

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

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

نوشتن کد کارآمد

این مورد برای افرادی است که کدنویسی می کنند. ما نمی خواهیم در اینجا وارد جزئیات بشویم، اما اولین چیزی که شما باید به عنوان یک کدنویس از آن آگاه باشید این است که وردپرس بطور داخلی چگونه کار می کند.

برای مثال، اگر شما در حال نوشتن متا داده برای یک پست هستید و دستور زیر را فراخوانی می کنید:

get_post_meta( $post_id, 'co-author', true );

وردپرس در واقع تمام متا داده ها را برای این پست بازیابی می کند. بنابر این داشتن ۵۰ فراخوانی جداگانه ی  get_post_meta()  برای بازیابی اطلاعات یک پست بی فایده نیست.

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

نتیجه

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

اگر شما تا به حال از کش کردن صفحات وب خود استفاده نکرده اید به مقاله ” اهمیت استفاده از کش (CACHING) در وردپرس” بروید و با افزونه های آن آشنا شوید.