آیا جاوا اسکریپت رتبه سایت را پایین می آورد؟
از آنجا که وب دائم در حال تغییر و تحول است، نیاز به وب سایت های پیشرفته تر با قابلیت های تعاملی بیشتر پیوسته در حال افزایش است. به همین دلیل است که بسیاری از توسعه دهندگان شروع به استفاده از چهارچوب هایی مانند React و Angular برای ساخت وب سایت های خود کرده اند. در این بین، یک سوال مهم پیش می آید: چگونه چنین سایت هایی را برای سئو (SEO) بهینه سازی کنیم؟
اما توسعه دهندگان و متخصصان سئو به دنبال پاسخ یک پرسش مهم دیگر هم هستند: آیا موتورهای جستجو مانند گوگل می توانند فرآیند خزیدن در خصوص کدهای جاوا اسکریپت را انجام دهند؟ در پاسخ باید گفت این سوال از ریشه اشتباه است. برای روشن کردن این موضوع، اگر چهارچوب های جاوا اسکریپت را با رندر سمت سرور استفاده می کنید، حتماً تا به حال این مشکل را حل کرده اید.
در این مقاله شما می توانید درباره انواع استفاده از چهارچوب های جاوا اسکریپت برای ارائه کد JS به کاربران و گوگل بات برای رندر در سمت کلاینت آشنا شوید.
سه فرآیند موتور جستجو
بطور خلاصه، بیشتر سیستم های بازیابی اطلاعات سه فرآیند اصلی دارند:
- Crawler یا خزنده
- Indexer یا ایندکس کننده
- Query Engine یا موتور کوئری
وقتی پای جاوا اسکریپت و سئو به میان می آید، دو فرآیند نخست در کانون توجه هستند. در سیستم گوگل، خزنده با نام گوگل بات و زیرساخت شاخص گذاری آن با نام کافئین شناخته می شود. این دو، عملکردی کاملاً متفاوت از یکدیگر دارند و خیلی مهم است برای جلوگیری از سر در گمی بیشتر، به خوبی با آنها آشنا شویم.
فرآیند خزیدن تماماً به اکتشاف مربوط می شود. هدف آن هم خیلی ساده است، پیدا کردن تمام نشانی های اینترنتی و خزیدن در بین آنها. در حالی که هدف ساده است، اما در مقابل سیستم رویکردی کاملاً پیچیده دارد. زیر فرآیندهای آن شامل seed sets (فهرست کردن نشانی های اینترنتی)، crawl queuing (صف بندی و زمان بندی خزش ها)، مشخص کردن نشانی های اینترنتی مهم و مانیتور کردن زمان واکنش سرور است. فرآیند خزیدن یک ماژول تجزیه دارد که به سورس کد HTML نگاه می کند و در نهایت هر لینکی که قابل واکشی شدن است استخراج می کند. تجزیه کننده صفحات را پردازش نمی کند، بلکه فقط سورس کد را تحلیل و تمام نشانی های اینترنتی پیدا شده در تگ های <a href> را استخراج می کند.
وقتی خزنده یک نشانی اینترنتی جدید می بیند یا با موردی برخورد می کند که نسبت به آخرین بازدید آن تغییر کرده است، آنها را به ایندکس کننده ارسال می کند. سپس، ایندکس کننده تلاش می کند تا نشانی اینترنتی را بررسی و محتوا و ارتباط آن را تحلیل کند. در اینجا نیز زیر فرآیندهای زیادی وجود دارد که به مواردی مانند طرح بندی صفحه، ارزیابی گراف لینک برای مشخص کردن رتبه صفحه و… نگاه می کنند. یکی دیگر از کارهایی که ایندکس کننده انجام می دهد، پردازش صفحات وب و اجرای جاوا اسکریپت است. در واقع، گوگل به تازگی با قرار دادن مجموعه ای شامل فایل ها و مدارک مختلف در سایت توسعه دهندگان خود نحوه کار سرویس پردازش وب (Web Rendering Service) را توضیح داده است. در اصل، WRS داخل ایندکس کننده ای است که جاوا اسکریپت را اجرا می کند. ویژگی واکشی و رندر (Fetch & Render) در کنسول جستجو به شما این امکان را می دهد تا نحوه عملکرد WRS گوگل در صفحه خود را ببینید. خزنده و ایندکس کننده با یکدیگر ارتباط نزدیکی دارند. خزنده هرچه پیدا می کند برای ایندکس کننده ارسال می کند و ایندکس کننده هم URL جدید را برای خزنده ارسال می کند. علاوه بر این، ایندکس کننده به خزنده در اولویت بندی URL کمک می کند.
گوگل بات یا کافئین؟
سر در گمی زمانی پیش می آید که افراد گوناگون، خواه سئوکارها باشند یا توسعه دهندگان یا حتی خود گوگلی ها، می گویند Googlebot (خزنده) اما در واقع منظور آنها Caffeine (ایندکس کننده) است. با این حال، این سر در گمی کاملاً قابل درک است. وقتی مدارک WRS منتشر شدند، سر در گمی کاربران بیشتر از پیش شد. خزنده هیچ چیزی را رندر نمی کند. در کنار آن، از یک تجزیه کننده پایه برای خارج کردن URL از سورس کد بهره می برد، اما جاوا اسکریپت را اجرا نمی کند. ولی ایندکس کننده این عمل را انجام می دهد.
بنابراین به نظر می رسد WRS بخشی از زیرساخت کافئین است. تا اینجا همه چیز درست به نظر می رسد، اما تضادی که در اسناد WRS وجود داشت، همچنان پابرجا است. به همین دلیل، اگر توسعه دهندگان این دو را با یکدیگر اشتباه بگیرند و فقط آن را گوگل بات بنامند، قابل بخشش است. این اتفاق همیشه و توسط هر کسی حتی با تجربه ترین و زبده ترین سئوکارهای این صنعت هم رخ می دهد. این مسئله خود یک مشکل است.
خزیدن، ایندکس کردن و رتبه بندی
وقتی توسعه دهندگان و سئوکارها سوال می کنند که آیا گوگل بات می تواند عمل خزیدن را در کدهای جاوا اسکریپت انجام دهد، تصور بر این است که بله، امکانپذیر است. زیرا گوگل واقعاً جاوا اسکریپت را رندر می کند، لینک های داخل آن را خارج و صفحات را رتبه بندی می کند. پس، آیا فرقی هم می کند که خزنده با جاوا اسکریپت کاری ندارد، بلکه ایندکس کننده این کار را انجام می دهد؟ زمانی که گوگل صفحات جاوا اسکریپتی را رتبه بندی می کند، واقعاً برای ما اهمیت دارد که چه فرآیندهایی وظیفه مدیریت را به عهده دارند؟ بله. البته! ما باید بدانیم.
به رغم پیچیدگی شگفت آور گوگل بات و کافئین، کاری که محتوای جاوا اسکریپت انجام می دهد آن است که کل فرآیند خزیدن و ایندکس کردن را به شدت ناکارآمد می کند. زمانی که محتوا و لینک ها را داخل جاوا اسکریپت قرار می دهیم، از گوگل می خواهیم همه صفحات را رندر کند. این همان کاری است که گوگل انجام می دهد. هر چند مدت زمان زیادی صرف اینکار می شود. همانطور که می دانیم، گوگل خیلی صبور نیست. مفهوم بودجه خزیدن یا crawl budget (تعداد صفحاتی که گوگل از طریق مکانیسم خزیدن در یک روز از سایت شما جمع آوری می کند) به ما می گوید گوگل بی وقفه در تلاش برای خزیدن در میان همه صفحات سایت ما نیست. در نتیجه هم باید کمی تلاش و اطمینان پیدا کنیم صفحاتی که می خواهیم خزیده و ایندکس شوند، به راحتی یافت و به درستی کانالیزه می شوند.
جاوا اسکریپت = ناکارآمدی
کاری که چهارچوب جاوا اسکریپت انجام می دهد تزریق یک لایه از پیچیدگی در این معادله است. فرآیندی که باید خیلی ساده باشد به یک معضل پیچیده تبدیل می شود. در سایت های جاوا اسکریپتی که تمام لینک های داخلی یا بیشتر آنها داخل کد متن HTML نیستند، خزنده در همان ابتدا تنها مجموعه محدودی از URL را پیدا می کند. سپس، منتظر می ماند تا ایندکس کننده این صفحات را رندر کند و URL جدید را بیرون بکشد. بعد از آن، خزنده به آنها نگاه و به ایندکس کننده ارسال می کند و این روند همینطور ادامه خواهد داشت. در این گونه سایت های جاوا اسکریپتی خزندگی و ایندکس کردن بسیار کُند و ناکارآمد می شود. این مسئله گویای یک نکته دیگر هم هست، ارزیابی گراف لینک های داخلی سایت باید با خارج کردن مداوم URL جدید از جاوا اسکریپت انجام شود. هر بار مجموعه جدیدی از صفحات از سوی ایندکس کننده از درون کدهای جاوا اسکریپت سایت استخراج می کند، ساختار داخلی سایت دو مرتبه ارزیابی می شود تا اهمیت نسبی تغییرات به خوبی محاسبه شود. این فرآیند باعث بروز مشکلات زیاد و ناکارآمدی بسیار می شود. زیرا ممکن است صفحات کلیدی که فاقد لینک داخلی ارزشمند هستند، به عنوان صفحات غیر مهم در نظر گرفته شوند. شاید هم صفحات غیر مهم به عنوان صفحات با ارزش شناخته شوند، زیرا لینک های ساده HTML به آنها اشاره می کنند برای دیدن شان نیازی به رندر کردن جاوا اسکریپت نیست.
به دلیل اینکه صفحات بر اساس اهمیتی که تصور می شود داشته باشند خزیده و رندر می شوند، می توانید ببینید گوگل زمان زیادی را صرف خزیدن و رندر صفحات اشتباه می کند و زمان بسیار کمی را برای صفحاتی که می خواهید رتبه بندی شوند صرف می کند.
سئو خوب یعنی کارآیی بالا
طی سال های گذشته یاد گرفتیم که داشتن سئو خوب یعنی ساده تر کردن زندگی موتورهای جستجو. وقتی کشف محتوای ما آسان تر می شود، وقتی ارزیابی محتوای ما ساده تر می شود، رتبه سایت مان در SERP بالاتر می رود. جاوا اسکریپت زندگی موتورهای جستجو را دشوارتر می کند. در واقع، گوگل برای اکتشاف، خلاصه کردن و ارزیابی محتوا کار سخت تری را در پیش دارد. گاهی نتیجه این کارها پایین آمدن رتبه سایت است.
بله، درست است که محتوای جاوا اسکریپت ایندکس و رتبه بندی می شود، اما اینکار با بی میلی انجام می شود. اگر واقعاً تصمیم دارید فرآیند آرشیو کردن سایت شما در ارتباط با جستجوی ارگانیک با موفقیت انجام شود، باید همه چیز را تا جایی که ممکن است ساده کنید. این یعنی ارائه محتوا و لینک ها به موتورهای جستجو در قالب یک HTML ساده تا خزیدن، ایندکس کردن و رتبه بندی صفحات وب تا جایی که ممکن است به شکل کارآمدی اجرا شوند.
پاسخ دقیق و صریح به پرسش «آیا گوگل فرآیند خزیدن را برای کدهای جاوا اسکریپت انجام می دهد؟» یک کلمه است: نه.
پاسخ پرسش «آیا گوگل جاوا اسکریپت را ایندکس می کند؟» بله است.
بنابراین پاسخ پرسش «آیا از جاوا اسکریپت استفاده کنیم؟» خیلی ساده است: بستگی دارد. اگر به سئو اهمیت می دهید، جاوا اسکریپت کمتر یعنی کارآیی بیشتر. کارآیی بیشتر یعنی رتبه بالاتر.
منابع
مقاله علمی و آموزشی «آیا جاوا اسکریپت رتبه سایت را پایین می آورد؟»، نتیجه ی تحقیق و پژوهش، گردآوری، ترجمه و نگارش هیئت تحریریه پورتال یو سی (شما می توانید) می باشد. در این راستا مقاله State of Digital ترجمه حمید نیک روش از مجله شبکه، به عنوان منبع اصلی مورد استفاده قرار گرفته است.