SHET22
English

انواع ریدایرکت در وب چیست و کدام نوع تغییر مسیر را استفاده کنیم

انواع ریدایرکت در وب چیست و کدام نوع تغییر مسیر را استفاده کنیم

دیر یا زود به این نقطه می‌رسید که می‌خواید آدرس یه صفحه رو عوض کنید، ساختار پیوندهای یکتا رو تغییر بدید، یه بخش از سایت رو حذف کنید یا کلاً دامنه‌تون رو جابه‌جا کنید. و در همه‌ی این موارد، سؤال یکیه: با آدرس‌های قدیمی چه کار کنیم؟

جوابش ریدایرکته. اما انتخاب نوع ریدایرکت و اینکه اصلاً کجا باید ریدایرکت کنید و کجا نباید، تفاوت بین یه انتقال بی‌دردسر و یه افت ترافیک چندماهه‌ست.

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

در این مقاله اول اون سه باور رو کنار می‌ذاریم، بعد انواع ریدایرکت رو دقیق بررسی می‌کنیم، و در نهایت می‌بینیم در هر موقعیت کدوم رو باید استفاده کرد و مهم‌تر از اون، کجا اصلاً نباید ریدایرکت کرد.

آنچه در این مقاله می‌خوانید

ریدایرکت چیست؟

وقتی مرورگر یا ربات موتور جستجو آدرسی رو درخواست می‌کنه، سرور می‌تونه به‌جای محتوا، یه پاسخ بده با این مضمون که «این صفحه اینجا نیست، برو اون آدرس». مرورگر هم به‌صورت خودکار به آدرس جدید می‌ره، بدون اینکه کاربر کاری کنه.

موقعیت‌هایی که بهش نیاز پیدا می‌کنید: تغییر کامل دامنه. تغییر ساختار پیوندهای یکتا در وردپرس. جایگزین کردن یه مقاله‌ی قدیمی با نسخه‌ی جدید. یکسان‌سازی نسخه‌های مختلف آدرس (با و بدون www، با و بدون HTTPS). مهاجرت از یه سیستم مدیریت محتوا به سیستم دیگه. و ادغام چند صفحه‌ی مشابه در یک صفحه.

یک مرور سریع بر کدهای وضعیت

سرور به هر درخواست با یه کد سه‌رقمی جواب می‌ده:

  • سری ۲۰۰: موفقیت. کد ۲۰۰ یعنی صفحه پیدا شد و نمایش داده شد.
  • سری ۳۰۰: تغییر مسیر. همون چیزی که موضوع این مقاله‌ست.
  • سری ۴۰۰: خطا از سمت درخواست‌کننده. مشهورترینش ۴۰۴ یعنی صفحه پیدا نشد.
  • سری ۵۰۰: خطا از سمت سرور.

سه باوری که باید کنار بگذارید

این بخش رو با دقت بخونید، چون تقریباً همه‌ی تصمیم‌گیری‌های بعدی به فهم درست این‌ها بستگی داره.

باور اول: «هر ریدایرکت بخشی از اعتبار را می‌خورد»

قبلا در خیلی از مقالات فارسی گفتن که ریدایرکت ۳۰۱ چیزی حدود ۹۰ تا ۹۹ درصد اعتبار رو منتقل می‌کنه؛ یعنی مقداری از بین می‌ره. این حرف از سال ۲۰۱۶ منسوخ شده. در اون سال گوگل رسماً اعلام کرد که ریدایرکت‌های سری ۳۰۰ دیگه هیچ افت اعتباری ندارن. اون باور قدیمی که هر ریدایرکت حدود پونزده درصد اعتبار رو از بین می‌بره، مربوط به دوره‌ای بود که خیلی وقته تموم شده. پس اگه به‌خاطر ترس از «از دست دادن اعتبار» جلوی تغییرات لازم رو گرفتید، دیگه لازم نیست.

باور دوم: «۳۰۲ اعتبار منتقل نمی‌کند»

این هم درست نیست. گوگل تصریح کرده که اعتبار از طریق ریدایرکت‌های ۳۰۱ و ۳۰۲ منتقل می‌شه.

پس تفاوت واقعی این دو تا چیه؟ در انتخاب آدرس اصلی. گوگل از ریدایرکت به‌عنوان سیگنالی برای تصمیم‌گیری درباره‌ی اینکه کدوم آدرس رو به‌عنوان نسخه‌ی اصلی نگه داره استفاده می‌کنه. با ۳۰۱ می‌گید آدرس جدید اصله؛ با ۳۰۲ می‌گید آدرس قدیمی همچنان اصله و این وضعیت موقتیه.

نتیجه‌ی عملی: اگه برای یه تغییر دائمی از ۳۰۲ استفاده کنید، اعتبار از بین نمی‌ره اما ممکنه گوگل آدرس قدیمی رو در ایندکس نگه داره و سیگنال‌ها بین دو آدرس تقسیم بشن. این هنوز مشکله، فقط نه اون مشکلی که فکر می‌کردید.

باور سوم: «گوگل ریدایرکت نامرتبط را جریمه می‌کند»

متن قدیمی این مقاله می‌گفت گوگل بابت ریدایرکت‌های بی‌مورد «امتیاز کم می‌کند». این توصیف درست نیست و سازوکار واقعی چیز دیگه‌ایه.

وقتی صفحه‌ای رو به صفحه‌ای کاملاً نامرتبط (مثلاً صفحه‌ی اصلی) ریدایرکت می‌کنید، گوگل اون رو به‌عنوان ۴۰۴ نرم در نظر می‌گیره. یعنی با اون آدرس دقیقاً مثل یه صفحه‌ی پیدانشده رفتار می‌کنه، هیچ اعتباری منتقل نمی‌شه و در نهایت از ایندکس خارج می‌شه.

جریمه‌ای در کار نیست، اما نتیجه از نظر عملی همون‌قدر بی‌فایده‌ست. و این نکته پایه‌ی مهم‌ترین قاعده‌ی این مقاله‌ست:

ریدایرکت وقتی کار می‌کند که مقصد، جایگزین واقعی مبدأ باشد.

انواع ریدایرکت

۳۰۱ — انتقال دائمی

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

کِی استفاده کنیم: تغییر دامنه، تغییر ساختار پیوندهای یکتا، انتقال از HTTP به HTTPS، یکسان‌سازی www و بدون www، جایگزینی یه مقاله با نسخه‌ی جدیدتر، و ادغام چند صفحه‌ی مشابه. در نود درصد موارد، این همون چیزیه که لازم دارید.

۳۰۲ — انتقال موقت

می‌گه صفحه فعلاً جای دیگه‌ایه اما آدرس اصلی همینه و برمی‌گردیم.

کِی استفاده کنیم: فقط وقتی واقعاً قصد برگشت دارید. مثلاً تست A/B، صفحه‌ی موقت در دست تعمیر، یا کمپین فصلی که بعدش آدرس اصلی برمی‌گرده.

یه هشدار مهم: خیلی از سیستم‌ها و افزونه‌ها به‌صورت پیش‌فرض ۳۰۲ تولید می‌کنن. اگه ریدایرکت دائمی ساختید، حتماً کد وضعیتش رو بررسی کنید که واقعاً ۳۰۱ باشه.

۳۰۷ — انتقال موقت با حفظ روش درخواست

اینجا یه موضوع مهم هست. قبلا میگفتن که ۳۰۷ «نسخه‌ی مدرن ۳۰۲» هست و برای سئو بهتره. این توصیف دقیق نیست.

تفاوت واقعی این دو تا به سئو ربطی نداره؛ به روش درخواست HTTP مربوطه. در گذشته وقتی مرورگر با ۳۰۲ مواجه می‌شد، درخواست POST رو به GET تبدیل می‌کرد. کد ۳۰۷ ساخته شد تا این اتفاق نیفته و روش درخواست حفظ بشه. یعنی ۳۰۷ برای فرم‌ها و درخواست‌های POST اهمیت داره، نه برای انتقال صفحات محتوایی. از نظر سئو، گوگل ۳۰۲ و ۳۰۷ را یکسان می‌بیند و هر دو سیگنال «موقت» می‌دن.

یه نکته‌ی جانبی که باعث سردرگمی می‌شه: گاهی در ابزار توسعه‌دهنده‌ی مرورگر کد ۳۰۷ می‌بینید در حالی که خودتون چنین ریدایرکتی نساختید. این معمولاً ریدایرکت داخلی مرورگره که به‌خاطر تنظیمات امنیتی HTTPS انجام می‌شه و ربطی به سرور شما نداره.

۳۰۸ — انتقال دائمی با حفظ روش درخواست

۳۰۸ رابطه‌ش با ۳۰۱ دقیقاً مثل رابطه‌ی ۳۰۷ با ۳۰۲ هست؛ دائمیه و روش درخواست رو حفظ می‌کنه. از نظر سئو با ۳۰۱ یکسان عمل می‌کنه. برای انتقال صفحات معمولی، ۳۰۱ همچنان انتخاب رایج و امنیه؛ ۳۰۸ بیشتر در سناریوهای فنی و API به کار میاد.

۴۱۰ — حذف شده

این ریدایرکت نیست، اما ابزار مهمیه که کم استفاده می‌شه.

کد ۴۱۰ به گوگل می‌گه این صفحه عمداً و برای همیشه حذف شده و قرار نیست برگرده. تفاوتش با ۴۰۴ اینه که ۴۰۴ یعنی «پیدا نشد» (شاید موقتی باشه) اما ۴۱۰ یعنی «حذف شده، دنبالش نگرد». در عمل گوگل صفحات ۴۱۰ رو کمی سریع‌تر از ایندکس خارج می‌کنه.

کِی استفاده کنیم: وقتی محتوایی رو حذف کردید و هیچ جایگزین واقعی‌ای براش ندارید. مثلاً محصولی که دیگه تولید نمی‌شه، یا مقاله‌ای که کلاً منسوخ شده.

۴۵۱ — غیرقابل دسترس به دلایل قانونی

وقتی محتوا به‌خاطر الزام قانونی یا دستور قضایی حذف شده. کاربرد محدودی داره و بیشتر در سطح بین‌المللی استفاده می‌شه.

جدول تصمیم‌گیری

وضعیتکد مناسب
تغییر دائمی آدرس با صفحه جایگزین معادل۳۰۱
تغییر دامنه۳۰۱
انتقال HTTP به HTTPS۳۰۱
یکسان‌سازی www و بدون www۳۰۱
تست موقت یا صفحه در دست تعمیر۳۰۲ یا ۳۰۷
حفظ روش درخواست در انتقال موقت۳۰۷
حفظ روش درخواست در انتقال دائمی۳۰۸
حذف دائمی بدون جایگزین۴۱۰
حذف به دلیل قانونی۴۵۱
صفحه‌ای که هیچ‌وقت وجود نداشته۴۰۴ (بدون اقدام)

کجا نباید ریدایرکت کنیم؟

این بخش شاید مهم‌ترین قسمت مقاله باشه، چون توصیه‌ی رایج در این حوزه معمولاً برعکسه. قبلا بر این باو بودیم که «برای رفع خطاهای ۴۰۴ حتماً ریدایرکت ۳۰۱ به مرتبط‌ترین صفحه ایجاد کنید». این توصیه در بیشتر موارد اشتباهه.

۴۰۴ خطا نیست؛ یه پاسخ بجا هست. اگه صفحه‌ای واقعاً وجود نداره، درست‌ترین کار همینه که سرور بگه وجود نداره. وجود تعدادی ۴۰۴ در هر سایتی طبیعیه و به سئو آسیب نمی‌زنه.

موقعیت‌هایی که نباید ریدایرکت کنید:

  • وقتی جایگزین واقعی ندارید. ریدایرکت ده‌ها مقاله‌ی حذف‌شده به صفحه‌ی اصلی، همون چیزیه که به ۴۰۴ نرم تبدیل می‌شه. هیچ اعتباری منتقل نمی‌شه و کاربر هم گیج می‌شه.
  • وقتی آدرس درخواستی اصلاً هیچ‌وقت وجود نداشته. آدرس‌های اشتباه، لینک‌های خراب سایت‌های دیگه، درخواست‌های ربات‌ها. این‌ها باید ۴۰۴ بگیرن.
  • وقتی محتوا کاملاً منسوخ شده. ۴۱۰ گزینه‌ی درست‌تریه.

اگه صفحه‌ای سال‌هاست حذف شده و از ایندکس خارج شده، اضافه کردن ریدایرکت در این مرحله معمولاً فایده‌ای نداره و باز هم به‌عنوان ۴۰۴ نرم دیده می‌شه. در چنین حالتی، بهتره سراغ سایت‌هایی برید که به آدرس قدیمی لینک دادن و ازشون بخواید لینک رو به‌روز کنن.

پنج اشتباه رایج

  • زنجیره‌ی ریدایرکت. آدرس الف به ب، ب به ج، ج به د. هر حلقه سرعت رو کم می‌کنه و بودجه‌ی خزش رو هدر می‌ده. قاعده: همیشه یک پرش. اگه زنجیره‌ی قدیمی دارید، همه رو مستقیم به مقصد نهایی وصل کنید.
  • حلقه‌ی بی‌پایان. الف به ب و ب دوباره به الف. نتیجه‌ش صفحه‌ی کاملاً از کار افتاده‌ست. معمولاً موقع تنظیم هم‌زمان قوانین HTTPS و www اتفاق می‌افته.
  • ریدایرکت انبوه به صفحه‌ی اصلی. رایج‌ترین اشتباه در مهاجرت سایت. نگاشت باید یک‌به‌یک باشه: هر صفحه به معادل واقعی خودش.
  • استفاده از meta refresh یا جاوااسکریپت. ریدایرکت باید سمت سرور انجام بشه. روش‌های سمت مرورگر کندترن، قابل اتکا نیستن و گوگل هم دیرتر پردازششون می‌کنه.
  • حذف زودهنگام ریدایرکت‌ها. ریدایرکت‌ها رو حداقل یک سال نگه دارید و ترجیحاً برای همیشه. لینک‌های خارجی و بوکمارک‌های کاربران خیلی دیر به‌روز می‌شن.

ساخت ریدایرکت در وردپرس

با افزونه

ساده‌ترین راه. افزونه‌ی رایگان Redirection شناخته‌شده‌ترین گزینه‌ست و علاوه بر ساخت ریدایرکت، خطاهای ۴۰۴ سایت رو هم ثبت می‌کنه تا ببینید کاربرها دنبال چه آدرس‌هایی می‌گردن. توی مقاله «تغییر مسیر صفحات 404 در وردپرس با افزونه Redirection» هم میتونید آموزش ریدایرکت با این افزونه‌ رو ببینید.

افزونه‌ Redirection
افزونه‌ Redirection

افزونه‌های سئو مثل Rank Math هم بخش ریدایرکت دارن؛ اگه ازشون استفاده می‌کنید، نیازی به افزونه‌ی جداگانه ندارید.

افزونه رنک مث
افزونه رنک مث

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

در سطح سرور

اگه وب‌سرور شما آپاچی یا لایت‌اسپیده، می‌تونید در فایل .htaccess قوانین رو تعریف کنید. نمونه‌ی انتقال به HTTPS:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

و نمونه‌ی ریدایرکت یک صفحه:

Redirect 301 /old-page/ https://example.com/new-page/

دو هشدار:

اول اگه وب‌سرورتون Nginx باشه، فایل .htaccess اصلاً خونده نمی‌شه و قوانین باید در پیکربندی سرور تعریف بشن. و قبل از هر ویرایشی، حتماً از این فایل نسخه‌ی پشتیبان بگیرید؛ یه اشتباه کوچیک کل سایت رو با خطای ۵۰۰ از دسترس خارج می‌کنه.

دوم اینکه بعضی افزونه‌ها (از جمله افزونه‌های کش) قوانین خودشون رو در همین فایل درج می‌کنن. اما افزونه رخش نوع وب‌سرور رو تشخیص می‌ده و قوانین لازم رو خودکار تولید می‌کنه! پس قوانین دستی خودتون رو خارج از بلوک نشان‌دار افزونه‌ها بنویسید تا با به‌روزرسانی تنظیمات پاک نشن.

افزونه رخش
افزونه رخش

چطور مطمئن شویم درست کار می‌کند؟

بعد از ساخت هر ریدایرکت، کد وضعیت واقعی رو بررسی کنید. در ابزار توسعه‌دهنده‌ی مرورگر، تب Network، آدرس قدیمی رو باز کنید و ببینید کد پاسخ ۳۰۱ است یا ۳۰۲. ابزارهای آنلاین بررسی کد وضعیت هم برای این کار هستن. این تست رو جدی بگیرید؛ خیلی وقت‌ها آدم فکر می‌کنه ۳۰۱ ساخته اما در عمل ۳۰۲ تولید شده.

مهاجرت دامنه؛ چک‌لیست

اگه قراره کل سایت رو به دامنه‌ی جدید منتقل کنید، این ترتیب رو رعایت کنید:

  • فهرست کامل آدرس‌های فعلی را تهیه کرده‌ام (از سرچ کنسول، نقشه سایت و ابزار خزش)
  • برای هر آدرس قدیمی، معادل واقعی در سایت جدید مشخص شده
  • آدرس‌هایی که معادل ندارند، عمداً ۴۱۰ تعریف شده‌اند
  • همه ریدایرکت‌ها ۳۰۱ و سمت سرور هستند
  • هیچ زنجیره‌ای وجود ندارد؛ همه یک پرش
  • لینک‌های داخلی سایت به آدرس‌های جدید به‌روز شده‌اند
  • تگ canonical، نقشه سایت و داده‌های ساختاریافته آدرس جدید را نشان می‌دهند
  • دامنه جدید در سرچ کنسول ثبت و ابزار تغییر آدرس استفاده شده
  • ریدایرکت‌ها حداقل یک سال باقی می‌مانند
  • ترافیک و خطاها در هفته‌های اول روزانه بررسی می‌شود

سوالات متداول

ریدایرکت ۳۰۱ باعث افت رتبه می‌شود؟

به‌خودی‌خود نه. گوگل ریدایرکت رو جریمه نمی‌کنه و از سال ۲۰۱۶ افت اعتباری هم در کار نیست. افت رتبه معمولاً وقتی اتفاق می‌افته که مقصد ریدایرکت معادل واقعی مبدأ نباشه، یا زنجیره‌ی ریدایرکت ساخته شده باشه.

چقدر طول می‌کشد گوگل ریدایرکت را تشخیص دهد؟

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

ریدایرکت‌ها را چه مدت نگه دارم؟

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

تفاوت ریدایرکت با تگ canonical چیست؟

ریدایرکت کاربر رو فیزیکاً به صفحه‌ی دیگه می‌بره و آدرس قدیمی دیگه قابل دسترسی نیست. تگ canonical فقط یه راهنما برای موتور جستجوئه و هر دو صفحه در دسترس می‌مونن. برای انتقال دائمی، ریدایرکت گزینه‌ی درسته.

همه صفحات قدیمی را به صفحه اصلی ریدایرکت کنم؟

نه. این کار به ۴۰۴ نرم تبدیل می‌شه، اعتباری منتقل نمی‌کنه و تجربه‌ی کاربر رو هم خراب می‌کنه. یا معادل واقعی پیدا کنید یا ۴۱۰ بدید.

تعداد زیاد ریدایرکت به سایت آسیب می‌زند؟

تعداد به‌تنهایی مشکل‌ساز نیست؛ سایت‌های بزرگ هزاران ریدایرکت دارن. چیزی که مشکل می‌سازه زنجیره و حلقه‌ست، نه تعداد.

در وردپرس ساختار پیوندهای یکتا را عوض کنم چه می‌شود؟

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

جمع‌بندی

ریدایرکت ابزار ساده‌ایه که سوءتفاهم‌های زیادی دورش شکل گرفته. سه تا نکته رو یادتون باشه:

اول، ترس از «هدر رفتن اعتبار» دیگه موضوعیت نداره؛ ریدایرکت‌های سری ۳۰۰ سال‌هاست افت اعتباری ندارن.
دوم، چیزی که واقعاً اهمیت داره مرتبط بودن مقصده. ریدایرکت به صفحه‌ی نامرتبط، به‌عنوان ۴۰۴ نرم دیده می‌شه و هیچ چیزی منتقل نمی‌کنه.
سوم، همه‌جا نباید ریدایرکت کرد. اگه جایگزین واقعی وجود نداره، ۴۱۰ یا حتی ۴۰۴ ساده، انتخاب درست‌تریه.

در عمل، برای تقریباً همه‌ی تغییرات دائمی از ۳۰۱ استفاده کنید، برای موارد واقعاً موقت از ۳۰۲ یا ۳۰۷، زنجیره نسازید، و بعد از هر تغییر کد وضعیت واقعی رو تست کنید. همین چند قاعده جلوی اکثر مشکلات رو می‌گیره. موفق باشید. 🙂

نظر شما در این مورد چیه؟

  1. U330368۲۰ فروردین ۱۴۰۳

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

    بعد از کلیک روی صفحه checkout به ادرس زیر برمیگردم
    https://salinpet.com/?back=https%3A%2F%2Fsalinpet.com%2Fcheckout

    • U353389۲۵ شهریور ۱۴۰۳

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

  2. U326830۲۶ بهمن ۱۴۰۲

    سلام ببخشید من یه سایت داشتم بعد اونو حذف کردم کلا و دوباره یه سایت از اول با موضوع متفاوت ساختم و الان مقاله های اون سایت داره دوباره توی گوگل نمایش داده میشه میشه راهنمایی کنید

  3. U328258۲۹ شهریور ۱۴۰۲

    سلام کد خطا -۹چیست

    • رضا راد۲۹ شهریور ۱۴۰۲

      سلام توی چه بخشی این خطا رو دریافت می کنید.

  4. U320712۴ بهمن ۱۴۰۱

    سلام وخسته نباشید .خواستم بدونم با مانیتور ۴۰۴ در رنگ مث میشه ریدایرکت کرد

    • رضا راد۴ بهمن ۱۴۰۱

      درود بر شما با مانیتور ۴۰۴ خیر اما رنک مث خودش داره این بخش رو

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

در حال بارگذاری...

هر سوالی دارید بپرسید.پاسخگوی شما هستیم.