کنترل کراولر موتور های جستجو

در این مقاله ما می خواهیم در مورد کنترل کراولر های موتور جستجو، بلاک کردن ربات ها، فرستادن آن ها به جا هایی که می خواهیم و محدود کردن آنها از جایی که نمی خواهیم به آن جا بروند، صحبت کنیم.

برای شروع، ما می خواهیم در مورد روش های کنترل ربات ها بحث کنیم، که شامل سه روش اصلی robots.txt، meta robots و تگ nofollow که کمتر ربات ها را کنترل می کند.

همچنین چند مورد دیگر نیز وجود دارد که ما نیز در مورد آن ها بحث خواهیم کرد، از جمله ابزار وب مستر (مانند Google Search Console) و کدهای وضعیت URL نیز صحبت خواهیم کرد. اما در ابتدا اجازه دهید که به سه روش اصلی که در بالا ذکر کردیم، بپردازیم.

همانطور که می دانید Robots.txt در yoursite.com/robots.txt قرار دارد، که به کراولر ها می گوید که اجازه دارند به کجا دسترسی داشته باشند و به کجا دسترسی نداشته باشند، اما گوگل و بینگ همیشه به محتوای این فایل احترام نمی گذارند. برای مثال بسیاری از ما ها خیلی واضح به ربات های موتور جستجو گفتیم که «هی، به این کاری نداشته باش» اما یک دفعه می بینید که همین URL را در نتایج نمایش می دهد، همه ی ما از این کار موتور جستجو تعجب می کنیم که چرا این اتفاق افتاده است. بعضی وقت ها موتور های جستجو مانند گوگل و بینگ فکر می کنند که بیشتر و بهتر از شما و سایت شما و اطلاع دارند و بهتر بلدند. آن ها فکر می کنند که شاید شما اشتباه کرده اید، و با خود فکر می کنند که «هی، لینک های زیادی وجود دارد که به این محتوا اشاره می کنند، کاربران زیادی از این صفحه و محتویات آن بازدید می کنند و به آن اهمیت می دهند، پس ممکن است که شما قصد نداشته باشید که جلوی ما را برای ایندکس کردن این صفحه بگیرید». هر چند شما بهتر در باره ی یک URL خاص و منحصر به فرد، واضح تر باشید، معمولا موتورهای جستجو بهتر به نظر شما احترام می گذارند. در صورتی وضوح شما کمتر باشد موتور های جستجو کمتر به آن احترام نمی گذارند، برای مثال شما می توانید به موتور های جستجو بگوید که«این دایرکتوری و هر چیزی را که پشت آن قرار دارد را بی خیال شو» در این صورت احتمال این که موتو های جستجو به این خواسته شما عمل کنند بسیار کم خواهد بود.

داستان متا روبات ها Meta robots مقداری متفاوت است، آن ها به صورت منحصر به فرد در هدر صفحه ها نوشته می شوند، پس می توانیم گفت شما با تگ Meta robots تنها می توانید یک صفحه را کنترل کنید. این تگ به موتور های جستجو می گوید که آیا باید یک صفحه را وارد لیست ایندکس خود بکنند یا نه. موتور های جستجو معمولا به این روش احترام بیشتری می گذارند چون شما آن را منحصرا برای یک صفحه نوشته اید و گوگل و بینگ می خواهند به تگ Meta robots شما اعتماد داشته باشند.

نکته جالب راجب به meta robotها و robots.txt این است که گاهی این دو با هم کار می کنند و گاها نیز با هم کار نمی کنند و بسیاری از افراد افراد فعال در ضمینه سئو در این ضمینه گیج و نا امید می شوند.

برای مثال، ما یک صفحه مانند «blogtest.html» در دامنه خود داریم و می گوییم که «کراولر ها، شما اجازه ندارید که این صفحه را کراول کنید». خوب این روش خوبی است که اجازه ندهیم که این صفحه کراول شود، اما اجازهندادن به ربات ها که یک صفحه را کراول کنند به این معنی نیست که موتور های جستجو این صفحه را در صفحه ی نتایج نشان ندهند.

خوب پس بیاید که اطمینان خود را دو برابر کنیم که این صفحه ما در نتایج جستجو نمایش داده نمی شود: پس ما تگ متا ربات را به صورت زیر قرار می دهیم:

<meta name="robots" content="noindex, follow">

بنابراین، “noindex، follow” به کراولر های موتور جستجو می گوید که آن ها می توانند پیوندهای مربوط به صفحه را دنبال کنند، اما آن ها نباید این مورد خاص را ایندکس کنند.

جواب این است که شما به موتور های جستجو گفتید که این صفحه را کراول نکند، و آن ها این کار را نکرده اند. اما با این حال آن ها هنوز آن را واردن تایج جستجوی خود می کنند. احتمالا آن ها توضیحات متا را حساب نکرده اند; ممکن است که آن ها به شما بگویند که «ما نمی توانیم توضیحات متا را به خاطر وجود فایل robots.txt سایت شامل قرار بدیم». دلیل نشان دادن این است که آن ها نمی توانند noindex را ببینند تنها چیزی مشاهده می کنند disallow است.

بنابراین، اگر واقعا بخواهید چیزی حذف شود، و کسی نتواند آن را در نتایج جستجو مشاهده کند، شما نمی توانید فقط یک کراولر را غیرفعال کنید. شما ابتدا باید متای «noindex» را بیان کنید سپس به آن ها اجازه دهید که آن را کراول کند.

خوب هر کدام از این عوامل عوارض جانبی نیز به همراه دارد. اگر بخواهیم پهنای باند کراولر ها را برای خود ذخیره کنیم Robots.txt عالی خواهد بود، اما لزوما این روش برای جلوگیری از نمایش یک صفحه در نتایج جستجو آیده ال نیست. و ما هم آن را توصیه نمی کنیم، اتقاقا زمانی تویتر همین کار را کرد. توتیر سعی کرد که نسخه های سایت خود که یکی از آن ها با www و نسخه دیگر آن بدون www بود را کانونی سازی کند، آن ها سعی کردند که به گوگل بگویند دیگر نسخه www سایت را کراول و ایندکس نکنند، اما بعدا فهمیدند که گوگل هنوز هم نسخه همراه با www را در نتیج نمایش می دهد. خوب، بعد از آن فهمیدند کراول نکردن صفحه ها تنها کافی نیست و باد شروع به کانونی سازی صفحه ها با استفاده از rel canonical و 301 redirect کردند.

Meta robotها می توانند به اجازه کراول کردن و دنبال کردن لینک ها(link-following) را بدون ایندکس کردن بدهند، ولی این روش نیازمند بودجه ای برای کراولر ها است(هر سایتی به اندازه ای مشخصی از طرف موتور های جستجو کراولر دریافت می کند) و همچنین شما هنوز هم می توانید لیست ایندکس ها خود را حفظ کنید.

به طور کلی، برچسب nofollow، برای کنترل ربات ها یا حفظ ایندکس ها مفید نیست.

ابزار وبمستر ها(که بیشتر ما آن را به عنوان کنسول جستجوی گوگل می شناسیم) یک ابزار خاصی دارد که به شما این امکان را می دهد که یک دسترسی را محدود کنید یا یک نتیجه را از صفحه ی نتایج حذف کنید. برای مثال در صورتی که شما یک صفحه 404 داشته باشید یا صفحه ای که به موتور های جستجو گفته آید که آن را کراول نکنند ولی هنوز در نتایج ظاهر می شوند را می توانید در این ابزار بصورت دستی به آن ها بگویید که این کار را نکنند. همچنین پرتوکل های دیگری برای کراولر ها وجود دارد که می توانید با آن کار کنید.

سپس کد های وضعیت URL وجود دارد(URL status codes)، که راه معتبری برای انجام این کار ها است، اما آن ها به صورت واضحی اتفاقاتی که در صفحه ی شما می افتد را تغییر می دهند.

اگر شما نتوانستید با استفاده از 404 چیزی را حدف کنید، می توانید از 410 برای حذف دائمی صفحه ها از ایندکس استفاده کنید. فقط به این موضوع توجه داشته باشید زمانی که از 410 برای حذف صفحه استفاده کنید، در صورتی که بخواهید صفحه را به حالت عادی بر گردانید و به کراولر ها اجازه بدید این صفحه را به حالت عادی برگردانید و آن را کراول و ایندکس کنید، زمان زیادی را طلب می کند. کد وضعیت 410 به موتور های جستجو می گوید که این صفحه برای همیشه از میان ما رفته است.

کد 301 که پیشتر نیز در مورد آن صحبت کرده بودیم ری‌دایرکت دائمی است و کد 302 نیز ری‌دایرکت موقت است.

خوب حال بیاید به این موضوع بپردازیم که چه صفحه هایی را باید اجازه بدیم که کراول و ایندکس شوند و چه صفحه هایی را نباید اجازه بدیم.

چهار مشکل کراول و ایندکسینگ که باید حل شوند

ما چهار مشکل عمده مربوط به کراولینگ و ایندکسینگ داریم که می خواهیم آن را حل کنیم. لازم به ذکر است این موارد در CMS مانند وردپرس چندان اهمیتی ندارد، چون این کار ها به صورت پیش فرض توسط سیستم مدیریت محتوای شما انجام می شود.

۱. محتوایی که هنوز آماده نیست

اولین مورد ما محتوایی هستند که هنوز ما آن ها را آماده نکرده ایم و هنوز در حال توسعه و بهبود آن هستیم، برای مثال ما تعدادی محصولات داریم و ما تنها توضیحات آن را از سازنده آن ها داریم و می خواهیم که کتربران به آن دسترسی داشته باشند، پس ما محتوا را مجددا باز نویسی می کنیم و تمامی ارزش های موجود در آن را منحصر به فرد می کنیم و کار های متفاوت دیگر، صفحه ی ما هنوز آماده نیست پس چه کاری باید با این نوع صفحه ها بکنیم؟

گزینه های ما در بخش کراولینگ و ایندکسینگ چیست؟ اگر ما تعداد زیادی صفحه و URL داشته باشیم، ممکن است من به بخش robots.txt بروم و به ربات ها اجازه ی کراول کردن این صفحه ها را ندهم، و پس از آن کم کم در صورتی که سایت ما آماده شد ما می توانی اجازه کراول شدن آن ها را بدهیم و حتی می توانید آن ها را با استفاده از XML نقشه سایت در گوگل ثبت کنیم.

در صورتی که تعداد صفحه های ما کم باشد ما می توانید از تگ meta robots noindex استفاده کنیم، و سپس بعد از انجام کار می توانیم آن تگ ها را انتخاب و سپس حدف کنیم که گوگل بیاید و آن ها را کراول و ایندکس کند. همچنین شما در این مورد هم می توانید برای سرعت بخشیدن به کار خود XML نقشه سایت خود را در گوگل ثبت کنید.

۲. بر خورد با محتوای تکراری و ضعیف

آیا ما باید در محتوای تکراری و ضعیف، noindex، nofollow و یا بطور بلقوه کراولر ها را برای این نوع صفحه ها غیر فعال کنیم؟ برای جواب دادن به این سوال یک مثال برای شما می آوریم، ما یک سایت فروشگاهی داریم، و می خواهیم یک سری تی‌شترت های نایکی را در ان سایت به فروش برسانیم، ما یک صفحه داریم که آدرس آن nikeshirt.html است، این صفحه ی ما به صفحه ای که حاوی نسخه بزرگتر عکس است لینک شده است، که خود آن یک صفحه ی HTML منحصر به فرد است. همچنین این صفحه به رنگ های متفاوت نیز لینک شده است که هرکدام از آن ها URL صفحه را تغییر می دهند. خوب پس در صورتی که ما سه رنگ داشته باشیم با صفحه ی دیگر بطور کل ما ۴ صفحه برای یک محصول داریم. ما نمی خواهیم که جلوی ربات ها را برای کراول کردن این صفحه ها بگیریم، همچنین توصیه نمی کنیم که از تگ noindex استفاده کنید. پس کاری که ما باید بکنیم این است که این صفحه ها را کانونی سازی کنیم.

به یاد داشته باشید اگر یک URL را disallow کنید، با این کار شما یک مانع بر روی راه rel canonical ایجاد کرده اید. پس اگر صفحه ای را disallow کردید و اجازه ندادید که کراولر موتور های جستجو وارد آن صفحه شوند انتظار نداشته باشید که گوگل بتواند rel canonical که در آن صفحه استفاده کردید را ببیند. همچنین در مثال قبل اگر کاربری به جای صفحه اصلی به لینکی که تیشرت رنگ ابی شما در آن قرار دارد، لینک بدهد، لینک اصلی هیچ اعتباری از این بک لینک دریافت نمی کند. پس لازم است که حتما ما از rel canonical استفاده کنیم و به موتور های جستجو اجازه بدیم که صفحه های ما را کراول و ایندکس کند. اگر احساس کردید شما می توانید در صفحه ی خود تگ «noindex, follow» اضافه کنید، اما به نظر ما لازم نیست که این تگ را اضافه کنید چون احتمال این وجود دارد که با تگ rel canonical شما خلل ایجاد کند.

۳. انتقال ارزش لینک بدون ظاهر شدن در نتایج جستجو

اگر بخواهیم ارزش یکسری لینک را بدون ظاهر شدن در نتایج جستجو، انتقال بدهیم ـ برای مثال کاربران من در یکسری صفحه ها نوابری می شوند ولی ما نمی خواهیم این صفحه ها در نتایج ظاهر شوند ـ‌ چکار باید بکنیم؟

ما می توانیم به meta robotها بگویم که «این صفحه ها و لینک هایی که در آن وجود دارد را دنبال(follow) کن، اما صفحه ها را ایندکس نکن». یک روش بسیار اسان وکاربردی خواهد بود.

هر چند شما نباید این صفحه ها را در فایل robots.txt خود disallow کنید چون در غیر این صورت گوگل تگ noindex شما را نمی بیند، کاربران بسیار زیادی این اشتباه را می کنند. موتور های جستجو نمی داند که می توانند لینک ها موجود را دنبال کنند. هر چند در بالا گفتیم که گوگل و موتور های جستجوی دیگر همیشه از فایل robots.txt اطاعت نمی کنند، اما شما نمی توانید این ریسک را بکنید و به این کار گوگل اعتماد کنید. در این ضمینه شما باید داستان را اینگونه در نظر بگیرید که گوگل به تمامی دستور های شما که در فایل robots.txt ایجاد کرده آید، احترام می گذارد. پس ما باید تگ meta robots خود را اینگونه در نظر بگیریم «noindex, follow».

۴. نوع صفحه های نتایج جستجو

در اخر، با نوع صفحه های نتایج جستجو چکار کنیم؟ گوگل چندین و چند بار گفته است که دوست ندارد و نمی خواهد که نتایج موتور جستجوی داخلی سایت شما در صفحه نتایج جستجوی خودش ظاهر شود.

گاهی اوقات یک صفحه نتایج جستجو – صفحه ای که انواع مختلفی از نتایج را از محتوای موجود در پایگاه داده ی سایت شما فراخوانی می کند – در واقع می تواند نتیجه بسیار خوبی برای کاربرانی باشد که به دنبال طیف وسیعی از محتوا می گردند، باشد، یا کسانی که می خواهند ببینند که شما چه چیزی را می توانید به آن ها پیشنهاد بدید. برای مثال سایت Yelp این کار را می کند، زمانی که شما عبارتی مانند «رستوران های موجود نیویورک» را جستجوی می کنید، گوگل ممکن است سایت Yelp را به عنوان یکی از نتایج خود نشان دهد، سایت Yelp تعدادی از رستوران هایی که در پایگاه داده ی خود ذخیره دارد را در قالب یک جستجو به شما نشان می دهد، ولی گوگل بر خلاف گفته ما آن ها را در نتایج خود نشان می دهد چون آن ها نتایج بسیار عالی ای را فراهم می کنند، البته شما نباید کاری که Yelp می کند را انجام بدید و مجموعه ای از رایج ترین و محبوب ترین نتایج جستجو را داخل یک صفحه به صورت دسته بندی نشان دهید. یک صفحه که ارزش واقعی و منحصر به فرد را فراهم می کند نه تنها یک لیست از نتایج جستجو، این نوع صفحه ها بیشتر به عنوان صفحه ی فرود (landing page) در نظر گرفته می شوند نه یک صفحه برای نتیجه ی جستجو.

اینکه شما این نوع صفحه ها را در سایت خود داشته باشید یا بگوید که «موتور جستجوی ما واقعا فقط مختص کاربران داخلی است، لازم نیست که این صفحه ها را در نتایج خود نشان بدهید و همچنین ما احتیاجی نمی بینیم که باید تلاش کنیم که این صفحه ها را به عنوان landing page دسته بندی کنیم» این حرف ها برای گوگل کافی نیست، گوگل واضحا نمی خواهد همچین صفحه هایی را در نتایج خود ببیند، پس حتما باید شما در فایل robots.txt خود این صفحه ها را در سایت خود disallow کنید.

در این ضمینه بسیار محتاط عمل کنید چون در غیر این صورت ممکن است کم کم گوگل را به بلاک کردن برخی یا شاید همه ی نتایج موجود در سایت شما کند، که این اتفاق صدمه بسیار سنگینی به سایت، سئوی سایت و در نتیجه ترافیک ورودی شما می زند. گاهی اوقات این صفحه واقعا می تواند برای کاربران شما مفید باشد، پس شما باید داده ها و آمار های خود را تجزیه و تحلیل کنید و مطمئن شوید که صفحه های با ارزش شما به عنوان landing page شناسایی و ظاهر نشوند. اگر مطمئن هستید بروید و تمام صفحه ی نمایش جستجو های خود را disallow کنید. اگر بررسی کنید می بینید که بسیاری از سایت ها این کار را در فایل robots.txt خود انجام داده اند.


خوب کل داستان همین بود. امیدوار که این مقاله آموزش سئو برای شما کاربردی باشد. در صورتی که شما سوالی یا نکته ای در ضمینه کراولینگ، اینکسینگ، کنترل ربات ها، بلاک کرن ربات ها، اجازه دادن به ربات ها دارید، لطفا آن را در قسمت نظرات با ما و دیگر کاربران در میان بگذارید.