ایندکس(INDEX) چیست؟

ایندکس یا شاخص ، فهرست مرتب شده ای از داده های موجود در یک یا گروهی از فیلدهای یک جدول است. این شاخص به این دلیل طراحی می شود تا موتور بانک اطلاعاتی ( Data Base Engin ) با سرعت بیشتری آن را جستجو کند. (چرا که در صورت استفاده از آن ها ، پایگاه داده تنها نیاز به برآورد کردن فیلدهای ایندکس خواهد داشت، نه رکوردها) لازم به ذکر است که این شاخص توسط موتور بانک اطلاعاتی نگهداری شده و قابل ویرایش نمی باشد ! ایندکس ها لیستی از کلیدها هستند که یک پایگاه داده می تواند برای یافتن و مرتب کردن رکوردها مورد استفاده قرار دهد.
چگونگی ایجاد Index : ابتدا از منوی View گزینه Indexes را انتخاب کرده تا پنجره مربوط به ایندکس ها باز شود:
حال جدول ایندکس ها باز می شود. در این جدول می تواند ایندکس ها پایگاه داده خود را ایجاد کنید . چنانچه قصد دارید ایندکس های یک پایگاه را مشاهده کرده و یا ویرایش نمائید. می توانید از روش فوق استفاده کنید.
تهیه نسخه Backup یا پشتیبان گیری از بانک اطلاعاتی : همانطور که می دانید ضروری است که از کلیه بانک های اطلاعاتی مهم براساس یک برنامه زمانی منظم و تنظیم شده بطور مرتب نسخه های پشتیبان تهیه شود.
یک قانون کلی این است که از تمام بانک های اطلاعاتی باید نسخه های پشتیبان تهیه نمود. برای این کار نیز کافیست بانک اطلاعاتی خود را اجرا کرده و از داخل برنامه اکسس منوی Tools را باز تهیه نموده و با کلیک بر Data Base Utilities و سپس کلیک بر Backup DataBase نام مورد نظر خود را وارد نموده و پس از تعیین آدرس ، فایل مورد نظر خود را با پسوند MDB (فرمت بانک های اطلاعاتی ایجاد شده با Access) در دیسک خود ذخیره نمائید.
نکته : به یاد داشته باشید که به هیچ عنوان نمی توان از یک بانک اطلاعاتی میانبری تهیه کرد و با ذخیره یا تغییر فایل میانبر ، بانک اطلاعاتی اولیه را از تغییرات صورت گرفته مصون داشت! هیچ گاه برای تهیه نسخه پشتیبان از دستور Shortcut استفاده نکنید و به جای آن از دستور Copy استفاده نمائید.
ایندکس های ترکیبی
ایندکس ترکیبی یا COMPOSITE INDEX برای دو یا چند ستون از جدول تعریف می شود ولی به هر ترتیبی که ستون ها در عبارت ساخت ایندکس قرار گیرند فقط یکسری از QUERYها می توانند از آن ایندکس استفاده کنند. در این متن روش استفاده مناسب از ایندکس های ترکیبی و نحوه عملکرد آنها را توضیح می دهیم.
همانطور که در مطلب ایندکس BITMAP در اوراکل اشاره شد اگر در یک جدول دو یا چند ستون دارای ایندکس BITMAP باشند در زمان اجرای QUERYهایی که شامل آن ستون ها هستند OPTIMIZER می تواند به صورت اتوماتیک ساختمان داده BITMAPها را به هم متصل کند و بین آنها عملیات منطقی بیتی انجام دهد. بنابراین زمانی که از ایندکس های BITMAP استفاده می شود نیاز نیست برای آن ستونها ایندکس های ترکیبی تعریف گردد.
انتخاب ترتیب ستون ها در زمان ساخت ایندکس ترکیبی از اهمیت زیادی برخوردار است. فرض کنید یک ایندکس ترکیبی برای ستون A ، B ، C و D از جدول testtbl با ترتیب (A,B,D,C) تعریف می شود:
Create index comp_abdc on testtbl(A,B,D,C);
با این ترتیب برای ستونها، QUERYهای زیر می توانند به نحو مطلوب از این ایندکس استفاده کنند:
-QUERYهایی که مقدارهای ستون A را بررسی می کنند
-QUERYهایی که مقدارهای ستون A و B را بررسی می کنند.
-QUERYهایی که مقدارهای ستون A و B و D را بررسی می کنند.
-QUERYهایی که مقدارهای هر چهار ستون را بررسی می کنند.
اوراکل برای دستیابی به مقدارهای نهایی در ایندکس های ترکیبی از KEY هایی استفاده می کند که براساس ترتیب ستون های آن ایندکس تشکیل می شوند. بنابراین QUERYهایی که نمی توانند از ترتیب صحیح برای KEY استفاده کنند از این ایندکس استفاده نخواهند کرد. (مانند یک QUERY که فقط مقدار سطرهای C و D را بررسی می کند)
نکته: ترتیب استفاده از ستون ها در QUERYها می تواند متفاوت از ترتیب ستون ها در ایندکس ترکیبی باشد. برای مثال دو QUERY زیر هیچ تفاوتی از لحاظ استفاده از ایندکس ترکیبی بالا ندارند:
Select * from testtbl where a > 5000 and d < 10 and b = 4
Select * from testtbl where b = 4 and d < 10 and a=234
نکته: بدلیل تفاوت در ترتیب ستون ها، می توان ایندکسهای ترکیبی زیر را برای جدول testtbl ساخت که هر کدام از آنها QUERYهای متفاوتی را پاسخ می دهند. البته تعریف همزمان این چند ایندکس ترکیبی باعث سربار در عملیات DML و افزایش فضای مصرفی می شود:
CREATE INDEX comp_abcd ON testtbl(a,b,c,d);
CREATE INDEX comp_adc ON testtbl (a,d,c);
CREATE INDEX comp_abdc ON testtbl (b,d,a,c);
استفاده مناسب از ایندکس ترکیبی بجای ایندکس های مجزا می تواند باعث بهبود PERFORMANCE شود.
چه زمانی از ایندکس های ترکیبی استفاده می شود؟
QUERYهای زیر را در نظر بگیرید:
1) Select count(*) from tbl where a > 5000 and c = ‘T’ and b = ‘F’
2) Select count(*) from tbl where c = ‘F’
ایندکس های زیر تعریف می شوند:
Create index ind_a on tbl(a);
Create index ind_c on tbl(c);
OPTIMIZER برای QUERY شماره 1 می تواند از ایندکس ind_a یا ind_c استفاده کند. فرض کنید از ایندکس ind_a استفاده می کند. در این حالت OPTIMIZER برای ستون های دیگر شرایط آنها در عبارت WHERE یعنی c = ‘F’ و b = ‘T’ را بررسی می کند و عمل فیلتر (FILTER) را انجام می دهد تا به سطرهای نهایی دست یابد.
نکته: اگر در جدول tbl برای یکی از سطرهای a، b یا c ایندکس عادی تعریف شده باشد OPTIMIZER برای QUERY شماره 1 می تواند از هر کدام از این ایندکس ها به عنوان تنها مسیر دسترسی برای دستیابی به سطرهای نهایی استفاده کند. ( OPTIMIZER برای بررسی شرایط قسمت WHERE در QUERY شماره 1 فقط از یک ایندکس استفاده می کند.)
QUERY شماره 2 نیز با استفاده از ایندکس ind_c به سطرهای مورد نطر می رسد.
در ادامه بجای ایندکس های بالا ایندکس ترکیبی برای سه سطر a ، b و c تعریف می شود:
Drop index ind_a;
Drop index ind_c;
Create index comp_abc on tbl(a,b,c);
OPTIMEZER می تواند با پیمایش ایندکس ترکیبی با سرعت بیشتر نسبت به زمانی که از ind_a یا ind_c استفاده می کرد به نتایج QUERY شماره 1 برسد زیرا در پیمایش این ایندکس از KEYهای ایندکس(INDEX) چیست؟ هر سه ستون برای دسترسی به مقدار نهایی استفاده می کند.
در این حالت QUERY شماره 2 نمی تواند از ایندکس ترکیبی استفاده کند و عمل FULL TABLE SCAN انجام می شود. زیرا ستون c در انتهای ایندکس قرار گرفته است.
ولی اگر ایندکس ترکیبی با ترتیب (c,a,b) تعریف شود هر دو QUERY از این ایندکس استفاده می کنند:
Drop index comp_abc;
Create index comp_cab on tbl(c,a,b);
بنابراین استفاده مناسب از ایندکس ترکیبی می تواند سبب بهبود PERFORMANCE در اجرای QUERYها شود.
تعریف ایندکس ترکیبی به صورت بهینه
برای اینکه OPTIMIZER بتواند از ایندکس های ترکیبی به نحو مطلوب استفاده کند بهتر است تعداد و ترتیب ستون ها را براساس QUERYهایی که بیشتر اجرا می شوند انتخاب کرد ولی رعایت موارد زیر نیز توصیه می گردد:
– پیشنهاد می شود ستون اول در ایندکس ترکیبی، UNIQUE یا نزدیک به UNIQUE باشد. زیرا با توجه به ساختمان داده B-TREE اگر اولین ستون ایندکس، UNIQUE باشد برای پیدا کردن نتیجه QUERY بخش زیادی از آن ایندکس پیمایش می شود.
– توصیه می گردد ستونهایی که در QUERYها برای آنها از عملگر تساوی ‘=’ استفاده می شود به عنوان اولین ستون تعریف شوند و ستون هایی که دارای عملگر های شرطی ( > ، < ، =< ، BETWEEN) هستند به عنوان ستون های بعدی قرار بگیرند.
– بهتر است ستون هایی که بیشتر در قسمت SELECT یا در قسمت ORDER BY هستند آخر از همه ستون ها قرار گیرند.
– استفاده از حداکثر 3 ستون در ساخت ایندکس ترکبیی می تواند سبب بهبود PERFORMANCE شود.
معایب ایندکس ترکیبی:
-در تعریف ایندکس ترکیبی ترتیب ستونهای آن سبب نتایج متفاوت در سرعت اجرای QUERYها می شود.
-استفاده از تعداد ستون های زیاد سبب افزایش فضای دیسک و حافظه مورد نیاز می شود.
-افزایش تعداد ایندکس های ترکیبی می تواند موجب overhead در عملیات DML شود.
SKIP SCAN در ایندکس های ترکیبی
گاهی اوقات اگر ستون اول در ایندکس ترکیبی دارای cardinality خیلی کم باشد OPTIMIZER می تواند برای QUERYهایی که در آنها از ستون اول استفاده نشده است آن ستون را نادیده بگیرد و از ایندکس ترکیبی استفاده کند. این عمل را SKIP SCAN می نامند.
زمانی که ستون اول ایندکس ترکیبی تعداد بسیار کمی از مقدارهای DISTINCT دارد این عمل از لحاظ PERFORMANCE به صرفه خواهد بود.
فرض کنید برای جدول custumers ، ایندکس ترکیبی زیر تعریف می شود:
Create inex comp_ind on costumers(cust_gender,cust_email)
در این جدول،ستون cust_gender فقط دارای مقدارهای M و F برای مشخص کردن جنسیت افراد است.
بنابراین مقدارهای نهایی در ایندکس comp_ind به این شکل هستند:
F , [email protected] ,rowid
F , [email protected] ,rowid
F , [email protected] ,rowid
F , [email protected] ,rowid
F , [email protected] ,rowid
F , [email protected] ,rowid
M , [email protected] ,rowid
M , [email protected] ,rowid
QUERY زیر اجرا می شود:
SELECT * FROM customers WHERE cust_email = ‘[email protected]’ ;
از آنجایی که تعداد مقدارهای DISTINCT در ستون اول فقط دو مورد است OPTIMIZER می تواند تعداد مسیرهای منطقی را مشخص کند و از عمل SKIP SCAN استفاده کند. در این حالت با استفاده از QUERY زیر از ایندکس ترکیبی استفاده می شود:
SELECT * FROM sh.customers WHERE cust_gender = ‘F’
AND cust_email = ‘[email protected]’
UNION ALL
SELECT * FROM sh.customers WHERE cust_gender = ‘M’
AND cust_email = ‘[email protected]’ ;
CONDITIONAL UNIQUENESS
می توان برای چند ستون از جدول با استفاده از ایندکس های ترکیبی، FUNCTION BASED و UNIQUE ، شرایط CONDITIONAL UNIQUENESS را برقرارکرد.
مثال:
create unique index “name_and_email” on user( name , email );
مثال:
SQL> create table demo_fbi (
col1 number
, col2 number
, col3 varchar2(30)
, created_date date
, active_flag char(1) default ‘Y’
check (active_flag in (‘Y’,’N’)));
Table created.
SQL> — Conditional unique index on multiple columns
SQL> create unique index demo_fbi_idx
on demo_fbi
( case when active_flag = ‘Y’ then
col1 else null end,
case when active_flag = ‘Y’ then
col2 else null end );
Index created.
SQL> — (1,1) for active row
SQL> insert into demo_fbi values
(1, 1, ‘TEST3′, sysdate,’Y’);
1 row created.
SQL> — (1,1) again for active row
SQL> insert into demo_fbi values
(1, 1, ‘TEST4′, sysdate,’Y’);
insert into demo_fbi values
ERROR at line 1:
ORA-00001: unique constraint (HR.DEMO_FBI_IDX)violated
بررسی ایندکس ترکیبی و عادی برای QUERYهای مختلف
Create table milad.testtbl (id number(7), sakhteman int, avg_sal number);
SQL> Begin
For i in 1..1000000
Loop
Insert into milad.testtbl
values(i,round(dbms_random.value(400,800)) , round(dbms_random.value(5000,9000),2));
If mod(i, 100) = 0 then
Commit;
End if;
End loop;
End;
SQL> create index milad.comp_ind_id_skh_avg on milad.testtbl(id,sakhteman,avg_sal);
SQL> explain plan for select * from milad.testtbl g where g.id between 145 and 500 and g.sakhteman=461 and g.avg_sal > 7000;
SQL> explain plan for select * from milad.testtbl g where g.avg_sal = 7000;
SQL> explain plan for select * from milad.testtbl g where g.sakhteman=461 and g.avg_sal > 7000;
SQL> explain plan for select * from milad.testtbl g where g.id between 145 and 500;
SQL> create index milad.ind_avg on milad.testtbl(avg_sal);
SQL> explain plan for select * from milad.testtbl g where g.avg_sal = 7000;
چرا گوگل سایت رو ایندکس نمی کنه؟
حتماً نام تگ Noindex را شنیدهاید . همه وب مستران دوست دارند که صفحاتی را که در سایتشان منتشر میکنند بلافاصله ایندکس بشود اما بعضیاوقات ما نمیخواهیم روباتهای گوگل صفحه ما را ایندکس کنند؛ در چنین موقعیتی از تگ Noindex استفاده میکنیم . موقعیتهای مختلفی وجود دارد که شما میتوانید از تگ نو ایندکس استفاده کنید. در این مقاله میخواهیم بدانیم تگ Noindex چیست و اینکه چطور از آن بهره ببریم. پیشنهاد میکنیم که تا آخر این مقاله با تیم آموزشی شو همراه باشید.
خزنده (crawl) گوگل چیست؟
خزیدن یعنی دنبال کردن یک مسیر. روباتها پس از ورود به هر صفحه از سایت، لینکهای موجود در صفحه را دنبال کرده و به دیگر صفحات سایت نیز وارد میشوند . پیمایش این مسیرها همان عمل خزیدن گوگل است. البته در این بین با استفاده از فایل Robots.txt میتوان لینکها و صفحاتی که نمیخواهیم پیمایش شوند را برای گوگل مشخص کنیم.
ایندکس (Index) گوگل چیست؟
زمانی که لینکی برای بررسی به گوگل ارسال میشود ، گوگل عمل خزیدن را آغاز میکند . پس از پیمایش محتویات صفحه اصلی و لینکهای موجود، چگالی کلمات کلیدی را بررسی کرده و این کار را ادامه میدهد ، تا زمانی که هیچ ارتباطی خارجی دیگری در صفحه پیدا نکند. . سپس کلیه صفحات شناساییشده ، جهت ایندکس ارسال میشوند و درنهایت با توجه به نوع کلمات کلیدی و دیگر معیارهای سئو ، صفحات رتبهبندی شده و در کتابخانه ایندکس گوگل قرار میگیرند . گوگل در هر بار جستجوی کاربر، سایتهایی را نمایش میدهد که در رتبه اول ایندکس گوگل قرار دارند.
با استفاده از تگ noindex رتبه خود را در گوگل افزایش دهید
اگر در حوزه توسعه وب و بازاریابی دیجیتال کارکرده باشید شکی نیست که داستانهای ترسناکی درباره تگ noindex شنیده باشید. اغلب زمانها ، هنگامیکه در حال طراحی یک وبسایت جدید هستید از قابلیت noindex برای صفحات سایت خود استفاده میکنید به این معنا که این صفحات در جستجوهای گوگل نمایش داده نشود.
فراموش کردن حذف تگ noindex پس از کامل شدن طراحی سایت میتواند تعداد زیادی از کاربران را از بازدید سایت شما محروم کند. تگ noindex یک خط ساده است ولی استفاده نادرست از این تگ میتواند آسیبهای زیادی را بهطور جدی بر روی تعداد بازدیدکنندگان سایت شما تحمیل کند. با این حال تعداد صفحات noindex موجود در فضای وبسایت بسیار در حال زیادشدن هستند. اینیک تناقض است چگونه ممکن است شما در تنظیمات خود تعریف کرده باشید که کمتر در نتایج جستجو گوگل نمایش داده شود ولی تمایل داشته باشید که سایت شما در نتایج جستجوی گوگل بیشتر نشان داده شود.
چگونگی تأثیر noindex بر روی خزندهها (Crawling):
با قرار دادن تگ noindex در صفحات کماهمیت و نامرتبط گوگل میتواند ارزش بیشتری را برای صفحات سطح بالا در نظر بگیرید. این باعث میشود که گوگل زمان و منابع بیشتری را صرف خواندن صفحات مهم کند و صفحات مهم را در نتایج جستجوی خود با رتبهبندی بهتری ، رتبهبندی نماید.
به خاطر داشته باشید noindex کردن صفحات هیچ تأثیری بر روی کارکرد صفحات ندارد و کاربران عادی سایت شما میتوانند پس از ورود به سایت این صفحات را مشاهده کنند. این صفحات فقط از دید عنکبوتهای گوگل پنهان خواهند شد.
پس چه طور این کار را انجام دهیم ؟
هشدار: به یاد داشته باشید که تگ noindex همان مقدار که میتواند برای شما مفید باشد درصورتیکه از آن بهصورت نادرست استفاده کنید میتواند به سایت شما آسیب بزند و درصورتیکه صفحات مهم سایت شما بهصورت noindex تعریف شوند در نتایج جستجوهای گوگل رتبهبندی نخواهد شد.
تعدادی از صفحات وجود دارند که همیشه باید بهصورت noindex تعریف شوند مانند صفحات زیر:
هنگامیکه لیست نامزدهای دریافت تگ noindex کامل شد کد زیر را به آن صفحات اضافه کنید تا این صفحات توسط عنکبوتها بازدید نشوند .
این واقعاً میتواند خیلی ترسناک باشد درصورتیکه بهدرستی استفاده نشود زیرا گوگل در جستجوهای بعدی خود صفحاتی که داری برچسب noindex هستند را بازدید نمیکند و از نتایج جستجوی خود حذف میکند .
در ادامه کد بالا شما کلمه follow را مشاهده میکنید . کلمه follow باعث میشود که صفحات دیگری که توسط این صفحه معرفی میشوند نیز توسط عنکبوتها بازدید نشوند.
پارامترهای کنترل ایندکس صفحات
Index: به موتورهای جستجو اعلام میکند که آن صفحه را ایندکس کنند. نکته مهم در اینجا این است که لازم به درج این پارامتر در تمام صفحات ندارید، چراکه موتورهای جستجو بهصورت پیشفرض به ایندکس صفحات میپردازند .
Follow: با این دستور، موتورهای جستجو حتی صفحاتی که ایندکس نمیشوند را بررسی کرده و لینکهای داخل آن را دنبال میکنند . همچنین با این کار، اعتبار صفحه به لینکهای داخل آن نیز داده میشود .
Nofollow: این پارامتر به موتورهای جستجو اعلام میکند که هیچ لینکی در صفحه را دنبال نکرده و اعتباری به آنها منتقل نکنند.
Nocache: این پارامتر همانند Nocache میباشد ، منتها با این تفاوت که توسط اینترنت اکسپلورر و فایرفاکس استفاده میگردد .
Nosnippet: این پارامتر به موتورهای جستجو اعلام میکند که اسنیپت های صفحه (مانند متاتگ توضیحات) را در صفحه نتایج جستجو نشان ندهند.
Noodyp/noydir: این پارامتر منسوخشده است و درگذشته برای عدم نمایش توضیحات سایت DMOZ در صفحه نتایج جستجو مورداستفاده قرار میگرفت .
Unavailable_after: این پارامتر به رباتهای جستجو اعلام میکند که از یک تاریخ مشخص به بعد نباید آن صفحه را ایندکس کنند.
نحوه رفع خطای noindex در گوگل سرچ کنسول
این خطا زمانی ایجاد میشود که شما درخواست ایندکس یک URL رادارید درحالیکه از تگ noindex برای همان صفحه استفاده کردهاید . بنابراین اگر میخواهید این صفحه در نتایج جستجوی گوگل نمایش داده شود، باید تگ نوایندکس را از کدهای صفحه بردارید.
این پیام همیشه هم بهعنوان خطا در نظر گرفته نمیشود . این پیام یعنی اینکه برای یک URL از متا تگ نوایندکس استفادهشده و صفحه توسط موتورهای جستجو نمایش داده نمیشود . در این شرایط اگر مطمئن هستید که صفحه نباید ایندکس شود، پس جای نگرانی نیست. در غیر این صورت مجدداً باید این تگ را از صفحه حذف کنید.
آدرس Excluded با تگ نوایندکس و بلاک شدن توسط فایل
این پیام زمانی ایجاد میشود که Googlebot در اثر رو به رو شدن با تگ noindex یا دستور بلاک در فایل robots.txt، قادر به ایندکس کردن صفحه نیست.
IT online
ایندکس یا شاخص ، فهرست مرتب شده ای از داده های موجود در یک یا گروهی از فیلدهای یک جدول است. این شاخص به این دلیل طراحی می شود تا موتور بانک اطلاعاتی ( Data Base Engin ) با سرعت بیشتری آن را جستجو کند. (چرا که در صورت استفاده از آن ها ، پایگاه داده تنها نیاز به برآورد کردن فیلدهای ایندکس خواهد داشت، نه رکوردها) لازم به ذکر است که این شاخص توسط موتور بانک اطلاعاتی نگهداری شده و قابل ویرایش نمی باشد !
ایندکس ها لیستی از کلیدها هستند که یک پایگاه داده می تواند برای یافتن و مرتب کردن رکوردها مورد استفاده قرار دهد.
چگونگی ایجاد Index :ابتدا از منوی View گزینه Indexes را انتخاب کرده تا پنجره مربوط به ایندکس ها باز شود:
حال جدول ایندکس ها باز می شود. در این جدول می تواند ایندکس ها پایگاه داده خود را ایجاد کنید . چنانچه قصد دارید ایندکس های یک پایگاه را مشاهده کرده و یا ویرایش نمائید. می توانید از روش فوق استفاده کنید.
تهیه نسخه Backup یا پشتیبان گیری از بانک اطلاعاتی :همانطور که می دانید ضروری است که از کلیه بانک های اطلاعاتی مهم براساس یک برنامه زمانی منظم و تنظیم شده بطور مرتب نسخه های پشتیبان تهیه شود.
یک قانون کلی این است که از تمام بانک های اطلاعاتی باید نسخه های پشتیبان تهیه نمود. برای این کار نیز کافیست بانک اطلاعاتی خود را اجرا کرده و از داخل برنامه اکسس منوی Tools را باز تهیه نموده و با کلیک بر Data Base Utilities و سپس کلیک بر Backup DataBase نام مورد نظر خود را وارد نموده و پس از تعیین آدرس ، فایل مورد نظر خود را با پسوند MDB (فرمت بانک های اطلاعاتی ایجاد شده با Access) در دیسک خود ذخیره نمائید.
نکته : به یاد داشته باشید که به هیچ عنوان نمی توان از یک بانک اطلاعاتی میانبری تهیه کرد و با ذخیره یا تغییر فایل میانبر ، بانک اطلاعاتی اولیه را از تغییرات صورت گرفته مصون داشت!هیچ گاه برای تهیه نسخه پشتیبان از دستور Shortcut استفاده نکنید و به جای آن از دستور Copy استفاده نمائید.
سلام . به دنیا آمده ایم تا بشناسیم ناشناخته ها را
و بگشاییم سربه مهر بسته ها را
خداوند فرموده بشناسید مرا از طریق شناخت خود
پس ما انسانهای رمز آلود و پیچیده ای هستیم که آمده ایم تا معمای خودمان را حل کنیم.
هدیه ی ما هم از قبل تعیین شده . رسیدن به ذات اقدس الهی
آیا در این جست و جو ما را بس نیست که خداوندگاری به عظمت رب العالمین داریم
اَلَیسَ اَللهُ بِکافٍ عَبدَه
"جملاتی قصار از امام جواد «ع»"
«اطمينان به خداوند، بهاي هر چيز ارزشمند است و براي ترقي و بلند مقامي، چونان نردبان است.»
«زيبايي (انسان) در زبان اوست.»
«هركس پنهاني برادرش را نصيحت كند، او را آراسته است و اگر آشكارا چنين كند، وي را زشت گردانده.»
«علما به سبب فراوان بودن نادانان، در ميانشان غريب هستند.»
«آن كه بر مركب شهوات ميراند، لغزشهاي نابخشودني دارد.»
«آن كه براي پيروي از خواستههاي تو، راه رشد را بر تو پنهان دارد، با تو دشمني كرده است.»
«روزگار از رازهاي پنهان، برايت پرده بر ميدارد.»
«آن كه به گويندهاي گوش فرا ميدهد، همانا وي را پرستيده است. پس هرگاه، گوينده سخن از خداوند بگويد، ایندکس(INDEX) چیست؟ شنونده خداوند را پرستيده است و اگر گوينده زبان شيطان باشد، شنونده شيطان را پرستش كرده است.»
«چگونه كسي كه خداي تعالي كفيل اوست، هلاك ميشود»
«چگونه كسي كه خداي تعالي در تعقيب اوست، نجات مييابد.»
«كسي كه از خداوند منقطع گردد، خدايتعالي او را به خود وا ميگذارد.»
زندگی سرشار از شور است ، پاره ای از آن باش
زندگی آمیخته به تلاش است ، آنرا با تلاش آغاز کن
زندگی با اندوه همراه است ، احساسش کن ، دریابش و تقسیم اش کن
زندگی بسته به آرمانهایی است ، بکوش تا به والاترین آنها برسی
زندگی مقصدی را می جوید .. کاشف آن باش
Index و Crawl چیستند؟
همه ما تا حدودی از نحوه عملکرد موتورهای جستجو آگاهیم. اما در اینجا ما میخواهیم مقداری عمیقتر به این موضوع نگاه کنیم. بیایید با روند عملکردی خزندههای گوگل شروع کنیم.
اصلا خزندههای موتورها جستجو چی هستند؟
خزیدن فرایندی است که توسط خزندههای وب موتور جستجوگر (رباتها یا اسپایدرها) برای بازدید و دانلود یک صفحه و استخراج لینکهای آن به منظور کشف صفحات اضافه شده، استفاده میشود.
صفحاتی که به موتورهای جستجو شناسانده شدهاند، به طور مرتب توسط خزندهها بازدید میشوند تا تخمین بزنند که آیا تغییری از زمان آخرین خزیدن ایجاد شده یا خیر.
اگر یک موتور جستجو پس از خزیدن یک صفحه، تغییرات را در آن صفحه پیدا کند، در پاسخ به این تغییرات شناسایی شده، ایندکس آن را به روز میکند.
خزندهها چگونه کار میکنند؟
موتورهای جستجو از خزندههای وب مخصوص به خود برای کشف و دسترسی به صفحات وب استفاده میکنند. هر خزنده موتور جستجوگر، از طریق دانلود فایل robots.txt آن سایت، که فایلی حاوی قوانین مربوط به صفحاتی است که موتورهای جستجو باید یا نباید در وب سایت جستجو کنند، یک وب سایت را میخزند.
فایل robots.txt همچنین ممکن است اطلاعاتی در مورد نقشههای سایت (Sitemaps) داشته باشد. نقشه سایت شامل لیستهایی از URLهایی است که صاحبان سایت میخواهد که خزنده موتور جستجوگر آنها را بخزند.
خزنده موتور جستجوگر از تعدادی الگوریتم و قواعد استفاده میکند تا تعیین کند که چه میزان یک صفحه مجددا خزیده (re-crawled) میشود و چند صفحه در یک سایت باید ایندکس شود. به عنوان مثال، یک صفحه که به صورت منظم تغییر میکند، ممکن است بیشتر از صفحهای که به ندرت اصلاح می شود، کرول یا خزیده شود.
چگونه میتوان موتورهای جستجو را شناسایی کرد؟
شناسایی رباتهای خزنده موتورهای جستجو از طریق user agent strings که آنها را در هنگام درخواست صفحات وب به سرور وب منتقل میکند، امکان پذیر است. در اینجا چند نمونه از user agent strings استفاده شده توسط موتورهای جستجو وجود دارد:
- Googlebot User Agent
Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)
- Bingbot User Agent
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
- Baidu User Agent
Mozilla/5.0 (compatible; Baiduspider/2.0;+http://www.baidu.com/search/spider.html)
- Yandex User Agent
Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
هر کس میتواند یک user agent مشابه با موتورهای جستجوگر استفاده کند. با این حال، آدرس IP که درخواست را ایجاد کرد نیز میتواند مورد استفاده قرار گیرد تا تأیید کند که از موتور جستجو آمده است – یک فرایند به نام DNS lookup معکوس است.
کرول کردن تصاویر یا سایر فایلهای غیرمتنی
موتورهای جستجو به طور معمول تلاش میکنند تا هر URL را که با آن روبرو هستند، کرول و ایندکس شوند. با این حال، اگر URL یک نوع فایل غیر متنی است مانند یک فایل عکس، ویدئو یا فایل صوتی، موتورهای جستجو به طور معمول نمیتوانند محتوای فایل را به غیر از نام فایل و متادیتای مرتبط با آن را بخوانند.
اگر چه یک موتور جستجو تنها قادر به استخراج مقدار محدودی از اطلاعات در مورد انواع فایلهای غیر متنی است، اما میتواند آنها را ایندکس کند و موجب رتبه بندی در نتایج جستجو شود. گوگل میتواند محتوای بسیاری از انواع صفحات و فایلها را ایندکس کند. رایجترین انواع فایلهایی که ایندکس میشود عبارتند از:
- (Adobe Flash (.swf
- (Adobe Portable Document Format (.pdf
- (Adobe PostScript (.ps
- (Autodesk Design Web Format (.dwf
- (Google Earth (.kml, .kmz
- (GPS eXchange Format (.gpx
- (Hancom Hanword (.hwp
- (HTML (.htm, .html, other file extensions
- (Microsoft Excel (.xls, .xlsx
- (Microsoft PowerPoint (.ppt, .pptx
- (Microsoft Word (.doc, .docx
- (OpenOffice presentation (.odp
- (OpenOffice spreadsheet (.ods
- (OpenOffice text (.odt
- (Rich Text Format (.rtf
- (Scalable Vector Graphics (.svg
- (TeX/LaTeX (.tex
- Text (.txt, .text, other file extensions), including source code in common programming languages:
- (Basic source code (.bas
- (C/C++ source code (.c, .cc, .cpp, .cxx, .h, .hpp
- (C# source code (.cs
- (Java source code (.java
- (Perl ایندکس(INDEX) چیست؟ source code (.pl
- (Python source code (.py
- (Wireless Markup Language (.wml, .wap
- (XML (.xml
خزیدن و استخراج لینک از صفحات
خزندهها صفحات جدید را با خزیدن مجدد در صفحاتی که آنها را میشناخته، سپس استخراج لینکها برای پیدا کردن صفحات جدید، کشف میکند. این URL های جدید در صف خزیدن قرار میگیرند تا بتوان آنها را بعدا دانلود کرد.
از طریق فرایند دنبال کردن لینکها، موتورهای جستجو قادرند که هر صفحه منتشر شده در اینترنت را که به حداقل یک صفحه در اینترنت مرتبط یا لینک شده است، کشف کنند.
SITEMAPS
راه دیگری که موتورهای جستجو میتوانند صفحات جدید را کشف کنند این است که خزندهها نقشههای سایت را کرول کنند. نقشههای سایت شامل مجموعهای از آدرسها است که توسط یک وب سایت ایجاد میشود تا به موتورهای جستجو، لیستی از صفحاتی رت که میبایست کرول شوند، ارائه دهد.
این نقشهها از طرفی میتواند به موتورهای جستجو کمک کند تا محتوای پنهانی عمیق در وب سایت را پیدا کند و از طرف دیگر به مدیران وب در توانایی بهتر کنترل و درک بخشهایی از سایت که ایندکس شده کمک کند و همچنین تکرار ایندکسها را درک کنند.
PAGE SUBMISSIONS
یک روش دستی برای کشف صفحه است. این روش زمانی مورد استفاده قرار میگیرد که محتوای جدیدی منتشر شده یا یک تغییراتی ایجاد شود و شما میخواهید زمان را برای اینکه موتوهای جستجو آن تغییرات را ببینند کوتاه کنند یا به حداقل برسانید.
گوگل میگوید که برای حجمهای خیلی بالا از URL شما باید از نقشههای XML استفاده کنید، اما گاهی روش ارائه دستی هنگام ارسال تعدادی از صفحات مناسب است. همچنین مهم است که توجه داشته باشید که گوگل سرچ کنسول این تعداد را محدود کرده است.
علاوه بر این، گوگل میگوید زمان پاسخگویی برای ایندکس کردن نقشههای سایت و ایندکس دستی یکسان است.
Crawl و Index چیست؟
یکی از نکاتی که برای سئو بهتر سایت باید به آن توجه کرد، میزان دسترسی موتورهای جستجو به صفحات هدف است. این دسترسی با خزیدن یا Crawl رباتهای موتورها به سایت صورت میگیرد. پس از آن، صفحهای که رباتها به آن خزیدهاند باید در فهرست قرار گرفته یا Index شود. به این دلیل از واژه هدف استفاده شد که برخی از قسمتهای سایت ممکن است توسط ادمین از طریق فایل ربات از دسترس خارج شوند.
در ابتدای امر باید بگوییم که ما هنوز نمیدانیم که گوگل چطور سایت ما را Crawl میکند؛ بنابراین بسیاری از سئوکارها هنوز تفاوت بین Crawl و Index را نمیدانند. بزرگترین مشکل این است که زمانی که مشکلات ایندکس شدن را بررسی میکنیم تنها ابزارهای ما Google Search Console است.
به این خاطر که سایت از کدهای HTML و CSS تشکیل شده است، حدس زدن درمورد چرا محتوا توسط گوگل ایندکس نمیشود، سختتر خواهد بود.
حتی اگر قسمتهایی از سایت خود را پیدا کردهاید که میدانید مشکل ایندکس نشدن از آنهاست، بسیار مشکل است که تا ته آن بروید و قطعه کد اشکال دار را پیدا کنید که باعث ایندکس نشدن است.
هر موتور جستجو بودجه خزیدن خاصی را به هر دامنه اختصاص میدهد که بر اساس میزان رتبه صفحه تعیین میشود؛ بنابراین آنها باید اولویتبندی کرده و تا حد امکان به خزیدن در محتواهای باارزش بپردازند.
با استفاده از دستوراتی مثل Nofollow یا فایل ربات در مورد برخی از صفحات کماهمیت، میتوانید بودجه خزیدن یا Crawl سایتتان را بهینه کرده و به عبارتی در مصرف آن صرفهجویی کنید! استفاده از متا تگها برای کنترل این بودجه هم میتواند کمککننده باشد.
پس از اینکه عملیات خزیدن موتورهای جستجو به صفحات وبسایتتان را با موفقیت پشت سر گذاشتید، زمان آن است تا بر نحوه فهرست بندی یا Index کردن آنها توسط موتورها نظارت داشته باشید. لزوما هر صفحهای که خزیدن به آن صورت میگیرد، Index نمیشود و باید گوگل آن را باارزش تشخیص دهد.
پس از ایندکس شدن صفحه، گوگل تصمیم میگیرد که چطور باید در نتایج جستجو دیده شود. این موتور بر اساس عوامل مختلف، تصمیم میگیرد که در هر جستجو، چه کلمات کلیدی و رتبهای به صفحه شما تعلق میگیرد.
جالب است بدانید اگر لینکی برای ایندکس کردن توسط ربات گوگل خزیده میشود تا پنج سایت دیگر که این لینک از آنها نشات گرفته هم خزیده میشوند که اعتبار آن لینکها هم در رتبهبندی صفحه شما تاثیر دارد. به همین دلیل لینک گرفتن از سایتهای باکیفیت و معتبر با استفاده از کلمه کلیدی مورد نظرتان میتواند در ایندکس بهتر صفحات به شما کمک کند.
چگونگی Crawl & Index توسط موتورهای جستجو
بهینه سازی وب سایت بدون درک نحوه کارکرد موتورهای جستجو، مشابه انتشار یک کتاب بدون یادگیری نحوه نوشتن است. بنابراین ما باید درک کنیم که چگونه موتورهای جستجو کار میکنند تا کاملا درک کنیم که چگونه برای آنها بهینه سازی انجام شود.
در حالی که ما روی جستجوی ارگانیک تمرکز میکنیم، ابتدا باید به طور خلاصه در مورد یک حقیقت انتقادی درباره موتورهای جستجو صحبت کنیم.
اساسا، گوگل و بینگ (و سایر موتورهای جستجو) موتورهای تبلیغاتی هستند که کابران را به سمت خود میکشند تا به ارگانیک تبدیل کنند. بنابراین ارگانیک پایان ماجراست.
موتورهای جستجو امروز چگونه کار می کنند؟
- Crawling and indexing
- Algorithms
- Machine learning
- User intent
Indexing
ایندکس جایی است که همه چیز شروع میشود. اگر بخواهیم به صورت آماتور به این موضوع بپردازیم، باید بگوییم که ایندکس کردن اساسا به افزودن یک محتوای وب سایت به گوگل اشاره دارد. زمانی که شما یک پیج تازه میسازید راههای مختلفی برای ایندکس کردن آن برای گوگل وجود دارد.
یک راه آسان این است که در واقع هیچ کاری نکنید. گوگل خزندهها را در پی لینکها میفرستد، در نهایت آن را کشف کرده و آن را به فهرست خود اضافه میکند.
اما آیا راهی وجود دارد که آن را سریعتر به گوگل معرفی کنیم؟
این امر زمانی مهم است که محتوای جدیدی داشته باشید یا تغییرات مهمی در صفحهای ایجاد کردهاید که گوگل نیاز به دانستن آن را داشته باشد.
یکی از دلایلی که از روشهای سریعتر استفاده میکنیم این است که یک صفحه مهم را بهینه سازی کرده یا دیسکریپشن برای یا توضیحات را برای بهبود تجربه کاربر تنظیم کردهایم و میخواهیم به طور خاص زمانی که کاربر آن را سرچ کرد، در SERPs نمایش داده شود. در این موارد چند روش وجود دارد که میتوانید استفاده کنید:
XML Sitemaps
همیشه XML Sitemaps وجود دارد.
اساسا Sitemaps یک نقشه سایت است که از طریق Search Consoleبه گوگل ارائه میشود.
یک Sitemap ، لیستی از تمام صفحات در سایت شما و همچنین جزئیات بیشتر در مورد آن مانند زمانی که آن را آخرین بار تغییر دادهاید، است.
URL ایندکس(INDEX) چیست؟ Inspection
در Search Console، می توانید «URL Inspection » را پیدا کنید. URL مورد نظر خود را وارد کنید و سپس اینتر را بزنید. پس از آن روی گزینه “Request Indexing” کلیک کنید. به طور کلی در عرض چند ثانیه تا چند دقیقه شما میتوانید محتوای جدید یا URL را در گوگل جستجو کنید و تغییر یا محتوای جدید را مشاهده کنید.
Crawl Budget
نمیتوانیم از ایندکس بدون Crawl Budget صحبت کنیم. بودجه خزیدن یا Crawl Budget یک اصطلاح است برای توصیف مقدار منابعی که گوگل برای یک وب سایت در رابطه با کراول کردن، صرف میکند. بودجه اختصاص داده شده بر اساس ترکیبی از عوامل است که دو مورد اصلی عبارتند از:
- سرور شما چقدر سریع است. به عنوان مثال گوگل چه میزان کراول میکند بدون خسارت به تجربه کاربری.
- سایت شما چقدر مهم است
اگر سایت شما یک سایت خبری مهم باشد که محتوای آن به صورت دائمی به روز رسانی میشود که کاربران موتورهای جستجو تمایل زیادی داشته باشند از سایت شما آگاهی داشته باشند، مرتبا Crawl میشود.
ایندکس گوگل چیست؟ از دلایل ایندکس نشدن تا راه های ایندکس قوی
در این مقاله به ایندکس گوگل، روش های جلوگیری از آن، دلایل ایندکس نشدن و راهکار های بهبود وضعیت ایندکس وبسایت وردپرسی و اختصاصی پرداختیم.
ایندکس شدن توسط موتور های جستجو از جمله گوگل، اولین مرحله برای ورود به دنیای سئو است که بخصوص در دوره بعد از همه گیری کرونا و افزایش تعداد وبسایت ها، به فعالیتی مهم و بعضا سخت گیرانه توسط گوگل تبدیل شده است. در این مقاله به تشریح چیستی ایندکس توسط گوگل یا سایر موتور های جستجو می پردازیم و تمامی دلایلی که باعث عدم ایندکس و بهبود وضعیت ایندکسینگ (نمایه سازی-فهرست بندی) صفحات وبسایت شما می شوند را بررسی خواهیم کرد.
ایندکس چیست؟
در مفاهیم سئو به مراحلی که کرولر های گوگل (ربات های خزنده) طی می کنند و شامل Discover، Indexing و Ranking است، اشاره کردیم. وظیفه ربات های خزنده گوگل، سر زدن به وبسایت های سطح اینترنت و فهرست بندی مطالب آن ها شامل HTML، CSS، تصاویر و … است.
یک موتور جستجو برای نشان دادن محتوا به مخاطب، نیاز دارد مخزنی از داده ها از قبل داشته باشد و ایندکس کردن صفحات وبسایت ها برطرف کننده این نیاز است. این موضوع که برخی از صفحات یک وبسایت ایندکس نمی شدند در گذشته آنچنان بحرانی نبود و با رعایت نکاتی مانند سئو داخلی، معرفی به سرچ کنسول، سایت مپ و … می توانستیم وضعیت ایندکس سایت را بهبود ببخشیم اما بخصوص در یک سال اخیر وضعیت ایندکس گوگل بشدت متفاوت شد.
این وضعیت ایندکس نشدن صفحات بخصوص برای وبسایت های تازه کار به معضلی بزرگ تبدیل شده است و به همین دلیل تصمیم داشتیم در این مقاله علاوه بر تشریح مفهوم ایندکس گوگل، به برخی راهکار های تست شده برای افزایش سرعت ایندکس سایت اشاره کنیم.
ایندکس صفحات در گوگل
عقیده ای که متاسفانه به دلیل تازه بودن مفهوم سئو در ایران وجود دارد این است که به محض ایجاد یک وبسایت هنگامی که جستجویی انجام می شود باید آن وبسایت در رتبه های بالا دیده شود اما همین که یک وبسایت در مخزن دیتای گوگل قرار بگیرد؛ هم اکنون دارای اما و اگر های مختلفی است.
چرا ایندکس شدن وبسایت توسط گوگل مهم است؟
برای شروع فرایند سئو و دیده شدن توسط میلیون ها کاربر آنلاین، وبسایت ها ناگزیر باید توسط ربات های گوگل دیده و در صورت مناسب بودن ایندکس شوند و تازه فرایند سئو آغاز می شود.
در اینجا هم بد نیست نگاهی به آمار موتور های جستجو بخصوص گوگل بیاندازیم تا اهمیت ایندکس شدن را بیشتر متوجه شویم: