🌟50 درصد تخفیف ویژه برای حمایت از کسبوکارها، روی تمام محصولات اعمال شده است🌟
🌟50 درصد تخفیف ویژه برای حمایت از کسبوکارها، روی تمام محصولات اعمال شده است🌟
هنگام تجزیه و تحلیل سایت خود از طریق Google PageSpeed Insights یا GTmetrix ممکن است با خطای “Avoid an excessive DOM size” مواجه شده باشید:
اگر صفحه وب شما تعداد زیادی گره DOM یا تگ های HTML داشته باشد یا اگر این گره ها یا برچسب ها خیلی عمیق تو در تو قرار گرفته باشند، اندازه DOM بزرگی دارد. این می تواند منجر به مشکلات عملکرد سایت مانند پیمایش ناگهانی و زمان بارگذاری پایین صفحه شود. از سوی دیگر، اندازه DOM بهینه شده تجربه کاربری بهتری را ارائه می دهد که منجر به افزایش تبدیل می شود.
اگر انیمیشن های سطحی CSS3 یا ویجت های جاوا اسکریپت را به وب سایت خود اضافه کرده اید، ممکن است اثرات یک اندازه بزرگ DOM را تجربه کند.
صاحبان وبسایت، از جمله صاحبان فروشگاههای تجارت الکترونیک، باید سایتهای خود را برای بهروزرسانی Google Page Experience آماده کنند، زیرا مطمئناً اندازه DOM را به عنوان سیگنال رتبهبندی در نظر میگیرد.
در این پست، نگاهی به DOM می اندازیم و توضیح می دهیم که چگونه می تواند بر تجربه کاربری سایت شما تأثیر بگذارد. در طول مسیر، ما همچنین نکات کاربردی را به اشتراک خواهیم گذاشت تا به شما کمک کند صفحات سایت خود را برای بهبود عملکرد بهینه کنید.
مرورگر شما هر بار که یک صفحه وب را بارگیری می کند، یک ساختار درختی از اشیاء به نام DOM (Document Object Model) ایجاد می کند.
DOM یک نمودار درختی از اشیاء در HTML شما است. هر عنصر HTML مانند بدنه یا h1 را با گره خاص خود نشان می دهد.
DOM نشان دهنده ماهیت سلسله مراتبی اشیاء مختلف است که ممکن است به یکدیگر وابسته باشند یا نباشند. همانطور که قبلا ذکر شد، ساختار HTML صفحه وب را به صورت درختی نشان می دهد که از یک سری تگ تشکیل شده است.
نحوه کار به این صورت است: وقتی مرورگر وب شما شروع به آماده سازی صفحه ای برای نمایش آن می کند، یک نمودار درخت شی از تمام عناصر صفحه مطابق با ساختار HTML خود ایجاد می کند.
در نتیجه، هر زمان که یک فایل HTML دریافت می کند، با تبدیل آن به یک فرم درختی به نام DOM یا درخت DOM شروع می شود. می توانید به DOM دسترسی داشته باشید و با استفاده از جاوا اسکریپت آن را تغییر دهید.
در اینجا برخی از اصطلاحات کلیدی مرتبط با DOM آورده شده است:
Avoid an excessive DOM size به معنی اجتناب از اندازه DOM بیش از حد است.
اندازه DOM بیش از حد زمانی اتفاق میافتد که گرههای DOM (یا تگهای HTML) بیش از حد در صفحه شما وجود داشته باشد یا زمانی که آنها خیلی عمیق تو در تو قرار گرفته باشند. این باعث می شود که مرورگر کاربر انرژی بیشتری برای پردازش صفحه وب شما مصرف کند که منجر به کاهش سرعت بارگذاری صفحه و امتیازات پایین صفحه می شود.
یکی از دلایلی که اجرای جاوا اسکریپت و CSS اغلب کند است این است که مرورگر باید گره های بیشتری را پردازش کند و در نتیجه رندر صفحه با تاخیر مواجه می شود.
اندازه DOM بیش از حد باعث افزایش استفاده از حافظه، تأخیر در پردازش سبک و ایجاد جریانهای پرهزینه طرحبندی میشود. اصلاح اشیاء DOM به شما امکان کنترل عناصر صفحه را می دهد که می خواهید به کاربر خود نشان دهید.
به زبان ساده، کوچک نگه داشتن اندازه DOM به شما امکان می دهد عملکرد سایت و تجربه کاربری را بهبود بخشید. این به نوبه خود امتیاز Core Web Vitals شما را بهبود می بخشد.
در اینجا ما در مورد هشدار “avoid excessive DOM size” در Lighthouse صحبت خواهیم کرد.
با این خطا مواجه خواهید شد اگر:
هشدار “avoid excessive DOM size” مستقیماً بر هیچ کدام از معیارهای Lighthouse تأثیر نمی گذارد. در حالی که در تئوری، صفحات با یک DOM بزرگ می توانند سریع بارگیری شوند، اما در دنیای واقعی، اغلب اینطور نیست.
با این حال، اندازه بزرگ DOM مطمئناً بر سایر معیارهای Lighthouse مانند بزرگترین رنگ محتوا (LCP) و تغییر طرح تجمعی (CLS) تأثیر خواهد گذاشت.
یک صفحه به دلایل مختلف می تواند دارای اندازه DOM بزرگ باشد. بیایید به برخی از رایج ترین آنها نگاه کنیم:
این به این دلیل است که کد متورم می تواند اندازه HTML شما را افزایش دهد که زمان مورد نیاز برای دانلود صفحه وب شما را به تاخیر می اندازد.
اندازه DOM بیش از حد بر عملکرد رندر تأثیر منفی می گذارد. در نتیجه، مرورگر کاربر محاسبات اضافی را در اولین بارگذاری و همچنین هر بار که کاربر یا یک اسکریپت با صفحه وب شما تعامل می کند، انجام می دهد. مرورگرهای وب همچنین هنگام پردازش DOM از طریق جاوا اسکریپت حافظه بیشتری مصرف می کنند.
حتی اگر اخطار بیش از حد اندازه DOM مستقیماً بر معیارهای Lighthouse تأثیر نمی گذارد، اما بر سایر معیارها تأثیر می گذارد که در نهایت منجر به امتیاز کمتر Lighthouse می شود.
به عنوان مثال، اندازه DOM بزرگ، خواندن و تجزیه و تحلیل یک صفحه وب را برای مرورگر به طور غیر ضروری پیچیده می کند. در نتیجه، مرورگر زمان بیشتری را برای بارگذاری صفحه روی صفحه صرف می کند.
هر بار که یک صفحه بارگذاری می شود، مرورگر وب باید HTML را دانلود و تجزیه کند تا بتواند شروع به تولید درخت DOM کند.
در اینجا برخی از روش هایی وجود دارد که اندازه DOM بیش از حد می تواند بر عملکرد صفحه شما تأثیر بگذارد:
واقعیت این است که اندازه بزرگ DOM بر عملکرد یک صفحه وب تأثیر منفی می گذارد. در اینجا نگاهی گذرا به موارد دیگری است که تحت تأثیر قرار می گیرند:
قبل از اینکه بتوانید خطای “Avoid an excessive DOM size” را حل کنید، ابتدا باید علل آن را با بررسی منشأ آن شناسایی کنید.
با استفاده از Lighthouse می توانید حداکثر عمق DOM و حداکثر عناصر کودک را بیابید. در مرحله بعد، باید با استفاده از بازرس DOM مرورگر وب خود کمی جستجو کنید و DOM را بررسی کنید.
هدف شما باید کشف دلایل تعداد بیش از حد گره های DOM باشد. در اینجا پنج مورد از متداول ترین مقصران آورده شده است:
ممکن است از یک افزونه استفاده کنید، مانند یک افزونه تقویم یا یک نوار اسلایدر که ممکن است تعداد زیادی گره DOM ایجاد کند. در این صورت می توانید به سادگی آن را با یک افزونه بهینه تر جایگزین کنید.
به طور مشابه، قالب های با کدگذاری ضعیف نیز می توانند بر عملکرد وب سایت شما تأثیر منفی بگذارند. شما می توانید این مشکل را با خلاص شدن از شر کدهای متورم در وب سایت خود با استفاده از یک ویرایشگر ساده یا اصلاح بخش هایی از قالب خود برطرف کنید.
گاهی اوقات جاوا اسکریپت می تواند تعداد زیادی گره DOM ایجاد کند. به عنوان مثال، یک ابزارک چت ممکن است تعداد زیادی گره DOM را به DOM صفحه شما وارد کند. شما می توانید با خلاص شدن از شر فایل جاوا اسکریپت یا استفاده از یک ویجت بهینه شده، این مشکل را برطرف کنید.
سازندگان صفحه مانند ویژوال کامپوزر و المنتور گاهی اوقات می توانند کدهای متورم را با تعداد بیش از حد گره های DOM تولید کنند. از آنجایی که آنها اغلب بخشی جدایی ناپذیر از گردش کار هستند، حذف ساده آنها با هم را دشوار می کند.
با این حال، می توانید این مشکل را با خلاص شدن از شر کدهای متورم و اصلاح گردش کار خود برطرف کنید. المنتور تگ های HTML اضافی ایجاد می کند که باعث افزایش اندازه DOM می شود. توسعه دهندگان المنتور اخیراً با بهبودهای DOM برای کاهش نفخ گام برداشته اند.
قالب های بی کیفیت نیز می توانند مستقیماً بر اندازه DOM تأثیر بگذارند. بنابراین، توصیه می کنیم از یک قالب بهینه استفاده کنید.
بیشتر صفحه سازها تگ های div زیادی تزریق می کنند. میتوانید با استفاده از راهحلهای ساده، از وارد کردن عناصر غیر ضروری خودداری کنید و کنترل بیشتری بر ساختار HTML سایت خود داشته باشید.
به همین ترتیب، میتوانید از ابزارهایی مانند HotJar استفاده کنید تا بفهمید کاربران سایت شما از چه چیزی استفاده میکنند و چه چیزی برای آنها مفید است. انجام یک تحلیل نزدیک برای کاهش اندازه DOM ضروری است.
اکثر ویرایشگرهای WYSIWYG مانند TinyMCE کدهای کپی پیست شده را پاک نمی کنند، به خصوص زمانی که آن را از یک منبع متن غنی مانند مایکروسافت ورد جای گذاری می کنید. همچنین استایل ها و متن ها را کپی می کند، به این معنی که گره های DOM اضافی برای استایل ها ایجاد می شود.
شما به راحتی می توانید این مشکل را با چسباندن مستقیم متن در ویرایشگر خود و خلاص شدن از شر متن متورم در صفحات خود برطرف کنید. یک پاک کننده HTML برای این کار عالی است.
علاوه بر این، باید از گوتنبرگ به جای کپی پیست کردن متن در ویرایشگر کلاسیک وردپرس WYSIWYG استفاده کنید. برخی از مطالعات نشان داده اند که استفاده از ویرایشگر گوتنبرگ می تواند نشانه گذاری سبک تر و بدون درهم و برهمی ایجاد کند.
ما پنهان کردن عناصر درج شده توسط صفحه ساز یا موضوعی مانند دکمه افزودن به سبد خرید در صفحات محصول، دکمه رتبه بندی یا اطلاعات نویسنده را توصیه نمی کنیم.
معمولاً این کار با استفاده از چیزی شبیه کد CSS زیر انجام می شود:
.author-name {
display:none;
}
این مفید نیست زیرا ممکن است همچنان کدهای غیر ضروری را به کاربران سایت خود ارائه دهید که شامل نشانه گذاری HTML و سبک های CSS است.
ممکن است بتوانید به سادگی با رفتن به تنظیمات قالب یا افزونه ها، این عناصر را حذف کنید. یا می توانید آنها را از کد PHP مربوطه حذف کنید. بهتر است عناصر ناخواسته را به طور کامل از یک صفحه حذف کنید که می تواند با استفاده از یک قلاب سفارشی ووکامرس انجام شود.
اکنون، ممکن است از خود بپرسید که چه کارهای دیگری می توانید انجام دهید تا از اندازه بیش از حد DOM جلوگیری کنید. در اینجا چند نکته عملی وجود دارد که باید دنبال کنید:
بارگذاری تنبل بخش های انتخاب شده از وب سایت شما یک راه عالی برای بهینه سازی رندر اولیه صفحه است. برای مثال، میتوانید از یک ماژول بارگذاری تنبل برای تصاویر در صفحات دستهبندی یا کاتالوگ محصولات استفاده کنید.
همچنین میتوانید با محدود کردن حداکثر تعداد پستها در هر صفحه وبلاگ، سرعت رندر صفحه را افزایش دهید. ایده خوبی است که از 10 پست در هر صفحه تجاوز نکنید. این همچنین به این معنی است که بیش از 10 مورد را در یک صفحه محصول نشان نمی دهد. به طور مشابه، شما همچنین باید حداکثر تعداد محصولات مرتبط را سه یا چهار نگه دارید.
مشابه بارگذاری تنبل، پیادهسازی پیمایش بینهایت در صفحات وب میتواند به شما کمک کند تا زمان بارگذاری صفحه خود را در مواردی که کاربر مجبور است در عناصر مکرر مانند محصولات یا پستهای وبلاگ پیمایش کند، سرعت بخشد.
ممکن است یک صفحه واحد داشته باشید که انواع مختلفی از محتوا را در وب سایت های شما نشان می دهد، مانند پست های وبلاگ، فرم های تماس و محصولات. این همچنین می تواند به اندازه درخت DOM بزرگ منجر شود.
در عوض، باید صفحاتی را برای هر یک از آن عناصر جدا کنید و به آنها پیوند دهید.
شما نباید از اعلان های پیچیده CSS مانند div:last-child; استفاده کنید. زیرا مرورگر باید وضعیت last-child را برای هر div در صفحه وب شما بررسی کند.
راه دیگر برای کوچک نگه داشتن اندازه DOM خود، اجتناب از جاوا اسکریپت مصرف کننده حافظه است.
document.getElementsByTagName('div'); می تواند تعداد زیادی گره DOM تولید کند.
اندازه بزرگ DOM بر عملکرد سایت تأثیر منفی می گذارد و زمان بارگذاری صفحه را افزایش می دهد.
شما باید برای ساده سازی ساختار صفحه HTML خود و خلاص شدن از شر عناصر ناخواسته اقداماتی انجام دهید. با بررسی اندازه درخت DOM خود شروع کنید و گره های غیر ضروری را حذف کنید. این به شما کمک می کند سرعت سایت خود را افزایش دهید و تجربه کاربری آن را بهبود بخشید.
به این ترتیب، می توانید اطمینان حاصل کنید که اندازه DOM در وب سایت شما برای UX عالی بهینه شده است و امتیاز Core Web Vitals شما را بهبود می بخشد.
همچنین پیشنهاد می کنیم مقاله دیگر ما را در مورد افزایش سرعت وردپرس ببینید.