آن روزی که ریدایرکت ناقص، ترافیک سایت را نصف کرد

چند سال پیش، پس از مهاجرت یکی از سایت‌های مشتری به HTTPS، متوجه شدم ترافیک ارگانیک در طول یک ماه به نصف رسیده است. تمام گواهی SSL نصب بود و سایت روی HTTPS باز می‌شد، اما لینک‌های قدیمی HTTP که در نتایج گوگل بودند، هیچ‌کدام به نسخه جدید هدایت نمی‌شدند. آن روز برای من روشن شد که نصب SSL نیمی از کار است و ریدایرکت، نیم دیگر. اگر با مفاهیم پایه آشنا نیستید، پیشنهاد می‌کنم ابتدا SSL چیست و چرا سایت به آن نیاز دارد را بخوانید.

ریدایرکت HTTP به HTTPS دقیقاً چیست؟

ریدایرکت (Redirect) یا هدایت، فرآیندی است که در آن درخواست‌های ورودی به یک آدرس، به آدرس دیگری هدایت می‌شوند. در مورد ریدایرکت HTTP به HTTPS، تمام درخواست‌هایی که با پروتکل HTTP وارد سایت می‌شوند، به‌طور خودکار به نسخه HTTPS همان آدرس منتقل می‌شوند.

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

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

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

  • Duplicate Content: گوگل ممکن است نسخه HTTP و HTTPS را دو صفحه جداگانه در نظر بگیرد و اعتبار را بین آن‌ها تقسیم کند.
  • Mixed Content: اگر بخشی از صفحات HTTP و بخشی HTTPS باشد، مرورگر با هشدار امنیتی مواجه می‌شود.
  • لینک‌های شکسته: تمام لینک‌های خارجی که به نسخه HTTP اشاره می‌کنند، به خطای ریدایرکت یا ۴۰۴ می‌خورند.
  • افت رتبه: توزیع اعتبار بین دو نسخه، باعث افت رتبه در نتایج جستجو می‌شود.
  • بی‌اعتمادی کاربران: کاربرانی که به نسخه HTTP می‌رسند، با هشدار Not Secure مواجه می‌شوند و سایت را ترک می‌کنند.
  • از دست رفتن ترافیک ارگانیک: در نهایت، همه این عوامل به کاهش ترافیک ارگانیک منجر می‌شود.

توضیح کامل تأثیر این موضوع بر سئو در تأثیر HTTPS بر سئو چقدر است آمده است.

انواع ریدایرکت: 301 یا 302؟

در ریدایرکت‌ها، دو نوع اصلی وجود دارد که کاربرد متفاوتی دارند:

  • ریدایرکت 301 (Moved Permanently): نشان می‌دهد که آدرس قبلی به‌طور دائمی به آدرس جدید منتقل شده است. این نوع ریدایرکت تمام اعتبار لینک را به آدرس جدید منتقل می‌کند.
  • ریدایرکت 302 (Found): نشان می‌دهد که انتقال موقتی است. اعتبار لینک به‌طور کامل منتقل نمی‌شود.

برای ریدایرکت HTTP به HTTPS، همیشه باید از ریدایرکت 301 استفاده کنید، چون انتقال دائمی است. استفاده از 302 می‌تواند به افت رتبه منجر شود. اگر با مفاهیم دیگر ریدایرکت آشنا نیستید، رفع خطای ریدایرکت حلقه‌ای وردپرس توضیحات مفیدی ارائه می‌دهد.

روش اول: ریدایرکت از طریق .htaccess

ساده‌ترین روش برای ریدایرکت HTTP به HTTPS در سرورهای Apache، استفاده از فایل .htaccess است. این فایل در پوشهٔ ریشهٔ سایت قرار دارد و قوانین سرور در آن تعریف می‌شوند. برای ریدایرکت، این خطوط را در بالای فایل .htaccess اضافه کنید:

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

این کد در سه خط، تمام درخواست‌های HTTP را به HTTPS ریدایرکت می‌کند. خط اول موتور Rewrite را فعال می‌کند. خط دوم شرایط را بررسی می‌کند که آیا HTTPS فعال است یا نه. خط سوم اگر HTTPS فعال نبود، به نسخه HTTPS ریدایرکت 301 می‌کند.

نکتهٔ مهم: قبل از هر تغییر در .htaccess، حتماً از فایل بکاپ بگیرید. خطای سینتکسی در این فایل می‌تواند سایت شما را کاملاً از دسترس خارج کند.

روش دوم: ریدایرکت در سرور Nginx

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

server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}

این کد، تمام درخواست‌های پورت ۸۰ را به HTTPS ریدایرکت ۳۰۱ می‌کند. در Nginx، ریدایرکت‌ها به‌طور کلی سریع‌تر از Apache هستند چون در سطح سرور اعمال می‌شوند.

روش سوم: ریدایرکت از طریق CDN

اگر سایت شما پشت CDN است، برخی سرویس‌های CDN امکان ریدایرکت خودکار HTTP به HTTPS را دارند. Cloudflare یکی از این سرویس‌هاست که با فعال‌کردن گزینهٔ Always Use HTTPS، تمام درخواست‌های HTTP را به HTTPS ریدایرکت می‌کند.

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

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

اگر به .htaccess یا پیکربندی سرور دسترسی ندارید، می‌توانید از افزونه‌های وردپرس استفاده کنید. افزونه‌هایی مثل Really Simple SSL، این کار را به‌سادگی انجام می‌دهند. فهرست افزونه‌های مرتبط در بهترین افزونه‌های ریدایرکت برای وردپرس آمده است.

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

گام‌های مهاجرت امن به HTTPS

ریدایرکت، بخشی از یک فرآیند بزرگ‌تر است. گام‌های کامل مهاجرت امن به HTTPS عبارتند از:

  • گام اول — تهیه بکاپ کامل: قبل از هر تغییری، بکاپ کامل از سایت و دیتابیس بگیرید.
  • گام دوم — نصب گواهی SSL: گواهی را از یک مرجع معتبر تهیه و نصب کنید. راهنما در چگونه SSL را نصب و فعال کنیم آمده است.
  • گام سوم — تغییر آدرس سایت: در تنظیمات وردپرس، آدرس سایت را از HTTP به HTTPS تغییر دهید.
  • گام چهارم — تنظیم ریدایرکت: ریدایرکت ۳۰۱ را از یکی از روش‌های بالا اعمال کنید.
  • گام پنجم — به‌روزرسانی دیتابیس: تمام آدرس‌های HTTP در دیتابیس را به HTTPS تغییر دهید.
  • گام ششم — به‌روزرسانی لینک‌ها: تمام لینک‌های داخلی و خارجی را به HTTPS تغییر دهید.
  • گام هفتم — به‌روزرسانی نقشه سایت: نقشه سایت را با آدرس‌های HTTPS به‌روز کنید.
  • گام هشتم — رفع Mixed Content: مطمئن شوید که هیچ محتوای HTTP روی صفحات HTTPS بارگذاری نمی‌شود.
  • گام نهم — ثبت مجدد در Search Console: نسخه HTTPS را در Search Console اضافه کنید.
  • گام دهم — پایش بعد از مهاجرت: در چند هفته اول، رتبه‌ها و ترافیک را به‌طور دقیق پایش کنید.

به‌روزرسانی دیتابیس وردپرس

یکی از مهم‌ترین مراحل پس از مهاجرت، به‌روزرسانی آدرس‌های HTTP در دیتابیس است. اگر این کار انجام نشود، ممکن است برخی صفحات با محتوای مختلط نمایش داده شوند یا برخی لینک‌ها به نسخه HTTP هدایت شوند. روش کار:

  • روش اول — جستجو و جایگزینی در phpMyAdmin: از ابزار phpMyAdmin وارد دیتابیس شوید و در جداول مختلف، آدرس‌های HTTP را با HTTPS جایگزین کنید. حتماً قبل از این کار بکاپ بگیرید.
  • روش دوم — استفاده از WP-CLI: اگر به SSH دسترسی دارید، می‌توانید از دستور wp search-replace استفاده کنید.
  • روش سوم — افزونه‌های تخصصی: افزونه‌هایی مثل Better Search Replace این کار را به‌سادگی انجام می‌دهند.

نکتهٔ مهم: همیشه قبل از تغییر دیتابیس، بکاپ بگیرید. تغییر اشتباه در دیتابیس می‌تواند سایت شما را از کار بیندازد. راهنمای بکاپ در چگونه از وردپرس بکاپ بگیریم آمده است.

رفع Mixed Content

Mixed Content به وضعیتی گفته می‌شود که در آن صفحات HTTPS، برخی منابع (تصاویر، فایل‌های CSS، جاوااسکریپت) را از منابع HTTP بارگذاری می‌کنند. این وضعیت باعث هشدار امنیتی در مرورگر می‌شود و می‌تواند نرخ پرش را افزایش دهد. برای رفع Mixed Content:

  • جستجو در کد سایت برای آدرس‌های HTTP
  • بررسی افزونه‌ها و کدهای جاوااسکریپت برای آدرس‌های HTTP
  • استفاده از Content Security Policy برای اجبار به HTTPS
  • استفاده از افزونه‌های رفع Mixed Content

راهنمای کامل Mixed Content در رفع خطای Mixed Content در وردپرس آمده است. برای درک عمیق‌تر هدرهای امنیتی، هدرهای امنیتی HTTP چه کاربردی دارند راهنمای عملی ارائه می‌دهد.

پایش پس از مهاجرت

پس از مهاجرت، باید سایت را به‌طور دقیق پایش کنید. کارهایی که باید انجام دهید:

  • بررسی تمام صفحات اصلی سایت برای اطمینان از بارگذاری صحیح
  • بررسی ابزارهای تحلیل برای اطمینان از ثبت درست ترافیک
  • بررسی Search Console برای اطمینان از ایندکس صحیح صفحات
  • بررسی گزارش‌های خطا برای شناسایی لینک‌های شکسته
  • بررسی سرعت سایت برای اطمینان از عدم افت
  • بررسی نرخ تبدیل و نرخ پرش

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

مشکلات رایج در ریدایرکت HTTP به HTTPS

در پروژه‌های واقعی، چند مشکل رایج دیده‌ام:

  • ریدایرکت حلقه‌ای: وقتی ریدایرکت به‌درستی تنظیم نشود، ممکن است بین HTTP و HTTPS حلقه ایجاد شود. راه‌حل در رفع خطای ریدایرکت حلقه‌ای آمده است.
  • عدم ریدایرکت صفحات داخلی: اگر فقط صفحهٔ اصلی ریدایرکت شود، صفحات داخلی روی HTTP باقی می‌مانند.
  • فراموشی زیردامنه‌ها: اگر زیردامنه‌ها روی HTTP بمانند، سایت شما در برابر حملات آسیب‌پذیر باقی می‌ماند.
  • Mixed Content: اگر محتوای HTTP روی صفحات HTTPS بارگذاری شود، هشدار امنیتی رخ می‌دهد.
  • نقشه سایت قدیمی: اگر نقشه سایت آدرس‌های HTTP داشته باشد، گوگل ممکن است صفحات را دوباره ایندکس کند.
  • گواهی منقضی: اگر گواهی SSL منقضی شود، ریدایرکت هم به درستی کار نمی‌کند. راهنما در بررسی اعتبار SSL سایت آمده است.

راهنمای کامل اشتباهات رایج در اشتباهات رایج در نصب SSL آمده است. مستندات ویکی‌پدیا در مورد HTTP 301 هم اطلاعات تخصصی خوبی ارائه می‌دهد.

آیا ریدایرکت روی سرعت سایت اثر دارد؟

ریدایرکت، حتی ریدایرکت ۳۰۱ که در سطح سرور انجام می‌شود، یک درخواست اضافی به سرور تحمیل می‌کند. اما این تأثیر بسیار ناچیز است و معمولاً کمتر از ۱۰۰ میلی‌ثانیه. در عمل، مزایای امنیتی و سئویی ریدایرکت بسیار بیشتر از این تأثیر ناچیز است.

برای کاهش بیشتر اثر، ریدایرکت را در سطح سرور و نه در سطح وردپرس اعمال کنید. ریدایرکت در سطح سرور سریع‌تر اجرا می‌شود چون پیش از رسیدن به وردپرس انجام می‌شود.

پرسش‌های پرتکرار دربارهٔ ریدایرکت HTTP به HTTPS

آیا ریدایرکت ۳۰۱ روی سئو اثر دارد؟ بله، ریدایرکت ۳۰۱ تمام اعتبار لینک را از نسخه HTTP به HTTPS منتقل می‌کند. این بهترین نوع ریدایرکت برای انتقال دائمی است.

چه مدت طول می‌کشد تا گوگل نسخه HTTPS را ایندکس کند؟ معمولاً چند روز تا چند هفته. برای شتاب، نقشه سایت HTTPS را در Search Console ثبت کنید.

آیا باید هم HTTP و هم HTTPS فعال باشد؟ بله. باید HTTP روی سرور فعال باشد تا ریدایرکت را انجام دهد، اما تمام ترافیک به HTTPS هدایت شود.

آیا افزونهٔ ریدایرکت برای همه سایت‌ها کافی است؟ برای سایت‌های کوچک بله، اما برای سایت‌های بزرگ، ریدایرکت در سطح سرور بهتر است.

آیا می‌توانم فقط صفحه‌های ورود و پرداخت را روی HTTPS بگذارم؟ فنی ممکن است، اما توصیه نمی‌شود. تمام سایت باید روی HTTPS باشد تا هم امنیت و هم سئو تضمین شود.

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

سخن آخر: ریدایرکت، پایان مهاجرت است نه شروع آن

ریدایرکت HTTP به HTTPS یکی از گام‌های مهم در فرآیند مهاجرت است، اما تنها گام نیست. مهاجرت امن به HTTPS نیازمند دقت در همهٔ مراحل است: نصب گواهی، تغییر تنظیمات، ریدایرکت، به‌روزرسانی دیتابیس، رفع Mixed Content و پایش پس از مهاجرت. با رعایت این مراحل، می‌توانید مهاجرتی موفق و بدون افت سئویی داشته باشید. اگر تجربه‌ای از مهاجرت به HTTPS دارید یا سؤالی دربارهٔ ریدایرکت دارید، در دیدگاه‌ها بنویسید؛ تجربهٔ شما به دیگران کمک می‌کند تا مهاجرت موفق‌تری داشته باشند.