آیا تا حالا شده یه صفحه وب رو باز کنی و ناگهان با خطای 404 مواجه بشی؟ این اتفاق واقعاً کلافهکنندهست، مخصوصاً وقتی دنبال یه اطلاعات خاص هستی. حالا تصور کن که این مشکل میتونه خیلی راحت با استفاده از یه چیزی به اسم ریدایرکت حل بشه. ریدایرکت مثل یه راهنمای ترافیکی دیجیتال عمل میکنه که کاربرا و موتورهای جستجو رو به آدرس درست هدایت میکنه. این مقاله قراره تمام نکات مهم و بهترین روشهای استفاده از ریدایرکتها رو بهت یاد بده تا بتونی سایتت رو به بهترین شکل مدیریت کنی و از مشکلات احتمالی جلوگیری کنی.
ریدایرکت یه راه سادهست که کاربرا و موتورهای جستجو رو به یه URL دیگه میفرسته. این کار بیشتر وقتی استفاده میشه که یه صفحه وب به آدرس جدیدی منتقل شده باشه، و اینجوری مطمئن میشیم که بازدیدکنندهها و رباتهای جستجوگر به صفحه درست هدایت میشن.
انواع ریدایرکتهای رایج شامل 301 (انتقال دائمی)، 302 (انتقال موقتی) و متا ریفرش میشن. بعداً در مورد اینا بیشتر صحبت میکنیم.
ریدایرکتها مهم هستن چون:
اگه یادت بره ریدایرکتها رو پیادهسازی کنی، ممکنه رتبههای موتورهای جستجوت رو از دست بدی و کاربرانت رو ناراحت کنی.
یه مثال ساده
فرض کن یه صفحه رو منتقل یا حذف کردی ولی ریدایرکت رو نزاشتی. کاربرا با خطای 404 مواجه میشن.
این اصلاً خوب نیست. یه خطای 404 ممکنه باعث بشه بازدیدکنندهها سایتت رو ترک کنن. ریدایرکتهای درست از اینجور خطاها جلوگیری میکنن و کمک میکنن کاربرا صفحات مورد نظرشون رو پیدا کنن.
حالا فرض کن لینکهای ورودی به صفحه حذف شده (و الان خطای 404 میده) دارن اشاره میکنن. مشکل بزرگیه!
تمام اعتبار اون لینکها رو از دست میدی. این چیزی هست که گوگل هم تاییدش کرده.
دلایل رایجی که باعث میشه URLها رو ریدایرکت کنی، شامل ایناست:
میتونی یه URL واحد رو ریدایرکت کنی، یا یه گروه از URLها رو. حتی میتونی کل دامنه رو به یه دامنه دیگه ریدایرکت کنی.
بسته به موقعیت، ممکنه به یه نوع خاص از ریدایرکت نیاز داشته باشی. بیا با هم رایجترین نوعهای ریدایرکت رو مرور کنیم و ببینیم کِی باید از هرکدوم استفاده کنیم.
دو نوع اصلی ریدایرکت داریم: دائمی و موقتی.
کاربرا نمیتونن فرقشون رو تشخیص بدن، ولی برای موتورهای جستجو خیلی مهمه.
این نوع ریدایرکت زمانی استفاده میشه که دیگه قصد نداریم صفحه قدیمی رو نشون بدیم. مثلاً وقتی یه صفحه رو حذف میکنیم یا چند صفحه تکراری رو با هم ترکیب میکنیم. این ریدایرکتها به موتورهای جستجو میگن که میتونن URL قدیمی رو از نتایج جستجو حذف کنن و URL جدید رو جایگزین کنن.
ریدایرکت موقتی زمانی استفاده میشه که نیاز داریم برای مدت کوتاهی یه صفحه رو ریدایرکت کنیم. مثلاً وقتی در حال انجام تعمیرات سایت هستیم، میتونیم کاربرا رو موقتی به یه پیغام هدایت کنیم که بعد از تکمیل تعمیرات دوباره سر بزنن.
ریدایرکت HTTP از یه کد مخصوص در پاسخ HTTP استفاده میکنه تا به مرورگر بگه به یه صفحه وب دیگه بره. اینجوری کار میکنه:
مرورگر کاربر درخواست URL قدیمی رو میفرسته. سرور بهطور خودکار صفحه وب جدید رو نمایش میده.
از دید کاربر، این ریدایرکتها کاملاً بدون مشکل و یکپارچه هستن.
به اصطلاح فنی، به اینا ریدایرکتهای سرور-ساید گفته میشه. چون سرور وب (جایی که سایتت میزبانی میشه) قبل از بارگذاری سایتت این کار رو انجام میده.
این کار رو با پاسخ دادن با یه کد 3xx HTTP وقتی درخواست برای URL ریدایرکت شده دریافت میکنه، انجام میده.
این کدهای 3xx مثل دستورالعملهایی برای مرورگر هستن. اونا نشون میدن که URL درخواست شده ریدایرکت شده و کجا باید صفحه وب جدید رو پیدا کنه.
ریدایرکت 301 به گوگل میگه که ریدایرکت از یه URL به یه URL دیگه دائمیه. و این بهترین روش برای انتقال اعتبار لینک هم هست. چون اعتبار صفحه رو از URL قدیمی به URL جدید منتقل میکنه.
یه مثال واقعی از ریدایرکت 301:
فرض کن سایتت دو صفحه درباره اسباببازیهای سگ داره. نیازی به دو صفحه در مورد یه موضوع نیست. علاوه بر این، یکی از صفحات قدیمی و بهروزرسانی نشده است.
تو این حالت، بهتره صفحه قدیمی و بهروزرسانی نشده رو حذف کنی و URLش رو به URL صفحه جدید ریدایرکت کنی.
ریدایرکت 302 به گوگل میگه که ریدایرکت از یه URL به یه URL دیگه موقتیه.
از ریدایرکت 302 استفاده کن وقتی:
گوگل همچنان صفحه ریدایرکت شده رو ایندکس میکنه و هیچ اعتباری یا ترافیکی به صفحه جدید منتقل نمیشه. یعنی استفاده اشتباه از ریدایرکت موقتی میتونه به رتبهبندی موتورهای جستجوت آسیب بزنه.
نمیدونی کی از 302 بهجای 301 استفاده کنی؟
بهطور کلی، فقط زمانی از 302 استفاده کن که قصد داری URL اصلی رو در آینده برگردونی (یا یه URL جدید ایجاد کنی).
بیشتر مواقع فقط به ریدایرکتهای 301 یا 302 نیاز داری، ولی بعضی وقتا بقیه انواع ریدایرکتهای HTTP هم به درد میخورن. اینا کمتر معمول هستن، ولی دونستنشون خالی از لطف نیست:
این ریدایرکت کاربرا رو به یه صفحه مرتبط دیگه هدایت میکنه وقتی صفحه قدیمی در دسترس نیست. بیشتر وقتی استفاده میشه که کاربرا فرم رو ارسال کردن و نمیتونن دوباره ارسال کنن.
مثل ریدایرکت 302 هست، ولی درخواستهای سرور برای صفحه وب رو به شکل دیگهای هدایت میکنه. (معمولاً 302 برای SEO بهتره)
این نوع نشون میده که انتقال دائمیه و مثل 301 برخورد میشه. ولی ممکنه گزارشدهی رو گیجکننده کنه اگه بین این دو تا نوع ریدایرکت جابجا بشی.
ریدایرکتهای متا ریفرش در سطح صفحه (کلاینت-ساید) انجام میشن، نه در سطح سرور. یعنی این نوع ریدایرکتها توی مرورگر انجام میشن نه روی سرور. برخلاف ریدایرکتهای HTTP.
حالا باید بدونی:
اگه باید ریدایرکت انجام بدی، ریدایرکتهای HTTP برای SEO بهتر از متا ریفرشها هستن.
چرا؟
چون متا ریفرشها میتونن گوگل و بازدیدکنندههای سایت رو گیج کنن. اونا کندتر هستن (که تجربه کاربری رو بد میکنه) و ممکنه گوگل صفحه اشتباهی رو ایندکس کنه. ولی گوگل فقط وقتی متا ریفرش رو پیشنهاد میده که نتونی از ریدایرکت سرور-ساید استفاده کنی. چون اونا کندتر هستن و اعتبار لینک کمتری منتقل میکنن.
دو نوع ریدایرکت متا ریفرش داریم: فوری و تاخیری.
این نوع بلافاصله بعد از بارگذاری صفحه توسط مرورگر، ریدایرکت رو انجام میده. گوگل اینا رو به عنوان ریدایرکت دائمی تفسیر میکنه.
شکلش اینطوریه:
<meta http-equiv="refresh" content="0; url=https://www.example.com/">
این نوع بعد از چند ثانیه که خودت انتخاب میکنی، ریدایرکت رو انجام میده. گوگل اینا رو به عنوان ریدایرکت موقتی تفسیر میکنه.
مثلاً این یکی بعد از پنج ثانیه ریدایرکت میکنه:
<meta http-equiv="refresh" content="5; url=https://www.example.com/">
ریدایرکتهای جاوااسکریپت از زبان برنامهنویسی جاوااسکریپت استفاده میکنن تا کاربرا رو از یه URL به یه URL دیگه بفرستن. این نوع ریدایرکتها هم در سطح کلاینت انجام میشن، نه سرور.
و مثل ریدایرکتهای متا ریفرش، برای SEO توصیه نمیشن. چون گوگل ممکنه صفحاتتو درست ایندکس نکنه وقتی از جاوااسکریپت استفاده میکنی.
این میتونه رتبه سایتت رو توی نتایج جستجو خراب کنه.
گوگل ریدایرکتهای جاوااسکریپت رو مثل 301ها در نظر میگیره. ولی تضمینی نیست، پس ممکنه با استفاده از این نوع ریدایرکت، ریسک کنی و اعتبار صفحه رو از دست بدی.
یه نمونه از ریدایرکت جاوااسکریپت توی کد HTML:
window.location.replace("https://example.com");
سه راه اصلی برای تنظیم ریدایرکتهای HTTP وجود داره:
اگه از وردپرس استفاده میکنی، میتونی با استفاده از پلاگینها ریدایرکتها رو تنظیم کنی. تو این مثال از پلاگین Yoast استفاده میکنیم چون یکی از رایجترین پلاگینهای سئوی وردپرسه. البته پلاگینهای رایگان دیگهای هم هستن.
اول، پلاگین رو از فروشگاه وردپرس دانلود کن.
بعد به صفحه “پلاگین” تو وردپرس برو و روی “فعالسازی” کلیک کن.
حالا پلاگین فعاله.
بعدش، گزینه “Redirects” رو از منوی Yoast در نوار ابزار سمت چپ انتخاب کن (همون “SEO” که کنارش یه "Y" هست).
حالا نوع ریدایرکت رو که میخوای تنظیم کنی، انتخاب کن.
قسمت اسلاگ (بخشی از URL بعد از ".com") از URL قدیمی رو که میخوای ریدایرکت کنی و URL جدید رو وارد کن.
مطمئن شو که اسلاگ درست نوشته شده، وگرنه ریدایرکت کار نمیکنه.
روی “افزودن ریدایرکت” کلیک کن و ریدایرکتت فعال میشه.
لیست کامل ریدایرکتهای فعال رو زیر دکمه “افزودن ریدایرکت” میتونی پیدا کنی.
اگه از ویکس استفاده میکنی، میتونی ریدایرکتها رو مستقیم توی CMS تنظیم کنی.
به پایین صفحه کنترل سایتت اسکرول کن. روی “ابزارهای SEO” زیر “بازاریابی و SEO” کلیک کن.
روی “URL Redirect Manager” در گوشه پایین سمت چپ لیست ابزارها کلیک کن.
بعد، روی دکمه “New Redirect” در گوشه بالا سمت راست صفحهات کلیک کن.
یه پنجره پاپآپ ظاهر میشه. نوع ریدایرکت رو انتخاب کن و URL قدیمی رو که میخوای ریدایرکت کنی وارد کن.
در نهایت، روی “Save” یا “Save & Add Another.” کلیک کن.
میتونی ریدایرکتها رو دستی هم انجام بدی.
هشدار: این گزینه فقط برای متخصصهاست. اگه اشتباه کنی، میتونه مشکلات بزرگی برای سایتت به وجود بیاره.
برای تنظیم ریدایرکتها میتونی از فایلی به نام .htaccess استفاده کنی. این فایل متن سادهایه و شکلش اینجوریه:
<IfModule mod_rewrite.c>
RewriteEngine On
</IfModule>
این فایل روی سرورهای Apache استفاده میشه. (ولی میتونه روی سایر انواع سرورها هم پیدا بشه).
اول باید موتور بازنویسی رو پیدا کنی (که میتونی توی ماژول mod_rewrite در Apache پیدا کنی).
این ماژول بهطور پیشفرض توی Apache هست. ولی اگه فعال نیست، میتونی این کد رو اضافه کنی:
<IfModule mod_rewrite.c>
RewriteEngine On
</IfModule>
حالا قوانین ریدایرکت رو درست زیر "RewriteEngine On" اضافه میکنیم.
برای ریدایرکت یک URL، از کد زیر استفاده کن. نوع ریدایرکت رو مشخص کن و /oldpage/ و /newpage/ رو با اسلاگهای واقعی صفحاتت جایگزین کن.
Redirect 301 /oldpage/ https://www.example.com/newpage/
برای ریدایرکت یک پوشه، از کد زیر استفاده کن و "folder" رو با نام پوشهای که میخوای ریدایرکت کنی و "location" رو با مقصد ریدایرکت جایگزین کن.
RewriteRule ^folder/(.*)$ /location/$1 [R=301,NC,L]
برای ریدایرکت به دامنه جدید، این کد رو اضافه کن:
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
اگه کاربرا (یا موتورهای جستجو) سعی کنن به URLهایی بدون "www" دسترسی پیدا کنن، میتونی اونا رو به URLهایی که شامل "www" هست هدایت کنی.
تفاوت عملی بزرگی بین این دو وجود نداره، ولی گوگل نسخههای www و غیر www از یه URL رو به عنوان موجودیتهای متفاوت میبینه.
بنابراین، انتخاب یکی از این زیردامنهها به گوگل کمک میکنه بفهمه کدوم یکی "رسمی" هست.
این کد رو اضافه کن تا یک URL غیر www رو به www ریدایرکت کنی:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
این اساساً مخالف مورد بالاست. اگه نمیخوای کاربرا به زیردامنه "www" دسترسی داشته باشن، میتونی این کد رو اضافه کنی:
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
URLهای غیر www برای ترافیک مستقیم مفید هستن، چون مردم معمولاً URLها رو بدون "www" وارد میکنن. با این حال، به یاد داشته باش که با زیردامنه غیر www کنترل کمتری روی کوکیها داری.
اگه میخوای صفحات HTTP رو به HTTPS ریدایرکت کنی، این کد رو نیاز داری:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
یادت باشه که قبل از ریدایرکت به HTTPS، باید یک گواهی SSL بخری.
حالا که یاد گرفتیم چطور صفحات رو ریدایرکت کنیم، بیایید به چند نکته مهم و بهترین روشهای استفاده از ریدایرکتها بپردازیم.
وقتی یه ریدایرکت رو تنظیم میکنی، مطمئن شو که محتوای صفحه جدید با محتوای صفحه قدیمی همخوانی داره. مثلاً، ریدایرکت کردن یه صفحه تخفیف منقضی شده به صفحه اصلی تخفیفاتت، منطقیتر از ریدایرکت کردن به صفحه اصلی سایتته.
اگه ریدایرکت به یه URL قدیمی که مرتبط نیست وصل بشه، موتورهای جستجو ممکنه اعتبار صفحه قدیمی رو منتقل نکنن. این برای تجربه کاربری هم خوب نیست و میتونه منجر به خطای soft 404 بشه.
این خطا وقتی رخ میده که سرور کد “200 OK” رو ارسال میکنه، ولی گوگل فکر میکنه صفحه باید 404 باشه. (کد 200 یعنی درخواست موفقیتآمیز بوده).
این میتونه وقتی اتفاق بیفته که صفحهات محتوایی نداره (مثل یه دستهبندی محصول یا وبلاگ خالی)، یا صفحهت غیر مرتبط با صفحه ریدایرکت شده به نظر میرسه، یا صفحه پیغام خطای 404 رو نمایش میده (ولی هنوز کد 200 رو ارسال میکنه).
گوگل اصولاً صفحات 404 واقعی رو نادیده میگیره. این برای خطاهای soft 404 اتفاق نمیافته، پس بهتره ازشون دوری کنی و اگه خطایی وجود داره، رفعش کنی.
برای پیدا کردن خطاهای soft 404، میتونی از کنسول جستجوی گوگل استفاده کنی. به تب “Coverage” زیر “Index” برو.
کنسول جستجو خطاهای soft 404 رو بهعنوان خطا علامت میزنه. یه لیست از URLهایی که به نظر میرسه خطای soft 404 دارن، توی بخش "Errors" زیر نمودار بهت میده.
وقتی خطاهای soft 404 رو پیدا کردی، رفعشون کن. برای هر خطای soft 404 مرتبط با ریدایرکتها، ریدایرکت رو بهروز کن تا به مرتبطترین صفحه موجود اشاره کنه.
زنجیره ریدایرکت وقتی رخ میده که بیش از یک URL ریدایرکت بین URL اصلی و URL نهایی وجود داشته باشه.
فرض کن URL صفحهت قبلاً www.yoursite.com/about-the-company/ (URL A) بود و بعد به www.yoursite.com/about-us/ (URL B) ریدایرکت شده. اگه بعداً URL جدید رو به www.yoursite.com/about/ (URL C) ریدایرکت کنی، این یه زنجیره ریدایرکت ایجاد میکنه.
چون حالا URL اول به URL دوم ریدایرکت میشه و URL دوم به URL سوم.
گوگل میتونه تا ۱۰ جهش ریدایرکت رو بدون مشکل دنبال کنه، ولی مواظب باش که زنجیرهها رو خیلی پیچیده نکنی.
زنجیرههای ریدایرکت طولانی میتونن باعث تاخیر در خزیدن، از دست دادن اعتبار لینک و افزایش زمان بارگذاری صفحه بشن. که میتونه به سئوی سایتت آسیب بزنه و کاربرا رو ناراحت کنه.
برای رفع این مشکل، مستقیماً از URL A به URL C ریدایرکت کن بدون توقف در URL B.
حلقه ریدایرکت وقتی رخ میده که یه URL به یه URL دیگه ریدایرکت بشه و اون URL دوم دوباره به URL اصلی برگرده. این یه دایره بینهایت از ریدایرکتها ایجاد میکنه.
این ریدایرکت شکستهست و در واقع بازدیدکنندهها یا موتورهای جستجو رو به مقصد نمیرسونه.
حلقههای ریدایرکت رو با انتخاب صفحه "درست" رفع کن و اطمینان حاصل کن که صفحه دیگه بهش ریدایرکت میکنه. بعد ریدایرکت دیگهای که حلقه رو ایجاد میکنه، حذف کن.
فرض کن یه صفحه قدیمی رو به یه صفحه جدید ریدایرکت کردی. ممکنه هنوز صفحات دیگهای روی سایتت باشن که به اون صفحه قدیمی لینک میدن.
در این صورت، کاربرا اول به لینک قدیمی میرن و بعد به URL جدید ریدایرکت میشن. ممکنه کاربران متوجه این موضوع نشن، ولی این ریدایرکت اضافه میتونه به مرور زمان باعث ایجاد زنجیره ریدایرکت بشه، اگه به نگهداریش توجه نکنی.
برای حل این مشکل، بهترین کار اینه که لینکهای داخلی قدیمی رو به URL جدید تغییر بدی.
معمولاً ممکنه یه سایت روی بیش از یک زیردامنه وجود داشته باشه (non-www و www، HTTP و HTTPS، و غیره).
مثلاً، http://example.com و https://example.com به یه دامنه اشاره میکنن.
موتورهای جستجو اونا رو به عنوان سایتهای جداگانه میبینن، که به خودی خود مشکلی نداره. ولی این میتونه مشکلات محتوای تکراری ایجاد کنه اگه مراقب نباشی. بهطور اساسی، میتونی ترافیک رو تقسیم کنی و با خودت رقابت کنی اگه گوگل مطمئن نباشه کدوم نسخه از سایتت رو به کاربرا نشون بده.
میتونی این مشکل رو با ریدایرکت 301 همه نسخههای مختلف یه صفحه به یه URL واحد به راحتی حل کنی. این کار گوگل رو به صفحه ترجیحیت هدایت میکنه (هدف ریدایرکت).
از ریدایرکتها برای جلوگیری از محتوای تکراری در این موارد استفاده کن:
گوگل بکلینکهایی که به یه صفحه 404 اشاره میکنن رو نادیده میگیره. و این مشکله چون بکلینکها فاکتور مهمی در رتبهبندی هستن.
به عبارت دیگه، از گوگل برای اون بکلینکهایی که به صفحات 404 اشاره میکنن، هیچ اعتباری نمیگیری.
بله، ریدایرکتها اعتبار صفحه قدیمی رو به صفحه جدید منتقل میکنن، به شرطی که محتوای هر دو صفحه به هم نزدیک باشه. اما باید بدونی که ریدایرکتها ممکنه 100٪ اعتبار صفحه اصلی رو منتقل نکنن. اگه دلیل قانعکنندهای برای ریدایرکت کردن یه صفحه داری، بهترین کار اینه که ریدایرکت رو انجام بدی.
نه، ریدایرکتها برای سئو ضرر ندارن. ولی ماجرا یه کم پیچیدهتره. بهترین حالت اینه که اصلاً نیاز به ریدایرکت نداشته باشی. اینجوری صفحاتت هیچ اعتباری رو از دست نمیدن. ولی احتمالاً در یه مقطعی نیاز به ریدایرکت کردن صفحات پیدا میکنی. تو این حالت، انجام درست ریدایرکت بهترین راه برای حفظ رتبههای فعلیته. و از دست دادن اعتبار صفحه رو هم جلوگیری میکنه.
اگه یه صفحه وب رو منتقل یا حذف کنی و URL قدیمی رو ریدایرکت نکنی، کاربرا و گوگل با خطای 404 مواجه میشن وقتی به اون URL قدیمی میرن. این باعث سردرگمی میشه و ممکنه باعث شه کاربرا صفحه رو ترک کنن. در حالی که 404ها معمولاً بهعنوان عامل رتبهبندی گوگل در نظر گرفته نمیشن، اگه لینکهای داخلی به صفحهای که دیگه وجود نداره اشاره کنن، میتونن مشکلساز بشن. تو این حالت، بهترین کار اینه که به یه صفحه مرتبط ریدایرکت کنی تا کاربرا و موتورهای جستجو خودشون سردرگم نشن.
باید ریدایرکتهای دائمی رو حداقل یک سال نگه داری. (در حالت ایدهآل، بهطور نامحدود. این بهترین کار برای تجربه کاربریه.) بعد از این مدت، گوگل میگه میتونه همه سیگنالهای رتبهبندی رو به URL جدید منتقل کنه.
خوشبختانه، تست کردن یه ریدایرکت خیلی سادهست. فقط کافیه URL قدیمی رو کپی کنی و توی مرورگرت وارد کنی. اگه بعد از زدن اینتر به URL جدید هدایت شدی، تبریک میگم! ریدایرکتت کار میکنه. اگه نه، ببین موقع تنظیم ریدایرکت، اشتباهی توی تایپ نکردی.
در نهایت، ریدایرکتها ابزارهای قدرتمندی هستن که بهت کمک میکنن تجربه کاربری بهتری برای بازدیدکنندههات فراهم کنی و اعتبار سایتت رو حفظ کنی. با رعایت نکاتی که در این مقاله یاد گرفتی، میتونی مطمئن باشی که سایتت همیشه در مسیر درستی حرکت میکنه و کاربران به راحتی به محتوای مورد نظرشون دسترسی پیدا میکنن. اگر هنوز سوالی داری یا نیاز به راهنمایی بیشتری داری، حتماً در بخش نظرات مطرح کن تا بهت کمک کنم. یادت نره، درست استفاده کردن از ریدایرکتها میتونه تفاوت بزرگی در موفقیت سایتت ایجاد کنه.