تخفیف تا 90% با دیجی پی! از امروز میتونی با این تخفیف قسطی پرداخت کنی!
00 روز
:
00 ساعت
:
00 دقیقه
:
00 ثانیه
قسطی خرید کن!

ریدایرکت و سئو؛ ۱۱ روش کلیدی برای بهبود عملکرد سایت


Redirects

ریدایرکت و سئو؛ ۱۱ روش کلیدی برای بهبود عملکرد سایت

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

مثل وقتیه که توی آمریکا به یه آدرس جدید اسباب کشی میکنید. اون موقع میرید سراغ سرویس پستی ایالات متحده (USPS) و یه درخواست انتقال نامه (Mail Forwarding) ثبت میکنید. اگه کسی برای آدرس قدیمی شما نامه بفرسته، USPS طبق قوانین انتقال، میفهمه که دیگه اونجا زندگی نمیکنید. پس اون نامه رو برمیداره و به آدرس جدیدتون میفرسته، نه آدرس قدیمی.

کی باید از ریدایرکت استفاده کنید؟

شما میخواید از ریدایرکت ها استفاده کنید وقتی که:

  • میخواید یه وبسایت یا صفحه رو منتقل کنید
  • میخواید صفحات تکراری رو یکی کنید
  • میخواید چند وبسایت رو با هم ترکیب کنید
  • بعد از حذف یه صفحه، کاربران رو به یه صفحه جدید بفرستید
  • میخواید ساختار URL هاتون رو تغییر بدید یا اون ها رو مرتب کنید

انواع ریدایرکت و تاثیر اون ها روی سئو

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

توی دنیای SEO باورها و برداشت های اشتباه زیادی در مورد ریدایرکت ها وجود داره که امیدوارم توی این مقاله بتونم اون ها رو براتون روشن کنم.

ریدایرکت ها میتونن دائمی باشن یا موقتی، بستگی داره که آیا قصد دارید اون ریدایرکت رو همیشه نگه دارید یا نه. این موضوع همچنین روی اینکه کدوم صفحه توی موتورهای جستجو ایندکس و نمایش داده میشه هم تاثیر داره، که توی بخش بعدی بیشتر راجع بهش توضیح میدم.

ریدایرکت ها همچنین میتونن سمت سرور (Server-side) باشن، یعنی روی یه سرور انجام میشن، یا سمت کلاینت (Client-side)، یعنی داخل مرورگر کاربر اتفاق میفتن.

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

Redirects

در مورد اینکه کدوم روش رو برای پیاده سازی ریدایرکت دائمی انتخاب کنید، ترتیب ترجیحی من به این شکله:
308 / 301 > Meta refresh 0 / HTTP refresh 0 > JavaScript > Crypto

Redirects

در مورد اینکه کدوم روش رو برای پیاده سازی ریدایرکت موقتی انتخاب کنید، ترتیب ترجیحی من اینطوریه:
307 / 302 / 303 > Meta refresh 0 / HTTP refresh 0

ریدایرکت های سمت سرور (Server-side) الزامی نداره که حتماً روی سرور میزبان شما اتفاق بیفتن. ممکنه روی یه سرور دیگه باشن، مثل یه CDN یا ارائه دهنده دامنه شما.
ریدایرکت های سمت کاربر (Client-side) هم میتونن به روش های مختلفی اضافه بشن، ولی همیشه داخل مرورگر کاربر اجرا میشن.

برای مطالعه بیشتر در زمینه سئوی کلاه سفید، پیشنهاد میشه مقاله «چک لیست سئو 2025؛ راهنمای جامع و کاربردی بهینه سازی سایت» رو مطالعه کنید.

اینجا چندتا از جاهایی هست که ممکنه این نوع ریدایرکت ها رو ببینید:

Redirects

بیاید این موارد رو با جزئیات بیشتری بررسی کنیم.

ریدایرکت های دائمی (Permanent Redirects)

ریدایرکت دائمی نشون میده که یه منبع (Resource) به صورت دائمی به یه مکان جدید منتقل شده.

شما باید از یه ریدایرکت دائمی استفاده کنید وقتی که:

  • آدرس یه صفحه یا منبع دیگه رو به صورت دائمی تغییر میدید
  • به صورت دائمی به یه دامنه جدید مهاجرت میکنید
  • از HTTP به HTTPS منتقل میشید
  • میخواید مشکل محتوای تکراری بین www و غیر www رو برطرف کنید
  • دو یا چند صفحه یا وبسایت رو به صورت دائمی با هم ادغام میکنید
  • ساختار URL وبسایتتون رو به صورت دائمی تغییر میدید

ریدایرکت های دائمی یه سیگنال قوی برای Canonicalization هستن که نشون میدن سیگنال های یه صفحه، مثل لینک ها، باید به سمت آدرس جدید منتقل بشن. معمولاً این صفحه جدید هست که همه سیگنال ها رو به دست میاره و توی موتورهای جستجو نمایش داده میشه.

Redirects

فرض کنید یه صفحه رو از site1.com/x به site2.com/x ریدایرکت میکنید بدون اینکه محتوای اون رو تغییر بدید. سیگنال های لینک (Link Signals) در این حالت روی site2.com/x متمرکز میشن. به عبارت دیگه، اگه site1.com/x دارای 10 بک لینک باشه، site2.com/x از اون ها بهره مند میشه، درست مثل اینکه این لینک ها مستقیماً به اون اشاره کرده باشن.

این فقط در صورتی اتفاق نمیفته که ریدایرکت بی ربط باشه، چون گوگل ریدایرکت های بی ربط رو به عنوان Soft 404 در نظر میگیره.

برای مثال، فرض کنید یه پست وبلاگ رو به صفحه اصلی (Homepage) ریدایرکت میکنید. از اونجایی که این دو صفحه کاملاً متفاوت هستن، ممکنه گوگل سیگنال های لینک رو منتقل نکنه.

نکته جانبی: در موارد بسیار نادر، گوگل ممکنه همچنان URL اصلی رو به عنوان نسخه Canonical در ایندکس نمایش بده. خیلی از سئوکارها میدونن که عکس این اتفاق هم میفته: یعنی ریدایرکت موقتی ممکنه به عنوان دائمی در نظر گرفته بشه، اما ریدایرکت دائمی هم گاهی ممکنه به عنوان موقتی در نظر گرفته بشه.

میخواید بررسی کنید گوگل چطوری داره با یه ریدایرکت برخورد میکنه؟

اینطوری انجامش بدید:

  1. گوگل سرچ کنسول (Google Search Console) رو باز کنید
  2. برید به بخش Links > External Links > Top linked pages
  3. توی گزارش، آدرس URL جدید رو پیدا کنید و روش کلیک کنید (میتونید از فیلتر “Target page” استفاده کنید)
  4. لینک ها رو بر اساس “Site” فیلتر کنید و دامنه های ارجاع دهنده به آدرس قدیمی رو یکی یکی وارد کنید (این دامنه ها رو میتونید توی گزارش Referring Domains در Ahrefs’ Site Explorer پیدا کنید)
  5. اگه برای چندتا از دامنه های ارجاع دهنده هیچ نتیجه ای پیدا نشه، احتمالاً گوگل داره ریدایرکت رو به عنوان Soft 404 در نظر میگیره و بک لینک های صفحه قدیمی رو به حساب آدرس جدید نمیاره
Redirects

اگه نتیجه ای پیدا بشه، روی اون سایت کلیک کنید تا لینک های واقعی رو ببینید. اگه آدرس قدیمی رو توی ستون “Target URL” ببینید، یعنی گوگل داره لینک ها رو به آدرس جدید منتقل میکنه.

انواع ریدایرکت های دائمی

بیاید چند تا از انواع ریدایرکت های دائمی رو بررسی کنیم.

HTTP 301

ریدایرکت 301 یه ریدایرکت سمت سروره که کاربران و ربات ها رو به آدرس جدید هدایت میکنه و به موتورهای جستجو اطلاع میده که منبع به صورت دائمی منتقل شده.

HTTP 308

ریدایرکت 308 مثل ریدایرکت 301 هست، با این تفاوت که متد HTTP درخواست اصلی، یعنی GET یا POST، رو هنگام انجام ریدایرکت حفظ میکنه. از نظر سئو، این دو مثل هم هستن، اما اگه داده ای از طریق فرم ها ارسال میشه، نمیخواید بین GET و POST جابجا بشید.

ریدایرکت های JavaScript

یه ریدایرکت جاوااسکریپتی از JavaScript استفاده میکنه تا به مرورگر بگه کاربر یا ربات رو به یه آدرس دیگه هدایت کنه.

چون برای اجرای این نوع ریدایرکت، صفحه باید رندر بشه، این ریدایرکت سمت کاربر (Client-side) محسوب میشه و گزینه مطلوبی نیست. گوگل همه صفحه هایی که قراره ایندکس کنه رو رندر میکنه، اما ممکنه توی این فرایند خطا پیش بیاد و رندر انجام نشه. انواع دیگه ریدایرکت پشتیبانی بهتری دارن و قابل اعتمادتر هستن.

اینجا یه مثال از این نوع ریدایرکت توی HTML رو میبینید:

<script>
// Redirect to a new URL
window.location.href = "https://example.com/new-page";
</script>

ریدایرکت های JavaScript ممکنه داخل فایل پیکربندی هم قرار داشته باشن. توی تنظیمات Next.js، یه تابع redirect وجود داره که میتونید ازش برای تنظیم ریدایرکت ها استفاده کنید. توی سیستم های دیگه، ممکنه این نوع ریدایرکت رو توی Router پیدا کنید.

Meta Refresh (=0 ثانیه)

ریدایرکت Meta Refresh به مرورگر میگه که بعد از تعداد مشخصی ثانیه، کاربر رو ریدایرکت کنه. این نوع ریدایرکت توی مرورگر اتفاق میفته و سمت کاربر (Client-side) هست.

<meta http-equiv="refresh" content="0; url=https://example.com/new-page">

ریدایرکت های Meta Refresh باید داخل بخش <head> از HTML قرار بگیرن. به این شکل هستن:

HTTP Refresh (=0 ثانیه)

ریدایرکت HTTP Refresh شبیه به Meta Refresh هست ولی داخل هدر پاسخ HTTP اتفاق میفته. این نوع ریدایرکت میتونه سمت سرور پیاده سازی بشه، اما در واقع روی سمت کاربر (Client-side) اجرا میشه.

Refresh: 0; url=https://example.com/new-page

همان طور که در بالا مشاهده می کنید.

Crypto Redirect

ریدایرکت بدون اینکه واقعاً ریدایرکتی انجام بشه؟ شاید عجیب به نظر برسه، اما گوگل این حالت رو به عنوان یه ریدایرکت دائمی در نظر میگیره. یعنی باید همه سیگنال ها رو هم به آدرس جدید منتقل کنه.

ریدایرکت Crypto یه مورد خاصه که شما داخل صفحه یه پیام درباره انتقال به یه دامنه جدید قرار میدید، اما هیچ ریدایرکت واقعی اتفاق نمیفته.

به این شکل هست:

<a href="https://new-domain.com/" >We moved! Check out our new site!</a>

ما سعی میکنیم یه روش دیگه برای ریدایرکت پیاده سازی کنیم چون همه ربات ها یا موتورهای جستجو ممکنه از ریدایرکت های Crypto پشتیبانی نکنن.

ریدایرکت های موقتی (Temporary Redirects)

ریدایرکت موقتی نشون میده که یه منبع به صورت موقتی به یه مکان جدید منتقل شده.

شما باید از ریدایرکت موقتی استفاده کنید وقتی که:

  • میخواید کاربران رو بر اساس مکان یا زبان به نسخه مناسب وبسایت هدایت کنید
  • میخواید یه تست A/B روی عملکرد یا طراحی یه صفحه انجام بدید
  • یه کمپین تبلیغاتی اجرا میکنید و میخواید بازدیدکنندگان رو به صورت موقتی به یه صفحه فروش هدایت کنید

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

Redirects

با این حال، در یه مقطعی ممکنه سیگنال های کافی جمع بشن تا یه ریدایرکت موقتی به سمت آدرس جدید واقعاً سیگنال ها رو منتقل کنه. برای مدتی ممکنه آدرس اصلی همچنان توی نتایج گوگل ایندکس بشه و سیگنال ها روی همون باقی بمونن، اما اگه این جابجایی اتفاق بیفته، اون وقت آدرس جدید رو توی گوگل میبینید و سیگنال ها هم به اون منتقل میشن.

Redirects

هیچ بازه زمانی مشخصی وجود نداره که یه ریدایرکت موقتی باید فعال باشه تا گوگل شروع کنه به در نظر گرفتنش به عنوان یه ریدایرکت دائمی. معمولاً این زمان بین چند هفته تا چند ماهه، اما ممکنه فقط چند روز، چند هفته یا حتی چند ماه طول بکشه.

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

توی بعضی شرایط، گوگل حتی از همون ابتدا ممکنه ریدایرکت موقتی رو به عنوان ریدایرکت دائمی در نظر بگیره.

مثلاً، من یه آزمایش انجام دادم و یه سایت قدیمی رو با ریدایرکت 302 به یه سایت دیگه منتقل کردم. وقتی گوگل این ریدایرکت رو دید، دامنه قدیمی رو از نتایج جستجو حذف کرد و دامنه “جدید” رو جایگزین کرد.

اگه مطمئن نیستید گوگل چطور داره با یکی از ریدایرکت های موقتی شما برخورد میکنه، آدرس URL ریدایرکت شده رو داخل ابزار URL Inspection در سرچ کنسول وارد کنید.
اگه پیام “URL is not on Google” رو دیدید، یعنی گوگل احتمالاً داره اون ریدایرکت رو به عنوان دائمی در نظر میگیره.
اگه آدرس هنوز روی گوگل ایندکس شده باشه، یعنی گوگل داره اون رو به عنوان یه ریدایرکت موقتی در نظر میگیره.

Redirects

فقط مطمئن بشید که هنگام بررسی، تاریخ آخرین خزش (Last Crawl Date) رو هم چک می‌کنید. اگه این تاریخ بعد از زمانی باشه که ریدایرکت رو اضافه کردید، درخواست ایندکس مجدد بدید و بعداً دوباره سر بزنید.

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

چند نوع ریدایرکت موقتی

خب حالا میخوایم چند نمونه از ریدایرکت های موقتی رو بررسی کنیم:

HTTP 302

ریدایرکت 302 کاربران رو به آدرس جدید هدایت میکنه و به موتورهای جستجو میگه که منبع به صورت موقتی منتقل شده.

HTTP 307

ریدایرکت 307 مثل 302 هست، با این تفاوت که متد HTTP درخواست اصلی (مثل POST یا GET) رو هنگام ریدایرکت حفظ میکنه. از نظر سئو این دو یکی هستن، اما اگه دارید از فرم هایی استفاده میکنید که داده ارسال میکنن، نباید بین GET و POST جابجا بشید.

ارزشش رو داره که این مورد رو هم بدونید: وقتی در حال بررسی مشکل های ریدایرکت هستید، ممکنه با یه نسخه متفاوت از 307 مواجه بشید که یه ریدایرکت کش شده توی مرورگره. این مورد مربوط به HSTS هست و به مرورگر میگه که وقتی یه منبع ناامن (HTTP) درخواست میشه، باید به یه اتصال امن (HTTPS) سوئیچ کنه.

وقتی سرورهای وب از کلاینت ها میخوان فقط از اتصال های HTTPS استفاده کنن (سیاست HSTS)، گوگل ریدایرکت 307 رو نمی‌بینه چون اون توی مرورگر کش شده. اولین درخواست (بدون کش) احتمالاً یه کد پاسخ سرور مثل 301 یا 302 رو برمیگردونه. اما مرورگر شما توی درخواست های بعدی یه 307 نشون میده که این موضوع بررسی و عیب یابی رو سخت تر میکنه؛ باید از یه پنجره Incognito تازه استفاده کنید تا بتونید کد وضعیت واقعی برگشتی رو ببینید.

HTTP 303

ریدایرکت 303 کاربر رو به یه منبع مشابه با چیزی که درخواست کرده هدایت میکنه و یه نوع موقتی از ریدایرکته. معمولاً برای مواردی مثل جلوگیری از ارسال مجدد فرم ها وقتی کاربر روی دکمه “برگشت” مرورگر کلیک میکنه، استفاده میشه. معمولاً توی بحث سئو از ریدایرکت 303 استفاده نمیشه اما اگه استفاده بشه، مثل 302 یا 307 باهاش رفتار میشه.

Meta Refresh (>0 ثانیه)

وقتی مدت زمان Meta Refresh بیشتر از 0 ثانیه باشه، اون رو به عنوان ریدایرکت موقتی در نظر میگیرن. اما اگه این مقدار برابر با 0 باشه، مثل یه ریدایرکت دائمی باهاش برخورد میشه.

ریدایرکت Meta Refresh به مرورگر میگه که بعد از یه تعداد مشخصی ثانیه، کاربر رو به یه آدرس جدید هدایت کنه. این نوع ریدایرکت توی مرورگر اتفاق میفته و سمت کاربر (Client-side) هست.

<meta http-equiv="refresh" content="5; url=https://example.com/new-page">

ریدایرکت های Meta Refresh باید توی بخش <head> از HTML قرار بگیرن. به این شکل هستن:

HTTP Refresh (>0 ثانیه)

وقتی مدت زمان HTTP Refresh بیشتر از 0 ثانیه باشه، به عنوان یه ریدایرکت موقتی در نظر گرفته میشه. اما اگه این مقدار برابر با 0 باشه، گوگل اون رو به عنوان یه ریدایرکت دائمی تلقی میکنه.

HTTP Refresh شبیه به Meta Refresh هست، با این تفاوت که توی هدر پاسخ HTTP اتفاق میفته. این نوع ریدایرکت میتونه سمت سرور پیاده سازی بشه، اما در واقع روی سمت کاربر (Client-side) اجرا میشه.

Refresh: 5; url=https://example.com/new-page

همان طور که در بالا مشاهده می کنید.

ریدایرکت های سمت سرور (Server-side Redirects)

ریدایرکت سمت سرور زمانی اتفاق میفته که سرور تصمیم میگیره کاربر یا موتور جستجو رو هنگام درخواست یه صفحه، به کجا هدایت کنه. این نوع ریدایرکت ها معمولاً با یکی از کدهای وضعیت 301، 302، 303، 307 یا 308 همراه هستن.

ریدایرکت های سمت سرور روش پیشنهادی برای سئو محسوب میشن.

سطح سرور (Server-level)

این ریدایرکت ها روی خود سرور شما اتفاق میفتن. نحوه پیاده سازی اون ها بستگی به هاست وبسایتتون و اینکه از چه محیط سروری یا زبان اسکریپتی توی بک اند استفاده میشه داره. هر نوع سرور رایجی باید به خوبی مستندسازی شده باشه. رایج ترین ها عبارتند از:

  • Nginx
  • Apache
  • Cloudflare Server
  • LiteSpeed
  • Microsoft-IIS
  • Node.js

اگه دارید ریدایرکت ها رو از طریق یه افزونه یا یه راهکار سفارشی روی سیستم مدیریت محتوا (CMS) مثل WordPress ،Shopify ،Wix ،Squarespace ،Joomla یا Drupal اضافه میکنید، اون وقت ریدایرکت ها در واقع در سطح سرور اعمال میشن.

بیشتر نصب های وردپرس روی Apache اجرا میشن و افزونه هایی که برای ریدایرکت استفاده میشن، در واقع فایل htaccess. سایت رو ویرایش میکنن. این فایل رو میتونید توی دایرکتوری اصلی (Root Directory) وبسایتتون پیدا کنید.

Redirects

نکته جانبی: اگه این فایل رو توی دایرکتوری اصلی (Root Directory) سایتتون نمی‌بینید یا سرورتون روی Apache اجرا نمیشه، یا اصلاً این فایل وجود نداره، یا اینکه فایل مخفیه.

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

اگه مشخص شد سرورتون Apache هست، راه حل اینه که یه فایل htaccess. بسازید و اون رو توی روت سرور آپلود کنید.
اگه از Nginx استفاده می‌کنید، این رو بخونید.
اگه از Windows/IIS استفاده می‌کنید، این رو بخونید.

برای اینکه یه ریدایرکت از یه صفحه به یه صفحه دیگه توی htaccess. ایجاد کنید، باید این کد رو اضافه کنید:

Redirect 308 "/old" "https://example.com/new"

همچنین می‌تونید با استفاده از زبان های مختلف مثل PHP ریدایرکت انجام بدید. به این شکل خواهد بود:

header('HTTP/1.1 308 Moved Permanently');
header('Location: https://www.example.com/newurl');
exit();

ما توی مطلبمون درباره‌ی ریدایرکت 301 مثال های خیلی بیشتری داریم، از جمله ریدایرکت کردن یه دامنه، ریدایرکت از www به non-www، از non-www به www، و همینطور از HTTP به HTTPS. ریدایرکت ها همچنین ممکنه داخل فایل پیکربندی سرور قرار داشته باشن.

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

سطح DNS (DNS-level)

Name server های شما معمولاً توسط ثبت کننده دامنه (Domain Registrar) یا شاید CDN شما مدیریت میشن. هر ارائه دهنده کمی متفاوت عمل میکنه اما معمولاً مستنداتی دارن که میتونید پیداشون کنید.

ریدایرکت ها در این سطح اغلب برای مهاجرت وبسایت استفاده میشن. بعضی هاست ها ممکنه به شما اجازه بدن که کد وضعیت ریدایرکت مثل 301 یا 302 رو مشخص کنید.

برخی ارائه دهنده ها حتی اجازه ریدایرکت کردن نسخه های HTTPS صفحات رو هم میدن. از نظر فنی، HTTPS در این سطح وجود نداره و قبلاً این امکان در دسترس نبود، اما بعضی ارائه دهنده ها راهی برای اجرای اون پیدا کردن.

سطح CDN (CDN-level)

خیلی از CDN ها گزینه های مختلفی برای پیاده سازی ریدایرکت دارن. مثلاً توی Cloudflare میتونید ریدایرکت های تکی یا دسته جمعی ایجاد کنید، قوانین مخصوص ریدایرکت تعریف کنید، از Page Rule برای ریدایرکت استفاده کنید، یا با استفاده از Workers و جفت های کلید-مقدار (Key-Value) ریدایرکت انجام بدید یا از Workers برای تغییر هدرها و اضافه کردن ریدایرکت استفاده کنید.

من معمولاً ترجیح میدم ریدایرکت ها رو روی لبه شبکه (CDN-level) قرار بدم تا روی سرور. برای دیگران همیشه توصیه میکنم هر کاری که پیاده سازی اون براتون آسون تره رو انجام بدید. برای خیلی از افراد این یعنی استفاده از ریدایرکت های سطح سرور.

ریدایرکت های سمت کاربر (Client-side Redirects)

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

به طور کلی نباید از ریدایرکت های سمت کاربر استفاده کنید، مگر اینکه این تنها گزینه شما باشه.

HTML

قبلاً درباره‌ی ریدایرکت های Meta Refresh و ریدایرکت های JavaScript صحبت کردیم. این نوع ریدایرکت ها سمت کاربر اجرا میشن.

<meta http-equiv="refresh" content="5; url=https://example.com/new-page">

ریدایرکت های Meta Refresh باید داخل بخش <head> از HTML قرار بگیرن. ک

<script>
    // Redirect to a new URL
    window.location.href = "https://example.com/new-page";
</script>

خب دیدید که یه ریدایرکت JavaScript ممکنه توی HTML به چه شکلی باشه.

پاسخ هدر HTTP (HTTP Header Response)

HTTP Refresh شبیه به Meta Refresh هست اما داخل هدر پاسخ HTTP اتفاق میفته. این نوع ریدایرکت میتونه سمت سرور پیاده سازی بشه، اما در واقع روی سمت کاربر (Client-side) اجرا میشه.

Refresh: 5; url=https://example.com/new-page

همان طور که در بالا مشاهده می کنید.

سطح CDN (در موارد خاص)

قبلاً درباره‌ی Cloudflare Workers صحبت کردم. این ابزار به شما اجازه میده تغییراتی رو روی لبه شبکه (Edge) قبل از اینکه محتوا به کاربر ارسال بشه انجام بدید. در واقع، می‌تونید بخشی از HTML رو بازنویسی کنید و یه ریدایرکت سمت کاربر مثل Meta Refresh اضافه کنید، اما این کار رایج نیست چون راه های بهتری برای انجامش وجود داره.

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

اینجا چند مورد مربوط به ریدایرکت ها هست که بهتره بررسیشون کنید:

ریدایرکت از HTTP به HTTPS

همه باید از HTTPS استفاده کنن.

چند روش برای بررسی اینکه سایتتون به درستی از HTTP به HTTPS ریدایرکت میشه وجود داره. اولین راه اینه که افزونه Ahrefs’ SEO Toolbar رو نصب و فعال کنید، بعد سعی کنید به نسخه HTTP صفحه اصلی برید. باید به صورت خودکار ریدایرکت بشه.

معمولاً انتظار دارید توی این حالت یه ریدایرکت 301 یا 308 ببینید، چون این ریدایرکت باید دائمی باشه.

Redirects

با این حال، ممکنه یه ریدایرکت 307 ببینید اگه سایتتون از HSTS استفاده کنه.

Redirects

این نوع ریدایرکت 307 توی مرورگر اجرا میشه و شما هنوز هم باید پاسخ سرور رو بررسی کنید تا مطمئن بشید که کد وضعیت 301 یا 308 برگردونده میشه.

پس اینم یه روش دیگه:

  1. برید به Ahrefs’ Site Audit
  2. روی + New Project کلیک کنید
  3. روی Add manually کلیک کنید
  4. Scope رو به HTTP تغییر بدید
  5. دامنه خودتون رو وارد کنید
Redirects

باید خطای “Not crawlable” رو برای هر دو نسخه www و non-www صفحه اصلی ببینید، به همراه اعلان “301 moved permanently”.

استفاده از HSTS (برای ایجاد ریدایرکت 307)

پیاده سازی HSTS (HTTP Strict Transport Security) روی سرورتون باعث میشه که افراد نتونن به محتوای غیرامن (HTTP) سایت شما دسترسی پیدا کنن. این کار با این روش انجام میشه که به مرورگرها اعلام میکنه سرور شما فقط اتصال های امن رو میپذیره و مرورگر باید هر درخواست HTTP رو با ریدایرکت 307 به نسخه HTTPS اون هدایت کنه.

در نظر داشته باشید که این اتفاق داخل مرورگر میفته. ربات ها این نسخه خاص از ریدایرکت 307 رو نمیبینن.

بعد از پیاده سازی HSTS، بهتره سایتتون رو به لیست پیش‌بارگذاری HSTS (HSTS preload list) ارسال کنید. این کار باعث میشه HSTS برای همه افرادی که میخوان به سایت شما دسترسی پیدا کنن فعال باشه حتی اگه قبلاً سایت شما رو باز نکرده باشن.

ریدایرکت کردن محتوای قدیمی مرتبط

سایت ها و به طور کلی وب دائماً در حال تغییره. ما یه مطالعه انجام دادیم و فهمیدیم که تقریباً دو سوم لینک ها به صفحات وب طی یه دوره نه ساله از بین رفتن.

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

اینطوری میتونید این فرصت ها رو پیدا کنید:

  1. دامنه خودتون رو توی Site Explorer وارد کنید (از طریق Ahrefs Webmaster Tools هم به صورت رایگان در دسترسه)
  2. برید به گزارش Best by links
  3. یه فیلتر با وضعیت HTTP “404 not found” اضافه کنید
  4. من معمولاً این گزارش رو بر اساس “Referring domains” مرتب میکنم
Redirects

ما حتی یه اسکریپت هم درست کردیم تا بهتون کمک کنه ریدایرکت ها رو با هم تطبیق بدید. نگران نباشید؛ فقط کافیه چندتا فایل رو دانلود و آپلود کنید. دفترچه Colab مرحله به مرحله راهنماییتون میکنه و بخش های پیچیده رو خودش انجام میده.

از زنجیره های طولانی ریدایرکت پرهیز کنید

زنجیره ریدایرکت (Redirect Chain) زمانی اتفاق میفته که چندین ریدایرکت پشت سر هم بین منبع درخواست شده و مقصد نهایی انجام میشه.

Redirects

مستندات رسمی گوگل میگه که Googlebot تا 10 مرحله ریدایرکت (Redirect Hops) رو دنبال میکنه، بنابراین زنجیره های ریدایرکت که کمتر از این مقدار هستن معمولاً مشکلی برای سئو ایجاد نمیکنن. گوگل توی هر نشست (Session) تا 5 مرحله رو دنبال میکنه و بعد توی نشست بعدی از همون جایی که مونده ادامه میده.

اگه خزنده (Crawler) نتونه طی 10 مرحله به محتوا دسترسی پیدا کنه، سرچ کنسول توی گزارش Index Coverage یه خطای ریدایرکت نشون میده.

خیلی از سئوکارها وسواس دارن که حتی یه مرحله اضافه توی ریدایرکت رو هم حذف کنن.

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

چطور زنجیره های ریدایرکت طولانی رو رایگان پیدا کنید :

  1. سایتتون رو با ابزار Site Audit بررسی (Crawl) کنید
  2. برید به گزارش Redirects
  3. روی تب Issues کلیک کنید
  4. دنبال خطای “Redirect chain too long” بگردید
Redirects

روی اون مشکل کلیک کنید و بعد دکمه “View affected URLs” رو بزنید تا URL هایی که زنجیره ریدایرکت رو شروع میکنن

Redirects

همینطور تمام URL های داخل اون زنجیره رو ببینید.

از حلقه های ریدایرکت (Redirect Loops) پرهیز کنید

حلقه های ریدایرکت زمانی اتفاق میفتن که یه URL به خودش ریدایرکت میشه یا یکی از URL ها توی زنجیره ریدایرکت به یکی از URL های قبلی در زنجیره ریدایرکت میشه. این باعث ایجاد یه حلقه بی‌نهایت از ریدایرکت ها میشه.

Redirects

این حلقه ها از سه جهت مشکل‌ساز هستن:

  • برای کاربران: دسترسی به منبع مورد نظر رو قطع میکنن و توی مرورگر باعث نمایش خطای “too many redirects” میشن
  • برای ربات ها و موتورهای جستجو: خزنده ها رو “گیر میندازن” و باعث هدر رفتن بودجه خزش (Crawl Budget) میشن
  • برای سرورها: منابع سرور رو هدر میدن. بعضی از ربات ها با این شرایط خوب کنار میان، اما بعضی ها نه. حتی ممکنه باعث شن که با یه حمله DDoS مداوم سرور شما از کار بیفته

ساده ترین روش برای پیدا کردن حلقه های ریدایرکت

سایتتون رو با یه ابزار مثل Site Audit از Ahrefs بررسی کنید. این کار رو میتونید رایگان با یه حساب Ahrefs Webmaster Tools انجام بدید.

  1. سایتتون رو با Site Audit بررسی (Crawl) کنید
  2. برید به گزارش Redirects
  3. روی تب Issues کلیک کنید
  4. دنبال خطای “Redirect loop” بگردید
Redirects

اگه بعدش روی اون خطا کلیک کنید و دکمه “View affected URLs” رو بزنید، یه لیست از URL هایی که ریدایرکت میشن به همراه تمام URL های موجود در زنجیره رو می‌بینید.

Redirects

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

اگه هست، ریدایرکت رو از اون URL نهایی حذف کنید. بعد مطمئن بشید که اون منبع در دسترسه و کد وضعیت 200 برمیگردونه.

Redirects

اگه نیست، ریدایرکت حلقه‌ای رو به مقصد نهایی مورد نظر تغییر بدید.

Redirects

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

از ریدایرکت های بیش از حد گسترده پرهیز کنید

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

میتونید این رو با وارد کردن یه آدرس عجیب مثل yourdomain.com/asfkljlkdfs تست کنید. می‌تونید بعضی از پوشه های اصلی سایتتون رو هم امتحان کنید. اگه صفحه 404 دریافت کردید، مشکلی نیست. اما اگه ریدایرکت شدید، یعنی یه قانون بیش از حد گسترده وجود داره.

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

مراقب گواهی نامه های منقضی شده باشید

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

برای مطالعه بیشتر در زمینه بهینه سازی افت رتبه گوگل، پیشنهاد میشه مقاله «رفع افت رتبه گوگل با 13 روش تضمینی و اثبات شده برای بازیابی» رو مطالعه کنید.

گواهی های چنددامنه‌ای (Multi-domain Certificates) وجود دارن که میتونن چند سایت رو پوشش بدن و جلوی این مشکل رو بگیرن. بعضی ارائه دهنده های DNS هم الان اجازه ریدایرکت های HTTPS رو میدن که میتونه این مشکل رو حل کنه.

ریدایرکت ها رو حداقل به مدت ۱ سال نگه دارید

بر اساس گفته گوگل، باید ریدایرکت ها رو حداقل به مدت یک سال فعال نگه دارید. بعد از اون، سیگنال ها باید به صورت دائمی منتقل شده باشن.

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

موقع مهاجرت، فایل های دیگه رو هم ریدایرکت کنید

فقط صفحات رو ریدایرکت نکنید. تصاویر و فایل های PDF رو هم ریدایرکت کنید، مخصوصاً اگه ترافیک خوبی برای سایتتون می‌آوردن. لازم نیست نگران فایل هایی مثل JS، CSS یا فونت باشید. روی ریدایرکت کردن چیزهایی تمرکز کنید که توسط موتورهای جستجو ایندکس میشن، و بقیه فایل ها رو نادیده بگیرید.

عیب‌یابی ریدایرکت ها برای سئو

اینجا چند نکته هست که بهتون کمک میکنه مشکلات ریدایرکت رو تشخیص بدید:

تشخیص اینکه ریدایرکت از کدوم سیستم اجرا میشه

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

میتونید از اطلاعات موجود در هدرهای HTTP استفاده کنید تا تشخیص بدید کدوم سیستم ریدایرکت رو فعال کرده. مثلاً توی بلاگ ما، از یه افزونه به اسم Redirection استفاده می‌کنیم.

Redirects

این افزونه یه هدر با نام X-redirected-by اضافه می‌کنه که نشون میده همین افزونه ریدایرکت رو اجرا کرده، همونطور که توی گزارش URL Overview از Site Audit مشخصه.

ریدایرکت ها ممکنه فقط برای User-Agent های خاص اتفاق بیفتن

ریدایرکت ها میتونن از منطق شرطی (Conditional Logic) استفاده کنن، یعنی فقط تحت شرایط خاصی اجرا بشن، مثل وقتی که یه User-Agent مشخص درخواست ارسال میکنه.

Redirects

میتونید با استفاده از افزونه SEO Toolbar ما، User-Agent خودتون رو تغییر بدید تا ببینید آیا ریدایرکت برای یه User-Agent خاص فعال میشه یا نه.

ریدایرکت ها ممکنه کد وضعیت اشتباه برگردونن

به کدهای وضعیت نمایش داده شده کورکورانه اعتماد نکنید. یه ریدایرکت ممکنه با هر کد وضعیتی اتفاق بیفته. ممکنه یه صفحه داشته باشید که کد وضعیت 200 OK نشون بده، اما در واقع داره به یه مکان دیگه ریدایرکت میکنه.

حرف آخر

استفاده از Regular Expressions (عبارات منظم) میتونه زمان زیادی رو براتون ذخیره کنه، مخصوصاً وقتی با الگوهایی سر و کار دارید که باید برای ریدایرکت دسته جمعی URL ها تطبیق داده بشن. یه راهنمای خوب یا یه برگه تقلب (Cheat Sheet) برای Regex سرچ کنید و یه ابزار تست خوب پیدا کنید. من معمولاً از regex101 استفاده میکنم.

امیدواریم که این آموزش براتون مفید و کاربردی بوده باشه، خوشحال میشیم که سوالات و نظراتتون رو با ما به اشتراک بگذارین.

نظرات کاربران

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

آموزش های پیشنهادی

نوشته های دیگر در دسته بندی مقالات آموزشی

ابزار های هوش مصنوعی

دوازده تا از بهترین ابزار های هوش مصنوعی که در سال ۲۰۲۶ باید بشناسید

دوازده تا از بهترین ابزار های هوش مصنوعی که در سال ۲۰۲۶ باید بشناسید را در این مقاله میتوانید پیدا کنید...
لینوکس

مرجع و دوره جامع آموزش لینوکس (Linux) در سال ۲۰۲۶: از الفبای ترمینال تا زیرساخت پروداکشن

سیستم‌عامل لینوکس ستون فقرات زیرساخت‌های مدرن، رایانش ابری و دواپس است. در این راهنمای جامع و نقشه راه تخصصی، معماری کرنل، مدیریت (...)
devops-errors خطاهای دواپس

۶ خطای دواپس که بیلدها را نابود می‌کند + راهنمای انتخاب بهترین دوره دواپس برای رفع این خطا ها

سناریویی کلاسیک و پرتکرار در بسیاری از سازمان‌های فناوری‌محور: تیم توسعه هفته‌ها روی امکانات جدید کار کرده، پول‌ریکوئست‌ها تایید شده و مدیر (...)
آموزش قسطی

دوره قسطی