ریدایرکت (Redirect) روشی برای انتقال کاربران از یک آدرس به آدرس جدید است. هدایت URL تکنیکی است که توسط شبکه جهانی وب برای ایجاد بیش از یک آدرس URL برای یک صفحه وب، استفاده میشود. در واقع ممکن است شما چند آدرس مختلف و کاملا متفاوت داشته باشید، اما وقتی روی هر کدام از آنها کلیک میکنید به یک صفحه یکسان هدایت میشوید.
البته زمانی که یک دامنه به دامنه دیگری هدایت شود، میگوییم Domain Redirection یا Domain Forwarding اتفاق افتاده است.
در این مقاله با مطالب زیر آشنا میشوید:
Toggleچرا ریدایرکت انجام میشود؟
یک URL به چند دلیل ریدارکت میشود. گاهی از این تکنیک برای جلوگیری از لینکهای خراب که هنگام جابجایی صفحات تشکیل میشوند استفاده میکنیم. گاهی برای کوتاه کردن URL.
در مواردی به این دلیل از ریدایرکت کمک میگیریم تا به صاحب یک سایت امکان دهیم چندین نام دامنه برای یک وبسایت داشته باشد. همچنین این امکان باعث میشود تا کاربران سایت شما پیمایش راحتتری داشته باشند و گاهی اوقات به حفظ حریم خصوصی آنها هم کمک میکند.
متاسفانه ریدایرکت فقط مزیت و خوبی ندارد! گاهی از آن برای اهداف غیرقانونی مانند حملات فیشینگ و حتی برای دستکاری موتورهای جستجو استفاده میشود.
انواع مختلف ریدایرکت
ریدایرکتها مدلهای مختلفی دارند. در ادامه این مقاله، برخی از متداولترین انواع ریدایرکتها را با هم بررسی میکنیم.
-
ریدایرکت 301
ریدایرکت 301 یک ریدایرکت دائمی است که به عنوان کارآمدترین، محبوبترین و راحتترین روش هدایت کردن یک صفحه وب در نظر گرفته میشود. این نوع ریدایرکت زمانی استفاده میشود که صفحه وبسایت شما برای همیشه به آدرس دیگری منتقل شده باشد. صفحهای که باید توسط موتورهای جستجو ایندکس شود تا تمام ترافیک موجود در URL قدیمی، به URL جدید منتقل شود.
این ریدایرکت معمولا در شرایط زیر استفاده میشود:
- وقتی بهطور ناگهانی میخواهید ترافیک سایت قدیمی خود را به دامنه جدید انتقال دهید.
- وقتی افراد از URLهای مختلف برای دسترسی به سایت شما استفاده میکنند، میتوانید یک URL دلخواه انتخاب کنید و سپس از 301 برای ریدایرکت و ارسال همه ترافیکهای موجود به URL دلخواه خود استفاده کنید.
- وقتی میخواهید مطمئن شوید که لینکهای URLهای قدیمی و منسوخ شده، پس از ادغام دو وبسایت به صفحات مربوطه ریدایرکت میشوند.
لطفا توجه داشته باشید که به محض انتقال یک صفحه وب از یک وبسایت به وبسایت دیگر، پردازش ریدایرکت 301 برای موتورهای جستجو مدتی طول خواهد کشید. درک ایده و رتبهبندی اعتبار به صفحه جدید با همه رنکینگها کار زمانبری است. اگر رباتهای موتور جستجو به ندرت به سایت ارائه شده مراجعه کنند یا URL جدید بهطور موثر ریدایرکت نشود، این کار ممکن است طولانیتر شود.
-
ریدایرکت 302
هنگامی که URL خاصی بهطور موقت به مکان دیگری تغییر کند، از نوع موقت ریدایرکت 302 استفاده میشود. نحوه کار کردن یک URL توسط پروتکل خاصی به نام Hypertext Transfer Protocol معروف به HTTP که اینترنت بر روی آن اجرا میشود، تعیین میشود. دو نسخه اصلی از این پروتکل وجود دارد: 1.0 و 1.1. در نسخه اول، کد وضعیت 302 به معنی «بهطور موقت منتقل شده» است. نسخه 1.1 این تغییر را به معنی «یافت شده» ارائه میدهد.
این ریدایرکت معمولا در شرایط زیر استفاده میشود:
- وقتی صفحه شما در حال تغییرات یا به روز رسانی است و میخواهید به طور موقت ترافیک آن صفحه را به صفحه دیگری هدایت کنید.
- هنگامی که کاربران را به صفحه دیگری هدایت میکنید اما لازم است URL اصلی خود را در ایندکس نگه دارید.
- وقتی محتوای شما در یک URL قرار دارد، اما شما لینکهایی را با یک URL دیگر تبلیغ میکنید.
-
ریدایرکت 303
این ریدایرکت به مشتری میگوید که یک منبع بهطور موقت در مکان دیگری در دسترس است و به کلاینت دستور میدهد که درخواست GET را با URL جدید صادر کند، صرف نظر از اینکه کدام روش درخواست در ابتدا استفاده شده است.
-
ریدایرکت 307
جانشین ریدایرکت 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 را درک میکنند.
-
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 اضافی نیاز دارد.