آنچه در این مطلب میخوانید:
Toggleیکی از چالش های که داشتم وجود خطای Too Many Redirect تو یه سایت وردپرسی بود که راه حل برطرف کردنش رو به اشتراک میزارم:
۱- غیر غعال کردن افزونه های وردپرس
برای حل مشکل بالا کافیه تمام افزونه های وردپرس رو غیرفعال کنید و دوباره با سایت زیر تست کنید صفحات سایت رو
اگر مشکل برطرف شد پس نشون میده یکی از افزونه ها باعث این اختلال شده
که معمولا یکی از سه افزونه زیر هست که باید حتما اپدیتش کنید
Yoast_seo
Rank_math
404solution
در همین زمینه ببینید: حل خطاهای مهم coverage سرچ کنسول
۲- بررسی فایل htaccess
اگر مشکل حل نشد نیاز هست فایل htaccess را پاک کنید و دوباره ایجاد کنید
در همین زمینه ببینید: رفع خطای ۴۰۴ و ۳۰۱ با برنامه اسکرمینگ فراگ
۳- بررسی پیوند های یکتا تنظیمات وردپرس
و همچنین تنظیمات وردپرس و بخش پیوند های یکتا را چک کنید تا ببینید آدرس ها رو درست وارد کردید یا نه
حتما بخش coverage سرچ کنسول رو چک کنید تا این بلا به جون سایتتون نیفتاده باشه 😉
شما هم اگه این مشکل رو داشتید تو کامنت بنویسید
حل خطای Too Many Redirects: راهنمای کامل رفع مشکل حلقه ریدایرکت وبسایت
پاسخ به سؤال اصلی: خطای “Too Many Redirects” که به آن “حلقه ریدایرکت” (Redirect Loop) نیز میگویند، زمانی رخ میدهد که مرورگر بین چندین URL برای نمایش یک صفحه گیر میکند و نمیتواند به مقصد نهایی برسد. برای حل این خطا باید علت اصلی ریدایرکتهای تکراری مانند تنظیمات اشتباه SSL، کش مرورگر یا سرور، افزونهها یا فایل .htaccess را شناسایی و رفع کرد.
مقدمه: چرا خطای Too Many Redirects میتواند کابوس سئو و تجربه کاربری باشد؟
تصور کنید کاربر قصد دارد وارد وبسایت شما شود، اما با پیامی مانند “ERR_TOO_MANY_REDIRECTS” مواجه میشود. این پیام نه تنها به تجربه کاربری (UX) شما آسیب میزند، بلکه میتواند تأثیرات مخربی بر سئو و رتبه سایت شما در گوگل داشته باشد. وقتی گوگلبات یا هر خزنده موتور جستجوی دیگری با حلقه ریدایرکت مواجه میشود، نمیتواند به محتوای سایت شما دسترسی پیدا کند. این موضوع به معنای عدم ایندکس شدن صفحات، افت رتبه و در نهایت، از دست دادن ترافیک ارزشمند است. حل این خطا یک ضرورت فنی و سئویی است که باید در اسرع وقت به آن رسیدگی شود. در این مقاله، به بررسی جامع دلایل بروز این خطا و ارائه راهکارهای عملی برای رفع آن میپردازیم.
۱. خطای Too Many Redirects دقیقاً به چه معناست؟
خطای “Too Many Redirects” زمانی رخ میدهد که مرورگر وب شما در یک چرخه بیپایان از تغییر مسیرها (Redirects) قرار میگیرد و نمیتواند صفحه مورد نظر را بارگذاری کند. به عبارت دیگر، مرورگر شما را از آدرس A به آدرس B، سپس از B به C، و شاید دوباره از C به A یا به آدرس دیگری که مجدداً به یکی از آدرسهای قبلی بازگردد، هدایت میکند.
چرا این خطا اتفاق میافتد؟
این خطا معمولاً به دلیل پیکربندی اشتباه در تنظیمات سرور، تنظیمات وردپرس یا CMS دیگر، افزونهها، یا حتی خطای انسانی در مدیریت ریدایرکتها پیش میآید. مرورگر برای جلوگیری از مصرف بیرویه منابع و به دلیل عدم امکان بارگذاری صفحه نهایی، این خطا را نمایش میدهد. این مشکل هم برای بازدیدکنندگان و هم برای رباتهای موتور جستجو (مانند گوگلبات) آزاردهنده است.
نمونههایی از پیام خطای Too Many Redirects:
- Google Chrome: “This page isn’t working. example.com redirected you too many times.” (ERR_TOO_MANY_REDIRECTS)
- Mozilla Firefox: “The page isn’t redirecting properly.”
- Safari: “Safari can’t open the page. Too many redirects occurred trying to open “example.com”.”
۲. دلایل اصلی بروز خطای Too Many Redirects کدامند؟
خطای حلقه ریدایرکت میتواند از منابع مختلفی سرچشمه بگیرد. شناسایی منبع دقیق مشکل، کلید حل این خطاست.
رایجترین دلایل این خطا عبارتند از:
-
مشکلات کش مرورگر یا سرور:
- پاسخ کوتاه: گاهی اوقات، کش قدیمی مرورگر یا سرور باعث میشود که اطلاعات ریدایرکتهای قبلی ذخیره شده و منجر به یک حلقه بیانتها شود.
- جزئیات: مرورگرهای وب و سرورها (به خصوص در صورت استفاده از CDN یا Reverse Proxy) اطلاعاتی را برای بارگذاری سریعتر صفحات ذخیره میکنند. اگر تغییراتی در ریدایرکتهای سایت خود اعمال کرده باشید، اما این کشها بهروز نشده باشند، میتوانند باعث ایجاد حلقه شوند.
-
تنظیمات اشتباه SSL/HTTPS:
- پاسخ کوتاه: تداخل بین تنظیمات SSL و ریدایرکتهای HTTP به HTTPS، یکی از شایعترین دلایل این خطاست.
- جزئیات: اگر سایت شما دارای گواهینامه SSL است، باید اطمینان حاصل کنید که تمامی ترافیک از HTTP به HTTPS ریدایرکت میشود. اما اگر ریدایرکتی برای HTTPS به HTTP وجود داشته باشد، یا تنظیمات SSL به درستی پیکربندی نشده باشد، یک حلقه ایجاد میشود. مثلاً، اگر سرور به HTTP ریدایرکت کند و CDN یا وردپرس سعی کند آن را به HTTPS بازگرداند.
-
تنظیمات اشتباه در فایل .htaccess (برای سرورهای آپاچی):
- پاسخ کوتاه: دستورات ریدایرکت اشتباه یا متناقض در فایل .htaccess میتواند منجر به حلقه ریدایرکت شود.
- جزئیات: فایل
.htaccess
که در ریشه هاست شما قرار دارد، یک فایل قدرتمند برای پیکربندی سرور است. ریدایرکتهای ۳۰۱، قوانین بازنویسی URL و تنظیمات امنیتی میتوانند در این فایل تعریف شوند. یک خطای کوچک در نوشتار یا تداخل بین چندین قانون ریدایرکت در این فایل میتواند باعث شود مرورگر در یک حلقه بیپایان از ریدایرکتها گرفتار شود.
-
افزونهها یا قالبهای وردپرس (یا CMSهای دیگر):
- پاسخ کوتاه: برخی افزونهها (به خصوص افزونههای سئو، امنیتی یا کش) یا قالبهای سایت میتوانند باعث تداخل و ایجاد حلقه ریدایرکت شوند.
- جزئیات: در سیستمهای مدیریت محتوا مانند وردپرس، افزونهها و قالبها میتوانند به صورت مستقیم یا غیرمستقیم بر روی نحوه ریدایرکتها تأثیر بگذارند. برای مثال، یک افزونه سئو ممکن است ریدایرکتهای خاصی را تنظیم کند که با تنظیمات سرور تداخل پیدا کنند. یا یک افزونه امنیتی ممکن است تلاش کند ترافیک را به شیوهای خاص مدیریت کند که منجر به حلقه شود.
-
تنظیمات اشتباه آدرس سایت در CMS (مثلاً وردپرس):
- پاسخ کوتاه: اگر آدرسهای “نشانی وردپرس (URL)” و “نشانی سایت (URL)” در تنظیمات عمومی وردپرس اشتباه باشند، حلقه ریدایرکت رخ میدهد.
- جزئیات: در وردپرس، در بخش “تنظیمات > عمومی”، دو فیلد برای آدرس سایت وجود دارد. اگر این دو فیلد با هم مغایرت داشته باشند (مثلاً یکی با
www
باشد و دیگری بدون آن، یا یکی HTTP و دیگری HTTPS باشد و تنظیمات ریدایرکت صحیح انجام نشده باشد)، این خطا رخ میدهد.
۳. گام به گام: راهکارهای عملی برای حل خطای Too Many Redirects
رفع خطای “Too Many Redirects” نیازمند یک رویکرد سیستماتیک برای شناسایی و اصلاح مشکل است. با گامهای زیر شروع کنید:
۱. پاک کردن کش مرورگر و کوکیها:
پاسخ کوتاه: اولین و سادهترین قدم، پاک کردن کش و کوکیهای مرورگر است تا مطمئن شوید مشکل از سمت شما نیست.
جزئیات: مرورگر شما ممکن است نسخه قدیمی ریدایرکتها را ذخیره کرده باشد. این کار کمک میکند تا ببینید آیا مشکل واقعی است یا فقط مربوط به کش شماست.
- در کروم: به Settings > Privacy and security > Clear Browse data بروید و Cash Images and Files و Cookies and other site data را پاک کنید.
- تست در مرورگر دیگر یا حالت ناشناس: پس از پاک کردن کش، وبسایت را در یک مرورگر دیگر یا در حالت ناشناس (Incognito Mode) امتحان کنید. اگر در آنجا باز شد، مشکل از کش مرورگر خودتان بوده است.
۲. بررسی تنظیمات SSL/HTTPS:
پاسخ کوتاه: اطمینان حاصل کنید که گواهینامه SSL شما به درستی نصب شده و ریدایرکتها از HTTP به HTTPS بدون تداخل انجام میشوند.
جزئیات:
- بررسی نصب SSL: مطمئن شوید که گواهینامه SSL شما فعال و معتبر است. میتوانید از ابزارهایی مانند SSL Checker برای بررسی وضعیت SSL خود استفاده کنید.
- ریدایرکت HTTP به HTTPS: تمامی ترافیک را از HTTP به HTTPS ریدایرکت کنید. این کار معمولاً از طریق
.htaccess
یا تنظیمات در کنترل پنل هاست انجام میشود.- کد نمونه برای .htaccess:
Apache
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
- کد نمونه برای .htaccess:
- پیکربندی CDN (در صورت وجود): اگر از CDN (مانند Cloudflare) استفاده میکنید، مطمئن شوید که تنظیمات SSL در CDN نیز به درستی (مثلاً Full یا Full (strict)) پیکربندی شده و با تنظیمات سرور شما تداخل ندارد.
۳. بررسی فایل .htaccess (برای سرورهای آپاچی):
پاسخ کوتاه: فایل .htaccess خود را بررسی کنید و هر گونه دستور ریدایرکت یا بازنویسی URL مشکوک را موقتاً غیرفعال کنید.
جزئیات:
- دسترسی به فایل: از طریق FTP یا فایل منیجر هاست به ریشه وبسایت خود دسترسی پیدا کرده و فایل
.htaccess
را پیدا کنید. - تهیه نسخه پشتیبان: قبل از هر تغییری، حتماً از فایل
.htaccess
یک نسخه پشتیبان تهیه کنید! - بررسی و حذف/غیرفعال کردن: به دنبال ریدایرکتهای تکراری، حلقههای ناخواسته یا دستورات
RewriteRule
متناقض باشید. میتوانید با قرار دادن#
در ابتدای خطوط مشکوک، آنها را غیرفعال کنید. - تست: پس از هر تغییر، سایت را تست کنید.
مثال خطای رایج در .htaccess: اگر ریدایرکت از non-www
به www
و همزمان ریدایرکت از www
به non-www
را داشته باشید، یا ریدایرکت از HTTP
به HTTPS
و برعکس.
۴. بررسی تنظیمات آدرس سایت در وردپرس (یا CMS دیگر):
پاسخ کوتاه: اطمینان حاصل کنید که آدرسهای سایت در تنظیمات وردپرس (یا CMS مورد استفاده) به درستی وارد شدهاند.
جزئیات (برای وردپرس):
- از طریق داشبورد: به “تنظیمات > عمومی” بروید و فیلدهای “نشانی وردپرس (URL)” و “نشانی سایت (URL)” را بررسی کنید. مطمئن شوید که هر دو با یک پروتکل (HTTP یا HTTPS) و یک فرمت (با www یا بدون www) تنظیم شدهاند و با ریدایرکتهای سرور شما همخوانی دارند.
- از طریق فایل wp-config.php (در صورت عدم دسترسی به داشبورد):
- به ریشه وردپرس خود از طریق FTP دسترسی پیدا کنید.
- فایل
wp-config.php
را ویرایش کنید. - خطوط زیر را به آن اضافه کنید (با آدرس صحیح سایت خود):
PHP
define('WP_HOME','https://yourdomain.com'); define('WP_SITEURL','https://yourdomain.com');
- این خطوط به وردپرس میگویند که از این آدرسها استفاده کند و تنظیمات پایگاه داده را نادیده بگیرد. پس از حل مشکل میتوانید آنها را حذف کنید.
۵. غیرفعال کردن افزونهها و قالبهای وردپرس:
پاسخ کوتاه: افزونهها (به ویژه افزونههای سئو، امنیتی، یا کش) و قالبها را یکی یکی غیرفعال کنید تا منبع مشکل را پیدا کنید.
جزئیات:
- دسترسی به افزونهها/قالبها: اگر میتوانید به داشبورد وردپرس دسترسی پیدا کنید، به بخش “افزونهها” بروید و همه افزونهها را غیرفعال کنید. سپس سایت را تست کنید. اگر مشکل حل شد، افزونهها را یکی یکی فعال کنید تا افزونه مشکلساز را پیدا کنید.
- اگر به داشبورد دسترسی ندارید:
- از طریق FTP به پوشه
wp-content/plugins
بروید. - نام پوشه
plugins
را به چیزی مانندplugins_old
تغییر دهید. این کار باعث میشود تمام افزونهها غیرفعال شوند. - سایت را تست کنید. اگر مشکل حل شد، نام پوشه را به
plugins
بازگردانید و سپس پوشههای هر افزونه را یکی یکی تغییر نام دهید (مثلاًplugin-name
به_plugin-name
) تا افزونه مشکلساز را پیدا کنید. - برای قالب هم همین کار را با پوشه
wp-content/themes
انجام دهید و قالب را به یک قالب پیشفرض وردپرس تغییر دهید.
- از طریق FTP به پوشه
جدول: چک لیست رفع خطای Too Many Redirects
| گام | توضیحات | ابزار/محل بررسی | | :– | :—————- | :——————– | | ۱. کش مرورگر | پاک کردن کش و کوکیها | مرورگر (Chrome, Firefox, Safari) | | ۲. تنظیمات SSL | بررسی اعتبار و پیکربندی SSL و ریدایرکت HTTPS | کنترل پنل هاست، CDN (مانند Cloudflare), SSL Checker | | ۳. فایل .htaccess | بررسی و اصلاح دستورات ریدایرکت/بازنویسی | FTP/File Manager هاست | | ۴. آدرس سایت CMS | بررسی و اصلاح آدرسهای سایت در تنظیمات | داشبورد وردپرس (تنظیمات عمومی)، فایل wp-config.php | | ۵. افزونهها/قالبها | غیرفعال کردن و تست افزونهها و قالبها | داشبورد وردپرس، FTP (پوشههای plugins/themes) | | ۶. پیکربندی سرور | بررسی تنظیمات وب سرور (Nginx/Apache) | هاستینگ، فایلهای پیکربندی سرور |
۶. بررسی ریدایرکتهای اشتباه در سطح DNS یا CDN
پاسخ کوتاه: گاهی اوقات تنظیمات ریدایرکت در سطح DNS یا CDN (مانند Cloudflare) میتواند باعث ایجاد حلقه شود.
جزئیات:
- تنظیمات DNS: بررسی کنید که رکوردهای DNS شما (به خصوص رکوردهای A و CNAME) به درستی به IP سرور شما اشاره دارند و هیچ ریدایرکت ناخواستهای در این سطح وجود ندارد.
- تنظیمات CDN (مثلاً Cloudflare): اگر از CDN استفاده میکنید، به پنل کاربری آن وارد شوید و تنظیمات ریدایرکتها، SSL و قوانین Page Rules را به دقت بررسی کنید. برای مثال، تنظیم “Flexible SSL” در Cloudflare در حالی که سرور شما خودش SSL دارد، میتواند منجر به حلقه شود. بهتر است از حالت “Full” یا “Full (strict)” استفاده کنید.
نتیجهگیری: بازگرداندن سلامت سایت با رفع خطای ریدایرکت
خطای “Too Many Redirects” میتواند یک مانع بزرگ در مسیر موفقیت آنلاین شما باشد. این خطا نه تنها کاربران را فراری میدهد، بلکه به رتبه و اعتبار سایت شما در موتورهای جستجو آسیب میرساند. با این حال، با یک رویکرد گام به گام و بررسی دقیق منابع احتمالی مشکل – از کش مرورگر و تنظیمات SSL گرفته تا فایل .htaccess، تنظیمات CMS و افزونهها – میتوانید این مشکل را به طور مؤثر حل کنید. حفظ یک ساختار ریدایرکت تمیز و منطقی، نه تنها تجربه کاربری را بهبود میبخشد، بلکه سلامت سئوی سایت شما را نیز تضمین میکند.
آیا سایت شما هم با خطای ریدایرکت مواجه است؟ نگران نباشید! با ابزارهای موجود و راهکارهای ارائه شده، میتوانید این مشکل را برطرف کنید. اگر در هر مرحلهای نیاز به کمک تخصصی داشتید، تیم سئو و فنی ما آماده ارائه مشاوره و پشتیبانی است. همین حالا با ما تماس بگیرید تا سایت شما به سرعت به مسیر درست بازگردد!
سؤالات متداول (FAQ)
Q1: آیا خطای “Too Many Redirects” همیشه به دلیل مشکل در .htaccess است؟ A1: خیر. در حالی که فایل .htaccess یک منبع رایج این خطا است، مشکلات مربوط به کش مرورگر، تنظیمات SSL، افزونهها یا قالبها در وردپرس، و حتی تنظیمات CDN نیز میتوانند باعث بروز این خطا شوند.
Q2: آیا این خطا بر سئوی سایت من تأثیر منفی میگذارد؟ A2: بله، به شدت. رباتهای موتورهای جستجو نمیتوانند صفحات را ایندکس کنند و این موضوع منجر به افت رتبه، از دست دادن ترافیک و کاهش دیده شدن سایت شما در نتایج جستجو میشود.
Q3: چگونه میتوانم بدون دسترسی به داشبورد وردپرس، افزونهها را غیرفعال کنم؟ A3: میتوانید از طریق FTP یا فایل منیجر هاست خود به پوشه wp-content/plugins
بروید و نام آن را به plugins_old
تغییر دهید. این کار باعث میشود تمام افزونهها غیرفعال شوند.
Q4: آیا استفاده از گواهینامه SSL رایگان میتواند باعث این خطا شود؟ A4: خیر، نوع گواهینامه SSL (رایگان یا پولی) مستقیماً باعث این خطا نمیشود. مشکل معمولاً از نحوه پیکربندی و ریدایرکتها در ارتباط با SSL است، نه خود گواهینامه.
Q5: آیا یک ابزار آنلاین برای تشخیص حلقه ریدایرکت وجود دارد؟ A5: بله، ابزارهایی مانند “HTTP Status Code Checker” یا “Redirect Checker” (با جستجو در گوگل به این نامها) میتوانند زنجیره ریدایرکتهای یک URL را نشان دهند و به شما در شناسایی حلقه کمک کنند.