بعد از رونمایی از پروتکل بسیار قدرتمند و سریع HTTP/2 ، دیگر دیدن وب سایت هایی با پروتکل ناامن HTTP معنا ندارد و می بایست همه طراحی سیات (طراحی سایت شرکتی، طراحی سایت فروشگاهی، قیمت طراحی سایت) ها از پروتکل امن و معتبر HTTPS استفاده کنند. وب سایتهایی که از پروتکل امن HTTPSاستفاده می کنند به مراتب امنتر و همچنین از لحاظ سئو بهینهتر از وب سایتهایی هستند که از پروتکل HTTP استفاده میکنند. ما در قالب دو مقاله به تشریح موارد زیر میپردازیم:
در این مقاله به تعریف SSL چیست و دلایل استفاده از پروتکل https می پردازیم. برای استفاده از این پروتکل https شما بایدگواهینامه SSL را تهیه کرده باشید و آن را در دامنه خود نصب نمایید. هر چند تهیه SSL در ایران به دلایل تحریمها از نظر مالی کمی برای سایتها مشکل ساز است و از طرفی اینترنت کند هم میتواند بر این مشکل بیافزاید.
سرفصلهای پست
اکثر ماها در طول روز با سایتهای مختلفی روبهرو میشویم و این ارتباط بین ما و سایت گاهی با انتقال دادهها صورت میگیرد، مثلاً برای وارد شدن بهحساب کاربری خود یوزنیم و پسورد نیاز داریم، بهعبارتدیگر اطلاعات شخصی خود به منظورهای مختلف در ساخت سایت های مختلف به اشتراک میگذاریم. برای افزایش امنیت و حفظ حریم خصوصی کاربران باید از این اطلاعات حفاظت کرد و انتقالی امن بین کاربر و سرور برای دادهها به وجود آورد. به همین منظور شما میتوانید با نصب گواهینامه SSL در سایت خود از پروتکل HTTPS بهره ببرید.
زمانی که این گواهینامه در سایت شما نصبشده باشد یک آیکون قفل یا نوار سبز در کنار آدرس سایت شما درج میشود به این معنی است که میتوان به آن کسبوکار اطمینان کرد.
درواقع پروتکلHTTPS ، یک روش رمزگذاری است که موجب ایجاد ارتباط امن و رمزگذاری شده بین مرورگر کاربران و سرور میباشد. و این عمل باعث سخت شدن کار برای هکرها در دخالت در اتصالات میباشد. البته توجه داشته باشید که خواندن اطلاعات رمزگذاری شده توسط هکر هرچند بسیار سخت میشود اما نمیتوان گفت غیرممکن است چراکه امنیت هیچگاه ۱۰۰ درصد نیست.
در ادامه به اهمیت SSL در سئو و مزایا و معایب آن میپردازیم.
گوگل به تازگی شعاری جدید به نام HTTPS در همه جا را برای داشتن جهان وبی امن در پیش گرفته است و شدیدا نسبت به آن سخت گیر است. با اینکه امن بودن پروتکل HTTPS اصلیترین دلیل استفاده از HTTPS میباشد ولی خوب است که دیگر دلایل مهاجرت و استفاده از HTTPS را نیز در نظر بگیریم.
شبکههای تحویل محتوا (CDN) و ارائه دهندگان میزبانی وب به تازگی شروع به استفاده از HTTP/2 کردهاند. در یک جلسه بررسی سرعت سایت ، موزیلا و شرکت Load Impact گزارش دادند که کاربران از این پس میتوانند انتظار بهینه سازی بیشتری در وب سایتهای خود داشته باشند، تا جایی که انتظار میرود HTTP/2 حدودا ۵۰ الی ۷۰ درصد سریع تر و بهینه تر از HTTP/1.1 باشد. برای استفاده از HTTP/2 باید مرورگر شما از آن پشتیبانی کند و همچنین HTTPS بر روی وب سایت شما فعال باشد.
در سال ۲۰۱۴ ، مت کاتز اعلام کرد که در حال حاضر استفاده از پروتکل HTTPS یک معیار سبک ولی تاثیر گذار در رتبه بندی وب سایتها توسط گوگل به شمار میآید. (منبع) بنابراین با توجه به این، فعالسازی و نصب SSL و استفاده از پروتکلHTTPS در وب سایتتان باعث افزایش بهبود آن نیز میشود.
باتوجه به آخرین اطلاعات ارائه شده توسط BuiltWith، از ۱۰۰ هزار وب سایت پرطرفدار جهان در حال حاضر حدود ۶.۳ درصد آنها به صورت پیشفرض از HTTPS استفاده میکنند.
گوگل همچنین در رابطه با تاثیرگذاری HTTPS بر روی رتبه بندی وب سایت شما نیز مقالهای با عنوان نگاهی به HTTPS از نظر یک فاکتور رتبه بندی وب سایت تهیه کرده است که پیشنهاد میکنم حتما آن را مطالعه کنید.
دلیل سوم برای استفاده از SSL ارجاع بهتر دادهها میباشد که ارجاع داده ها در HTTP توسط گوگل آنالیز مسدود شده است.
برای مثال اجازه میدهد که شما از طریق HTTP وب سایت خود را داشته باشید ولی هنگامی که کاربران از طریق وب سایتهایی مثل Reddit یا YCombinator به وب سایتتان ارجاع داده میشوند به آنها اعلام میدارد که شما ویروسی شدهاید.
هردو سایت بالا تحت پروتکل HTTPS می باشند که برای ارجاع لینک ها به وب سایتی دیگر باید حتما آن وب سایت تحت همین پروتکل باشد تا بدون مشکل ارجاع انجام شود و با پروتکل HTTP این کار امکان پذیر نیست.
اگر از پروتکل HTTPS در وب سایتتان فعال شود مشکلات ایجاد شده نیز برطرف میشود.
دلیل چهارم و مهمترین دلیل استفاده از پروتکل https و نصب SSL امنیت بالا است. برای سایتهای تجاری دلیل اینکه شما نیازمند گواهینامه SSL هستید ، حساسیت بالای تراکنشها با کارتهای اعتباریست. برای دیگر وب سایتها نیز دلیل اصلی استفاده از گواهینامه SSL امن نگاه داشتن صفحه ورود به پنل شما میباشد.
اگر از پروتکل امنی برای صفحههای ورود خود استفاده نکنید، نام کاربری و رمز عبور شما به راحتی قابل دسترسی در فضای اینترنت خواهد بود. بعضی از وب سایتهای امنیتی از نحوه sniff از صفحات کاربران هنگام ورود گذاشتهاند که به راحتی میتوانند از این طریق اکانتهای کاربری شما را هک کنند و به وب سایت شما نفوذ کنند به عنوان مثال به این مقاله توجه کنید که چطور درباره هک اکانت سایت صحبت میکند. بسیاری از افراد بر این باورند که وب سایتهای خبری و اطلاعاتی نیازمند پروتکل امن نیستند ولی آیا این عزیزان امنیت صفحه ورود را در نظر گرفتهاند ؟ آیا برای شما امنیت سایت شما در هر موضوعی اهمیت دارد؟ اگر جواب شما بله است حتما به نحوه انتقال دامنه به پروتکل امن HTTPS توجه کنید.
دلیل پنجم استفاده از SSL و تغییر http به https ایجاد اعتماد و اعتبار در بازدیدکنندگان میباشد. براساس نظرسنجی Global Sign ، بیشتر از ۷۵ درصد بازدیدکنندگان نگرانی بسیار زیادی برای اعتماد کردن به فروشگاههای اینترنتی هستند و همچنین نسبت به اعتبار وب سایت نیز نگران هستند که اطلاعات کاربری آنها به سرقت نرود. با اضافه کردن گواهینامه SSL به وب سایتتان و نمایان شدن رنگ سبز رنگ روی قفل وب سایت ، اعتبار وب سایت بسیار افزایش پیدا میکند. این بسیار مهم است که کاربران شما از امنیت وب سایت شما مطمئن شوند و به اینکه اطلاعاتشان در وب سایت شما محفوظ است ، اعتماد کنند همانند سایت سئوراز
در زمان نوشتن این مقاله اخرین نسخه کروم 64 میباشد و قرار است در نسخه های آتی یعنی نسخه 68 کروم، گوگل سایتهایی را که از پروتکل HTTPS استفاده نمیکنند را واضحتر مشخص کند تا کاربران بر این موضوع با آگاهی بیشتری وبگردی داشته باشند.
و این موضوع تاثیر بسیار زیادی بر روی تجربه کاربری دارد، چرا که کاربران اگر حس امنیت در سایتی را نداشته باشند نرخ دفع کاربری به شدت بالا میرود و میتواند روی فروش و رتبه سایت شما در گوگل اثرگذار باشد.
به شکل بسیار خلاصه اشاره کنم که:
در این پست قصد داریم درباره ارور Reduce the number of DOM elements صبحت کنیم و بررسی کنیم منظور این خطا چیست و اینکه رفع آن چگونه باعث بالا بردن سرعت سایت ما میشود.
نام: Reduce the number of DOM elements
نوع: محتوا
اولویت: پایین
میزان سختی: متوسط
میانگین امتیاز: 92%
مدل DOM مخفف عبارت Document Object Model است که برای دسترسی به اشیا و عناصر موجود در یک سند HTML یا صفحه HTML است، این مدل از یک سری درخت سلسله مراتبی برای این دسترسی استفاده میکند. این درخت از شی Window به عنوان عنصر مادر یک صفحه HTML شروع شده و به ترتیب به عناصر رده پایین تر ادامه پیدا میکند، تا به پایینترین رده عناصر یعنی متن و نوشته برسد . شکل زیر یک نمای کلی از درخت سلسله مراتب در مدل DOM است:
ولی استفاده بیشتر این عناصر DOM باعث کند شدن سایت میشود، و همانطور که نوشته شده Reduce the number of DOM elements یعنی کاهش دهید تعداد المانهای DOM را، و برای این کاهش باید زبان جاواکسریپت و DOM آشنایی داشته باشید. مشکل سرعت وردپرس خیلی از دوستان که از قالبهای اماده استفاده میکنند میتواند این خطا هم باشد هر چند اگر بقیه موارد بهینه سازی شده باشند خطای Reduce the number of DOM elements را بهتر است نادیده بگیرید.
در این پست قصد داریم درباره ارور Use a Content Delivery Network صبحت کنیم و بررسی کنیم منظور این خطا چیست و اینکه رفع آن چگونه باعث بالا بردن سرعت سایت ما میشود. توجه داشته باشید که ما در ادامه هم از عبارت CDN (شبکه توزیع محتوا) استفاده خواهیم کرد و هم از عبارت CDN Public (شبکه توزیع محتوا عمومی) که این دو عبارت برای اهدافی متفاوت ایجاد شده اند، بنابراین این دو عبارات را یکی ندانید.
نام: (Use a Content Delivery Network (CDN
نوع: محتوا
اولویت: پایین
میزان سختی: متوسط
میانگین امتیاز: 92%
CDN یا به اختصار Content Delivery Network به معنای شبکه توزیع محتوا است البته به شبکه تحویل محتوا هم میتوان ترجمه کرد، قصد داریم به کمک شکل زیر به سادگی معنا و هدف CDN را بیان کنیم.
سناریو یک: به نیمه بالای تصویر دقت کنید و تصور کنید که شما از شبکه توزیع محتوا یعنی CDN استفاده نمیکنید و سرور اصلی سایت شما در شهر ویرجینیا امریکا قرار دارد در این حالت هر کاربری در هر جایی از دنیا که قصد داشته باشد وارد سایت شما شود باید به سرورهای موجود در امریکا درخواست ارسال کند، طبیعتا اگر کاربری در آسیا یا نقاط دورتری نسبت به شهر ویرجینیا امریکا باشد زمان درخواست و پاسخ از سرور اصلی بیشتر به طول میانجامد.
سناریو دو: به نیمه پایین تصویر دقت کنید و و تصور کنید که شما از شبکه توزیع محتوا یعنی CDN استفاده میکنید و سرور اصلی سایت شما در شهر ویرجینیا امریکا قرار دارد در این حالت تمام سرورهای CDN در مناطق مختلف یک نسخه کپی از طراحی سایت (طراحی سایت شرکتی، طراحی سایت فروشگاهی) شما در سرور اصلی برداشته و در خود ذخیره میکنند و اگر برفرض کاربری در کشور چین قصد داشته باشد وارد سایت شما شود، نزدیکترین سرور CDN به چین پاسخ کاربر را خواهد داد و این عمل در بهبود سرعت سایت نقش بسیاری را ایفا میکند.
افزایش سرعت سایت : طبق توضیحات بالا استفاده از شبکه توزیع محتوا باعث بهبود سرعت سایت و سریعتر لود شدن صفحات برای کاربران میشود.
کاهش مصرف پهنای باند سرور اصلی : زمانی که شما از CDN استفاده میکنید سرورهای CDN یک نسخه کپی از محتویاتی که تقریبا ثابت هستند (فایلهای CSS ، جاوااسکریپت، عکسها، فونتها و …) در سرور خود ذخیره میکنند و زمانی که کاربر درخواستی را برای باز شدن صفحات سایت شما ارسال میکند به جای ارسال درخواست به سرور اصلی به سرورهای CDN ارسال میشود که باعث کاهش مصرف پنهای باند سرور اصلی میشود.
کاهش مصرف منابع سرور اصلی: استفاده از شبکه توزیع محتوا باعث کاهش تعداد درخواستهای HTTP از سمت کاربران میشود و این عمل بار بسیاری را از دوش سرور اصلی کم میکند که نتیجه آن کاهش مصرف منابه سرور اصلی میباشد.
افزایش رتبه سایت در گوگل : یکی از موارد بهبود سئو سایت بالا بردن سرعت سایت است و گوگل اعلام کرده است که سرعت سایت یکی از فاکتورهای مهم در رتبهبندی نتایج خواهد بود.
بهبود تجربه کاربری : سرعت سایت و بارگذاری سریع صفحات سایت ارتباط مستقیمی با تجربه کاربری (UX) خواهد داشت، چرا که کاربران زمان کمتری را برای لود شدن فایلهای لازمه یک صفحه صرف خواهند کرد و تاخیر در بارگذاری تا حد بسیار زیادی کاهش پیدا میکند، همین موضوع میتواند باعث کاهش نرخ دفع کاربری هم شود.
۱۰۰ درصد بالا بودن سرور : زمان که شما از شبکه توزیع محتوا یا CDN استفاده میکنید حتی زمانی که سرور اصلی قطع شود نسخه کپی موجود در سرورهای CDN به کاربران نمایش داده میشود تا با قطعی سرور کاربران شما برخورد نکنند.
افزایش امنیت سایت : استفاده از CDN باعث افزایش امنیت سایت و جلوی حملاتی نظیر DDoS را میگیرد چرا که شبکه توزیع محتوا به راحتی میتواند با استفاده از پهنای باند نامحدود خود بار حملات DDoS خنثی کند.
هزینه CDN : یکی از معایب استفاده از شبکه توزیع محتوا هزینه نسبتا بالای برخی از ارائه دهندهگان CDN است، هر چند برخی از ارائه دهندهگان دارای پنل رایگان هستند همانند سایت cloudflare ولی استفاده از پنل رایگان با توجه به محدودیت های فراوانی که دارند، برای سرورهای داخل ایران توصیه نمیشود که در ادامه علت آن را خواهیم گفت، از بین سایت های ارائه دهنده شبکه توزیع محتوا خارجی میتوان سایت MaxCDN را اشاره کرد که دارای پنلهایی با قیمت مناسب است. در ادامه انواع سایتهای ارائه دهنده CDN را نام خواهیم برد.
مسدود شدن برخی کاربران : گاهی پیش آمده دسترسی برخی کاربران به سایت مسدود شده چرا که برخی سازمانها و یا حتی کشورها دسترسیها را به برخی کاربران محدود میکنند و درنتیجه بسیاری از دامنه ها در این سازمان ها و کشورها غیر قابل دسترسی می گردد. یا برخی CDNها حساسیت بالایی به تعداد درخواستهای HTTP دارند و اگر حتی یک کاربری صفحات زیادی از یک سایت را باز کند ممکن است CDN واکنش نشان دهند و تصور کند که سایت مورد حمله است و ای پی آن شخص را مسدود کند (این موضوع برای خوده بنده بسیار پیش آمده)
برخی از CDNهای معروف عبارت اند از:
چند نکته:
استفاده از سرویس رایگان شبکه توزیع محتوای عمومی (Free Public CDN Services) باعث افزایش سرعت سایت، ذخیره پهنای باند سرور اصلی، بهبود تجربه کاربری میشود، در سرویسهای رایگان توزیع محتوای عمومی کتابخانههای معروف جاوااسکریپت و CSS قرار دارند تا برنامهنویس ها به جای اپلود کردن این کتابخانه های مهم و معروف در سرور اصلی سایت، از سرورهای رایگان توزیع محتوای عمومی استفاده کنند، این عمل باعث کاهش تعداد درخواستهای HTTP به سمت سرور شما هم میشود، مثلا به جای اینکه فایل jquery.min.js را مثل آدرس زیر در طراحی سایت خود لود کنیم.
<script src=”https://mizfa/com/file/js/jquery.min.js”></script>
از jquery.min.js موجود در Google CDN که یکی از شبکههای توزیع مجتوای عمومی است استفاده کنیم:
<script src=”https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js”></script>
لینک: https://developers.google.com/speed/libraries
پایداری یکی از مهمترین خصوصیات این CDN است، شبکه توزیع محتوا عمومی گوگل از محبوبترین کتابخانه های منبع باز JavaScript پشتیبانی میکند و همیشه این شبکه توزیع محتوای عمومی اخرین نسخههای انتشار شده را در کتابخانه CDN خود قرار میدهد.
لینک: http://www.asp.net/ajax/cdn
یکی از محبوبترین کتابخانههای CDN به شکل رایگان را برای کاربران فراهم کرده است. شبکه توزیع محتوا عمومی مایکروسافت از محبوبترین کتابخانه Ajax در انواع نسخهها را پشتیبانی میکند.
لینک: http://www.jsdelivr.com
jsDelivr خود از ۵ سی دی ان قدرتمند دیگر برای ارائه خدمات هر چه بهتر به کاربران استفاده میکند که معروفترین آنها Cloudflare و MaxCDN هستند. شاید این لینک برای شما جالب باشد که نحوه توزیع محتوا عمومی در jsDelivr به چه شکل است، انواع کتابخانههای معروف این CDN عمومی درون خود دارد و کافیست برای استفاده از یک فایل نام آن را در صفحه اول تایپ کنید.
لینک: https://cdnjs.com
cdnjs توسط CloudFlare حمایت میشود و فایلهای مربوط به jQuery ، Modernizr و Bootstrap در خودش دارد، استفاده بسیاری از این سی دی ان عمومی و محبوب میشود.
لینک: https://code.jquery.com
jQuery قدرت گرفته از MaxCDN است. و اخرین نسخههای کتابخانه JavaScript را همیشه در دسترس قرار میدهد.
برای رفع این خطا در Yslow پیشنهاد میکنیم از CDNهایی که معرفی کردیم استفاده نمایید، اگر بنا به شرایط خود نمیتوانید استفاده کنید بهتر است حداقل برای لود کردن برخی از فایلهای معروف در سایت خود همانند کتابخانههای JavaScript از CDN Public استفاده کنید.
در این پست قصد داریم درباره ارور Use cookie-free domains بحث کنیم و بررسی کنیم منظور این خطا چیست و اینکه رفع آن چگونه باعث بهبود سرعت و سئو سایت ما میشود.
خلاصهای از خطا Use cookie-free domains
نام: Use cookie-free domains
نوع: کوکی
اولویت: پایین
میزان سختی: متوسط
میانگین امتیاز: 48%
قبل از رفع خطای Use cookie-free domains شاید بهتر باشد فرق کوکی و کش را بدانیم تا بهتر بتوانیم خطای موجود را درک کنیم.
Cookies یا کوکی تیکه اطلاعات کوچکی هستند که کاربر با هر بار بازدید کردن از یک سایت، در کامپیوتر او ذخیره میشوند. هر بار که کاربر آن سایت را لود میکند، مرورگرش آن کوکیها را دوباره به سرور ارسال میکند تا سرور را از فعالیتهای قبلی کاربر اطلاع دهد. کوکیها طول عمر خاصی دارند که توسط کدهای آن سایت مشخص میشود، مثلاً در طراحی سایت (طراحی سایت شرکتی، طراحی سایت فروشگاهی) های وردپرس توسط زبان PHP در قالبها و پلاگینهای مختلف کوکیهای مختلفی بر روی مرورگر کاربر ذخیره میشود. در آخر یک کوکی منقضی خواهد شد و تاریخ مشخصی برای ماندن در مرورگر کاربر دارد، بنابراین کوکیها معمولاً برای ذخیرهسازی اطلاعات کوچک در یک دوره زمانی کوتاه مورداستفاده قرار میگیرد.
چند مثال از استفاده کوکی برای شما آوردیم تا بهتر با کاربرد و علت وجود کوکی آشنا شوید
اغلب کوکیها برای ردگیری اطلاعات از کاربران است، مثلاً کاربران چه صفحاتی را بازدید میکنند یا از چه صفحهای وارد چه صفحه دیگری میشوند. یا مثلاً چه دکمهای را کلیک کردهاید و مواردی از این قبیل
یکی از موارد پرکاربرد کوکی ثبت اقلام موجود در سبد خرید سایتهای فروشگاهی است. حتماً برای شما پیشآمده بدون ثبتنام در سایت فروشگاهی اقدام به انتخاب یک محصولی کرده باشید و آن محصول در سبد خرید شما اضافه میشود و شما درحالیکه در گشتوگذار در آن سایت هستید محصولات انتخابی شما در سبد خرید موجود است و این عمل را کوکی انجام میدهد و اگر بعد از یک ماه دوباره سر بزنید دیگر آن محصول را در سبد خود نخواهید دید چراکه کوکی تاریخ انقضا دارد.
نظرات که ما بدون ثبتنام در سایتی ارسال میکنیم و با عبارتهای مشابه “دیدگاه شما در انتظار تائید است” روبهرو میشویم از کوکی استفاده میکند، و ممکن است شما فردا دوباره به سایت سر بزنید و اگر آن دیدگاه را مشاهده کردید یعنی تاریخ انقضای کوکی مربوط به دیدگاهها هنوز منقضی نشده ولی اگر نباشد یا تاریخ کوکی منقضی شده یا توسط شما از مرورگر خود آن کوکی را پاککردهاید.
تمام اطلاعات مربوط به پسوردها و یوزرنیم ها از طریق کوکی ثبت میشود و دهها کاربرد دیگر
یک کش وب (HTTP cache) فنّاوری است که از طریق درخواستهای HTTP یک سری اسناد وب را به شکل موقت در مرورگر کاربر ذخیره میکند، همانند عکسها و فایلهای CSS و JS که تغییرات زیادی روی آنها صورت نمیگیرد. هر بار که شما از وب سایتی بازدیدی انجام میدهید لازم است که یک سری فایلهایی را دانلود کنید تا سایت قابلمشاهده باشد، حال برخی فایلها مانند، CSS، JS، HTML و عکسها که ممکن است در کش مرورگر (یا کش محلی یا کش لوکال) ذخیره شوند. در این صورت وقتی به صفحهی دیگری از آن سایت مراجعه میکنید موارد تکراری صفحات مثل لوگو سایت فایلهای CSS و غیره دیگر دوباره دانلود نمیشوند بلکه از طریق کش محلی مرورگر فراخوانی صورت میگیرد. پس بهاینترتیب لازم نیست با هر بار لود کردن صفحههای سایت، فایلهای مشترک بین صفحات را دانلود کنید. این همان دلیلی است که باعث میشود در اولین بازدید از یک سایت زمان بیشتری برای لود شدن لازم باشد تا زمان لود صفحات در تکرار بازدید از همان سایت.
این عمل هم باعث صرفهجویی در حجم اینترنت بازدیدکننده میشود و هم باعث میشود مواردی نظیر تعداد درخواستها به سمت سرور، مصرف پهنای باند، لود سایت و تأخیر بهشدت کاهش یابد و صفحات ساخت سایت(قیمت طراحی سایت) در دفعات بعدی سریعتر لود میشوند.
هرچند کوکی و کش هر دو راهی برای ذخیرهسازی اطلاعات در مرورگر کاربر هستند اما آنها تفاوتهایی را باهم دارند چراکه دارای اهدافی متفاوت هستند.
کوکی برای ذخیرهسازی یک سری اطلاعات در جهت ردیابی فعالیتهای کاربر استفاده میشود درحالیکه کش برای بهبود سرعت سایت مورداستفاده قرار میگیرد.
کوکی اطلاعات مربوط به کاربران نظیر تنظیمات کاربری، پسورد، یوزرنیم و … است درحالیکه کش برای نگهداری منابع استاتیک (فایلهای ثابت) نظیر عکس، استایلهای CSS یا جاواسکریپت است.
کوکی محدودیت ذخیرهسازی دارد و تا 4KB میتواند حجم داشته باشد درحالیکه کش چنین محدودیتهایی ندارد.
کوکی و هم کش توسط کاربر میتواند پاک شود ولی معمولاً کوکیها عمر کوتاهتری دارند و زمان انقضاهای آنها سریعتر میرسد درحالیکه کشها به این شکل نیستند و در مرورگر کاربران وجود دارند مگر دستی توسط کاربر پاک شود.
وجه مشترک کوکی و کش این است که هر دو برای ذخیرهسازی در مرورگر کاربر استفاده میشوند که بیشتر کوکی برای ذخیرهسازی اطلاعات کاربری کار دارد ولی کش بیشتر سمت ذخیرهسازی فایلهای موجود در سند یک سایت است. همچنین کوکی و کش هر دو از نوع درخواستهای HTTP به سمت مرورگر ارسال میشوند.
تمام موارد بالا گفته شد تا به این قسمت برسیم که خطای Use cookie-free domains چه چیزی را به ما می گوید، و منظور از این خطا چیست؟ چه زمانی کوکی باعث ایجاد این خطا در Gtmetrix میشود؟
همانطور که در مقاله اشاره کردیم، کوکی بیشتر برای ذخیرهسازی اطلاعات کاربران است، نه فایلهای موجود در سند، درحالی که وقتی شما کوکی را فعال میکنید از آن پس تمام درخواستها به همراه کوکی ارسال میشود و فایلهای استاتیک یا ثابت هم همانند یوزنیم و پسورد دارای کوکیاند، حال مثلا عکسی که دارای کوکی باشد چه مشکلی را به وجود میاورد؟ عکس و یا هر فایل یا اطلاعاتی که دارای کوکی هستند هر بار که کاربر آن سایت را لود میکند، مرورگرش آن کوکیها را دوباره به سرور ارسال میکند تا سرور را از فعالیتهای قبلی کاربر اطلاع دهد و این امر باعث میشود حجم و تعداد درخواستها بین کاربر و سرور بالا رود و باعث کاهش سرعت سئو سایت گردد مخصوصا سایت های وردپرسی که هر پلاگین یا قالب میتواند برای خود کوکی تنظیم کند، درحالی که نیازی وجود ندارد فایلهای ثابث همانند عکسها دارای کوکی باشند.
به تصویر زیر توجه کنید، هدر یکی از عکسهای سایت میزفا است که دارای کوکی است و نباید چنین کوکی همراه عکس باشد (هر چند سرعت سایت ما بسیار مناسب است و نیازی به رفع این مورد نبوده است) ولی اگر عکسهای سایتی مثل دیجی کالا را بررسی کنید عکسهایشان همه در یک زیردامنه قرار دارند و این زیردامنه بر روی CDN پیاده سازی شده که این عمل باعث میشود ترافیک ماهانه و حجم اشغالی منابع به شدت کاهش یابد. و هر چه سایت شما پربازدیدتر باشد رفع این خطا چشمگیرتر خواهد بود
فرض کنید دامنه شما mizfa.com باشد هر عکس یا فایلی استاتیک در داخل دایرکتوری این دامنه باشد بالاخره کوکی به آن فایلها در هنگام ارسال درخواستهای HTTP به کاربر اضافه خواهد شد مگر فایلها و عکسهای ثابت و استاتیک خود را به یک زیردامنه یا دامنهای دیگر انتقال دهید. بسیاری از سایتهای معروف از این روش برای بالا بردن سرعت سایت خود استفاده کردهاند مثلا سایت یاهو از دامنهای مستقل به آدرس yimg.com برای لود فایلهای خود استفاده میکند، سایت آمازون از زیردامنه images-amazon.com برای عکسهای استاتیک خود استفاده میکند، سایت دیجی کالا هم که قبلا به آن اشاره کردیم و دیگر سایتهای مختلف که اهمیت بسیاری به تجربه کاربری میدهند.
فرق کنیم قصد داریم زیر دامنه static.yourwebsite.com را برای فایلهای استاتیک خود ایجاد کنیم، به این منظور در کنترل پنل خود (سی پنل، دایرکت ادمین و …) فیلدها را به شکل زیر پر میکنیم.
در قسمت Document Root دقت داشته باشید که آدرس دقیقا همانند تصویر بالا باشد. سپس فایل wp-config.php باز کرده و دستور زیر را قرار میدهیم.
;(“define(“WP_CONTENT_URL”, “http://static.yourwebsite.com
;(“define(“COOKIE_DOMAIN”, “www.yourwebsite.com
حال زیردامنه اماده شده را میتوانید فایلهای استاتیک بدون کوکی در آن قرار دهید. توجه داشته باشید ممکن است راهحل بالا برای سایت شما کار نکند یا مشکل ساز شود بنابراین قبل از هر گونه تغییرات فول بک آپ بگیرید
چند نکته:
یک: شما روشهای متعدد دیگری هم برای رفع مشکل Use cookie-free domains دارید، مثلا به زیردامنه static.yourwebsite.com یک IP سرور متفاوت تنظیم کنید و در هاست دیگر آن را لود کنید یا میتوانید زیردامنه خود را در یکی از CDNها پیاده سازی کنید، جهت اطلاعات بیشتر درباره CDNها به مقاله CDN چیست مراجعه کنید (پیشنهاد میشود برای پیادهسازی چنین عملی در سایت خود از یک کارشناس باتجربه استفاده نمایید)
دو: خطای Reduce cookie size زیر مربوط به کوکی است و خواندن ان به شما توصیه میشود چرا که در این خطا درباره نحوه کاهش کوکیها و علت آن صحبت شده است.
سه: هر سه ارور روبهرو مربوط به کش هستند و مطالعه آن قطعا برای شما مفید خواهد بود: ارور Leverage browser caching ، ارور Specify a cache validator و ارور Add Expires headers
در این پست قصد داریم درباره ارور Use GET for AJAX requests بحث کنیم و بررسی کنیم منظور این خطا چیست و اینکه رفع آن چگونه باعث بالا رفتن سرعت و سئو سایت و همینطور سئو ما میشود، پس ما میزفا همراه باشید.
خلاصهای از خطا Use GET for AJAX requests
نام: Use GET for AJAX requests
نوع: JS
اولویت: پایین
میزان سختی: متوسط
میانگین امتیاز: 100%
درگذشته برای تبادل اطلاعات بین سرور و مرورگر در یک بخش کوچک از صفحه باید از زبانهای asp یا php یا دیگر زبانها استفاده میکردند که در این روشها باعث میشود کل آن صفحه به سرور ارسال شود به عبارتی کل صفحه لود میگردید تا درنهایت فقط بخشی از صفحه تغییرات لازم بر روی آن اعمال شود. ارسال حجم کل اطلاعات صفحه تنها به خاطر تغییر قسمتی کوچک از آن باعث کاهش سرعت بهینه سازی سایت و افزایش پهنای باند مصرفی میگردید همچنین این موضوع تجربه کاربری را هم مختل مینمود، Ajax این مشکل را برطرف میکردد.
درواقع Object (شئ) xmlhttprequest در Ajax است همه این مشکلات سرعت را رفع نمود و باعث شد تا محتوای بهروز شده در یک صفحه بدون احتیاج به بارگذاری دوباره کل صفحه تغییر کند. درواقع این شئ سبب گردید تا داده واردشده توسط کاربر به سمت سرور ارسال شود و سرور پردازشهای لازم را انجام دهد و سپس داده پردازششده یعنی اطلاعات را به مرورگر بدهد بدون آنکه صفحه لود شود، تمام این رفتوبرگشتها در پشت صفحه و بدون اطلاع کاربر انجام میشود. میتوان گفت شئ XMLHttpRequest مهمترین شئ در Ajax است که تقریبا انجام تمام عملیات لازم بر روی دوش آن هست. حال برای ارسال و تبادل اطلاعات توسط شئ XMLHttpRequest دو نوع متد وجود دارد متد GET و متد POST که هر دو یک درخواست HTTP برای تبادل اطلاعات استفاده میکنند که هر کدام مزایا و معایت خوب را دارند.
بیشتر بدانید: XML و یا JSON یک نوع ساختار برای ذخیرهسازی اطلاعات است، ساختارهایی که بدون توجه به تکنولوژی و پلتفرم آن دستگاه قابل استفاده هستند از طرفی Ajax یک تکنولوژی است که در آن یک شئ XMLHttpRequest وجود دارد این شئ همانطور که نامش پیداست اطلاعاتی که دارای ساختار XML است را به شکل Http Request (درخواست HTTP) ردوبدل میکند، این توضیح کوتاه داده شد تا با فلسفه نام XMLHttpRequest آشنا شوید.
بعید است طراحی سایت (طراحی سایت شرکتی، طراحی سایت فروشگاهی) شما با خطای Use GET for AJAX requests روبهرو شود ولی اگر شد بدانید که در این پست منظور Gtmetrix این است که اگر از تکنولوژی Ajax در صفحات استفاده میکنید به جای استفاده از متد ارسال POST از GET استفاده نمایید، چرا که سرعت متد GET بیشتر است.
تفاوت متد POST و GET از نگاه بهبود سرعت سایت این است که در متد POST در دو مرحله عملیات تبادل داده بین سرور و مرورگر را انجام میدهد، در مرحله اول ارسال درخواست headers است و در مرحله بعدی دادهها را ارسال میکند درحالی که متد GET هر دو مرحله را با هم ارسال میکند. ولی تفاوت این دو متد به اینجا ختم نمیشود و فرقهای بسیار هم دارند که باید بررسی کرد از کدام بهتر است برای تبادل اطلاعات استفاده شود چرا که همیشه متد GET بهتر نیست و در شرایطی استفاده از متد POST حیاتی میباشد.
ویژگی | متد GET | متد POST |
استفاده از دکمه های BACK و Reload | بی اثر | ارسال دوباره اطلاعات (البته قبل از ارسال شدن دوباره اطلاعات مرورگر به کاربر هشدار میدهد) |
Bookmark کردن | با زدن کلیدهای ctrl + D آدرس bookmark میشود. | قابلیت bookmark را ندارد. |
قابلیت کش – Cache | کش میشود. | قابلیت کش را ندارد. |
نوع رمزگذاری – Encoding | application/x-www-form-urlencoded | application/x-www-form-urlencoded multipart/form-data از multipart/form-data برای رمزگذاری داده های باینری معمولا هنگام آپلود کردن فایلها استفاده میشود. یعنی برای آپلود فایل از این نوع استفاده می کنیم. |
ذخیره شدن در تاریخچه مرورگر – History | ردپای متد GET در تاریخچه مرورگر ذخیره میشود. | ذخیره نمیشود. |
محدودیت در اندازه داده | متد GET اطلاعات خودش را به URL اضافه میکند. و از طرفی حداکثر اندازه URL میتواند 2048 کاراکتر باشد. | بدون محدودیت |
محدودیت در نوع داده | فقط داده ی از نوع اسکی را پشتیبانی می کند. | بدون محدودیت. قابلیت ارسال داده های باینری را دارد. |
امنیت | امنیت کمتری نسبت به POST دارد.از این متد برای ارسال اطلاعات حساسی مانند کلمه عبور استفاده نکنید. | نسبت به متد GET از امنیت بیشتری برخوردار است.پارامترهای ارسالی در تاریخچه مرورگر و در سیستم لاگ وب سرور ذخیره نمی شوند. |
قابلیت مشاهده | اطلاعات در URL توسط همه قابل مشاهده است. | قابل مشاهده |