آشنایی با زبان جاوا اسکریپت

آشنایی با زبان جاوا اسکریپت

جاوا اسکریپت چیست؟

جاوا اسکریپت یکی از محبوب‌ترین زبانهای برنامه نویسی است که برای طراحی وبسایت استفاده می‌شود. جاوا اسکریپت در کنار HTML و  CSSیکی از سه فناوری اصلی به کار رفته در تولید محتوای اینترنتی است. از این برنامه برای تعاملی کردن صفحات وب و ارائه برنامه‌های آنلاین مانند بازی‌های آنلاین استفاده می‌شود. اکثر وبسایتها از جاوا استفاده می‌کنند و تمامی مرورگرهای مدرن از آن پشتیبانی می‌کنند بدون اینکه نیازی به پلاگین باشد. تمامی موتورهای جاوا اسکریپت نماینده یک اجرای متفاوت از جاوا اسکریپت هستند و همگی بر ویژگی‌های ECMAScript مبتنی هستند. برخی از موتورها به طور کامل از این ویژگی پشتیبانی نمی‌کنند و برخی از آنها علاوه بر ECMA از ویژگی‌های دیگری نیز پشتیبانی می‌کنند.

 

سایت خود را به سادگی طراحی نمایید.

 

چالش‌های جاوا اسکریپت و سئو

مهم‌ترین چالش در رابطه با جاوا اسکریپت این است که رفتار گوگل با جاوا اسکریپت متفاوت از رفتار دیگر موتورهای جستجو است. برای رسیدن به بالاترین سطح کارایی، بهترین کار این است که همه چیز را تا حد امکان ساده نگه داریم. به خاطر داشته باشید که دیگر موتورهای جستجو و خدمات وب نیز که به محتوای شما دسترسی دارند ممکن است از جاوا اسکریپت پشتیبانی نکنند. موتورهای جستجویی مانند بینگ در دستورالعملهای وب‌مسترخود بیان کرده‌اند که "فناوری مورد استفاده در وبسایت شما گاهی اوقات از دسترسی Bingbot به محتوای شما جلوگیری می‌کند. فایل‌های رسانه‌ای غنی (مانند فلش، جاوا اسکریپت و غیره) می‌تواند منجر به این شود که بینگ نتواند از طریق ناوبری crawl کند و محتوای به کار رفته در صفحه شما را مشاهده نکند. برای جلوگیری از بروز هر گونه مشکلی، باید از نسخه پایین‌تری استفاده کنید که همگی عناصر و لینکهای مورد استفاده در نسخه بالاتر را در خود داشته باشد. این کار به همه امکان می دهدتا بدون اینکه رسانه‌های غنی در آن فعال شده باشند به وبسایت شما دسترسی داشته و با آن به تعامل بپردازند".

  • هشدار رسانه‌های غنی: لینک‌ها را در فلش یا سیلورلایت دفن نکنید. همچنین محتوا را از این فایلها بیرون نگه دارید.
  • استفاده از نسخه پایین‌تر باعث می‌شود که صفحه شما بهتر یافت شود: از قرار دادن محتوا درون فلش یا جاوا اسکریپت خودداری کنید. این کار باعث می‌شود که crawl کننده‌ها نتوانند محتوا را پیدا کنند.

 بسیاری از موتورهای جستجوی دیگر نیز مانند گوگل به وب‌مسترها توصیه می‌کنند فایل‌های جاوا اسکریپت و CSS را بلاک نکنند.

آیا گوگل می‌تواند صفحات ایجاد شده توسط جاوا اسکریپت را رندر کند؟

بله. گوگل می‌تواند این کار را انجام دهد به شرط اینکه گوگل را از دسترسی به فایل‌های مهم جاوا اسکریپت یا CSS بلاک نکنید. گوگل نیز در دستورالعملهای خود به این نکته اشاره نموده است که اگر گوگل‌بات از crawl کردن فایلهای جاوا اسکریپت یا CSS بلاک نشده باشد، گوگل می‌تواند این فایلها را رندر نماید. اگر منابعی مانند جاوا اسکریپت یا CSS در فایلهای جداگانه بلاک شده باشند (مثلاً با robots.txt) به این منظور که گوگل‌بات نتواند آنها را بازیابی کند، سیستم‌های ایندکس سازی گوگل نمی‌توانند مانند یک کاربر عادی به سایت شما دسترسی داشته باشند. برای ایندکس شدن محتوای سایت، بهتر است که به گوگل‌بات اجازه دهید به جاوا اسکریپت و CSS دسترسی داشته باشند. این امر به ویژه برای نسخه‌های موبایل وبسایتها اهمیت بیشتری دارد چون منابع خارجی مانند CSS و جاوا اسکریپت به الگوریتم‌های گوگل کمک می‌کنند بهتر درک کنند که این صفحات برای کاربری موبایل بهینه سازی شده‌اند. همچنین اطمینان حاصل کنید که تمامی منابع مورد نیاز (شامل فایلهای جاوا اسکریپت، قالب‌ها، پاسخ‌های سرور، API های طرف سوم و غیره) توسط robot.xt بلاک نشده باشند. ابزار Fetch and Renderer منابع بلاک شده را به شما نشان می‌دهد. اگر منابع توسط robot.txt بلاک شده باشند و نتوان آنها را کنترل کرد، یا به صورت موقتی در دسترس نباشند، اطمینان حاصل کنید که کد client-side شما بدون مشکل متوقف شود. در حال حاضر، HTML تنها زبان مورد استفاده در محتوای وب نیست. به عنوان کارشناس سئو، باید به این نکته توجه داشته باشید که جاواسکریپت نیز زبانی معتبر برای این کاربردها است.

 

آشنایی با زبان جاوا اسکریپت

 

گوگل چگونه داده‌های متای ایجاد شده توسط جاوا اسکریپت را مدیریت می‌کند؟

شما می‌توانید با استفاده از جاوا اسکریپت، عنوان صفحه و دیگر داده‌های متا را تولید کنید. گوگل از متاتگ های عناوین، توضیحات و ربات‌ها، داده‌های ساختاری و دیگر داده‌های متا که با استفاده از جاوا اسکریپت ایجاد شده‌اند پشتیبانی می‌کند. وقتی از AMP استفاده می‌کنید، صفحه AMP HTML باید طبق نیاز ویژگی مورد نظر، ایستا باشد اما می‌توان صفحه مورد نظر را با استفاده از روش‌های جاوا اسکریپت یا PWA ایجاد کرد. به خاطر داشته باشید که از فایل نقشه سایت با تاریخ lastmod درست استفاده کنید تا تغییرات در وبسایت به خوبی مشخص شوند. برای چک کردن متا تگ‌های عنوان و توضیحی، متا تگ ربات و دیگر متا تگ‌ها از Inspect Element در گوگل کروم استفاده کنید. همچنین چک کنید که داده‌های ساختاری در صفحه رندر شده نیز در دسترس باشند.

لینک‌های ناوبری تولید شده توسط جاوا اسکریپت در گوگل

تا زمانی که گوگل بتواند لینکهای شما را به درستی رندر کند، می‌تواند هر گونه لینگی را دنبال نماید. اگر شما برای ایجاد یک عنصر در صفحه خود از جاوا اسکریپت استفاده می کنید، می‌توانید یک nofollow را به آن اضافه کنید یا نکنید. اما از طرحهای AJAX-Crawling در سایتهای خود استفاده نکنید. اگر هم سایتهای قدیمی شما از این طرحها استفاده می‌کنند، آنها را تغییر دهید. در هنگام تغییر نیز تگ‌های "meta fragment" را حذف کنید.
آیا یک لینک جاوا اسکریپت مانند هر لینک دیگری توسط PageRank بررسی می‌شود؟ بله. فرقی نمی‌کند که لینک چگونه وارد صفحه شده است. گوگل تمام لینکها را مانند هم بررسی می‌کند. اما به منظور اینکه سایت شما برای تمام کاربران در دسترس باشد، از روش‌های "feature detection& progressive enhancement" استفاده کنید. از ریدایرکت کردن به یک صفحه "مرورگر پشتیبانی نمی‌شود" جلوگیری کنید. ویژگی‌هایی که در حال حاضر توسط گوگل بات پشتیبانی نمی‌شوند شامل service workers, the Fetch API, Promises, requestAnimationFrame می‌شوند.

ایندکس کردن موبایل: نسخه دسکتاپ و موبایل سایت شما باید یکسان باشند

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

 

به سادگی سایت خود را تحویل بگیرید.

 

هشدار: برخی سایتهای مبتنی بر جاوا اسکریپت ممکن است کند و ناکارآمد باشند

گاهی اوقات درهنگام رندر کردن ممکن است کارها به خوبی پیش نرود و اثرمنفی بر نتایج جستجوی سایت شما خواهد گذاشت. در سایتهای جاوا اسکریپت که در آنها بیشتر یا تمام لینکها بخشی از سورس کد HTML نیستند، مجموعه محدودی از URl ها در مرحله اول crawl می‌شوند. سپس خزنده باید منتظر بماند تا ایندکس کننده این صفحات را رندر کند و URLهای جدید را استخراج کند. سپس خزنده به این URL ها نگاه می‌کند و به ایندکس کننده می‌فرستد. و این فرایند همچنان ادامه می یباد. به همین دلیل است که در سایتهای نوشته شده با جاوا اسکریپت، فرایند crawl و ایندکسی تواند کند و ناکارآمد شود. بنابراین سعی کنید تعداد منابع embedded را کاهش دهید به ویژه تعداد فایل‌های جاوا اسکریپت و پاسخ‌های سرور مورد نیاز برای رندر کردن صفحه. تعداد زیاد URLها می‌تواند منجر به timeoutشود و رندر بدوندسترسیبه این منابع انجام می‌شود (مثلاً برخی از فایلهای جاوا اسکریپت بارگیری نمی‌شوند). از روش‌های کش کردن HTTP معقول استفاده کنید. اگر سرور شما نتواند حجم تقاضا برای crawl را میریدت کند، ممکن است بر ظرفیت رندر کردن گوگلتاثیر بگذارد. اگر می‌خواهید صفحات شما به طور کامل توسط گوگل رندر شوند، اطمینان حاصل کنید که سرورهای شما می توانندتقاضا برای crawl را به خوبی مدیریت کنند. گاهی اوقات جاوا اسکریپت ممکن است آنقدر پیچیده باشد که گوگل نتواند آن را اجرا کند. در این صورت گوگلنمی تواند صفحه را به طور کامل رندر کند. گاهی اوقات جاوا اسکریپت محتوا را به جای فازودن به صفحه ، آن را حذف می‌کند و این امر منجر به این می‌شود که گوگل نتواند محتوا را ایندکس کند.