ریدایرکت 301 یعنی به مرورگر و گوگل بگی «این صفحه برای همیشه رفته یه آدرس جدید». هر کی آدرس قدیمی رو باز کنه، خودکار میره سراغ آدرس جدید و گوگل هم کمکم آدرس جدید رو جای قدیمی توی نتایج نشون میده.
اگه آدرس یه صفحه رو عوض کردی، دو تا مطلب رو با هم ادغام کردی، سایت رو بردی روی https یا دامنه رو تغییر دادی، ریدایرکت 301 (Redirect 301) همون ابزاریه که جلوی خطای ۴۰۴ و هدر رفتن بکلینکهات رو میگیره.
توی این مطلب با هم میبینیم ریدایرکت ۳۰۱ دقیقاً چیه، چه فرقی با ۳۰۲ داره، کِی باید ازش استفاده کنی و چطور توی وردپرس، هم با افزونه و هم با فایل .htaccess، درست پیادهش کنی.
مطالب صفحه
ریدایرکت ۳۰۱ چیست؟
وقتی مرورگر یا ربات گوگل یه صفحه رو درخواست میکنه، سرور همراه جوابش یه «کد وضعیت» هم میفرسته. کد ۲۰۰ یعنی «همهچی مرتبه»، کد ۴۰۴ یعنی «صفحه پیدا نشد» و کدهای سری ۳xx یعنی «این صفحه رو یه جای دیگه پیدا میکنی».
کد ۳۰۱ با عنوان Moved Permanently یعنی انتقال دائمی. سرور توی جوابش آدرس جدید رو هم اعلام میکنه و مرورگر بلافاصله میره اونجا. کاربر معمولاً اصلاً متوجه این جابهجایی نمیشه.
گوگل با ریدایرکت ۳۰۱ چی کار میکنه؟
طبق مستندات رسمی گوگل، ریدایرکت دائمی (۳۰۱ و ۳۰۸) یه سیگنال قویه که نشون میده آدرس مقصد باید آدرس اصلی (Canonical) باشه. یعنی گوگل کمکم آدرس قدیمی رو از نتایج کنار میذاره و آدرس جدید رو ایندکس میکنه.
چرا ریدایرکت سمت سرور بهتره؟
ریدایرکت رو میشه با سرور، با متا تگ refresh یا با جاوااسکریپت انجام داد. گوگل صراحتاً توصیه میکنه برای انتقال دائمی تا جای ممکن از ریدایرکت سمت سرور استفاده کنی، چون مطمئنترین روشه. ریدایرکت جاوااسکریپتی فقط وقتی منطقیه که هیچ راه دیگهای نداری؛ چون اگه رندر صفحه به مشکل بخوره، ممکنه گوگل اصلاً ریدایرکت رو نبینه.
تفاوت ریدایرکت ۳۰۱ و ۳۰۲
سادهترین تفاوتش توی یه کلمهست: دائمی یا موقت. با ۳۰۱ به گوگل میگی «آدرس قبلی رو فراموش کن». با ۳۰۲ میگی «فعلاً برو اینجا، ولی آدرس اصلی همون قبلیه».
واسه همین گوگل توی ریدایرکت موقت، آدرس مقصد رو بهعنوان نسخه اصلی در نظر نمیگیره و ممکنه آدرس مبدأ همچنان توی نتایج جستجو بمونه. دو تا کد کمتر شناختهشده هم داریم: ۳۰۸ که نسخه دائمیه و ۳۰۷ که نسخه موقته. فرق فنیشون اینه که روش درخواست (مثلاً POST) رو عوض نمیکنن.
| کد | نوع | برداشت گوگل | کاربرد رایج |
|---|---|---|---|
| 301 | دائمی | سیگنال قوی؛ مقصد میشه آدرس اصلی | عوض کردن آدرس صفحه، ادغام مطالب، انتقال دامنه، http به https |
| 308 | دائمی | مثل ۳۰۱ | انتقال دائمی وقتی روش درخواست باید حفظ بشه |
| 302 | موقت | سیگنال ضعیف؛ ممکنه آدرس مبدأ توی نتایج بمونه | کمپین کوتاهمدت، صفحهای که فعلاً در دسترس نیست |
| 307 | موقت | مثل ۳۰۲ | ریدایرکت موقت با حفظ روش درخواست |
یه اشتباه رایج
خیلی از سایتها وقتی آدرس صفحه رو برای همیشه عوض میکنن، ناخواسته از ۳۰۲ استفاده میکنن؛ چون پیشفرض بعضی افزونهها یا تنظیمات هاست ۳۰۲ه. اگه تغییرت دائمیه، حتماً کد رو چک کن و بذارش روی ۳۰۱.
چه زمانی ریدایرکت 301 کنیم؟
قاعده کلیش سادهست: هر وقت آدرسی که قبلاً کار میکرد و احتمالاً لینک یا بازدید داشت، برای همیشه عوض شد، باید به نزدیکترین صفحه جایگزین ریدایرکت بشه. رایجترین موقعیتها اینان:
- عوض کردن نامک (Slug) یا ساختار URL: مثلاً وقتی ساختار پیوندهای یکتا رو تغییر میدی. قبلش حتماً مطلب ساختار URL استاندارد برای سئو رو بخون.
- ادغام چند تا مطلب ضعیف توی یه مطلب قوی: مطالب قدیمی رو به مطلب جدید و کامل ریدایرکت کن.
- حذف محصول یا صفحهای که جایگزین مرتبط داره: بفرستش سمت صفحه جایگزین یا دستهبندی مرتبط، نه صفحه اصلی سایت.
- رفتن از http به https یا از نسخه بدون www به www: که فقط یه نسخه از سایت در دسترس باشه.
- عوض کردن دامنه: همه آدرسهای دامنه قدیم، صفحهبهصفحه برن سراغ معادلشون توی دامنه جدید.
- تبدیل آدرس انگلیسی به فارسی یا برعکس: اگه هنوز دربارهش مطمئن نیستی، مطلب URL فارسی بهتر است یا انگلیسی کمکت میکنه.
کِی ریدایرکت نکنیم؟
اگه صفحهای رو حذف کردی و هیچ جایگزین مرتبطی نداره، ریدایرکت کردنش به صفحه اصلی کار درستی نیست. گوگل این حالت رو معمولاً مثل یه صفحه ۴۰۴ نرم (Soft 404) میبینه و کاربر هم گیج میشه. اینجور وقتا گذاشتن کد ۴۰۴ یا ۴۱۰ صادقانهتره. برای اینکه این خطاها رو بهتر بشناسی، مطلب لینک شکسته چیست رو ببین.
ریدایرکتها رو تا کِی نگه داریم؟
گوگل توی راهنمای انتقال سایت توصیه میکنه ریدایرکتها رو تا جای ممکن نگه داری؛ معمولاً دستکم یه سال. پیشنهاد عملی ما اینه: ریدایرکت صفحههایی رو که بکلینک خارجی دارن، هیچوقت حذف نکن.
آموزش ریدایرکت در وردپرس
توی وردپرس سه تا راه اصلی داری. خبر خوب اینه که خود وردپرس هم وقتی نامک یه نوشته منتشرشده رو عوض میکنی، معمولاً آدرس قدیمی رو خودکار به آدرس جدید ریدایرکت میکنه؛ ولی برای برگهها، دستهبندیها و تغییرات گسترده نباید روی این رفتار حساب کنی.
روش اول: افزونه ریدایرکت
برای بیشتر سایتها سادهترین روشه. افزونه رایگان Redirection، بخش Redirections توی Rank Math و مدیر ریدایرکت توی نسخه پریمیوم Yoast همهشون این امکان رو دارن. کافیه آدرس مبدأ و مقصد رو وارد کنی و نوع رو بذاری روی ۳۰۱. حسن افزونه اینه که لاگ خطاهای ۴۰۴ رو هم نشونت میده. اگه هنوز افزونه سئوی مناسبی انتخاب نکردی، مطلب افزونههای سئو در وردپرس رو بخون.
روش دوم: فایل .htaccess (برای سرورهای Apache و LiteSpeed)
اگه هاستت Apache یا LiteSpeed باشه (LiteSpeed قواعد .htaccess رو مثل Apache میخونه)، ریدایرکت توی سطح سرور سریعتر از افزونه اجرا میشه؛ چون درخواست اصلاً به PHP و وردپرس نمیرسه. فایل .htaccess توی پوشه اصلی سایته (معمولاً public_html).
قبل از هر تغییری از این فایل نسخه پشتیبان بگیر. یه خطای کوچیک توش میتونه کل سایت رو با خطای ۵۰۰ از دسترس خارج کنه. کدهای زیر رو بالای بلوک # BEGIN WordPress بذار و جای example.com دامنه خودت رو بنویس.
۱. ریدایرکت 301 یه آدرس به آدرس دیگه
Redirect 301 /old-page/ https://www.example.com/new-page/حواست باشه دستور Redirect بهصورت پیشوندی کار میکنه؛ یعنی /old-page/something هم میره به /new-page/something. اگه فقط همون یه آدرس رو میخوای، از RedirectMatch با نشونههای شروع و پایان استفاده کن:
RedirectMatch 301 ^/old-page/?$ https://www.example.com/new-page/۲. ریدایرکت گروهی با الگو (RewriteRule)
فرض کن قبلاً آدرس مطالب به شکل /blog/نام-مطلب/ بوده و حالا شده /نام-مطلب/. بهجای صدها ریدایرکت تکی، یه قاعده کافیه:
RewriteEngine On
RewriteRule ^blog/(.*)$ https://www.example.com/$1 [R=301,L]بخش (.*) هر چی رو که بعد از blog/ اومده میگیره و $1 همونو توی آدرس جدید میذاره. R=301 نوع ریدایرکت رو دائمی تعیین میکنه و L یعنی پردازش بقیه قواعد همینجا متوقف بشه.
۳. ریدایرکت http به https
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]اگه سایتت پشت CDN یا پروکسیای مثل Cloudflare باشه، ممکنه سرور همیشه درخواست رو http ببینه و این قاعده حلقه ریدایرکت بسازه. اونوقت ریدایرکت https رو از تنظیمات CDN فعال کن.
۴. ریدایرکت نسخه بدون www به www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]۵. ترکیب https و www توی یه قدم
اگه قاعده ۳ و ۴ رو جدا بنویسی، کسی که http://example.com رو باز کنه دو بار ریدایرکت میشه. این نسخه هر دو رو یهجا انجام میده:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]بعد از ذخیره فایل، آدرسها رو توی یه پنجره ناشناس مرورگر یا با ابزارهای بررسی هدر HTTP تست کن و مطمئن شو کد جواب واقعاً ۳۰۱ه. اگه آدرسهای سایتت فارسیه، حتماً همون آدرس فارسی رو هم تست کن و اگه شک داشتی، این ریدایرکتها رو با افزونه انجام بده.
روش سوم: سپردن کار به متخصص
برای تغییرات بزرگ مثل انتقال دامنه یا عوض کردن ساختار کل سایت، یه اشتباه کوچیک میتونه بخش زیادی از ترافیکت رو به باد بده. اگه همچین پروژهای پیش رو داری، خدمات سئو تکنیکال محتوا لوکس نقشه ریدایرکت رو صفحهبهصفحه برات آماده میکنه و بعد از اجرا هم چکش میکنه. برای سایتهای وردپرسی هم میتونی جزئیات سئو سایت وردپرس رو ببینی.
زنجیره و حلقه ریدایرکت
ریدایرکت وقتی درسته که کوتاه و مستقیم باشه. دو تا مشکل رایج این قاعده رو به هم میزنن.
زنجیره ریدایرکت (Redirect Chain)
یعنی A بره به B، B به C و C به D. این معمولاً بعد از چند بار عوض کردن آدرس توی چند سال پیش میاد. گوگل طبق مستنداتش تا ۱۰ قدم ریدایرکت رو دنبال میکنه، ولی هر قدم اضافه زمان بارگذاری رو بیشتر میکنه و احتمال خطا رو بالا میبره. راهحلش سادهست: همه آدرسهای قدیمی رو مستقیم به مقصد نهایی ریدایرکت کن.
حلقه ریدایرکت (Redirect Loop)
یعنی A بره به B و B دوباره برگرده به A. نتیجهش خطای «too many redirects» توی مرورگره و صفحه اصلاً باز نمیشه. رایجترین دلیلهاش: قاعده https توی .htaccess همزمان با تنظیم https توی CDN، تداخل افزونه ریدایرکت با .htaccess و تنظیم اشتباه آدرس سایت توی تنظیمات وردپرس.
چکلیست بعد از هر ریدایرکت
- کد جواب رو چک کن که ۳۰۱ باشه، نه ۳۰۲.
- لینکهای داخلی سایت رو به آدرس جدید اصلاح کن تا اصلاً از ریدایرکت رد نشن.
- آدرس قدیمی رو از نقشه سایت حذف کن و آدرس جدید رو جاش بذار.
- تگ canonical صفحه مقصد رو چک کن که به خودش اشاره کنه.
- با یه ابزار خزش، سایت رو برای زنجیره و حلقه ریدایرکت اسکن کن.
سوالات متداول
ریدایرکت ۳۰۱ اعتبار رو منتقل میکنه؟
آره. گری ایلیز، از تحلیلگرای گوگل، سال ۲۰۱۶ اعلام کرد که ریدایرکتهای سری ۳۰x دیگه باعث از دست رفتن PageRank نمیشن. مستندات فعلی گوگل هم ریدایرکت ۳۰۱ رو سیگنال قوی برای جایگزینی آدرس قدیمی با آدرس جدید میدونه. البته شرطش اینه که مقصد واقعاً مرتبط باشه؛ ریدایرکت صفحهها به یه صفحه بیربط یا صفحه اصلی، معمولاً اعتباری رو که انتظارش رو داری منتقل نمیکنه.
ریدایرکت 301 در وردپرس بهتره با افزونه انجام بشه یا .htaccess؟
برای چند تا ریدایرکت تکی، افزونه سادهتر و کمخطرتره. برای قواعد سراسری مثل https، www یا عوض کردن ساختار کل آدرسها، .htaccess سریعتره؛ به شرطی که با دقت و با نسخه پشتیبان انجامش بدی.
چقدر طول میکشه تا گوگل آدرس جدید رو نشون بده؟
زمان دقیقی نداره و به سرعت خزش دوباره صفحه بستگی داره. برای صفحههای مهم میتونی آدرس جدید رو توی سرچ کنسول بررسی کنی و درخواست ایندکس بدی.
منابع
- Redirects and Google Search
- HTTP status codes and network errors
- Site moves with URL changes
- Google: No PageRank dilution when using 301, 302, or 30x redirects
![]()
