میخوایم در این مقاله به نحوه رفع خطای Avoid a character set in the meta tag در ابزار GTMetrix بپردازیم. در جلسه گذشته از آموزش جامع GTMetrix درباره تحلیل قسمتهای مختلف ابزار GTmetrix پرداختیم و حالا این ارور که از خطاهای Pagespeed گوگل است قصد داریم به کمک روشهای مختلف، باعث افزایش سرعت سایت خودمان شویم.
در ابتدا درباره اینکه character set چیست صحبت میکنیم و علت اینکه “چرا گوگل به ما میگوید از این متاتگ استفاده نکن”، چیست، چرا امتناع کردن از این متا تگ باعث بالا بردن راندمان وبسایت و بهبود سئو میشود. در ادامه با میزفا همراه باشید.
[box type=”info” align=”alignright” class=”” width=””]توجه: در این مقاله ما درباره ارور Avoid a character set in the meta tag صحبت خواهیم کرد و رفع این ارور باعث میشود ارور دیگری به نام Specify a character set early هم رفع شود.
[/box]
سرفصلهای پست
خلاصهای از خطای Avoid a character set in the meta tag
اولویت: کم
میزان سختی: راحت
میانگین امتیاز: ۹۹%
خطا Avoid a character set in the meta tag
character set از جمله استانداردهای بينالمللی كه كاملتر از بقيه استانداردهای موجود به رفع نیازهای مربوط به تبادل اطلاعات چندزبانه پرداخته است، این character setها از قبل تعریف شده هستند و وجود آنها در صفحات تعیین کننده این است که محتویات سایت چگونه به کاربران نمایش داده شود. بسته به اینکه مقدار character set چه چیزی باشد مرورگر محتویات سایت شما را به کاربران نشان میدهد. پراستفادهترین مقدار این متاتگ UTF-8 است و البته مقادیر دیگری همانند ASCII هم موجود است. متاتگ character set تقریبا همانند کد زیر است.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
این خطا به معنی عدم تعیین نوع کاراکتر نیست، متاسفانه یک وب سایت ایرانی به اشتباه مقالهای را انتشار میدهد و بقیه دوستان هم در بحث کپی کردن حرفهای هستند و نتیجه این میشود که وقتی رفع ارور Avoid a character set in the meta tag را در گوگل سرچ میکنیم از ۱۰ سایت موجود در صفحه اول ۹ تا به اشتباه نوشته اند. حتی اگر دانش کافی نداشته باشیم ولی کمی در ترجمه زبان انگلیسی کنجکاو باشیم در مییابیم که Avoid به معنای اجتناب است و Gtmetrix میگوید از متاتگ character set اجتناب کن و استفاده نکن ولی سایتهای ایرانی نوشتهاند این خطا به معنی عدم تعیین character set در صفحات است و اگر استفاده کنید این خطا رفع میشود 🙂
قسمتی از توضیحات Gtmetrix را بخوانید:
Why should you avoid setting it in the meta http-equiv tag?
Setting the character set in the meta http-equiv tag disables the lookahead downloader in Internet Explorer 8. Disabling the lookahead downloader can substantially increase the amount of time it takes to load your page.
Web developers should specify the CHARSET in the HTTP Content-Type response header, as this ensures that the performance benefit of the Lookahead Downloader is realized.
همانطور که خواندید gtmetrix میگوید متاتگ character set مشکلاتی در IE8 دارد و جهت افزایش زمان لود از هدر مخصوص CHARSET استفاده شود. در ادامه از توضیحات gtmetrix بخوانید:
How to do it?
In order to avoid using meta tags you must set the Character Set from the Server.
This is the most efficient method to set the character set, because you don’t need to set it for every page. Set your server to send a Content-Type header for all documents it serves that are of type text/html.
ذکر میکند که به منظور اجتناب از متاتگ، Character Set را سمت سرور تنظیم میکنیم تا هر بار لازم نباید با متاتگ Character Set در هر صفحه آن را لود کنیم و کافیست سرور یک بار ارسال کند تا به همه سندها (صفحات و فایلها) اعمال شود.
به عکسی که از دادههای وبسایت میزفا است توجه کنید.
این مشکل در وبسایت جی تی متریکس که ممکن است به شما نشان دهد، در اکثر مواقع سبز رنگ است و خیلی کم پیش میآید سایتی با خطای Avoid a character set in the meta tag روبه رو شود چرا که در HTML5 به شکل پیشفرض از UTF-8 استفاده میشود و این موضوع باعث شده است که خیلی از مشکلات کاراکتری حل شود.
حال برای رفع مشکل شما باید متاتگ character set را به شکل یک درخواست HTTP استفاده کنید چرا که برخی از مرورگرهای قدیمی همانند IE8 به پایین با چنین متاتگی مشکل دارند. پس باید به کمک زبان سمت سرور و نوع وب سرور بتوانیم به درستی یک درخواست از سمت HTTP header برای مرورگر برای تعیین مقدار character set ارسال کنیم. فقط توجه داشته باشید که وجود متاتگ character set مشکلی ایجاد نمیکند ولی بودن درخواست HTTP لازم است.
کد در PHP
اگر با خطای Avoid a character set in the meta tag برخورد میکنید، میتوانید از کد زیر که یک درخواست HTTP Header ارسال میکند، استفاده نمایید.
header("Content-Type: text/html; charset=utf-8");
کد در Apache
اگر زبان سمت سرور سایت شما به غیر از PHP است باید بررسی کنید که وب سرور شما از چه نوع است، اگر از وب سرور Apache استفاده میکنید کد زیر را در htaccess وارد کنید، اگر اطلاعی از زبان سمت سرور و وب سرور ندارید به پشتیبانی هاستینگ خود تیکت بزنید.
AddType 'text/html; charset=UTF-8' html
کد در Nginx
و یا اگر وب سرور شما nginx است کد زیر را در قسمت config سرور قرار دهید
more_set_headers -t 'text/html' 'Content-Type: text/html; charset=utf-8';
برای کسب اطلاعات بیشتر میتوانید این مقاله گوگل را مطالعه فرمایید.
جمع بندی خطای Avoid a character set in the meta tag
سعی شد در این مقاله به مشکلات مربوط به ارور Avoid a character set in the meta tag , و نحوه رفع آن پرداخته شود، ولی باید دقت داشته باشید که به این معنا نیست که حتما با خواندن این مقاله مشکل شما هم حل خواهد شد. پیشنهاد میشود اگر چنین مشکلی در سایت خود دارید و راه حل های بالا کمکی به رفع خطاهای موجود در GTMetrix نکرد در قسمت نظرات میزفا مشکل خود را حتما مطرح کنید.
شما با رفع خطای اشاره شده میتوانید خطای Specify a character set early را هم رفع کنید. خطای دوم هم جز خطاهای Pagespeed گوگل میباشد.
پس اگر سوالی داشتید حتما در نظرات میزفا مطرح کنید. این جلسه از آموزش کار با GTmetrix هم به پایان رسید در جلسات بعد به رفع خطای Avoid bad requests میپردازیم. با ما همراه باشید.
7 پاسخ
سلام وقت شما بخیر
ممنون از سایتتون
من سایت خودم رو به رتبه A رسونده بودم ولی الان که وارد سایت GTmetrix میشم رتبه سایتم به F رسیده البته میدونم که اگر رتبم به A رسیده همیشه باقی نمیمونه و اگر عکسی اضافه کرده باشم یا هر مشکلی این رتبه رو جا به جا میکنه ولی مدل سایت GTmetrix تغییر کرده و دقیقا قسمت های YSlow و PageSpeed رو دیگه ندارم تا خطاهای به وجود اومده رو ببینم .
لطفا راهنمایی بفرمائید.
سلام
خیلی ممنون
ابزار GTmetrix تغییر کرده و گزارش های PageSpeed و Yslow حذف شدن و معیارهای جدید جای اونها رو گرفته.
تو مقاله آموزش GTmetrix جدید این موضوع رو بررسی کردیم که پیشنهاد میکنم مطالعهاش کنی.
موفق باشی
ممنون از پاسخگویی شما و آموزش های خوب سایتتون
خسته نباشید
من از سرور اباچی استفاده میکنم ولی وقتی کد رو در htaccess وارد میکنم اصلا درست که نمیشه هیچ کل سایت بهم میریزه
سلام الهام. صورت مسئله شما خیلی ناقص هست و نمیشه دقیق فهمید مشکل چیه.
یا با تنظیمات سرور شما هماهنگ نیست و یا اشتباه میزنید. با تیکت با پشتیبان هاست خودتون در تماس باشید.
ببینید شما گفته بودید در صورتی که ازوب سرور آپاچی استفاده میکنید این کد رو در اچ تی اکسس وارد کنید من ایینکارو انجام دادم اما کل سایتم به ارور برخورد کرد
سلام الهام. احتمالا تداخل داره و یا این کد با سرور شما سازگار نیست. به نظرم بهترین راه حل اینکه با پشتیبان هاستتون حرف بزنید و بگید که قصد دارید چه کار کنید. چون اونا میدونن تنظیمات سرور رو چطوری تنظیم کردن و بهتر راهنمایی میکنن. تنظیمات هر سرور هم طبیعتا فرق داره و باز بهترین گزینه خود پشتیبان هاست شما هست.
امیدوارم پاسخم برات مفید باشه.