سرعت وب سایت یکی از مهم ترین بخش ها در سئو سایت ها محسوب می شود. اما چه عواملی در کاهش سرعت سایت تاثیر گذار است و با برطرف کردن آنها می توان به سرعت مورد نظر دست پیدا کرد؟
قبل از هرچیزی باید این مورد را در نظر گرفت که فرآیند وارد کردن آدرس سایت تا دریافت اطلاعات از مرورگر به چه صورتی خواهد بود.
از زمانی که آدرس سایت موردنظرمان را در آدرس بار مرورگر وارد می کنیم تا زمانی که محتوای سایت مورد نظرمان را در مرورگر ببنیم به ترتیب زیر است:
1- DNS
2- TCP,SSL,..
3- Server Time
4- Download Time
5- Dom Processing
تک تک موارد بالا می تواند برروی لودینگ صفحات سایت ما تاثیر گذار باشند و موجب کاهش سرعت سایت صفحات ما شوند. اما در ادامه در مورد اینکه چطوری DNS را بهینه کنیم و افزایش سرعت لودینگ صفحات وبسایت را داشته باشیم؛ صحبت می کنیم.
DNS چیست؟
DNS مخفف Domain Name Server و پروتکلی در سطح شبکه وب است. هروب سایتی دارای یک نام دامنه (domain) است. پس از ثبت، نام دامنه باید به ip تبدیل شوند. دلیل اصلی چنین کاری این است که در فضای شبکه روترها یا مسیریاب ها از طریق ip به سایت شما دسترسی پیدا می کنند.
Dns server چیست؟
فرض کنید شما هزاران شماره تلفن و نام مختص آن شماره تلفن را دارید؛ هیچ فردی نمی تواند تک تک این شماره تلفن ها را حفظ کند؛ به همین دلیل باید درجای آنها را ذخیره کند و هنگامی که نیاز دارد از آنها استفاده کند.
DNS Serverهم همانند دفترچه تلفن هست که کمک می کند در سطح وب به سادگی با دامنه ها ارتباط برقرار شود.
در ادامه ما می خواهیم فرآیند بهینه سازی DNS Lookups رو توضیح دهیم و با سرور سایت خودمان کمتر کار داریم.
بهینه سازی DNS Look-UPS
فرآیند تبدیل نام دامنه که در سطح وب یک DNS Server نزدیک را پیدا کند و تبدیل به ip کند را DNS Look-upsمی گویند. در سطح شبکه اینترنت سرورهای زیادی وجود دارد که وظیفه ذخیره کردن IP آدرس ها و نام دامنه دارند.
برای اینکه سرعت لود سایت را افزایش دهیم بهتراست که زمان DNS LOOK UPS را کاهش دهیم. برای بهینه سازی DNS Look UPS روش های زیر را انجام دهید:
افزایش فرآیند DNS Look Up بجای اینکه روی هاست خودمان باشد از طریق بردن به یکی از DNS Provider می باشد.
یکسری سرویس دهنده DNSوجود دارند ؛ که خدمات تبدیل نام دامنه به آی پی را انجام میدهند و می توانید از طریق آنها تبدیل آی پی در سطح شبکه انجام دهید. مطمئنا این سوال پیش آمده که قبل از اینکه ما از این ارائه دهنده های DNS استفاده کنیم چه چیزی این فرآیندها را انجام میدهد.
جواب کاملا ساده س، سرویس دهنده های وب فرآیند DNS Look up را بصورت رایگان اما بهینه نشده انجام میدهند.
بهترین DNS Provider در دنیا :
سرویس دهنده های اینترنت بصورت اتوماتیک هرزمان که به اینترنت وصل شده اید شما را به یکی از سرویس دهنده های DNS متصل می کنند . اما شما باید بهترین سرویس دهنده ها را انتخاب کرده باشید تا اینگونه بالاترین سرعت در سطح وب را داشته باشید.
ویژگی های اصلی سرویس دهنده های DNS :
? حفاظت از حریم خصوصی
? سرعت بالای پاسخگویی
? جلوگیری از لینک های مخرب
اما بهترین سرویس دهنده ها که ویژگی های بالا رادارند عبارتند از:
· OpenDNS
· Cloudflare
· Google Public DNS
· Comodo Secure DNS
چگونه سریع ترین DNS را پیدا کنیم؟
ابزارهای بسیاری وجود دارد که تا پر سرعت ترین DNS را پیدا کنیم . سرعت بستگی به عوامل همانند موقعیت مکانی؛ فاصله نزدیک تا سرور، قدرت و پهنای باند سرور و... دارد.
قبل از هرچیزی باید گفت که TTL چیست ؟
TTL مخفف عبارت Time to Live است به معنی اینکه به مدت زمان زنده ماندن یک بسته در سطح شبکه گفته میشود. مهم ترین دلیل استفاده از TTL این است که از فرستادن بسته های پی در پی در شبک جلوگیری کنیم. در کل از بسته های که تاریخ انقضای آنها گذشته جلوگیری می کند تا از شلوغ شدن در سطح وب مانع شود.
TTL در مسیریابی در سطح شبکه کاربرد دارد و همچنین در DNS Catching و CDN Catchingفعالیت دارد.
با یک مثال ساده زمانی که یک کابر وارد سایت می شود DNS LookUp اتفاق میافتد، مرورگر آدرس سایت را برای DNS Server ارسال می کند و سرور، آی پی را برای مروگرر برمی گرداند. برای مدت زمان کوتاهی مرورگر این آی پی در خودش نگه میدارد (کش می کند) که اگر کاربر صفحه ی دیگری از سایت را باز کرد دوباره از ابتدا فرآیند DNS LookUp اتفاق نیافتد. (همان مثال دفترچه تلفن را بیاد بیاورید ؛ بطور مثال شما شماره تلفن نظافتچی رو می خواهید برای اینکه یادتان باشد آنرا روی کف دستتان می نویسید و تا مدت زمان معین دارید. )
DNSرکوردها عملا می توانند کش شوند حتی مودم ها هم می توانند کش شوند تا سرعت بالاتری ما در سطح وب داشته باشیم. موردی که مشخص می کند که کش ها تا چه زمانی فعال یا زنده باشند TTL ها هستند.
افزایش زمان TTL در DNS Provider ها
زمانی که از کلود فلورد ها استفاده می کنید و تمام اطلاعات خودتان را ثبت کردید قسمت TTL فعال می شود و می توانید زمان را تا نهایتا یکروز افزایش دهید. یا اینکه برروی اتوماتیک قرار دهید تا زمان بهینه شده تشخیص دهد.
اگر ما تعداد هاست یا تعداد دامنه های که به هاست ها درخواست داده می شود را کم کنیم عملا ما زمان DNS Look Upرا کاهش داده ایم.
در واقعا باید با استفاده از ابزارهای که وجود دارد و به مانشان می دهد تعداد دامنه های که از یک درخواست به سمت سرور ارسال شده است چند تا دامنه بود است و بیاییم تعداد دامنه ها را کاهش دهیم . می توانیم سرعت سایت را افزایش دهیم.
ابزارها:
با استفاده از ابزار performance analyzer می توانیم تعداد درخواست ها از یک دامنه را پیدا کنیم و جهت رفع هرکدام اقدام کنیم . بطور مثال اگر در سایتمان گوگل تگ منیجر استفاده می کنیم بهتر است که کدهای که از هاست دیگری خواند می شود را دانلود کنیم و درون سایت خودمان قرار دهید(البته دیگر نمی توانیم برروزرسانی که برای تگ منیجر میشود را در سایت خود داشته باشیم).
یک شبکه توزیع محتوا هست که نزدیکترین سرورها به بازدید کنندگان نمایش میدهند. باچنین کاری سرعت لود سایت افزایش پیدا می کند. در مقاله های بعدی حتما در مورد CDN بیشتر صحبت می کنیم.
<link rel="dns-prefetch" href="https://fonts.googleapis.com/" >
استفاده از DNS prefetching به مرورگر می گوید که همزمان لینک مورد نظر را با بقیه محتوا در صفحه Dns look up را اجرا کند.
<script src="demo_defer.js" defer>
زمانی که از defer استفاده می شود ؛ تمام المان های صفحه بصورت همزمان با همدیگر اجرا می شوند. به این صورت که دیگر نیاز نیست اول جاوااسکریپت ها و بعد بقیه المان ها لود شوند.
برای dns look up در ایران حدود 100 تا 150 انجام میشود. اما می توان این زمان را کاهش داد.
اگر روش های دیگری برای کاهش زمان DNS LOOkup میشناسید؛ در کامل کردن این مقاله کمک کنید