گوگل برای نمایش یک صفحه در نتایج جستجو، نیاز به انجام کارهایی دارد که خزش یکی از آنها است.
خزش یا کراول به فرآیندی گفته می شود که در آن، برنامه ای به نام Googlebot تلاش می کند تا آدرس های جدید را کشف و صفحات بروزرسانی شده را مورد بازبینی قرار دهد. Googlebot بر روی سرورهای گوگل اجرا می شود و مدیریت عواملی چون خطاهای شبکه، تغییر مسیرها و مشکلات کوچکی که هنگام خزش در وب با آنها ممکن است مواجه شود را بر عهده دارد.
خزش چیست؟
هنگام خزش، Googlebot درخواستی را به سرور میزبان محتوای صفحه ارسال کرده و سپس به پاسخ دریافت شده رسیدگی میکند. Googlebot ممکن است بر اساس کد وضعیتی که سرور بر می گرداند، به دنبال تغییر مسیرها برود، به وضعیت خطاها رسیدگی کند و یا محتوای صفحه را برای سیستم ایندکس ارسال نماید.
اما این همه ماجرا نیست زیرا صفحات وب فقط از HTML خالص تشکیل نشده اند و منابع دیگری نیز در شکل گیری آنها نقش دارند. حال سوال اساسی که ممکن است مطرح شود اینجاست، این منابع چه تأثیری بر روی بودجه خزش دارند؟ آیا برای گوگل قابل ذخیرهسازی (Cache) هستند؟ و آیا تفاوتی میان URLهایی که قبلاً خزیده نشدهاند و آنهایی که از پیش ایندکس شدهاند وجود دارد؟
نگاهی به Googlebot و نحوه خزش منابع صفحه
مدت هاست که فناوری های تحت وب پیشرفت های قابل توجهی داشته اند و دیگر مانند گذشته از مکانیسم های ساده برای نمایش محتوا استفاده نمی کنند. وبسایتها اکنون برای ارائه یک تجربه ناب و ایده ال، پا را از آنچه که HTML به تنهایی انجام می دهد، فراتر گذاشته اند و ترکیبی از تکنولوژی های مختلف مانند JavaScript و CSS را به کار گرفته اند.
قبل از اینکه سراغ کراولر برویم، لازم است بدانید که وقتی مرورگر به صفحات وب دسترسی پیدا میکند، ابتدا دادههای اولیه لازم (HTML) را برای ساخت صفحه دانلود میکند. این داده ها که تصاویر و ویدیوها نیز شامل میشوند، ممکن است به منابعی مانند JavaScript و CSS هم اشاره کنند که در نهایت باعث نمایش یک صفحه کامل به کاربر می شود.
- کراولر گوگل هم دقیقا همین کار را انجام میدهد، اما با کمی تفاوت:
- کراولر Googlebot داده اولیه را از URL اصلی (HTML صفحه) دانلود میکند.
- کراولر Googlebot داده استخراج شده را به سرویس رندرینگ وب (WRS) ارسال میکند.
- سرویس رندرینگ وب WRS با استفاده از Googlebot منابعی که در داده اولیه ارجاع داده شدهاند را دانلود میکند.
- سرویس رندرینگ وب WRS صفحه را با استفاده از تمام منابع دانلود شده همانطور که مرورگر کاربر انجام میدهد، میسازد.
در قسمت قبل، زمان بین هر مرحله ممکن است به دلیل برخی محدودیت ها در سروری که منابع را میزبانی میکند، به طور قابلتوجهی بیشتر باشد. و درست اینجاست که بحث بودجه خزش به میان می آید.
مدیریت منابع و بودجه خزیدن
بودجه لازم برای خزش منابعی که جهت رندر یک صفحه نیاز هستند، از بودجه خزش میزبانی که آن منابع را میزبانی میکند، مصرف میشود. اما برای کاهش در مصرف منابع یاد شده، سرویس رندرینگ وب (WRS) سعی میکند تمام منابع ارجاعی در صفحات رندر شده (مانند JavaScript و CSS) را در کش خود ذخیره کند.
زمان نگهداری منابع در کش WRS حدودا 30 روز بوده و تحت تأثیر دستورالعملهای کش HTTP نیست. یک مکانیسم موثر که به حفظ بودجه خزش hostname سایت برای سایر وظایف خود کمک میکند.
از آنجاییکه مدیریت منابع خزش میتواند بر روی بودجه خزش سایت تأثیر بگذارد، این توصیه ها را در نظر بگیرید:
استفاده از منابع کمتر: سعی کنید تا حد امکان از منابع کمتری در صفحات استفاده کنید تا تجربه خوبی برای کاربران فراهم شود. هرچقدر که برای رندر یک صفحه، منابع کمتری نیاز باشد، بودجه خزش کمتری هم برای آن مصرف خواهد شد.
میزبانی منابع در فضایی متفاوت از سایت اصلی: به عنوان مثال میتوانید از یک CDN استفاده کرده و یا منابع را بر روی یک زیردامنه جداگانه میزبانی کنید. این کار باعث میشود تا چالش های مربوط به بودجه خزش به یک میزبان دیکر منتقل شده و آنجا مدیریت شود.
استفاده از پارامترهای تغییر کش (Cache-Busting): وقتی URLهای منابع تغییر می کنند، گوگل ممکن است نیاز داشته باشد تا منابع فوق را دوباره خزش کند. درچنین شرایطی حتی اگر محتوای آنها تغییری هم نکرده باشد، طبیعتاً بودجه خزش بیشتری مصرف خواهد شد.
نکات یاد شده برای منابعی مانند تصاویر و ویدیوها نیز صدق میکند زیرا Googlebot (یا بهطور دقیقتر Googlebot-Image و Googlebot-Video) برای استخراج این منابع نیز بودجه خزش سایت را مصرف می کند.
استفاده از robots.txt برای مدیریت و یا جلوگیری از خزش منابع در رندرینگ، اغلب مشکلاتی را به وجود میآورد که می تواند بسیار دردسر ساز باشد. به عنوان مثال درصورتیکه سرویس رندرینگ وب (WRS) نتواند به یک منبع بحرانی برای رندر صفحه دسترسی داشته باشد، گوگل ممکن است در استخراج محتوای صفحه و نمایش آن در نتایج جستجو دچار مشکل شود.
کراولر Googlebot دقیقاً چه چیزی را می خزد؟
بهترین رفرنس برای تحلیل منابعی که گوگل خزش می کند، Raw Access Log است. لاگ هاست شامل ورودیهای مربوط به هر URLی است که توسط مرورگرها و خزندهها درخواست می شود.
برای بررسی این لاگ می توانید مستندات گوگل را برای لیست IP رسمی این موتور جستجو مطالعه کنید.
گزارش Crawl Stats در Search Console نیز منابع خزیده شده توسط هر نوع کراولر از جمله Googlebot را به تفکیک نشان می دهد که در قسمت های بعدی بیشتر به آن خواهیم پرداخت.