راهکارهای قطع ارتباط لینک های خارجی وردپرس در سایت و پیشخوان

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

گام اول: رصد درخواست های خارجی در مرورگر

برای اینکه وضعیت رکوئست های وبسایت را مشاهده کنید تنها کافیه کلید F12 کیورد را بزنید یا اینکه روی صفحه راست کلیک کرده و گزینه Inspect را انتخاب کنید.

راهکارهای قطع ارتباط لینک های خارجی وردپرس در سایت و پیشخوان

سپس در صفحه باز شده روی دکمه Reload کلیک کنید و منتظر باشید تا رکوئست های سایت به همراه جزئیات نمایش داده بشن.

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

همانطور که در تصویر زیر هم مشاهده میکنید، کل رکوئست های سایت 25 مورد بوده اما تنها 2 درخواست چیزی حدود 1 دقیقه زمان صرف کردن و هر دو بدون دریافت پاسخ از منبع خارجی، بخاطر صرف زمان بالا و عدم دریافت نتیجه بلاک شدن!

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

در تصویر بالا، درخواست اول سعی کرده به وبسایت gravatar.com متصل بشه تا تصاویر آواتار سایت را لود کنه و نمایش بده این درخواست 62 ثانیه طول کشیده اما به دلیل محدود بودن اینترنت کشور، نتونسته پاسخی دریافت کنه و درخواست دوم هم 42 ثانیه زمان صرف کرده و سعی داشته فونت های گوگل را فراخوانی کنه که باز هم ناموفق بوده. پس بهتره آدرس منابع خارجی که باعث کندی سایت میشن را مسدود کنیم. میتونید اینکار را بنابر استرارتژی و سیاست کاری خودتون برای مدت زمان موقت یا دائم انجام بدید. شما باید این کار را برای وبسایت خودتون انجام بدید و لیستی از آدرس وبسایت هایی که درخواست های ناموفق داشتن و منجر به کندی سایت شدن را استخراج کنید.

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

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

1- مسدود کردن تمام درخواست های خارجی سایت از طریق فایل wp-config.php

به کمک آموزش ورود به سی پنل وارد هاست خود بشید. در مسیر نصب وردپرس فایل wp-config.php را پیدا کنید. روی فایل راست کلیک کرده و گزینه Edit را انتخاب کنید تا فایل برای ویرایش باز بشه.

مسدود کردن تمام درخواست های خارجی سایت از طریق فایل wp-config.php

سپس کد زیر در فایل wp-config.php قرار میگیره و کلیه درخواست هایی که از سایت وردپرسی شما به سایت ها و منابع خارجی ارسال میشه را مسدود میکنه. این کد برای زمان هایی که اینترنت کشور با اختلال همراه هست میتونه به بهینه سازی رکوئست های سایت کمک کنه و از ارسال درخواست های غیرضروری جلوگیری به عمل بیاره. پس وارد فایل بشید و کد را در انتهای فایل بعد از /** Sets up WordPress vars and included files. */ قطعه کد را درج کنید.

define('WP_HTTP_BLOCK_EXTERNAL', true);
بلاک کردن ارتباط لینک های خارجی وردپرس

بلاک کردن همه لینک های خارجی به جز موارد خاص

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

define('WP_HTTP_BLOCK_EXTERNAL', true);
define('WP_ACCESSIBLE_HOSTS', '*.zarinpal.com,*.torob.com');

2- محدود کردن کلیه درخواست های Pending سایت با فایل htaccess

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

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

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

با راست کلیک روی فایل و انتخاب گزینه Edit به محیط ویرایش فایل هدایت خواهید شد. زمانیکه اختلالات اینترنتی رفع شد و دیگه تمایل به استفاده از این کد نداشتید میتونید اون را از فایل htaccess. حذف کنید.

حذف درخواست های خارجی سایت

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

Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; font-src 'self' data:; connect-src 'self'; frame-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none';"
حذف درخواست های خارجی سایت

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

قطع ارتباط لینک های خارجی وردپرس

استثنا کردن لینک های خارجی

برای استثنا کردن لینک های خارجی خاص میتونید طبق فرمت زیر عمل کنید در قطعه کد زیر وبسایت ترب به آدرس https://torob.com استثنا شده و درخواست های ارسالی به آدرس https://torob.com مسدود نخواهند بود شما میتوانید بر این اساس آدرس مورد نظرتان را جایگزین و یا استثنا کنید:

Header always set Content-Security-Policy "default-src 'self' https://torob.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://torob.com; style-src 'self' 'unsafe-inline' https://torob.com; img-src 'self' data: blob: https://torob.com; font-src 'self' data: https://torob.com; connect-src 'self' https://torob.com; frame-src 'self' https://torob.com; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none';"

در نهایت فایل htaccess. را ذخیره کنید. برای اینکه ببینید این قطعه کد چقدر در لود وبسایت شما تاثیرگذار بوده باید رکوئست های سایت را بررسی کنید برای این منظور می توانید از وبسایت خود inspect بگیرید.

3- رصد رکوئست های وبسایت از طریق افزونه وردپرس

شما به کمک افزونه  Query Monitor میتونید تمامی درخواست هایی که منجر به کندی پیشخوان و وبسایت وردپرسی شدن را به همراه جزئیات رصد و درخواست های غیرضروری را مسدود کنید البته زمانیکه ک با اختلالات اینترنتی مواجه باشیم به دلیل عدم دسترسی به منابع خارجی نمیتونیم افزونه را نصب و استفاده کنیم بنابراین راهکار ساده تر اینه که از قابلیت Developer Tools مرورگر کمک بگیریم که در مرورگر کروم با فشردن کلید F12 کیورد فعال میشه همچنین میتونید روی یکی از صفحات سایت مورد نظر که قصد رصد درخواست های اون را دارید راست کلیک کرده و گزینه inspect را انتخاب کنید. افزونه هم دقیقا لیستی از درخواست ها را به شما نمایش میده.

4- مسدود کردن آدرس های خاص

ممکنه قصد داشته باشید همه درخواست ها آزاد بمونن و فقط چند آدرس خاصی که باعث بالا رفتن تایم لودینگ سایت شده را موقتا مسدود کنید و زمانیکه اینترنت بین الملل بدون محدودیت در دسترس بود مجددا این درخواست را حذف کنید، برای این منظور کافیه وارد هاست بشید و به محل نصب وردپرس برید، به مسیر wp-content و سپس پوشه themes مراجعه کنید. در این پوشه نام تمام قالب هایی که روی وردپرس نصب کردید نمایش داده میشه پوشه قالب فعال را باز کنید و سپس به دنبال فایل functions.php باشید و قطعه کد زیر رو در اون درج کنید.

add_filter( 'pre_http_request', 'mizbanfa_block_external_requests', 10, 3 );
function mizbanfa_block_external_requests( $pre, $args, $url ) {
 
    $blocked_hosts = [
         'secure.gravatar.com',
    'fonts.googleapis.com',
    ];
 
    $requested_host = parse_url( $url, PHP_URL_HOST );
 
    if ( ! $requested_host ) {
        return $pre; 
    }
 
    foreach ( $blocked_hosts as $blocked_host ) {
        if ( fnmatch( $blocked_host, $requested_host ) ) {
            return new WP_Error( 'http_request_blocked', 'مسدودسازی دامنه ' . esc_html( $requested_host ) . 'مسدودسازی دامنه' );
        }
    }
 
    return $pre; 
}
مسدود کردن درخواست های خارجی سایت

مثلا ما زمانیکه بررسی انجام دادیم متوجه شدیم که دو درخواست به سمت fonts.googleapis.com و secure.gravatar.com داره ارسال میشه و مدت زمان بسیار زیادی رو به خودشون اختصاص دادن و بدون دریافت نتیجه بلاک شدن بنابراین به بقیه درخواست ها کاری نداریم و فقط این دو درخواست را مسدود میکنیم. مطابق تصویر بالا

به این ترتیب زمانیکه به Developer Tools مراجعه میکنید میبینید درخواست مربوطه بسته شده و هیچ زمانی بابت این رکوئست صرف نمیشه.

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

زمان لودینگ سایت بالغ بر یک دقیقه بود که به 2.79 ثانیه کاهش پیدا کرد و باز هم قابل بهینه سازی است.

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

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

ادامه دارد…

لذت کار با وردپرس پرسرعت و پایدار

با 19 درصد تخفیف ویژه رونمایی سرورهای نسل جدید، هاست وردپرس را خریداری نمایید.

عضویت در خبرنامه

مطالب مرتبط
نمایندگی هاست
نمایندگی هاست
تعداد بازدیدها:  8,030
اگر قصد راه اندازی هاستینگ دارید شاید یکی از چالش برانگیزترین موارد، راه اندازی و مدیریت سرور باشد. با توجه…
مشاهده کامل
هاست پربازدید
هاست پربازدید
تعداد بازدیدها:  6,958
همانطور که از نام این سرویس پیداست، سایت هایی که بازدید بالایی دارند می بایست از هاست پربازدید استفاده نمایند.…
مشاهده کامل
هاست حرفه ای
هاست حرفه ای
تعداد بازدیدها:  3,328
هاست حرفه ای سرویسی است که بتواند نیازهای افراد حرفه ای فعال در حوزه وب را تامین نماید. حال ممکن…
مشاهده کامل
هاست ارزان
هاست ارزان
تعداد بازدیدها:  3,255
هاست ارزان برای سایت هایی که بازدید زیادی ندارند بهترین انتخاب است. همچنین سایت های تازه راه اندازی شده نیز…
مشاهده کامل
سرور مدیریت شده
سرور مدیریت شده
تعداد بازدیدها:  3,136
سرورها برای اینکه بتوانند آماده ارائه خدمات شوند می بایست پیکربندی شوند که بر اساس زمینه مورد استفاده، کانفیگ متفاوتی…
مشاهده کامل
مطالب پربازدید
این مطلب را می پسندید؟
5/5 - (1 رای)

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

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

Fill out this field
Fill out this field
لطفاً یک نشانی ایمیل معتبر بنویسید.