رفع کندی وردپرس در هنگام قطعی و اختلال اینترنت

رفع کندی وردپرس در هنگام قطعی و اختلال اینترنت

آنچه در مقاله می‌خوانید

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

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

دلیل این مسئله  ماهیت وردپرس و وابستگی‌های آن است. سایت وردپرسی به منابع و سرویس‌های متعددی خارج از زیرساخت داخلی متکی است. به عنوان مثال: از فونت‌ها و فایل‌های CDN گرفته تا APIهای بررسی لایسنس، سرویس‌های آماری، سیستم بروزرسانی هسته و افزونه‌ها. در شرایطی که این ارتباط‌ها قطع یا دچار اختلال شوند، همین وابستگی‌ها می‌توانند باعث  تأخیرها و درخواست‌های بدون پاسخ را ایجاد کنند که در نهایت باعث کندی سایت می‌شود.

چطور بفهمیم مشکل از سرور است یا اختلال اینترنت؟

چطور بفهمیم مشکل از سرور است یا اینترنت بین‌الملل؟

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

مشکلات مربوط به سرور

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

مشکلات ناشی از اینترنت 

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

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

نشانه‌های رایج این مشکل

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

در صفحات اصلی سایت هم ممکن است کندی شدید در اولین بارگذاری دیده شود، حتی اگر در دفعات بعدی با cache تا حدی بهتر شود.

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

وابستگی‌های خارجی وردپرس (ریشه اصلی مشکل)

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

درخواست به CDNهای خارجی

بخش زیادی از فایل‌هایی که در سایت بارگذاری می‌شوند، ممکن است از سرویس CDN خارجی دریافت شوند. مواردی مثل فونت‌ها یا فایل‌های CSS و JavaScript اغلب از سرویس‌هایی مثل Google Fonts، jsDelivr یا Cloudflare CDN لود می‌شوند.

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

APIهای خارجی

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

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

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

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

سرویس‌های تحلیلی و مارکتینگ

سرویس‌های آماری و مارکتینگ هم یکی دیگر از منابع کندی هستند. ابزارهایی مثل Google Analytics، Tag Manager یا Facebook Pixel معمولا به‌صورت اسکریپت در سایت لود می‌شوند و برای ارسال یا دریافت داده، نیاز به ارتباط با سرورهای خارجی دارند.

منابع Embed شده

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

نقش DNS در کندی سایت وردپرسی

یکی دیگر از عواملی که می‌تواند باعث کندی سایت وردپرسی در زمان اختلال اینترنت شود، نحوه عملکرد DNS است. DNS مسئول تبدیل نام دامنه به آدرس IP است و بدون پاسخ آن، مرورگر نمی‌تواند درخواست‌ها را به سرورهای مقصد ارسال کند.

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

دلایل کندی پیشخوان وردپرس در زمان اختلال اینترنت

دلایل کندی پیشخوان وردپرس در زمان اختلال اینترنت

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

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

وردپرس همچنین به‌طور منظم check update انجام می‌دهد؛ یعنی وضعیت به‌روزرسانی هسته، افزونه‌ها و قالب‌ها را بررسی می‌کند. این فرآیند هم به سرورهای خارجی متکی است و در صورت عدم دسترسی به اینترنت، زمان انتظار برای پاسخ طولانی می‌شود.

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

در نهایت، بسیاری از درخواست‌های HTTP در پیشخوان به‌صورت blocking اجرا می‌شوند، یعنی تا زمانی که پاسخ دریافت نشود، فرآیند ادامه پیدا نمی‌کند.

تاثیر افزونه‌ها و قالب‌ها در کندی سایت وردپرسی

یکی دیگر از عوامل مهم کندی وردپرس، افزونه‌های وردپرس و قالب‌هایی هستند که به سرویس‌های خارجی وابسته‌اند. بسیاری از افزونه‌ها برای عملکرد صحیح خود نیاز دارند با سرورهای خارجی ارتباط برقرار کنند. به‌عنوان مثال، page builderها مانند المنتور برای لود کردن برخی فایل‌ها یا templateها، افزونه‌های امنیتی برای بررسی ریسک‌های امنیتی و license checkerها برای تأیید اعتبار لایسنس، اغلب callهای خارجی دارند. همین درخواست‌ها در شرایطی که اینترنت بین‌الملل قطع یا کند باشد، باعث معطل ماندن درخواست‌ها و افزایش زمان لود می‌شوند. به همین دلیل، حتی اگر سرور و زیرساخت داخلی شما قوی باشند، افزونه‌ها و قالب‌های وابسته به منابع خارجی می‌توانند نقطه‌ی اصلی ایجاد کندی در سایت باشند.

مشکلات شبکه و پروتکل‌های ارتباطی

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

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

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

نتیجه این مجموعه عوامل، افزایش TTFB است؛ یعنی مرورگر باید مدت طولانی‌تری منتظر اولین بایت پاسخ از سرور بماند.

راهکارهای عملی برای رفع کندی وردپرس در زمان قطعی اینترنت بین‌الملل

راهکارهای عملی برای رفع کندی وردپرس در زمان قطعی اینترنت بین‌الملل

خوشبختانه روش‌هایی وجود دارد که می‌توانند وابستگی وردپرس به منابع خارجی را کاهش دهند و سرعت سایت را حتی در زمان اختلال اینترنت بهبود بخشند.

حذف یا لوکال کردن منابع خارجی

یکی از رایج‌ترین منابع کندی، Google Fonts و سایر فایل‌هایی هستند که از CDNهای خارجی لود می‌شوند. با دانلود این فایل‌ها و قرار دادن آن‌ها روی سرور خودتان، می‌توانید زمان بارگذاری را به‌شدت کاهش دهید و وابستگی به اینترنت بین‌الملل را حذف کنید.

همچنین استفاده از CDN داخلی برای فایل‌های JS و CSS می‌تواند به جای انتظار برای پاسخ از سرورهای خارجی، منابع را از نزدیک‌ترین نقطه به کاربر ارائه دهد. این کار نه تنها سرعت سایت را افزایش می‌دهد، بلکه ریسک کندی به‌خاطر اختلال اینترنت را کاهش می‌دهد.

غیرفعال کردن درخواست‌های خارجی وردپرس

وردپرس به‌صورت پیش‌فرض مرتباً با سرورهای خارجی تماس می‌گیرد، از جمله بررسی به‌روزرسانی هسته، افزونه‌ها و قالب‌ها. برای جلوگیری از این درخواست‌ها می‌توانید در فایل wp-config.php کد زیر را اضافه کنید:

define('WP_HTTP_BLOCK_EXTERNAL', true);

این دستور باعث می‌شود همه‌ی تماس‌های HTTP به منابع خارجی مسدود شوند و تنها درخواست‌های داخلی سایت انجام شوند. البته اگر افزونه یا قالبی نیاز به API خارجی دارد، می‌توانید آن‌ها را از لیست مسدودشده‌ها مستثنا کنید:

define('WP_ACCESSIBLE_HOSTS', 'api.example.com, fonts.googleapis.com');

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

مدیریت DNS

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

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

به‌عنوان مثال، DNSهای پیشنهادی مبین‌هاست عبارتند از:

  • مبین‌هاست اصلی: 87.107.110.110 و 87.107.110.109
  • زیرساخت Anycast: 2.189.44.44

همچنین می‌توانید resolver سرور خود را به این DNSها تنظیم کنید تا همه درخواست‌های DNS ابتدا به این سرورها ارسال شوند. این کار باعث می‌شود زمان حل نام دامنه کاهش یابد و صفحات سایت حتی در شرایط اختلال اینترنت سریع‌تر لود شوند.

 غیرفعال کردن update check

وردپرس به‌صورت پیش‌فرض مرتبا وضعیت به‌روزرسانی هسته، افزونه‌ها و قالب‌ها را بررسی می‌کند. این فرآیند در زمان اختلال اینترنت می‌تواند باعث کندی پیشخوان شود. برای جلوگیری از این مشکل، می‌توانید در فایل wp-config.php دستور زیر را اضافه کنید:

define('AUTOMATIC_UPDATER_DISABLED', true);

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

 استفاده از cache

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

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

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

برای فعال کردن cache می‌توانید از افزونه‌هایی مثل WP Rocket، W3 Total Cache یا LiteSpeed Cache استفاده کنید. کافی است تنظیمات page cache و object cache را فعال کنید تا بدون تغییر در محتوای سایت، سرعت لود به شکل چشمگیری افزایش یابد.

مانیتورینگ درخواست‌های خارجی

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

برای مانیتورینگ، می‌توانید از ابزارهایی مثل Query Monitor استفاده کنید. این افزونه به شما نشان می‌دهد کدام درخواست‌ها به سرورهای خارجی ارسال می‌شوند، هر درخواست چه مدت طول می‌کشد و اگر خطا داشته باشد چه نوع خطایی رخ داده است. علاوه بر این، با استفاده از تب Network در DevTools مرورگر نیز می‌توانید همه درخواست‌های HTTP را ببینید، زمان پاسخ آن‌ها را اندازه‌گیری کنید و منابع مشکل‌ساز را شناسایی کنید.

با بررسی این داده‌ها می‌توانید تصمیم بگیرید کدام منابع خارجی را حذف یا لوکال کنید و کدام‌ها را از طریق CDN داخلی یا جایگزین‌های self-hosted تامین نمایید. این کار باعث می‌شود هم پیشخوان روان‌تر کار کند و هم تجربه کاربری سایت به شکل چشمگیری بهبود یابد.

جمع‌بندی

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

بهینه‌سازی افزونه‌ها و قالب‌ها، حذف یا جایگزینی آن‌هایی که به APIهای خارجی وابسته‌اند، و استفاده از سیستم‌های cache مانند page cache و object cache، تعداد درخواست‌های runtime را کاهش داده و عملکرد سایت را بهبود می‌بخشد. در کنار این‌ها، مانیتورینگ دقیق درخواست‌های خارجی با ابزارهایی مثل Query Monitor یا DevTools مرورگر کمک می‌کند منابع مشکل‌ساز را شناسایی کرده و اقدامات بهینه‌سازی هدفمند انجام شود. با اجرای این راهکارها، حتی در شرایط اختلال اینترنت سایت و پیشخوان وردپرس شما روان‌تر کار خواهند کرد و تجربه کاربری به شکل محسوسی بهتر می‌شود.

5/5 - (1 امتیاز)
دیدن نظرات
small

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

هفده + شانزده =

عضویت در خبرنامه مبین هاست
مطالب کدام دسته‌بندی‌ها برای شما جذاب‌تر است؟

آنچه در مقاله می‌خوانید

مقالات مرتبط
معرفی سرویس میرور مبین هاست
آموزش پایه شبکه و اینترنت

معرفی سرویس میرور مبین هاست

سرویس Mirror مبین هاست شامل نسخه‌های بروز و همگام‌شده از تمام توزیع‌های پرکاربرد لینوکس و کنترل‌پنل‌های پراستفاده است. با استفاده از این Mirror، می‌توانید بسته‌ها

آموزش تغییر DNS در گوشی‌های اندروید و آیفون
آموزش پایه شبکه و اینترنت

آموزش تغییر DNS در گوشی‌های اندروید و آیفون

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

خدمات مبین هاست