Yandex Webmaster را باز کردم و عددی دیدم که نمیشد نادیده گرفت: ۲٬۰۰۰ صفحه یکشبه از جستجوی Yandex ناپدید شده بودند. کل پروژه حدود ۸٬۰۰۰ صفحه داشت؛ یعنی تقریباً ۲۵٪ صفحات دیگر بهعنوان صفحات حاضر در جستجو نمایش داده نمیشدند.
واکنش اولم ساده بود: SEO میتواند بیرحم باشد. اما درس مفیدتر دقیقتر است. افت ناگهانی تعداد «صفحات در جستجو» یک مشاهده است، نه تشخیص علت. عدد واقعی بود. علت هنوز مشخص نشده بود.
واقعاً چه چیزهایی را میتوانستم تأیید کنم؟
در آن لحظه سه واقعیت داشتم: Yandex Webmaster کاهش ۲٬۰۰۰ صفحه را نشان میداد، پروژه حدود ۸٬۰۰۰ صفحه داشت و تغییر در یک شب ظاهر شده بود. اما مدرکی نداشتم که Yandex سایت را جریمه کرده، crawling خراب شده یا یک تغییر فنی مشخص باعث افت شده باشد.
این تفکیک مهم است، چون Yandex چند وضعیت را که معمولاً همه را «ایندکس شدن» مینامیم از هم جدا میکند. ممکن است یک URL crawl شود اما همچنان از جستجو کنار گذاشته شود. Yandex همچنین توضیح میدهد که پایگاه داده ربات میتواند صفحاتی داشته باشد که در همان لحظه امکان نمایش در نتایج را ندارند. بنابراین سؤال مفید فقط «آیا crawler این URL را دیده؟» نیست؛ باید پرسید «آیا این صفحه اکنون در جستجو مشارکت دارد و اگر نه، کدام status دلیل حذف را توضیح میدهد؟»
Yandex این وضعیتها را در مستندات رسمی درباره صفحات حاضر در جستجو و صفحات حذفشده از جستجو توضیح میدهد.
Crawling، حضور در جستجو، ranking و traffic مسائل متفاوتی هستند
این اتفاق دوباره نشان داد که چقدر راحت چهار لایه با هم قاطی میشوند: crawling، ورود به سیستم جستجو، مشارکت در نتایج و در نهایت ranking یا traffic واقعی. اینها مرتبطاند، اما یکی نیستند.
- Crawling: آیا ربات URL را دریافت کرده است؟
- حضور در جستجو: آیا Yandex صفحه را اکنون واجد شرایط نمایش میداند؟
- Ranking: صفحه برای جستجوهای مشخص در چه موقعیتی ظاهر میشود؟
- Traffic: علاوه بر رتبه به تقاضا، snippet، CTR، فصل و عوامل دیگر وابسته است.
پس افت ۲۵٪ در صفحات حاضر در جستجو بهطور خودکار به معنی افت ۲۵٪ traffic نیست. همچنین مشکل crawling یا جریمه الگوریتمی را ثابت نمیکند.
چرا بزرگی افت همچنان مهم بود؟
۲٬۰۰۰ URL آنقدر زیاد است که باید دنبال الگو گشت، نه چند صفحه تصادفی. بررسی میکردم آیا URLهای آسیبدیده در directory، template، نوع محتوا، canonical، کد HTTP، لینکسازی داخلی یا زمان انتشار ویژگی مشترکی دارند یا نه.
این نوع دستهبندی از نگاه کردن به یک عدد کلی مفیدتر است. اگر بیشتر صفحات حذفشده یک ویژگی فنی مشترک داشته باشند، دامنه بررسی کوچکتر میشود. اگر افت در بخشهای بیارتباط پخش شده باشد، فرضیه تغییر میکند. این یک روش بررسی است، نه ادعایی درباره علت واقعی در مورد من.
قبل از مقصر دانستن الگوریتم چه چیزهایی را بررسی میکردم؟
- خود معیار را تأیید میکردم. مطمئن میشدم تغییر واقعاً مربوط به «صفحات در جستجو» است و سپس صفحات حذفشده و تاریخها را میدیدم.
- دلیل حذف را بررسی میکردم. Yandex Webmaster ممکن است ارزش/تقاضای پایین، non-canonical،
noindex، redirect یا خطا را نشان دهد. این statusها مدرکاند؛ حدس از روی نمودار مدرک نیست. - URLهای آسیبدیده را گروهبندی میکردم. directoryها، templateها، نوع صفحه، زبان، بخشهای تولیدشده و دوره انتشار را مقایسه میکردم.
- پایه فنی را روی نمونهها چک میکردم. کد HTTP، robots، canonical، redirect، دسترسپذیری و HTML واقعی دریافتشده توسط ربات.
- تغییر ایندکس را از ranking و traffic جدا میکردم. حضور در جستجو، impression، click و sessionهای analytics به سؤالهای متفاوتی پاسخ میدهند.
- بعد از آن فرضیه علّی میساختم. اگر تنظیمات، deployment، تغییر template یا الگوی محتوا با صفحات آسیبدیده همزمان بود، میتوانست نامزد علت باشد، نه اثبات آن.
Yandex توصیه میکند دلیل مشخص حذف را ببینید و پس از رفع یک مشکل واقعی، صفحه را برای crawl مجدد ارسال کنید. این روش بسیار محکمتر از دیدن یک عدد بزرگ و بعد ساختن داستان برای آن است.
از این اتفاق چه چیزی را ادعا نمیکنم؟
نمیگویم «Yandex سایت را جریمه کرد»، چون چنین چیزی را ثابت نکردم. نمیگویم crawlerها فقط «سختگیرتر شدند»، چون این عبارت چند وضعیت فنی متفاوت را پنهان میکند. ۲٬۰۰۰ صفحه را هم برای همیشه از دسترفته نمینامم و بدون دیدن statusها فرض نمیکنم همه به یک دلیل حذف شدهاند.
درسی که برایم ماند
اینکه ۲٬۰۰۰ صفحه از ۸٬۰۰۰ صفحه در یک شب از جستجو خارج شوند هنوز هم بیرحمانه به نظر میرسد. اما نتیجه مفید این نیست که «SEO تصادفی است». سیستم جستجو چند لایه وضعیت دارد و پیش از توضیح علت باید فهمید کدام لایه تغییر کرده است.
قاعده عملی من ساده است: اول مشاهده را ثبت کن، علت را باز بگذار و بعد با شواهد در سطح صفحه فرضیهها را محدود کن. عدد ۲٬۰۰۰ بود. علت هنوز یک سؤال بود.