10 راه‌کار نجات لود سایت در زمان اختلالات اینترنت بین‌الملل

دسته‌بندی: مقالات آموزشی

دسترسی سریع عناوین

نجات لود سایت در زمان قطع اینترنت بین الملل

در شرایطی که سایت شما به سرورهای خارجی دسترسی نداره یا اختلالات شدیدی در شبکه یا اینترنت وجود داره، مانند قطع یا اختلال در اینترنت بین‌المللی، این مسئله باعث میشه سرعت سایت شما به شدت کند بشه و حتی لود سایت به چند دقیقه هم برسه.

در این شرایط، بارها تجربه داشتیم که دسترسی به سایت‌ها و سرورهای داخلی هم شدیدا کند بوده و تا 40-50 ثانیه باعث کاهش لود سایت شده.

بهترین کار در همچین شرایطی، قطع موقت تمام درخواست‌های HTTP خارجی 3rd party است که اجازه ندید سایت با بیرون خودش ارتباط بگیره.

برای اینکار باید بتونید این درخواست‌ها رو درست تشخیص بدید تا بطور موثر قطع‌شون کنید. درخواست‌های HTTP بطور کلی با دو روش ارسال میشن:

  • درخواست‌هایی که با php ارسال میشن
  • درخواست‌هایی که با javaScript ارسال میشن (درخواست‌های admin ajax)

که روش مسدودسازی هر کدام متفاوته. برای رفع کندی در شرایطی که عرض کردم مراحل زیر رو به ترتیب انجام بدید.

 

1- غیرفعال کردن 2 نوع افزونه

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

  • افزونه‌هایی که موقت نصب شدند و برای انجام یک کار خاص در زمان خاصی نیاز هستند. افزونه‌هایی مثل بهینه‌سازی دیتابیس، ویرایش گروهی محصولات، افزونه‌هایی برای خروجی گرفتن از چیزی، افزونه‌های آمارگیر، افزونه‌های گزارش‌گیری مثل کوئری مانیتور که از عملکرد سایت گزارش میده و امثال اینها رو غیرفعال کنید.
  • همچنین افزونه‌هایی که با بیرون سایت ارتباط می‌گیرن مثل افزونه‌های api، افزونه‌های چت، google analytics ،hotjar ،clarity.microsoft.com ،google tag manager و هر افزونه‌ای که با بیرون سایت قراره ارتباط بگیره و 3rd party بحساب میاد رو غیرفعال کنید. در اینجا افزونه‌های بانکی استثنا هستند.

 

2- مسدود کردن درخواست‌های HTTP کُند!

با کمک افزونه مسدود کننده درخواست‌های کُند، که توسط خود ما طراحی شده تمام درخواست‌های خارجی 3rd party رو مسدود کنید. برای انجام اینکار مقاله مسدود کردن دامنه‌های کند و بهبود سرعت سایت رو حتما مطالعه کنید و انجامش بدید.

درخواست‌هایی مثل woocommerce.com ،yithemes.com ،gstatic.com ،googleapis.com و امثال اینها رو مسدود کنید.

 

3- به حداقل رساندن زمان time out

یکی از موثرترین کارها اینه که time out ارتباط سایت با بیرونِ خودش رو به حداقل برسونیم. در این شرایط فرقی نمیکنه که درخواست HTTP به سرورهای خارجی باشه یا داخلی، اگر ارتباط برقرار نشد تایمی که مرورگر باید سعی کنه ارتباط رو برقرار کنه رو به زیر یک ثانیه می‌رسونیم.

اینکار باعث میشه اگر سروری که درخواست HTTP براش ارسال شده، پاسخ نده، سرور خودمون بلافاصله برای مرورگر پاسخ 404 ارسال کنه و اون درخواست در لحظه بسته میشه و دیگه مرورگر منتظر پاسخ نمی‌مونه و سایت توی لود گیر نمیکنه!

برای اینکار کافیه کد زیر رو داخل فایل htaccess ، دقیقاً در بالای کد وردپرس که با BEGIN WordPress # شروع میشه، قرار بدید و ذخیره کنید. اینکار تایمِ عدمِ پاسخِ درخواست‌هایی که با php ارسال میشن رو داخل سایت به حداقل می‌رسونه.

کد زیر در سرورهای آپاچی و لایت اسپید قابل استفاده ست.

copy

 

4- بستن درخواست‌های gravatar.com

وردپرس برای نمایش آواتارهای هر کاربر، هر بار به دامنه secure.gravatar.com درخواست ارسال می‌کنه که اگر این دامنه فیلتر باشه یا اختلالی در ارتباطش وجود داشته باشه، لود سایت به مشکل میخوره.

پس بهتره این درخواست رو هم یا موقت مسدود کنید یا با استفاده از افزونه، یک عکس موقت بجای Avatar هر کاربر لود کنید. اگر شرایط نصب افزونه رو داشتید افزونه simple local avatars و One User Avatar افزونه‌های خوبی برای اینکار هستند.

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

با انجام اینکار دیگه هیچ درخواستی به سایت gravatar.com ارسال نمیشه و لود سایت بخاطر این درخواست افت نمیکنه. از طرفی تصاویر آواتار کامنت‌ها و بخش‌هایی که باید این تصاویر لود می‌شدند هم دیگه لود نمیشن.

 

5- قطع ارتباط با سایت‌های داخلی

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

همین الان که این مقاله رو دارم می‌نویسم سایت اینماد 33 ثانیه و سایت یکتانت هم 12 ثانیه باعث کاهش لود سایت شتاب وردپرس شده بود که بصورت موقت یکتانت رو غیرفعال کردم و کدهای اینماد رو هم فقط در یک برگه لود کردم. یعنی کدهاش رو از فوتر سایت برداشتیم و فعلا در یک برگه جدا قرار دادم. یک عکس معمولی اینماد هم در فوتر قرار دادم که به همون برگه لینک شده و همین کار لود سایت رو 33 ثانیه بهبود داد!

برای قطع ارتباط موقت درخواست‌هایی که اسکریپت آنها با کد به سایت اضافه شدند، کافیه کد رو پیدا کنید و کامنت کنید. معمولا کدها با تگ <script> در تنظیمات قالب به سایت اضافه میشن، اونها رو پیدا کنید و کامنت کنید تا وقتی شرایط عادی شد مجدد استفاده کنید.

برای کامنت کردن تگ اسکریپت دقیقا جلوی تگ <script> یک اسلش ستاره */ (اول اسلش و بعد ستاره) بذارید تا انتهای اون اسکریپت کامنت میشه.

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

 

6- قطع ارتباط با سایت‌های خارجی

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

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

 

7- قطع کردن DNS Prefetch هایی که دستی ست کردید

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

 

8- مسدود سازی استایل یا جاوااسکریپت‌های خارجی

در بعضی سایت‌ها بعضی منابع از دامنه‌های خارجی فراخوانی می‌شوند! اگر در تب Network درخواستی مشاهده کردید که یک فایل css یا js از یک لینک خارجی 3rd party مانند کلودفلر یا گوگل و امثال اینها فراخوانی میشن، و در سورس صفحه لینکی مشابه زیر مشاهده کردید:

 

برای رفع کندی لود اینطور فایلها دو تا راه کار دارید:

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

بطور مثال در درخواست بالا، می‌تونید ریکوئست فایل css رو با اسکریپت منیجر پرفمترز به سادگی مسدود کنید.

 

9- غیرفعال کردن درخواست‌های rest api

بعضی افزونه‌ها هستند که با api می‌خوان به سرور خودشون وصل بشن و اطلاعاتی رو بگیرن. مثل افزونه صفحه‌ساز المنتور که به آدرس api-eu.mixpanel.com درخواست ارسال می‌کنه و در شرایط اختلالات اینترنت و قطع سرورهای خارجی، لود صفحه رو 30 ثانیه به تاخیر میندازه و تو لود گیر میکنه.

برای قطع موقت اینطور درخواست‌ها داخل مرورگر inspect بگیرید و در تب Network فیلتر Fetch/XHR رو فعال کنید. اگر درخواستی با تایم بالا مشاهده کردید باید غیرفعالش کنید.

برای غیرفعال‌سازی درخواست‌های api راحت‌ترین کار استفاده از افزونه پرفمترز است. وارد تنظیمات افزونه پرفمترز بشید از تب عمومی General گزینه غیرفعال‌سازی rest api یا Disable REST API رو پیدا کنید و روی حالت Disable for Non-Admins یا غیرفعال‌سازی برای غیرادمین‌ها ست کنید.

این تنظیم باعث میشه rest api فقط برای ادمین‌ها و اونم در زمانی که لاگین هستند فعال باشه.

 

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

 

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

/ 5. تعداد رای:

ارزیابی شما برای ما ارزشمند است

برای مشاهده ویدیوهای آموزشی کوتاه در زمینه افزایش سرعت سایت
و اطلاع از تخفیف‌های ویژه که فقط در اینستاگرام اعلام می‌شود عضو پیج اینستاگرام شوید

این آموزش رو در شبکه‌های اجتماعی به اشتراک بگذارید

دیدگاه خود را بنویسید
  1. مهدی 04/11/05 در 6:50 ب.ظ - پاسخ

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

  2. محمود غفاری 04/11/01 در 6:56 ب.ظ - پاسخ

    سلام و درود سپاس از آموزش بسیار کاربردی تون
    یه مشکلی که تو قالب وودمارت هست(من قالب رو از راستچین تهیه کردم) تو بخش پیشخوان یه فایل به اسم webfont.js لود میشه که باعث کندی۲۰ ثانیه ای میشه
    با پلاگین ووکامرس فارسی فونت پیشخوان رو عوض کردم بازم این خطا رفع نشد
    این خطا باعث کندی پیشخوان میشه ممنون میشم راهنماییم کنید

    • فرهاد سلیمانی 04/11/02 در 2:20 ق.ظ

      سلام. رفع این مسئله ساده ست. فقط کافیه id این فایل js رو از سورس صفحه بردارید و با یک خط کد dequeue script ش کنید. یعنی کلا لود نشه. کد رو میتونید داخل قالب فرزند قرار بدید. نمیتونم داخل کامنت‌ها کد php بذارم سرچ کنید نمونه کد زیاد هست استفاده کنید. درحال حاضر chatgpt هم بالا میاد، id فایل js رو بهش بدید و بگید کد رو طوری بنویسه که در ادمین و خود سایت اجرا بشه و اولویت اجرای بالایی هم داشته باشه.

  3. قاسم شراهی 04/11/01 در 1:35 ب.ظ - پاسخ

    درود بر شما وقت بخیر . تعدادی از سایت های ما در حال تلاش برای اتصال به fonts.googleapis.com/css?family=Roboto هستند و باعث کندی سایت شدن. همه افزونه ها غیرفعال شدن ولی مشکل حل نشد. همچنین افزونه مسدود کننده دامنه هم تاثیری نداشت. ممنون میشم اگر بتونید راهنمایی بفرمایید. piletoy.ir

    • فرهاد سلیمانی 04/11/01 در 6:09 ب.ظ

      سلام. شما 3 تا درخواست سنگین دارید که یکی اینماد هست و 2 تای دیگه هم هست که باید بتونیم بررسی کنیم. داخل سایت عضو بشید و یک تیکت ارسال کنید و دسترسی هاست و ادمین وردپرس بذارید برطرف کنیم و راه حلش رو اضافه کنیم به مقاله.

  4. ساعتچی 04/10/29 در 10:03 ب.ظ - پاسخ

    سلام ممنونم بابت آموزش خوبتون
    سایت من مشکلی که داره اینه که یک api المنتور هست که به سایت المنتور میزنه و چون درخواست بالای ۱۰۰ ثانیه طول میکشه، ارور ۵۰۰ میزنه و نمیتونم به پنل وردپرس ورود کنم. با کدوم روش من باید این مورد را غیرفعال کنم؟

    • فرهاد سلیمانی 04/10/30 در 2:28 ب.ظ

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

  5. فرید صادقی 04/10/29 در 5:56 ب.ظ - پاسخ

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

    • فرهاد سلیمانی 04/11/01 در 1:50 ب.ظ

      سلام. خواهش میکنم. یک دامنه و هاست نیازه و بجای نصب وردپرس یک سیستم ریدایرکت نصب کردیم.
      این سیستم رو از لینک yourls.org/download میتونید دانلود کنید و با استفاده از مستنداتش راه اندازیش کنید. امکانات خوبی داره مثل تعداد کلیک و تاریخ و غیره.

  6. علی اکبر فرج 04/10/29 در 5:54 ب.ظ - پاسخ

    سلام و درود
    ما هاستمون خارج بود وقتی تو این شرایط مجبور شدیم بیایم ایران متوجه مشکل SSL شدیم که نمیتونستن رایگان و پولیشو هاستنگ فعال کنه
    برای این مورد و رفع اختلال ssl چه پیشنهادی دارید؟

    • فرهاد سلیمانی 04/11/01 در 6:11 ب.ظ

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

  7. Saber Sadeghi 04/10/29 در 4:08 ب.ظ - پاسخ

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