رفع مشکل نمایش نیم‌فاصله در گوگل


این نوشته از اعتبار ساقط شده! (به این نوشته مراجعه کنید)

فقط در صورتی که هنوز کارکتر نیم‌فاصله‌ی شما در گوگل نمایش داده نمی‌شود از این افزونه استفاده کنید


کیبورد غیر استاندارد فارسی نسخه‌ای ویرایش‌شده از کیبورد QWERTY عربی بوده و در ماشین‌های تایپ (و نه در کیبوردهای نوین) کاربرد داشته. متأسفانه این کیبورد به ویندوز راه یافت و در نسخه‌های قبلی ویندوز (تا قبل از ویندوز  ۸) این کیبورد به عنوان کیبورد فارسی استفاده می‌شده. یکی از مهم‌ترین مشکلات این کیبورد این بوده که در عربی مفهومی به اسم نیم‌فاصله وجود نداره در صورتی که در زبان فارسی ما از نیم‌فاصله زیاد استفاده می‌کنیم و همان‌طور که از اسم‌ش پیداست قراره جایگزین فاصله در بعضی از ترکیب‌ها باشه. مثلا در جمله‌ی قبل ترکیب و ها یک واژه به حساب می‌شن و نباید آن‌ها را جدا نوشت (و سرهم نویسی هم منسوخ شده) و در این ترکیب‌ها از نیم‌فاصله استفاده می‌شه.

اگر یادتون باشه در این نوشته توضیح دادم که گوگل کارکتر نیم‌فاصله رو در نتایج جست‌وجو حذف می‌کنه و این که در یکی از بخش‌های پشتیبانی گوگل از گوگل درخواست کردم که کارکتر نیم‌فاصله رو جزو کارکترهایی که نمایش می‌دن اضافه کنند ولی این اتفاق نیافتاد و من به این نتیجه رسیدم که خودم باید دست به کار بشم و برای حل مشکل کاری انجام بدم.

اگر جدیدا توی گوگل دو برنامه‌نویس یا site:2barnamenevis.com رو سرچ کرده باشید (عمرا!) متوجه می‌شید که نوشته‌های جدیدتر و یک‌سری از نوشته‌های قدیمی‌تر ما مشکل نیم‌فاصله رو ندارند (در واقع جای نیم‌فاصله، فاصله گزاشتیم در نسخه‌ی جدید افزونه که در انتشار آن در مخازن وردپرس هستیم، نیم‌فاصله در گوگل به شکل صحیح نشان داده می‌شود) ولی توی نوشته‌ی اصلی همون نیم‌فاصله هستش.

برای این کار من یک افزونه برای وردپرس نوشتم که اگر user-agent بازدیدکننده‌ی سایت، user-agent خزنده‌ی گوگل بود، توی عنوان صفحه، دیدگاه‌ها، توضیحات دسته‌ها، اطلاعات سایت و اسم سایت اگر کارکتر نیم‌فاصله بود، به‌جای اون فاصله بزاره. اول آموزش نصب و استفاده از افزونه رو می‌گم و بعد بخش علمی ماجرا برای افرادی که دوست دارند بیش‌تر بدونن. برای استفاده از افزونه باید:

  1. فایل افزونه رو دانلود کنید (حجم: ۲ کیلوبایت)
  2. افزونه رو فعال کنید.
  3. اگر از افزونه‌ی کش استفاده می‌کنید باید توی تنظیمات اون user-agentهای گوگل رو جدا کنید. (لازم نیست همه‌ی user-agentها رو بنویسید. در ادامه توضیح می‌دیم!)

user-agentهای گوگل اون‌هایی هستند که این‌جا گفته و توی افزونه ما به همه‌ی اون‌ها حساسیم (یعنی اگر user-agent یکی از اون‌ها بود نیم‌فاصله می‌شه فاصله) ولی افزونه‌های کش معمولا یک واژه‌ی کلیدی می‌خوان و اگر اون user-agent اون واژه‌ی کلیدی رو شامل می‌شد دیگه سایت رو کش‌شده (به اون user-agent) نشون نمی‌دن. اگر از افزونه‌ی Hyper cache E استفاده می‌کنید توی صفحه‌ی تنظیمات افزونه Agents to reject رو پیدا کنید و توی اون کادر متنی روبه‌روش این مقادیر رو وارد کنید:

Googlebot
(compatible; Mediapartners-Google/2.1; +http://www.google.com/bot.html)
Mediapartners-Google
(+http://www.google.com/adsbot.html)

و اگر هر افزونه‌ی کش دیگه‌ای دارید باید خودتون ببینید چجوری user-agentها رو جدا کنید. پیشنهاد من اینه که توی گوگل اسم افزونه و user agent exclude رو جست‌وجو کنید؛ حتما به جواب‌تون می‌رسید و یا می‌تونید به ما اطلاع بدید تا ما این نوشته رو آپدیت کنیم. در هر صورت user-agentهایی که باید جدا بشن همین‌هایی هستند که گفتم. و کار تمام است. حالا نوشته‌های جدیدتر شما (و به تدریج نوشته‌های قدیمی‌تر) دیگر مشکل نیم‌فاصله نخواهند داشت.


و حالا بحث علمی (که نمی‌شه دقیقا بهش گفت علمی!) user-agent: هر مرورگری یک‌سری از اطلاعات خودش رو به سایتی که ازش بازدید می‌کنه می‌ده تا اون سایت بتونه تشخیص بده که کاربر داره با چه مرورگری سایت رو نگاه می‌کنه. مثلا برای تشخیص این که بازدیدکننده داره از گوشی موبایل، تبلت یا کامپیوتر سایت رو نگاه می‌کنه از user-agent استفاده می‌شه. برای این‌که بفهمید که user-agentتون چیه می‌تونید به سایت whatsmyuseragent مراجعه کنید. مثلا user-agent فعلی من اینه:

 Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17 AlexaToolbar/alxg-3.1

و این user-agent نشون می‌ده که مثلا من از ویندوز ۶.۲ یا همون ویندوز ۸ استفاده می‌کنم و موتور ساخت صفحات وب من (توضیحات بیش‌تر رو در این‌جا بخونید) webkit هستش و یا

AlexaToolbar/alxg-3.1

می‌گه که من دارم از تولبار alexa استفاده می‌کنم. و خوب معلومه Chrome/24 یعنی مرورگر من گوگل کرومه. اصولا هر چیزی که توی وب هست یک user-agent داره. حالا ما توی این افزونه از user-agentهای خزنده‌های گوگل استفاده کردیم. در واقع user-agentها رو چک می‌کنیم و اگر خزنده‌ی گوگل بود، به‌جای متن نیم‌فاصله‌دار، متن فاصله‌دار به اون نشون می‌دیم. مثلا توی مرورگر کروم می‌تونید user-agent خودتون رو تغییر بدید و مثلا بکنیدش

Googlebot-Image(Googlebot)

و دو برنامه‌نویس رو ریفرش کنید اون‌وقت همه‌ی نیم‌فاصله‌ها می‌شن فاصله!


این افزونه چجوری کار می‌کنه وردپرس در افزونه‌هاش قابلیتی داره یه اسم filters که این اختیار رو به شما می‌ده که محتوایی رو فیلتر کنید. برای اطلاعات بیش‌تر به این‌جا مراجعه کنید. حالا این افزونه یک فیلتر اضافه می‌کنه و اگر user-agent بازدیدکننده user-agent گوگل بود اون‌وقت توی نوشته همه‌ی نیم‌فاصله‌ها رو با فاصله جایگزین می‌کنه. واقعا کار ساده‌ایه. و این رو هم بگم که این افزونه حدود یک ماه و نیمه که آماده‌ست ولی مشکل ما کش گوگل بوده و همین‌طور مشکلاتی که قبلا داشته. پی‌نوشت: یک‌سری از جست‌وجوهام توی گوگل به سایت‌هایی ختم شدند که نیم‌فاصله داشتند (یعنی گوگل نیم‌فاصله‌شون رو نشون می‌داد) ولی وقتی نوشته‌های یک پزشک رو چک کردم دیدم گوگل نیم‌فاصله‌های اون رو هم حذف می‌کنه و خوب این دلیلی شد که افزونه رو عمومی کنیم. من که ترجیح می‌دم گوگل نیم‌فاصله رو نشون بده تا این‌که این افزونه استفاده بشه ولی فعلا شرایط (حداقل برای ما) حکم می‌کنه که از همین افزونه استفاده کنیم چون گوگل که کاری نکرده. در هر صورت اگر مشکلی در استفاده از این افزونه دیدید حتما در این نوشته گزارش کنید.

6 دیدگاه در “رفع مشکل نمایش نیم‌فاصله در گوگل

  1. سلام،
    واقعاً دستتون درد نکنه. خیلی لطف کردید. امیدوارم همه‌ی وبلاگای وردپرسی فارسی ازش استفاده کنند.
    موفق باشید.

    1. خواهش می‌کنم کاری نکردم ولی فکر کنم اول باید فرهنگ استفاده از نیم‌فاصله جا بیوفته.
      انشاالله در آینده در مورد نیم‌فاصله نوشته‌ای می‌نویسم

  2. سلام. مشکل نیم فاصله در آپدیت جدید کروم؛
    به تازگی متوجه شدم تو آپدیت جدید کروم v49~50 دیگه نیم فاصله کار نمیکنه، یعنی وقتی کنترل و شیفت و کلید 2 رو فشار میدم نیم فاصله عمل نمیکنه، ولی تو فایرفاکس درسته، میخواستم ببینم راه حلی برای این مشکل هست؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *