ریدایرکت چیست و چه انواعی دارد؟

0

‌ ریدایرکت (Redirect) روشی برای انتقال کاربران از یک آدرس به آدرس جدید است. هدایت URL تکنیکی است که توسط شبکه جهانی وب برای ایجاد بیش از یک آدرس URL برای یک صفحه وب، استفاده‌ می‌شود. در واقع ممکن است شما چند آدرس مختلف و کاملا متفاوت داشته باشید، اما وقتی روی هر کدام از آن‌ها کلیک می‌کنید به یک صفحه یکسان هدایت می‌شوید.

البته زمانی که یک دامنه به دامنه دیگری هدایت‌ ‌شود، می‌گوییم Domain Redirection یا Domain Forwarding اتفاق افتاده است.

چرا ‌ریدایرکت انجام‌ می‌شود؟

یک URL به چند دلیل ریدارکت می‌شود. گاهی از این تکنیک برای جلوگیری از لینک‌های خراب که هنگام جابجایی صفحات تشکیل‌ می‌شوند استفاده می‌کنیم. گاهی برای کوتاه کردن URL.

در مواردی به این دلیل از ریدایرکت کمک می‌گیریم تا به صاحب یک سایت امکان دهیم چندین نام دامنه برای یک وب‌سایت داشته باشد. همچنین این امکان باعث می‌شود تا کاربران سایت شما پیمایش راحت‌تری داشته باشند و گاهی اوقات به حفظ حریم خصوصی آن‌ها هم کمک می‎کند.

متاسفانه ریدایرکت فقط مزیت و خوبی ندارد! گاهی از ‌آن برای اهداف غیرقانونی مانند حملات فیشینگ و حتی برای دستکاری موتورهای جستجو استفاده‌ می‌شود.

انواع مختلف ریدایرکت

ریدایرکت‌ها مدل‌های مختلفی دارند. در ادامه این مقاله، برخی از متداول‎ترین انواع ‌ریدایرکت‌ها را با هم بررسی می‌کنیم.

 ریدایرکت 301 (یعنی این صفحه به صورت دائمی منتقل شده است)

‌ریدایرکت 301 یک ‌ریدایرکت دائمی است که به عنوان کارآمدترین، محبوب‌ترین و راحت‎ترین روش هدایت کردن یک صفحه وب در نظر گرفته‌ می‌شود. این نوع ‌ریدایرکت زمانی استفاده‌ می‌شود که صفحه وب‌سایت شما برای همیشه به آدرس دیگری منتقل شده باشد. صفحه‌ای که باید توسط موتورهای جستجو ایندکس شود تا تمام ترافیک موجود در URL قدیمی، به URL جدید منتقل شود.

این ‌ریدایرکت معمولا در شرایط زیر استفاده‌ می‌شود:

  • وقتی‌ به‌‌طور ناگهانی می‌خواهید ترافیک سایت قدیمی خود را به دامنه جدید انتقال دهید.
  • وقتی افراد از URL‌های مختلف برای دسترسی به سایت شما استفاده‌ می‌کنند،‌ می‌توانید یک URL دلخواه انتخاب کنید و سپس از 301 برای ریدایرکت و ارسال همه ترافیک‌های موجود به URL دلخواه خود استفاده کنید.
  • وقتی‌ می‌خواهید مطمئن شوید که لینک‌های URLهای قدیمی و منسوخ شده، پس از ادغام دو وب‌سایت به صفحات مربوطه ریدایرکت می‌شوند.

لطفا توجه داشته باشید که به محض انتقال یک صفحه وب از یک وب‎سایت به وب‏سایت دیگر، پردازش ‌ریدایرکت 301 برای موتورهای جستجو مدتی طول خواهد کشید. درک ایده و رتبه‏بندی اعتبار به صفحه جدید با همه رنکینگ‌ها کار زمان‌بری است. اگر ربات‌های موتور جستجو به ندرت به سایت ارائه شده مراجعه کنند یا URL جدید به‎طور موثر ریدایرکت نشود، این کار ممکن است طولانی‌تر شود.


در بلاگ تریبون بخوانید: اهمیت لینک‌سازی داخلی


ریدایرکت 302 (یعنی این صفحه یافت شد (HTTP 1.1) / به‎طور موقت منتقل شد (HTTP 1.0))

هنگامی که URL خاصی به‌طور موقت به مکان دیگری تغییر کند، از نوع موقت ‌ریدایرکت 302 استفاده‌ می‌شود. نحوه کار کردن یک URL توسط پروتکل خاصی به نام Hypertext Transfer Protocol معروف به HTTP که اینترنت بر روی آن اجرا‌ می‌شود، تعیین‌ می‌شود. دو نسخه اصلی از این پروتکل وجود دارد: 1.0 و 1.1. در نسخه اول، کد وضعیت 302 به معنی «به‎طور موقت منتقل شده» است. نسخه 1.1 این تغییر را به معنی «یافت شده» ارائه می‎دهد.

این ‌ریدایرکت معمولا در شرایط زیر استفاده‌ می‌شود:

  • وقتی صفحه شما در حال تغییرات یا به روز رسانی است و‌ می‌خواهید به طور موقت ترافیک آن صفحه را به صفحه دیگری هدایت کنید.
  • هنگامی که کاربران را به صفحه دیگری هدایت‌ می‌کنید اما لازم است URL اصلی خود را در ایندکس نگه دارید.
  • وقتی محتوای شما در یک URL قرار دارد، اما شما لینک‌هایی را با یک URL دیگر تبلیغ‌ می‌کنید.

ریدایرکت 303

این ریدایرکت به مشتری می‏گوید که یک منبع به‎طور موقت در مکان دیگری در دسترس است و به کلاینت دستور می‏دهد که درخواست GET را با URL جدید صادر کند، صرف نظر از اینکه کدام روش درخواست در ابتدا استفاده شده است.

ریدایرکت 307 (یعنی این صفحه به طور موقت منتقل شده است (فقط HTTP 1.1))

جانشین ‌ریدایرکت 302، ریدایرکت HTTP 1.1 307 است. این روش دقیقا همان روشی است که برای ‌ریدایرکت 302 در نظر گرفته شده است و باید در حالت ایده‌آل به جای آن استفاده شود.

تنها استثنا زمانی است که محتوا به دلایلی فقط به طور موقت منتقل شده باشد، این دلایل می‌تواند شامل تعمیر و نگهداری (صفحات در دست ساخت) باشد، یا اینکه سازگاری سرور با نسخه 1.1 توسط موتورهای جستجو با موفقیت شناسایی شده است. از آنجا که نمی‌توانیم تعیین کنیم موتور جستجو یک صفحه را سازگار تشخیص داده است یا خیر، توصیه‌ می‌شود از یک ‌ریدایرکت 302 برای محتوای منتقل شده به طور موقت استفاده شود.

ریدایرکت دائمی 308

در صورت انتقال دائمی یک صفحه به آدرسی جدید، به جز ریدایرکت از HTTP 301 از ریدایرکت 308 هم استفاده می‎شود. هنگام تغییر ساختار یک وب‌سایت یا انتقال آن از HTTP بهHTTPS ، انجام ریدایرکت دائمی بهترین گزینه برای شماست.

تفاوت ریدایرکت 301 و 308 در جزئیات آن‌هاست. اگر کاربر ریدایرکت 308 را مشاهده کند، باید دقیقا همان درخواست را در مکان جدید تکرار کند، در حالی که همان کاربر در صورت ریدایرکت 301، ممکن است درخواست POST را به درخواست GET تغییر دهد.

این یعنی اگر POST با بدنه (body) ساخته شود و سرور کد وضعیت 308 را بازگرداند، کاربر باید یک درخواست POST با همان body را در مکان جدید انجام دهد.

مشکلی که در کد وضعیت HTTP 308 وجود دارد این است که نسبتا جدید است (در آوریل ۲۰۱۵ در RFC 7538 ارائه شد) بنابراین توسط همه مرورگرها و کرالرها پشتیبانی نمی‎شود. مثلا اینترنت اکسپلورر ۱۱ در ویندوز ۷ و ۸ کدهای وضعیت 308 را نمی‎فهمد و به جای دنبال کردن ریدایرکت، به سادگی یک صفحه خالی را نمایش می دهد.

با توجه به پشتیبانی محدود از ریدایرکت 308، توصیه می‎شود همیشه ریدایرکت‌هایتان را با 301 انجام دهید، مگر اینکه بخواهید درخواست POST به درستی هدایت شود و مطمئن هستید که همه کلاینت‌های شما کد پاسخ 308 را درک می‌کنند.


در بلاگ تریبون بخوانید: بودجه خزش (Crawl Budget) چیست؟


Meta Refresh

وقتی ریدایرکت به جای اینکه در سطح سرور انجام شود، در سطح صفحه اجرا‌ می‌شود، می‌گوییم Meta Refresh ایجاد شده است. جالب اینجاست که این یک روش ‌سئویی توصیه شده نیست؛ زیرا معمولا کند است و قابلیت استفاده از آن بسیار ضعیف است. شمارش معکوس ۵ ثانیه‌ای بیشتر اوقات با meta refresh همراه است. این شمارش معکوس اغلب با متن «اگر تا ۵ ثانیه دیگر به صفحه جدید هدایت نشدید، اینجا کلیک کنید» در صفحات وب‌سایت‌های مختلف مشاهده می‎شود.

بهترین روش ریدایرکت برای سئو

ریدایرکت از یک URL به آدرس دیگر، یک روش معمول است. اما بزرگترین اشتباه در طی این فرآیند این است که تصور کنیم طراحی مجدد وب‌سایت‌مان خیلی خوب و عالی کار‌ می‌کند بدون اینکه زیاد به سئو فکر کنیم. اگر به فکر سئوی نباشید، رتبه‎بندی وب‌سایت‌ شما می‌تواند  با آسیب‌های جدی و نامطلوبی مواجه شود.

از دیدگاه ‌گوگل، URL‌های مختلف به معنای صفحات مختلف هستند. بنابراین به جای گرفتن اعتبار برای صفحه‌‌ای که از  قدیم داشته‌اید و تمام اعتباراتی که در طول این سال‌ها برای همه لینک‌هایتان جمع کرده‌اید، یک صفحه جدید ایجاد شده است.

در این شرایط گوگل (و سایر موتورهای جستجو) این صفحه را به عنوان صفحه تازه بررسی می‎کنند و بر این اساس، جایگاهی را به آن اختصاص‌ می‌دهند. وقتی گوگل هنگام بررسی صفحه قبلی با خطای «404 Page Not Found» مواجه‌ می‌شود، فرض‌ می‌کند که صفحه حذف شده است و به همین دلیل ارزش آن از بین‌ می‌رود. وقتی این اتفاق برای هر کدام از صفحات از سایت شما بی‌افتد، نتیجه آن‌ می‌تواند برای کسب‌وکارتان ویران کننده باشد.

پیشگیری کردن از این اتفاق خیلی آسان است؛ فقط کافی‌ست از 301 Redirect استفاده کنید. کد 301 (به این معنی که این صفحه به‌طور دائمی منتقل شد) به نرم‌افزار درخواست‎کننده‌ می‌گوید که محتوای یک URL به URL دیگری منتقل شده است. وقتی موتور جستجو کد 301 را مشاهده‌ می‌کند، ‌سئوی اختصاص داده شده را از URL موجود گرفته و به URL جدید منتقل‌ خواهد کرد.

این کار همچنین از خطای «Page Not Found» هنگام جستجوی صفحه قدیمی جلوگیری‌ می‌کند. درعوض، این صفحات به صورت یکپارچه به صفحه جدید هدایت‌ می‌شوند.

هزینه ریدایرکت

جنبه دیگری که هنگام استفاده از ریدایرکت HTTP باید در نظر گرفته شود، تاثیر عملکرد است. هر ریدایرکت نیاز به یک درخواست HTTP اضافی به سرور دارد. این کار به‎طور معمول چند صد میلی‎ثانیه به زمان بارگذاری یا لود صفحه اضافه می‌کند. این اتفاق از دیدگاه تجربه کاربر بسیار بد است و باعث ایجاد فشار غیرضروری روی سرور وب می‎شود. برای انجام این کار باید از زنجیره‏های ریدایرکت که در آن یک ریدایرکت، منجر به ریدایرکت دیگری می‌شود، خودداری کنید.

نتیجه‌گیری

در این مقاله ما با مفهوم ریدایرکت و انواع آن آشنا شدیم. همچنین دیدیم ۵ نوع ریدایرکت مختلف وجود دارد که هر کدام از آن‌ها را می‌توان در جای مناسب خود به کار بگیرید.

هنگامی که یک صفحه یا فایل به‎‌طور دائم از طریق یک URL جدید در دسترس است، از هدایت 301 استفاده کنید. این کار به موتورهای جستجو کمک می‎کند تا بدون آسیب زدن به جایگاه صفحات شما، سئوی صفحه قبلی را به صفحه جدید اختصاص دهند.

وقتی یک صفحه فقط به طور موقت در یک URL دیگر موجود است و نمی‎خواهید موتورهای جستجو این URL را جایگزین URL اصلی کنند، از ریدایرکت 302 استفاده کنید.

از ریدایرکت‌های 303، 307 و 308 فقط در صورت نیاز واقعی و دانستن اینکه دقیقا چه کاری انجام می‎دهید، استفاده کنید.

همچنین فراموش نکنید که تعداد ریدایرکت‌ها را به حداقل برسانید، زیرا هر ریدایرکت به یک درخواست HTTP اضافی نیاز دارد.

دیدگاه خود را ثبت کنید

آدرس ایمیل شما منتشر نخواهد شد.