این مطلب یکی از مقالات پرونده ویژه «سئو؛ پرواز با موتور جست و جو» شماره 200 ماهنامه شبکه است. علاقهمندان میتوانند کل این پرونده ویژه را از روی سایت شبکه دانلود کنند.
آیا موتورهای جستوجو مانند گوگل میتوانند فرآیند خزیدن درخصوص کدهای جاوا اسکریپت را انجام دهند؟ در پاسخ باید گفت این سؤال از ریشه غلط است. برای روشن کردن این موضوع، اگر چهارچوبهای جاوا اسکریپت را با رندر سمت سرور استفاده میکنید، حتماً تا به حال این مشکل را حل کردهاید. این مقاله درباره انواع استفاده چهارچوبهای جاوا اسکریپت برای ارائه کد JS به کاربران و گوگلبات برای رندر در سمت کلاینت بحث میکند. جالب اینکه این چهارچوبها همیشه باعث ایجاد مشکل میشوند. قبل از اینکه به چرایی این مسئله بپردازیم، مهم آن است که اول از همه با نحوه کار موتورهای جستوجو آشنا شویم.
سه فرآیند موتور جستوجو
به طور خلاصه، بیشتر سیستمهای بازیابی اطلاعات سه فرآیند اصلی دارند:
1- Crawler یا خزنده
2- Indexer یا ایندکسکننده
3- 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 ساده تا خزیدن، ایندکس کردن و رتبهبندی صفحات وب تا جایی که ممکن است بهشکل کارآمدی اجرا شوند.
پاسخ دقیق و صریح به پرسش «آیا گوگل فرآیند خزیدن را برای کدهای جاوا اسکریپت انجام میدهد؟» یک کلمه است: «نه».
پاسخ پرسش «آیا گوگل جاوا اسکریپت را ایندکس میکند؟»، «بله» است.
بنابراین پاسخ پرسش «آیا باید از جاوا اسکریپت استفاده کنم؟» خیلی کوتاه است، «بستگی دارد».
اگر به سئو اهمیت میدهد، جاوا اسکریپت کمتر یعنی کارایی بیشتر. کارایی بیشتر یعنی رتبه بالاتر. حالا اینکه تأکید شما بر کدام قسمت باشد، ادامه راهتان را مشخص میکند. موفق باشید!
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟