Guide

How to analyze a WordPress redirect loop

The redirect loops often come from a disagreement between WordPress, proxy, HTTPS and cache.

⌚ About 2 min read
View my favorites
WordPress Intermediate. 20 min

The redirect loops often come from a disagreement between WordPress, proxy, HTTPS and cache.

Avant de commencer : adaptez toujours les commandes et manipulations à votre environnement. Sur un système de production, prévoyez une backup ou un retour arrière lorsque l’action peut modifier la configuration.

Étapes à suivre

  1. 1

    Observer the channel.

    Use Ü -I or browser tools.

  2. 2

    Compare home/siteurl.

    URLs should reflect the final domain.

  3. 3

    Control proxy HTTPS.

    Check X-Forwarded-Proto or equivalent configuration.

  4. 4

    Purger cache.

    After each structured correction.

Commands utiles

Ü -I https://example.com

À retenir

  • Avoid changing.htaccess and cache plugin at the same time.
  • Save the configuration before changing.
Technical deep dive

WordPress: deepen diagnosis without hiding the root cause

Technical checkpoints

  • WP_DEBUG_LOG usually writes to wp-content/debug.log only when WP_DEBUG is enabled and the PHP process can write the file.
  • Renaming a plugin directory prevents it from loading without changing the database, which is useful when wp-admin is unavailable.
  • WP_MEMORY_LIMIT cannot exceed the memory actually granted by PHP/hosting; memory errors require reading memory_limit and peak usage.

Controlled recovery

Isolate the failing plugin or layer, keep logs, then re-enable one component at a time.

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Topic-specific pitfalls

  • Deleting .maintenance, a plugin or cache without recording initial state can make the symptom disappear without explaining the cause.
  • A redirect loop can come from WordPress, proxy/CDN, HTTPS or a plugin: check each layer separately.

How to validate

  • The site loads with clean logs and the failing component is identified, not merely disabled.
  • Temporary debug constants are removed or adjusted after the intervention.
♡ 0