رفع ارور Defer parsing of JavaScript

رفع ارور Defer parsing of JavaScript و Defer asynchronous resources

یکی از خطاهای رایجی که هنگام تست سرعت سایت با GTmetrix بهش بر میخوریم با عنوان Defer parsing of JavaScript و Prefer asynchronous resources به ما نمایش داده میشه که هر دو مربوط به فایل‌های جاوا اسکریپت هست و برای حل هر دو خطای Prefer asynchronous resources و خطای Defer parsing of JavaScript در GTmetrix راهکار یکسانی وجود داره. وقتی با این دو ارور در جی تی متریکس مواجه میشید به این معنی هست که فایل‌های JS در سایت شما به صورت بهینه استفاده نشده و باعث شده که مدت زمان لود سایت بیشتر از حالت عادی باشه. منظور از بهینه سازی این هست که فایل‌ها در جایی شروع به لود شدن میکنند که باعث میشه مدت زمان لود صفحه بالا رود.رفع ارور Defer parsing of JavaScript

Defer-parsing-of-JavaScript

 چگونه ارور Defer parsing of JavaScript را از وردپرس حذف کنید؟

برطرف کردن این خطا یکی از سخترین خطاها در GTmetrix می باشد و راه حل های بسیاری پیشنهاد شده که باید هر کدام را روی وبسایت خود امتحان و سعی برطرف کردن آن کنیم . حتما فایل ویدئویی بالا را ببینید .

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

اکثرا به پیشنهاد میشود از «defer» یا «async» در کد اسکریپت استفاده کنند و یا احتمالا شما نیز توصیه میکنید همه ی جاوا اسکریپت خود را در پایین صفحه قرار دهید. رفع ارور Defer parsing of JavaScript

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

چرا ارور Defer parsing of JavaScript باید رفع کنیم

جاوا اسکریپتها اغلب در تمام صفحات وب سایت شما بارگذاری می شوند.

در ادامه بخوانید  رفع ارور Serve Resources from a Consistent URL در GTmetrix

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

برای اطمینان از محتویات اصلی بار اول بارگذاری می شود و سپس موارد ثانویه مانند نظرات، دکمه های به اشتراک گذاری، ویدجت ها، تصاویر و غیره شما باید جاوا اسکریپت را تجزیه کنید. رفع ارور Defer parsing of JavaScript

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

هنگامی که وب سایت خود را در Pingdom، GTMetrix یا  Google’s Page speed بررسی میکنید، هشدار “Defer parsing of JavaScript

” را دریافت خواهید کرد. اگر این هشدار را دریافت کنید، باید مراحل زیر را شرح دهید.

نحوه رفع ارور Defer loading of javascript در WordPress چیست؟

یک بار دیگر ما با فایل functions.php کار خواهیم کرد. به پایین فایل functions.php بروید و کد زیر را وارد کنید:

یکی از بهترین راه حلهای رفع ارور Defer parsing of JavaScript

// Defer Javascripts
// Defer jQuery Parsing using the HTML5 defer property
if (!(is_admin() )) {
function defer_parsing_of_js ( $url ) {
if ( FALSE === strpos( $url, '.js' ) ) return $url;
if ( strpos( $url, 'jquery.js' ) ) return $url;
// return "$url' defer ";
return "$url' defer onload='";
}
add_filter( 'clean_url', 'defer_parsing_of_js', 11, 1 );
}

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

در ادامه بخوانید  سئو خارجی | Off Page SEO

راه حل های ممکن برای رفع ارور Defer parsing of JavaScript

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

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

۱. شما می توانید Defer parsing of JavaScript  را فقط با اضافه کردن ویژگی “defer” فعال کنید. مثلا:

گرچه بهترین پیشنهاد این است که جاوا اسکریپت را در پایین سند html درست قبل از پایان تگ () بجای بارگیری در head tag قرار دهید.

۲. وردپرس به طور خودکار تمام هسته و افزونه جاوا اسکریپت را در هدر HTML با استفاده از تابع wp_head () یا در انتهای صفحه با استفاده از wp_footer () می افزاید.

تمام جاوا اسکریپت موجود در header wp_head () باید در انتهای صفحه در wp_footer () قرار گیرد.

برای انجام این کار می توانید کد زیر را در function.php تابع خود اضافه کنید.

if(!is_admin()) {
// Move all JS from header to footer
remove_action('wp_head', 'wp_print_scripts');
remove_action('wp_head', 'wp_print_head_scripts', 9);
remove_action('wp_head', 'wp_enqueue_scripts', 1);
add_action('wp_footer', 'wp_print_scripts', 5);
add_action('wp_footer', 'wp_enqueue_scripts', 5);
add_action('wp_footer', 'wp_print_head_scripts', 5);
}

۳. ایجاد یک فایل جاوا اسکریپت جداگانه

الف یک فایل جاوا اسکریپت ایجاد کنید و به عنوان defer.js نام بدهید.

ب کد جاوا اسکریپت را که می خواهید در فایل defer.js قرار دهید قرار دهید.

ج فایل را ذخیره کرده و به پوشه تم خود آپلود کنید.

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

در وردپرس، فایل header.php را از موضوع خود باز کنید و قبل از سر تثبیت برچسب را وارد کنید.

مطمئن شوید مسیر درست defer.js را قرار دهید. به عنوان مثال، مسیر منبع باید مانند این باشد:

/wp-content/themes/theme_name/defer.js

من تمام این ۳ راه حل را امتحان کردم، اما آنچه که من انجام دادم، همان چیزی است که من به عنوان بهترین راه حل ارائه دادم.

اگر میخواهید Defer parsing of JavaScript مربوط به پلاگینContact Form 7 را تعویض کنید :

// Defer JS for Contact Form 7

! defined( 'ABSPATH' ) and exit;

if ( ! function_exists( 'add_defer_to_cf7' ) )
{
function add_defer_to_cf7( $url )
{
if ( // comment the following line out add 'defer' to all scripts
// FALSE === strpos( $url, 'contact-form-7' ) or
FALSE === strpos( $url, '.js' )
)
{ // not our file
return $url;
}
// Must be a ', not "!
return "$url' defer='defer";
}
add_filter( 'clean_url', 'add_defer_to_cf7', 11, 1 );
}

چرا باید ارور Defer parsing of JavaScript را برطرف کرد ؟

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

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

این زمان بارگذاری اولیه صفحه، چیزی است که Google برای استفاده از وب سایت خود قضاوت می کند (و فراموش نکنید کاربران شما منتظر بارگذاری آن هستند). گوگل به طور فعال ترتیب و توصیه اولویت بندی در بالای محتوای بارگذاری را ارائه می دهد بنابراین هرگونه منابع (js، css، تصاویر، و غیره) را از مسیر رندر بحرانی به خوبی تلاش می کند.

اگر کاربران را خوشحال کند و باعث خوشحالی Google می شود، باید آن را انجام دهید.

مهمترین عوامل برای رفع ارور Defer parsing of JavaScript

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

یک کاربر نباید انتظار داشته باشد محتوا پس از جاوا اسکریپت بارگیری شود.

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

نکته: نحوه صحیح استفاده از پلاگین wp-roket  برای رفع ارور Defer parsing of JavaScript

Defer-parsing-of-JavaScript-corret