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

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

کش صفحه و Redis یک کار انجام نمی‌دهند

کش کامل صفحه، خروجی آماده HTML را نگه می‌دارد تا برای درخواست مناسب دوباره PHP و دیتابیس اجرا نشود. این روش برای صفحه‌های عمومی مثل بسیاری از دسته‌بندی‌ها و محصولات مفید است. با این حال، وجود قیمت متفاوت بر اساس نقش کاربر، ارز، کشور یا قرارداد فروش می‌تواند قواعد را تغییر دهد.

کش شیء پایدار، مثل Redis با اتصال مناسب وردپرس، داده‌های قابل استفاده مجدد را میان درخواست‌ها نگهداری می‌کند. این لایه برای بعضی مسیرهای پویا سودمند است، اما جای کش صفحه را نمی‌گیرد و کوئری بد را به‌طور خودکار اصلاح نمی‌کند. کش مرورگر هم وظیفه دیگری دارد و بیشتر به فایل‌هایی مثل تصویر، CSS و JavaScript مربوط است.

تفاوت کش عمومی و مسیر شخصی خرید در فروشگاه
تفاوت کش عمومی و مسیر شخصی خرید در فروشگاه

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

صفحه‌ها و درخواست‌های شخصی را جدا کنید

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

کوکی‌های نشست، وضعیت ورود و درخواست‌های پویا هم مهم‌اند. قواعد پیش‌فرض ابزار معتبر را بدون شناخت حذف نکنید. درگاه پرداخت، وب‌هوک، درخواست AJAX و API ممکن است به استثناهای جدا نیاز داشته باشند. وجود CDN جلوی سرور یعنی باید رفتار کش در دو نقطه مستقل بررسی شود.

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

قیمت و موجودی چه زمانی تازه می‌شوند؟

سناریوی تغییر قیمت را عمدا آزمایش کنید. محصولی آزمایشی بسازید، صفحه‌اش را در حالت مهمان باز کنید، سپس قیمت را تغییر دهید. بررسی کنید کش صفحه، کش شیء و CDN در زمان مناسب بی‌اعتبار می‌شوند. همین کار را برای اتمام موجودی و بازگشت محصول به انبار تکرار کنید. نمایش قیمت قدیمی در فهرست محصولات هم باید بررسی شود.

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

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

یک آزمون خرید با دو کاربر اجرا کنید

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

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

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

آزمون جداسازی سبد خرید دو مشتری در دو مرورگر مستقل
آزمون جداسازی سبد خرید دو مشتری در دو مرورگر مستقل

Redis را با حافظه و جداسازی درست فعال کنید

برای سایت‌ها یا محیط‌های متفاوت، فضای نام‌گذاری مناسب داشته باشید. اشتراک نامناسب کلیدها میان سایت اصلی و آزمایشی می‌تواند داده نادرست برگرداند. اتصال Redis باید محدود و محافظت‌شده باشد. باز بودن سرویس روی اینترنت، راهکار تنظیم ساده‌تر نیست.

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

سرعت را همراه با صحت خرید نگه دارید

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

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