من قبلا این سوال رو در سایت دیگه جواب دادم. برای شما دوست عزیز هم اینجا تکرارش می کنم:
نرم افزاری که اطلاعات مورد نیاز گوگل برای امتیاز دهی به سایت ها رو جمع آوری می کنه رو بهش می گن crawler. یعنی خزنده. گوگل کراولر و بقیه کراولرها ازین طریق لابه لای سایت ها می چرخند و اطلاعاتی که برای دیتابیس خودشون نیاز دارند رو جمع آوری می کنند. خوب همونطور که معلومه این یک نرم افزاره که از لینک ها برای خزیدن استفاده می کنه.
تاحالا براتون سوال ایجاد شده که چرا تو دنیای اینترنت، مثلا وبلاگ ها و وب سایت ها مدام از همدیگه درخواست تبادل لینک می کنن؟ اگر وبلاگ داشته باشید یا اینکه به یک وبلاگ که می شناسید سر بزنید و بخش نظرات هر پست رو نگاه کنید این درخواست هارو می بینید. یا حتی بعضی از وبسایت ها بخشی رو مربوط به تبادل لینک در سایتشون قرار می دن.
کراولر از طریق لینک ها لابه لای سایت ها می خزه و به صفحات وب امتیاط می ده. خوب برای این امتیاز دهی معیار های زیادی وجود داره که شما با دونستن و به کار بستن اونا در طراحی سایتتون می تونید جایگاه بهتری رو در نتایج جستجو داشته باشید. یکی از این معیارها تعداد لینکهایی هست که از دامنه های دیگه به دامنه شما اشاره می کنه. یعنی همون لینک سایت شما در سایت های دیگه. همچنین استفاده از تگ های متا (META)، استفاده از خصوصیت alt برای تگ های img، استفاده به جا از تگ های H1 و H2 ، تکرار نشدن مطالب سایت در بخش های مختلف سایت به طرز افراطی، آپدیت شدن صفحات، تعداد بازدید(Hit) های سایت شما از طریق موتور جستجو گر و دهها مورد دیگه که منجر به بهتر شدن رتبه سایت شما در نتایج جستجو موتورها می شه.
تاحالا فکر کردین که گوگل چجوری انقدر سریع نتایج رو برای جستجوی شما فراهم می کنه؟ مطمئنم که فکر کردید و اطمینان دارم که هیچ کس فکر نمی کنه که گوگل ولقعا در اون چند میلی ثانیه کل اینترنت رو می گرده.
درسته، گوگل اون اطلاعاتی که توسط کراولر ها جمع آوری کرده رو توی یک دیتابیس نگه می داره. ولی بازم به نظرتون طبیعیه که کل نوشته های توی اینترنت رو در چند میلی ثانیه جستجو کرد؟ ما همه می دونیم که کار با رشته ها از نظر الگوریتمی پیچیده و هزینه بر هست.
جواب تو همون ایندکس کردنه. موتور جستجو گر متن اصلی رو ذخیره نمی کنه، بلکه اطلاعات پردازش شده ای از متن شمارو نگه داری می کنه و همینطور در حال آپدیت کردن و امتیاز دادن به اوناست. الگوریتمهای ایندکسینگ خیلی پیچیده و سطح بالا هستند. فقط برای اینکه متوجه بشیم اونا از چه نوعی هستند یک مثال ساده می زنم. مثلا تصور کنید که اگر من به جای اینکه بیام کل متن شما رو ذخیره کنم . بعد توشون جستجو کنم، بیام تک تک کلمات متن شمارو، به همراه تعداد تکرارشون ذخیره کنم و ارتباطات این کلمات (که ما آدما بهشون می گیم جمله) رو با یه چیزی مثل relation های دیتابیسی برقرار کنم. بعدم بیام کلمه موز رو تو تمام سایت ها جمع آوری کنم و دوباره ایندکس سطح بالاتری رو اجرا کنم. حالا نه تنها من می تونم کلمه موز رو تو تمام صفحات سایت شما تشخیص بدم، بلکه می تونم جمله من موز می خواهم رو هم از طریق اون relation هایی که ذخیره کردم در سایت شما تشخیص بدم بدون اینکه اطلا این جمله رو ذخیره کرده باشم. من هر کلمه خاص در متن شما رو تنها یک بار ذخیره کردم و از طریق ریلیشن ها جملات رو تشخیص دادم. از همه جالب تر اینه که من می تونم این کار رو در کسری از ثانیه تو کل اینترنت انجام بدم. جابل بود نه؟ بد نیست بدونید شما می تونید برای ساختن نرم افزار های خودتون، برای قسمت جستجو در سایت مثلا، از موتور های جستجو گر به صورت کتابخانه های جانبی استفاده کنید.