ریدایرکت (redirect) چیست؟
عبارت ریدایرکت (redirect) به معنای انتقال آدرس است. به طور کلی میتوان گفت هرگاه بخواهیم بازدید کنندگان یک سایت را به صفحه دیگر انتقال دهیم از انتقال استفاده میکنیم. گاهی نیز ممکن است آدرس یک یا تمامی صفحات یک سایت تغییر کند و ما با عمل انتقال مخاطبان را به صفحه اصلی هدایت میکنیم. در چنین صورتی بازدید کننده دیگر با ارور 404 مواجه نخواهد شد. اما هدایت به سایت جدید چگونه انجام میشود؟ جالب است بدانید که موتور جستجوگر گوگل اکثر مخاطبان را به سایت قدیمی شما ارجاع میدهد. علاوه بر آن ممکن است افرادی آدرس سایت شما را یادداشت کرده باشند تا در صورت نیاز به آن مراجعه کنند. حال اگر شما URL سایت خود را تغییر داده باشید بسیاری از مخاطبان خود را از دست میدهید. اما اگر از ریدایرکت استفاده کرده باشید، پس از مراجعه افراد به سایت قدیمی به صورت اتوماتیک به صفحه جدید شما ارجاع داده میشوند.
کاربرد ریدایرکت ها چیست؟
- در صورت تغییر دامنه
- برای تغییر ساختار آدرس دهی صفحات یک سایت
- ساب کتگوری به ساب دامین
- یک آدرس منحصر به فرد روی آدرس دیگر
- تغییر دامنه های چندگانه به یک دامنه ی واحد
انواع ریدایرکت
انواع مختلفی از ریدایرکت ها در پروتکل http وجود دارد به صورت لیست ذیل مشاهده میکنید :
- 301 دائمی
- 302 موقت
- 307 موقت
- 304
- regex
- 410
- 451
- ریدایرکت متای رفرش (meta refresh)
ریدایرکت دائمی 301
همانگونه که از نامش پیداست ،301 یک ریدایرکت (redirect) دائمی است و شما فقط زمانی باید از آن استفاده کنید که دیگر قصد بازگشت به URL قدیمی خود را ندارید. زیرا در صورت استفاده از آن تمام اطلاعات URL قدیمی با حفظ رنک به URL جدید منتقل میشود. ریدایرکت 301 تمام بازدید کنندگان قدیمی را به طور اتوماتیک و دائم به آدرس جدید منتقل میکند. یکی از متداول ترین انتقال ها است و باید هنگامی از آن استفاده کنید که بطور دائمی میخواهید یک صفحه را حذف یا منتقل کنید و یا زمانی که در ساختار پیوند یکتا صفحات سایت تغییری ایجاد کنید. کد 301 به ربات های موتور جستجو می گوید صفحه ای که به دنبال آن هستند، در این آدرس در دسترس نیست، و دیگر نیازی به ایندکس شدن وجود ندارد.
آموزش ساخت ریدایرکت 301
یکی از روش های مرسوم ساخت ریدایرکت 301، ویرایش پرونده htaccess سرور است که این روش در سرورهای آپاچی Apache قابل استفاده است.
وب سرور Nginx روش منحصر به فرد خود را برای تعریف ریدایرکت ها در پیکر بندی سرور دارد. در این روش هر بار که بخواهید یک انتقال جدید اضافه باید ابتدا وارد سرور FTP سایت تان شوید، فایل ها را ویرایش کنید و در آخر آن ها را مجددا بار گذاری کنید. این روش نیاز به دانش گسترده ای در زمینه ی مدیریت سیستم دارد، به همین دلیل استفاده از آن زیاد مرسوم نیست.
یکی از دلایل اصلی این نوع ریدایرکت این است که به طور مثال وب سایتی با دو آدرس www.example.com و example.com در دسترس می باشد. و از آنجا یی که گوگل محتوای کپی را جریمه می کند، باید یکی از دو آدرس در دسترس باشد. هرچند که ممکن است موتور های جستجو سایت را در هر دو آدرس ایندکس کرده باشند ولی بهتر است سایت فقط از طریق www یا بدون www در دسترس باشد. فایل اصلی .htaccess در پوشه ی Public_Html در بخش File Manager هاست قرار دارد. در ادامه redirect از طریق htaccess آموزش داده میشود.
ریدایرکت com به www.example.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
ریدایرکت example.com به example.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^/?$ "http\:\/\/example\.com\/" [R=301,L]
ریدایرکت به com/index.php
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^$ http://example.com/index.php [L,R=301]
ایجاد ریدایرکت 301 برای تمامی درخواست های http که روی دامنه ی قدیم می باشند:
مثال 1 – انتقال از com به www.newexample.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !oldexample.com$ [NC]
RewriteRule ^(.*)$ http://www.newexample.com/$1 [L,R=301]
کد فوق در مواقعی مفید می باشد که شما از www.newexample.com بعنوان دامنه ی جدید استفاده کنید (که قبلا توضیح داده شد امکان تعریف دامنه با www یا بدون www وجود دارد) – اگر بیاد نیارید، مثال 2 را مشاهده کنید.
مثال 2 – ریدایرکت از com به newexample.com
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !oldexample.com$ [NC]
RewriteRule ^(.*)$ http://newexample.com/$1 [L,R=301]
برای انجام مراحل ریدایرکت فوق ابتدا باید مراحل زیر را طی کنید:
- وارد کنترل پنل هاست خود شوید.
- بعد از ورود به هاست، در بالای صفحه سمت راست روی علامت چرخ دنده یا همان تنظیمات هاست کلیک کنید.
- گزینه Show Hidden Files را در حالت فعال قرار دهید.
- به بخش File Manager هاست مراجعه کنید.
- در مسیر دامنه مقصد (دامنه ای که ریدایرکت به آن انجام می شود) فایل htaccess. را بیابید.
- روی فایل htaccess. کلیک راست کرده و گزینه Edit را انتخاب کنید. تا به بخش ویرایشگر آن هدایت شوید. تا در مراحل بعدی بتوانید کدهای ریدایرکت را به آن اضافه نمایید.
ممکن است فایل htaccess. در هاستتان موجود نباشد، در چنین حالتی می توانید به صورت دستی آن را ایجاد کنید. برای این منظور:
- در نوار ابزار هاستتان روی گزینه New File کلیک کنید. تا فایل جدیدی ایجاد شود.
- نام آن را htaccess. قرار دهید.
- باید این فایل را در مسیر public_html قرار دهید.
مطالعه کامل و جامع پیرامون آموزش htaccess
ریدایرکت 301 با PHP
برای ساخت ریدایرکت 301در وردپرس دو روش وجود دارد:
- با تغییر کد های هدر صفحه آن را ریدایرکت کنید.
- از امکان تابع ساخته شده وردپرس استفاده کنید.
چگونه در افزونه وردپرس Yoast SEO ریدایرکت 301 ایجاد کنیم؟
چنانچه سایت مورد نظر شما با وردپرس راه اندازی شده، بهتر است که نصب افزونه قدرتمند Redirection را انجام دهید. پس از نصب در منوی "ابزارها" بر روی منوی Redirection کلیک کنید تا به محیط پیکربندی این افزونه وارد شوید. در بالای صفحه ۷ تب متفاوت وجود دارد. در تب Redirects می توانید به سادگی یکی از لینک های سایت مورد نظر را بر دیگری ریدایرکت کنید. برای اینجاد این کار در بخش Add new redirection در کادر Source URL آدرس لینک قدیمی و در کادر Target URL آدرس لینک جدید، که می خواهید کاربران به آن منتقل شوند را بنویسید و بر روی دکمه آبی رنگ Add Redirection کلیک کنید. چنانچه قصد تغییر کد انتقال 301، 302 و یا 307 را دارید میتوانید با استفاده از گزینه edit این تغییر را ایجاد کنید.
بنابراین در نسخه Premium افزونه یواست این کار به سادگی انجام پذیر است. افزونه سئو بدون به وجود آمدن ارور 404 که نشان دهنده حذف صفحه است به شما کمک می کند هر زمان که خواستید آدرس یک پست، صفحه یا طبقه بندی های سایت را تغییر دهید. برای این کار کافی است از منوی سئو، گزینه تغییر مسیر را انتخاب کنید. این افزونه به شما اجازه می دهد هر زمان که خواستید انتقال های صفحات را به آسانی ویرایش ویا حذف کنید. و زمانی که در حال ساخت یک ریدایرکت (redirect) حلقه ای Redirect Loop هستید به شما هشدار میدهد.
ریدایرکت 302
ریدایرکت 302 را معمولا با عنوان انتقال مبهم نیز میشناسند. و شباهت بسیاری به 301 دارد. با این تفاوت که این دائمی نیست. در گذشته تفاوت دیگری نیز با کد 301 داشت و آن عدم انتقال رنک بود. به طوری که ریدایرکت 301 با کاهش 15 درصدی رنک همراه بود اما 302 کاهش 100 درصدی را به همراه داشت. اما طبق قوانین جدید و قدرت سئو انتقال 301 و 302 بدون کاهش رنک ایجاد میشوند. و تفاوت عمده همان موقت و دائمی بودن است. هنگامی که از 302 استفاده میکنید موتورهای جستجوگر این پیقام را دریافت میکنند که محتوایی که به دنبال آن هستید وجود دارد اما موقتا در جای دیگری است. چنانچه قصد دارید بازدیدکنندگان یک صفحه خاص را، به آدرس دیگری هدایت کنید و در آینده از آدرس قدیمی مجددا استفاده کنید، از ریدایرکت 302 استفاده کنید.
اگر تسلط کافی به سیستم مدیریت وبسایت خود را دارید میتوانید با انجام مراحل زیر بهراحتی صفحات خود را ریدایرکت کنید.
ریدایرکت در وبسایتهای بر روی سرور یونیکس یا آپاچی
- یک کپی از فایل htaccess. موجود در ریشه سایت خود تهیه کرده و آن را در پوشه Backup ذخیره کنید تا در صورت بروز خطا امکان بازیابی شرایط اولیه وجود داشته باشد.
- فایل .htaccess را برنامه Notepad++ (یک برنامه ادیتور متن رایگان) باز کرده و در پایین کدهای موجود با توجه به مثال زیر ریدایرکت را انجام دهید (به فاصلهها دقت کنید).
redirect 302 /OldPage.html http://xyzname.com/NewPage.html
- فایل ویرایش شده را ذخیره و بر روی سرور وبسایت خود بارگذاری کنید و در انتها با مراجعه به آدرس قدیمی (xyzname.com/OldPage.html) از ریدایرکت صحیح به آدرس جدید (NewPage.html) اطمینان حاصل کنید.
ریدایرکت وبسایتهای بر روی سرورهای ویندوز
اگر از سرورهای ویندوز استفاده میکنید انجام ریدایرکت 302 پر دردسر است. زیرا یک صفحه باید در آدرس قدیمی باقی بماند تا کاربران به آدرس جدید هدایت شوند. برای انجام 302 بر روی سرور ویندوز مراحل زیر را باید طی کنید.
- یک صفحه در موقعیت آدرس قدیمی وبسایت قرار دهید (http://xyzname.com/OldPage.asp).
- اگر یک وبسایت ASP استاندارد را اجرا میکنید، کد زیر را در بالای تگ <html> یا <!DOCTYPE> کپی کنید:
<%@ Language=VBScript %>
<%
Response.Status=”302 Found”
Response.AddHeader “Location”,”http://xyzname.com/NewPage.asp”
%>
- همچنین اگر یک وبسایت Net. را اجرا میکنید، کد زیر را در بالای تگ <html> یا <!DOCTYPE> کپی کنید:
<script runat=”server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “302 Found”;
Response.AddHeader(“Location”,”http://xyzname.com/NewPage.asp”);
}
</script>
- در انتها با مراجعه به آدرس قدیمی (xyzname.com/OldPage.html) از ریدایرکت صحیح به آدرس جدید (NewPage.html) اطمینان حاصل کنید.
ریدایرکت موقت 307
با ظهور HTTP 1.1، ریدایرکت 307 به عنوان انتقال موقت و معتبر تر جایگزین 302 شد. با استفاده از این ریدایرکت موتورهای جستجوگر این پیغام را دریافت میکنند که صفحهای که به دنبال آن هستید موقتا به آدرس دیگری منتقل شده است اما پس از مدتی بازمیگردد. به همین دلیل از این redirect فقط زمانی استفاده کنید که مطمئن هستید تغییر مسیر صفحه به صورت موقتی است و در آینده به URL قبلی نیاز دارید.
ریدایرکت 304
در واقع یک کد HTTP است که گاها نیز نوعی ریدایرکت خوانده می شود. این کد به مرورگر شما این پیغام رو میدهد که ” منبعی که به دنبال آن هستید از زمانی که آخرین بار به آن سر زده اید تغییری نکرده است”
ریدایرکت با REGEX
هنگامی که قصد دارید برای URL های سایت تان redirect های پیچیده بسازید، ریدایرکت REGEX بهترین انتخاب است. با استفاده از انتقال REGEX می توانید صفحاتی را که دارای کلمات کلیدی مشابه هستند را به صورت گروهی به آدرس جدید هدایت کنید. استفاده از این روش در پروژه های بزرگ سئو مفید و کاربردی است. اما باید بدانید در صورتی قادر به استفاده از این نوع هستید که در این زمینه اطلاعات کافی داشته و حرفه ای باشید، زیرا در غیر این صورت به راحتی می تواند برای سایت شما مشکل ایجاد کند.
یادگیری عبارات با قاعده: Regex چیست؟
ریدایرکت 410
برای جلو گیری از نمایش کد خطای 404 که برای بسیاری نامطلوب است و موجب سردرگرمی کاربران میشود، از ریدایرکت 410 استفاده میکنند. این ریدایرکت (redirect) به کاربر و موتور های جستجو میگوید که این صفحه از سایت حذف شده است. با این روش ربات های موتور جستجو متوجه میشوند که این صفحه دیگر وجود ندارد ، به همین دلیل آن را از نتایج حذف میکنند.
ریدایرکت متای رفرش (meta refresh) :
در این روش به جای آن که تغییرات در سرور وب سایت شما به وجود بیایند در سمت کاربر اتفاق می افتند. به طور معمول Meta Refresh ها سرعت پایینی دارند و برای سئو توصیه نمی شوند.
ریدایرکت 451
Meta Refresh نوعی از انتقال است که به جای اجرا در سطح سرور، در سطح صفحه انجام می شود. این نوع ریدایرکت ها را ممکن است در صفحات انجمن های گفتگو و پس از ویرایش اطلاعات خود مشاهده کرده باشید. آنها معمولا به شکل صفحه موقت 5 ثانیه ای و با پیغام "در صورتی که تا چند ثانیه دیگر به صفحه مورد نظر منتقل نشدید، ابنجا را کلیک کنید" ظاهر می شوند. این ریدایرکت (redirect) تا حدودی اعتبار صفحه را منتقل می کند، اما به دلیل redirect کُند بودن این نوع در تکنیکهای سئوی سایت پیشنهاد نمی شود.
علاوه بر کدهای ریدایرکت گفته شده کدهای دیگری نیز وجود دارد که هرکدام معانی مختلفی دارند و چنانچه انتقال به درستی صورت نگیرد و یا دلایل دیگر این کدها نمایش داده میشوند. در ادامه این قبیل کدها و علت نمایش آنها آورده شده است.
- کد 404: دلیل نمایش این کد حذف و یا پیدا نشدن صفحهای است که به دنبال آن هستید.
- کد 503: سرور سایت به صورت موقت آفلاین است و کاربر نمیتواند به آن دسترسی داشته باشد. نمایش این کد دلایل مختلفی مانند آپدیت یا گرفتن بک آپ و یا اشتباه بودن پیکر بندی سرور DNS سایت رخ میدهد.
اهمیت ریدایرکت و تاثیر آن بر روی سئو
ریدایرکت 301 بیشترین اهمیت را برای متخصص سئو دارد. زیرا همانگونه که اشاره کردیم تمامی اعتبار و رتبه صفحه قدیمی به صفحه جدید منتقل میشود و با کاهش رنک وبسایت مواجه نخواهید شد. سئوکاران زمان زیادی را صرف توسعه و بهبود یک سایت میکنند به همین دلیل حفظ اعتبار و مخاطبان سایت برای آنها بسیار اهمیت دارد و خوشبختانه 301 این امکان را برای آنان فراهم کرده است که بدون کاهش رنک تمامی اطلاعات URL قدیمی را به URL جدید منتقل کنند.
ریدایرکت (redirect) چه زمانی کاربرد دارد؟
- حذف یک مقاله یا صفحه از سایت
- انتقال سایت به دامنه ای جدید
- حذف www در دامنه
- فعال سازی پیوند یکتا permalink در وردپرس
- ادغام سایت ها
- تغییر CMS
- درحال تغییر یک سیستم به سیستم دیگر بوده به همین دلیل URL را تغییر میدهید.
- هنگامی که قصد ادغام کردن محتوای چندین صفحه در یک صفحه را دارید..
- یک صفحه یا پست را حذف کرده اید و محتوای مشابه در جای دیگر موجود است.
ریدایرکت از طریق سرور یا با استفاده از پلاگین؟
گاهی برای شما سوال هست که ریدایرکت با هر نوعی که وجود دارد از سمت سرور با استفاده از htaccess باشد و یا با استفاده از پلاگین های موجود در سایت مثلا سایت های وردپرسی و ...
در جواب باید بگم عملیات ریدایرکت در سمت سرور با استفاده از htacces انجام می شود و درست نیست بیش از حد تعداد کدهای زیادی در این فایل قرار بدید (مشکل کدنویسی تمیز)
و بعد اگر نیاز باشد بدانید انتقال های قبلی چک شود در حالت فعلی به سختی قابل انجام خواهد بود در این نوع ریدایرکت بالاترین سرعت ممکن اتفاق می افتد و بهتر از برای انتقال خود دامنه فقط استفاده شود.
در حالت استفاده از پلاگین دست شما برای جستجو بین ریدایرکت های قبلی، حذف و مدیریت باز است اما سرعت این نوع انتقال چون از سمت htaccess نیست و اول هسته خود سایت شما باید اجرا شود کمی کندتر از حالت قبل است.
سوالات متداول:
مفهوم ساده تر ریدایرکت چیست؟
تصور کنید که طبق عادت همیشگی به یکی از مغازههای سوپر مارکت محل خود مراجعه کرده اید و با درب بسته سوپر مارکت محل مواجه میشوید، روی در آن نوشته "این نانوایی تا اطلاع ثانوی تعطیل است"، چه کار میکنید؟ حالا ما میتوانیم روی درب سوپر مارکت محله بنویسیم: " سوپر مارکت به کوچه بهار پلاک 14 تغییر کرد". این جمله دقیقاً مفهوم ریدایرکت 301 در سئو است!
چه صفحاتی از سایت نیاز به ریدایرکت 301 دارند؟
تمامی صفحاتی که به هر دلیل آدرس یا URL آن ها تغییر میکند، نیاز به ریدایرکت 301 دارند.
چگونه یک صفحه را ریدایرکت کنیم؟
پاسخ این سوال به طور مفصل در بالا شرح داده شده است.
ریدایرکت برای سایت چه ضرری دارد؟
اگر تعداد صفحات 404 سایت شما بیش از حد باشد، میتواند برای سئو مضر باشد ولی ریدایرکت یک روش مناسب برای ارجاع به صفحه جدید است که اتفاقاً میتواند کاربران شما را راضی نگه دارند. البته به این شرط که محتوای صفحه انتقال شده با صفحه مورد نظر مرتبط باشد.
آیا استفاده از ریدایرکت 301 موجب کاهش اعتبار صفحه میشود؟
در حال حاضر ریدایرکت 301 موجب از دست رفتن اعتبار صفحه یا کاهش آن نمیشود ولی در گذشته شرایط متفاوتی حاکم بود.
ریدایرکت یکی از اصول و کارهایی که تمام سئو کاران باید با آن آشنا باشند و نسبت به آن علم کامل داشته باشند و باید با آگاهی تمام نوع انتقال مورد نظر خود را انتخاب کنند. یکی از بهترین روشهای انجام redirect استفاده از افزونه قدرتمند Redirection است. زیرا با استفاده از آن تمام ریدایرکتهای مورد نظر را میتوانید به راحتی انجام دهید.
سلام
من حدود ۶۰۰ تا صفحه ۴۰۴ دارم
اینا رو قبلا ریدایرکت زدم ولی بازم تو سرچ کنسول هستش
باید ریموال کنم؟ اگر بله چطور همشو باهم ریموال کنم؟
وقت بخیر
اگر ریدایرکت 301 انجام داده باشید و از بخش pages در سرچ کنسول برای خطاهای 404 گزینه start validation رو بزنید به مرور زمان خود گوگل صفحات 404 شمارو از نتایج حذف میکنه
استفاده از ریموال به صورت موقتی است ولی در این بخش هم میتونید با مشخص کردن prefix صفحاتی با ساختار یکسان رو به صورت کلی حذف کنید
ریدایرکت 301 صفحات 404 به صفحه اصلی چه تاثیری روی سئو سایت داره؟ آیا گوگل اهمیت میده به این موضوع؟
این مساله یک شمشیر دولبه هست اگر ریدایرکت رو اصولی انجام ندید مشکلات زیادی برای خودتون به بار خواهید آورد بهتره منبع ایجاد مشکل 404 در سایتتون رو پیدا کنید ولی در کل با این کار میتونید صفحات 404 رو از بین ببرید
سرچ کنسول نشون میده که چند مرحله ریدایرکت اتفاق افتاده یعنی یک آدرس میانی هم در ریدایرکت هست مشکل چیه؟
بهترین حالت اینه که شما فقط یک مسیر ریدایرکت شده داشته باشید تکرار و تعدد میشه بحث لوپ ریدایرکت که سبب خارج شدن از ایندکس هم میشه تا 2 ریدایرکت در حالت تجربی مشکلی ندارد
سلام و خداقوت به همگی
دوستان محتوا نویس سایت اشتباهی دوتا محصول رو ریدایرکت ۳۰۱ زده روی محصولای دیگه
آیا راهی داره بشه برشون گردوند و ریدایرکت ۳۰۱ رو لغو کرد مثلا چون من که سرچ کردم منابع انگلیسی گفته بودن نمیشه
ریدایرکت هارو حذف کنید بعد یک مدت صفحات در نتایج برمیگردند راه مطمئن تر ایجاد صفحات جدید برای محصولاتی هستند که ریدایرکت شدن