محدودیت گوگل مپ در ایران؛ علت خطا و راهحل
- بلاگمقالات آموزشی
- بروزرسانی شده در

این نوشته اولین بار در سال ۱۳۹۷ منتشر شد؛ زمانی که گوگل مپ روی بعضی از سایتهای ایرانی از دسترس خارج شده بود. اون روزها خیلی از مدیرهای سایت فکر میکردن گوگل همه دامنههای IR رو یکجا مسدود کرده. اطلاعات رسمی فعلی تصویر دقیقتری به ما میده: محدودیتهای Google Maps Platform به منطقه ایران مربوط میشن و گوگل پسوند IR رو تنها معیار این محدودیت معرفی نکرده.
اینجا اول تفاوت تحریم، پوشش نقشه و خطای فنی رو خیلی ساده توضیح میدیم. بعد یاد میگیرید خطای واقعی سایتتون رو پیدا کنید. در آخر هم اگه نمیخواید درگیر حساب صورتحساب گوگل بشید، با یک افزونه رایگان وردپرس و نقشههای OpenStreetMap یک جایگزین کاربردی میسازید.
آنچه در این مقاله میخوانید
ماجرای مسدودشدن گوگل مپ برای دامنههای IR چی بود؟
گزارش اولیه این مقاله درباره سایتهایی بود که روی دامنه IR با خطای ناسازگاری با قوانین گوگل مپ روبهرو شده بودن. قالبهایی مثل Listify و RealHomes هم برای نمایش موقعیتها از سرویس نقشه کمک میگرفتن و ممکن بود این مشکل روی اونها اثر بذاره. بااینحال، دیدن چنین خطایی به این معنی نیست که هر دامنه IR همیشه و در هر شرایطی مسدوده.
طبق صفحه رسمی مناطق ممنوع Google Maps Platform، ایران جزو قلمروهایی هست که این سرویس برای اونها محدودیت داره. این سند محدودیت رو به قلمرو ایران ربط میده، نه فقط به پسوند دامنه. پس بهتره خبر قدیمی «مسدودشدن دامنههای IR» رو گزارشی مربوط به همون دوره بدونیم، نه یک قانون فنی قطعی برای همه سایتها.
آیا گوگل مپ هنوز در ایران مسدوده؟
برای جوابدادن به این سؤال باید سه موضوع جدا رو با هم قاطی نکنیم: محدودیت قراردادی سرویس، وجود اطلاعات ایران روی نقشه و کارکرد فنی نقشه داخل یک سایت. ممکنه خیابونها و مسیرهای ایران روی نقشه دیده بشن، ولی دسترسی یک پروژه به سرویسهای پولی یا سرویسهایی که به صورتحساب نیاز دارن محدود باشه.
جدول رسمی پوشش Google Maps Platform هنوز بعضی از قابلیتها مثل کاشیهای نقشه، مسیریابی و اطلاعات جغرافیایی ایران رو فهرست میکنه. پس «وجود اطلاعات ایران روی نقشه» با «اجازه استفاده از API در یک پروژه» یکی نیست.
API راهیه که یک سایت یا برنامه از طریق اون با سرویس دیگهای ارتباط برقرار میکنه. مثلاً قالب سایتتون مختصات یک ملک رو برای گوگل میفرسته و گوگل نقشه همون محل رو برمیگردونه. اگه این ارتباط به هر دلیلی رد بشه، معمولاً بهجای نقشه یک پیام خطا میبینید.
چرا نقشه گوگل در سایت نمایش داده نمیشه؟
هر خطای گوگل مپ به تحریم مربوط نیست. گاهی یک تنظیم اشتباه دقیقاً نتیجه مشابهی میسازه. قبل از اینکه قالب رو عوض کنید یا سراغ خرید سرویس تازهای برید، این موارد رو بررسی کنید:
- مطمئن بشید کلید API واردشده در قالب یا افزونه اشتباه، حذفشده یا غیرفعال نیست.
- بررسی کنید سرویس لازم، مثل Maps JavaScript API، داخل پروژه گوگل فعال باشه.
- دامنه سایتتون باید در محدودیت HTTP referrer کلید ثبت شده باشه. این تنظیم مشخص میکنه کدوم سایتها اجازه استفاده از کلید رو دارن.
- حساب صورتحساب پروژه باید فعال باشه و سهمیه مصرف پروژه هم تموم نشده باشه.
- قالب یا افزونه قدیمی نباید از روش احراز هویت منسوخشده استفاده کنه.
گوگل روش قدیمی Client ID رو منسوخ کرده و برای پروژههای جدید API Key رو پیشنهاد میده. اگه از یک قالب قدیمی استفاده میکنید، بهتره سازگاری نسخه فعلی اون با روش جدید رو در مستندات سازنده بررسی کنید. وضعیت دقیق Listify، RealHomes یا هر محصول دیگه هم به نسخه نصبشده و تنظیمات سایتتون بستگی داره. بدون بررسی همون نسخه نمیشه با اطمینان گفت مشکل از تحریمه.
چطور خطای گوگل مپ رو پیدا کنیم؟
اول صفحهای رو باز کنید که نقشه خراب داخل اون قرار داره. بعد کلید F12 رو بزنید و وارد بخش Console بشید. Console بخشی از ابزارهای مرورگره که پیامهای فنی صفحه رو نشون میده. دنبال عبارتی مثل Google Maps JavaScript API error بگردید و نام دقیق خطا رو یادداشت کنید.
حالا نام خطا رو در صفحه رسمی خطاهای Maps JavaScript API پیدا کنید. مثلاً خطای مربوط به کلید با خطای صورتحساب یا دامنه مجاز فرق داره. همین بررسی ساده جلوی عوضکردن بیدلیل قالب، افزونه یا دامنه سایتتون رو میگیره.
اگه خطا به محدودیت منطقهای یا ناتوانی در ساخت یک حساب صورتحساب معتبر مربوطه، سراغ اطلاعات پرداخت غیرواقعی یا روشهای دورزدن قوانین سرویس نرید. انتخاب یک سرویس نقشه آزاد مطمئنتره و احتمال قطع ناگهانی نقشه سایتتون رو کمتر میکنه.
جایگزین رایگان گوگل مپ برای وردپرس
OpenStreetMap یک پروژه نقشه آزاد و مشارکتیه. برای نشوندادن نقشههای اون روی سایت میشه از Leaflet کمک گرفت. Leaflet یک کتابخانه سبک برای نمایش نقشه تعاملی داخل صفحه وبه؛ یعنی کاربر میتونه نقشه رو جابهجا کنه یا روی اون زوم کنه.
خود وردپرس در ویرایشگر پیشفرضش بلوک اختصاصی نقشه نداره. بدون افزونه میتونید لینک نقشه یا کد جاسازی بعضی سرویسها رو داخل بلوک HTML سفارشی بذارید، ولی ابزار داخلی کاملی برای ساخت نشانگر و تنظیم بزرگنمایی ندارید. فهرست قابلیتهای داخلی رو هم میتونید در صفحه رسمی بلوکهای وردپرس ببینید.
برای این آموزش سراغ افزونه رایگان Leaflet Map میریم. این افزونه در مخزن رسمی وردپرس قرار داره و برای ساخت نقشه از کد کوتاه کمک میگیره. کد کوتاه یک تکه متن داخل کروشهست که وردپرس موقع نمایش صفحه اون رو به نقشه تبدیل میکنه.
ساخت نقشه با افزونه رایگان Leaflet Map
۱. افزونه Leaflet Map رو نصب کنید
از پیشخوان وردپرس به مسیر «افزونهها ← افزودن افزونه تازه» برید. عبارت Leaflet Map رو جستوجو کنید و افزونهای رو انتخاب کنید که اسمش دقیقاً Leaflet Map هست. بعد روی «هماکنون نصب نمایید» و سپس «فعال نمایید» بزنید. ممکنه متن این دکمهها با توجه به نسخه ترجمه فارسی وردپرس کمی فرق داشته باشه.

مختصات محل رو آماده کنید
برای مشخصکردن محل به عرض و طول جغرافیایی نیاز دارید. این دو عدد جای دقیق یک نقطه روی زمین رو مشخص میکنن. مختصات رو از یک منبع معتبر بردارید و قبل از انتشار، جای نشانگر رو روی نقشه بررسی کنید. اعداد نمونه پایین فقط مرکز تقریبی تهران رو نشون میدن؛ پس برای نشانی کسبوکارتون از اونها استفاده نکنید.

کد کوتاه نقشه رو به نوشته اضافه کنید
نوشته یا برگه موردنظرتون رو باز کنید. روی علامت مثبت بزنید و بلوک «کد کوتاه» رو اضافه کنید. حالا کد پایین رو داخل اون بذارید و مختصات نمونه رو با مختصات واقعی محل خودتون عوض کنید:

[leaflet-map lat=35.6892 lng=51.3890 zoom=13]
[leaflet-marker lat=35.6892 lng=51.3890]موقعیت کسبوکار[/leaflet-marker]خط اول نقشه و میزان بزرگنمایی اون رو میسازه. خط دوم هم نشانگر محل رو اضافه میکنه. متن «موقعیت کسبوکار» داخل پنجره نشانگر دیده میشه و میتونید اون رو با نام محل یا یک توضیح کوتاه عوض کنید. البته میتونید از قسمت Map Helper افزونه هم کمک بگیرید.

۴. پیشنمایش نقشه رو بررسی کنید
قبل از انتشار روی «پیشنمایش» بزنید. جای نشانگر، سطح بزرگنمایی و ظاهر نقشه در موبایل رو بررسی کنید. اگه نشانگر جای اشتباهی قرار گرفته، اعداد lat و lng رو اصلاح کنید. lat همون عرض جغرافیایی و lng همون طول جغرافیاییه.
بهتره صفحه رو در یک پنجره ناشناس مرورگر هم باز کنید تا مطمئن بشید نقشه فقط برای مدیر سایت دیده نمیشه. اگه از افزونه کش استفاده میکنید، بعد از تغییر کد کوتاه، کش همون صفحه رو هم پاک کنید.

آیا نقشه باعث بهترشدن سئو میشه؟
داشتن نقشه بهتنهایی بهترشدن رتبه سایتتون رو تضمین نمیکنه. نقشه میتونه پیداکردن نشانی رو برای کاربر راحتتر کنه و تجربه بهتری بسازه، ولی نتیجه سئو به کیفیت محتوا، سرعت صفحه، درستبودن اطلاعات کسبوکار و عوامل زیاد دیگهای هم بستگی داره.
نقشهای رو انتخاب کنید که سریع باز بشه، روی موبایل درست دیده بشه و اطلاعات اشتباه نشون نده. اگه نقشه فایدهای برای کاربر نداره، اضافهکردنش فقط صفحه رو سنگینتر میکنه.
سؤالات متداول
آیا همه دامنههای IR در گوگل مپ مسدود هستن؟
نه. سند رسمی گوگل محدودیت رو به قلمرو ایران ربط میده و پسوند IR رو تنها معیار معرفی نمیکنه. برای پیداکردن علت خرابی نقشه باید پیام خطای همون سایت رو بررسی کنید.
آیا هر خطای گوگل مپ به تحریم مربوطه؟
نه. کلید API اشتباه، فعالنبودن سرویس لازم، تنظیم نادرست دامنه مجاز، مشکل صورتحساب یا تمومشدن سهمیه هم میتونه نقشه رو از کار بندازه.
آیا خود وردپرس بلوک نقشه داره؟
ویرایشگر پیشفرض وردپرس بلوک اختصاصی و کاملی برای ساخت نقشه تعاملی نداره. برای این کار میتونید از افزونه رایگان Leaflet Map یا کد جاسازی یک سرویس معتبر کمک بگیرید.
جایگزین رایگان گوگل مپ برای وردپرس چیه؟
OpenStreetMap همراه با Leaflet یکی از گزینههای رایجه. افزونه رایگان Leaflet Map هم کمک میکنه بدون ساخت پروژه Google Maps Platform، نقشه و نشانگر رو داخل نوشته یا برگه وردپرس بذارید.

ریل هوم روی هاستی با دامنه آی.آر نصب کردم و گوگل مپ کار نمی کنه. هیچ راهی وجود نداره که بشه گوگل مپ رو روی دامنه IR واسه ریل هوم راه انداخت؟ و یا نقشه ی دیگه ای رو توی این قالب جایگزینش کرد؟
سلام خیر متاسفانه. تحریم شده و راه دیگری نیست.
گردنکلفتان ایران اگه عرضه داشته باشند بساط گوگل رو از ایران جمع میکنند تا بجای اطوار ریختن اونها، فرصت کار برای خود ایرانیها ایجاد بشه. این همه موتور جستجو و ایمیل سرویس و ویدئوشیرینگ و شبکه اجتماعی تو دنیا هست که خود ایرانیها میتونن مخصوص خودشون رو هم بسازند (همونجور که چینیها ساختند) تا امثال گوگل بیان دم تکون بدن.
به احتمال خیلی زیاد از اینترنت کشور هست
دو روزه اینترنت کشور دچار مشکل هست هر ده دقیقه یک بار ریست میشه طوری که احساس نمیکنه مشترک که اختلالی هست . یا دران یه چیزایی رو تغییر میدن یا نمیدونم چیکار میکنن
هر دو سه ساعت سی چهل دقیقه سایت های فیلتر شده باز میشن بعد باز بسته میشن
متاسفانه هنوز دقیقا مشخص نیست!
سلام ای بابا پس چیکار کنیم
سلام
گوگل داره یکسری تحریمهای جدید رو اعمال میکنه.
برای مثال جدیدا سایتهایی که هاستشون داخل ایران هست، با افزونه یوست از طریق api نمیتونند به وبمستر تولز متصل بشن.
ترامپ داره کار خودشو میکنه.
مثل اینکه به گوگل گفته باید همه سرویسهاتو به ایران ببندی. حتی دسترسی به جیمیل هم قطع خواهد شد.