افزایش سرعت بارگذاری وب سایت

با مسیری که سئو و اصول آن در چند سال اخیر طی کرده و با رونمایی از الگوریتمهای پنگوئن و پاندا، کسب بک لینک مناسب و مرتبط به کاری پر هزینه و با ریسک بالا تبدیل شده است. همچنین با دنبال کردن صحبتهای اخیر مدیر ارشد مبارزه با اسپم گوگل، میتوان به این نتیجه رسید که از این پس عبارت سئو در عمل بیانگر بهبود تجربه جستجو کاربران خواهد بود. در این میان افزایش سرعت سایت در کنار تولید محتوای مفید و اختصاصی بهترین راه برای جلب رضایت کاربران خواهد بود و ممکن است در آیندهای نزدیک به مهمترین فاکتور سئو تبدیل شوند.
کارشناسان سئو امروزه توجه خود را به کلمات کلیدی، لینکهای ورودی، نقشه سایت و بسیاری از نکات دیگر معطوف کردهاند و هدفی جز ورود بازدیدکننده به سایت را دنبال نمیکنند. درنتیجه سرعت سایت در این میان کمی از قافله عقبمانده است. از طرف دیگر مشاوران برندینگ و مارکتینگ سایت شمارا تنها ازنظر کارایی بررسی میکنند که سرعت سایت عامل مهمی در آن خواهد بود. نظرات و راهنمایی این افراد در راستای افزایش فروش، دسترسی راحت به محتویات سایت و تعداد صفحات بازدید شده خواهد بود.
تأثیر بر سرعت ایندکس و رتبه سایت
بهطورکلی سرعتپایین سایت موجب نارضایتی کاربران و خروج سریع آنها از سایت شما خواهد شد. اگر توجه گوگل به عملکرد کاربران در سایت و نرخ خروج آنها یا همان بانسریت را پذیرفته باشیم، به این نتیجه میرسیم که سرعت سایت تأثیر بالایی بر رتبه شما در نتایج گوگل خواهد داشت.
همچنین مناسب بودن سرعت سایت شما تأثیر زیادی بر ایندکس صفحات توسط روباتهای گوگل خواهد داشت. گوگل زمان مشخصی را برای بررسی و ایندکس توسط روباتهایش به هر سایت اختصاص میدهد. سرعت مناسب سایت به معنی افزایش سرعت بررسی و ایندکس هر صفحه و درنتیجه بررسی صفحات بیشتر خواهد بود. عدم دسترسی گوگل به صفحات داخلی شما در مدت طولانی میتواند به رتبه شما در نتایج گوگل آسیب جدی برساند.
روش بررسی سرعت وبسایت
1. به کمک ابزارهای گوگل آنالیزمیتوانید سرعت وبسایت خود را به راحتی تعیین کنید. برای این کار وارد حساب کاربری گوگل شوید و از بخش ابزار به بخش Site Speed Overview رفته در این قسمت میتوانید متوجه شوید کاربران تا چه مدت منتظر لود شدن صفحات سایت شما خواهند بود.
2. از Page Speed Insights Google استفاده کنید. که این قابلیت سرعت سایتها را از صفرتا 100 ارزیابی میکند. که امتیاز 85 به بالا نمره قابل قبولی خواهد بود.
روشهای افزایش سرعت وبسایت
DNS Lookup
به ازای هر دامنه که محتوای صفحه شما ازآنجا آورده شده است، یک Request و بالطبع یک DNS Lookup باید انجام شود. هرچقدر تعداد این «گشتن»ها کمتر باشد، پاسخهایی که بهمرور میرسد کاهش پیدا میکند. بنابراین هر جا که امکان داشت بهتر است که از آدرسهایکه باهم مرتبط هستنداستفاده کنید تا آدرسهای کامل مانند foo/bar. js/. . بهجایhttp://www. domain. com/foo/bar. js
کم کردن تعداد HTTP Requestها
80 درصد Response Time که کاربر باید صبر کند تا صفحه کامل لود شود، زمانی است که مرورگر محتوای صفحه شامل تصاویر، فایلهای جاوااسکرپیت،CSS ، فلش و . . . را دانلود میکند. پس هر جا که امکان داشت باید این فایلها را ترکیب باید کرد.
یعنی تمام فایلهای CSS را باهم ترکیب و بهصورت یک فایل آپلود کنید، فایلهای مختلف تصویری را نیز ترکیب و یک Image Sprite آپلود کرده و از طریق AttributeهایCSS آنها را تفکیک کنید.
استفاده نکردن از URL Redirect
استفاده از Redirect با تگ Meta موردی است که باعث بالا رفتن زمان ریسپانس میشود. بنابراین درصورتیکه شما به هر دلیلی لازم دارید که بهصورت خودکار کاربر را از یک صفحه به صفحه دیگر انتقال دهید این کار را از طریق وب سرور انجام دهید. (Mod_Rewrite)
Bad Request
تحت هیچ شرایطی به فایل یا آدرسی که وجود ندارد ارجاع نکنید. یعنی شما Error 404 را فقط و فقط باید برای آدرس صفحه داشته باشید و برای فایلهای JavaScript، CSS، عکس و . . . تحت هیچ شرایطی نباید HTTP Code 404 از سرور به مرورگر کاربر برگردد. به خاطر اینکه مرورگر زمان نسبتاً زیادی را صرف پیدا کردن فایل میکند و درنهایت هم موفق نمیشود.
استفاده از CDN
هر مرورگر،درنهایت بهصورت همزمان امکان دانلود کردن ۴ فایل به ازای هر هاست درآنواحد را دارد. پس اگه فرض کنیم شما در صفحه سایت ۲۸ فایل CSS، JavaScript، عکس، فلش و . . . داشته باشید و تمام این موارد روی یک دامنه قرارگرفته باشد مرورگر طی ۷ مرتبه، هر مرتبه ۴ فایل، میتواند تمام آنها را دانلود کند.
ولی اگه شما این فایلها را روی چندین دامنه مختلف توزیع کرده باشید سرعت دانلود شدن بهمراتب بیشتر خواهد شد. به این روش توزیع فایلها اصطلاحاً CDN یاContent Delivery Network گفته میشود.
برای مثال سایت گوگل تقریباً تمام فایلهای موردنیاز را ازGstatic. com بارگذاری میکند، یاهو yimage. com فیسبوکfbcdn. com و . . . که این دامنه مجزا، عموماً دارای چندینسابدامین، برای افزایش قابلیت توزیع فایلها روی دامنههای مختلف است.
استفاده از دامین بدون Cookie
وقتی شما یک CDN راهاندازی کردید، نکته بسیار مهم برای آن دامنهها این است که در تمامی آنها شما هیچ Cookie تعریف نکنید. کوکی حجم ناچیزی را به هرکدام از آن فایلها اضافه میکند که اصولاً لزومی برای این کار وجود ندارد و صرفاً در درازمدت پهنای باند آن CDN را بیجهت مصرف میکند.
مشخص کردن Expire و Cache-Control
وقتی وب سرور شما به یک درخواست جواب میدهد یک سری اطلاعات را روی Header صفحه قرار میدهد که یکی از آنها مشخص کردن وضعیت Expire شدن و Cache شدن محتویات آن صفحه است. شما برای افزایش سرعت لود شدن صفحات میتوانید خیلی از محتویات صفحه را که در زمان تغییر نمیکنند، یا قابلیتCache شدن دارند را کنید.
یکی از راههای این کار استفاده از mod_expires به ترتیب زیر:
ExpiresActive On
ExpiresDefault A604800
ExpiresByType image/x-icon A2592000
ExpiresByType image/gif A2592000
ExpiresByType image/jpg A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/png A2592000
ExpiresByType text/css A1209600
ExpiresByType application/x-javascript A1209600
604800 یعنی یک هفته، 2592000 یعنی یک ماه و. . .
GZip کردن محتوا
تقریباً تمام مرورگرهای جدید این قابلیت رادارند که محتوایZip شده از وب سرور تحویل بگیرند، بهصورت داخلی آن راUnzip کرده و بعد آن را برای کاربر نمایش دهند.
خاصیت استفاده از این کار این است که بهجای اینکه مثلاً یک فایل ۱۰۰ کیلوبایتی دانلود شود، همان فایل با حجم مثلاً ۳۰ کیلوبایت دانلود شده که اولاً هم سریعتر است و همپهنای باند کمتری از سرور مصرف میکند.
برای این کار میتوانید از mod_deflate آپاچی استفاده کنید:
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\. 0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
Minify کردن تمام فایلها
وقتی در محیط Develop مشغول آمادهسازی وبسایت هستید این:
<body>
<div>
<div>
Something
</div>
</div>
</body>
هیچ ایرادی ندارد، ولی وقتی شما قصد دارید سایت را آپلود کنید بهتر است که تمام اینSpaceها و Tabهای اضافه را پاککنید و به این صورت آپلود کنید:
<body>
<div>
<div>Something</div>
</div>
</body>
برای یک وبسایت،میزان خوانائی کدها در محیطProduction بهاندازه محیط Developاهمیت ندارد و شما باید در نظر داشته باشید که عملMinify کردن را برای تمام فایلها، مخصوصاًCSS وJavascript انجام دهید.
برای تست وضعیت وبسایت از Add-onهای Page Speedو YSlowکه برای Firebugطراحیشدهاند استفاده کنید.