ERR_TOO_MANY_REDIRECTS indicates that the browser is constantly being redirected between the same URLs (301/302). If you are being redirected to the login page after logging in to wp-admin, check the cookie, home/siteurl, HTTPS detection, Cloudflare proxy, and security plugins separately.
ERR_TOO_MANY_REDIRECTS
HTTP/2 301 location: https://www.example.com/
HTTP/2 302 location: https://example.com/wp-login.php
When one layer redirects HTTP to HTTPS, another layer redirects HTTPS back to HTTP, or www to non-www, with a conflicting rule, the request cannot reach the target. Similar loops can be created by cookie path/domain and WordPress URL values on the wp-admin side.
WP_HOME and WP_SITEURL constants can override the home/siteurl values in the database. Changing settings in the panel alone will not provide a solution if the two sources contain different protocols or domain names.
When using Cloudflare Flexible SSL, the origin sees HTTP and WordPress tries to force HTTPS, which can create a loop. The full or full (strict) structure, origin SSL, and correct proxy headers should be preferred.
Logging in and returning to wp-login.php every time is not always a password error. Investigate cookie domain, cache, security plugin, reverse proxy, and corrupted user meta records.
Redirect Chain should be followed using curl, recording each step's Location header. Browser cache cleaning only separates the old redirect on the client-side.
Define a single authority instead of setting all HTTPS and www rules simultaneously across different layers; CDN, web server, WordPress, and plugins should not repeat the same task.
Search for the phrase you see in the email, browser, or SSH log. Each card includes meaning, probable cause, and safe initial action.
Meaning: Browser has reached the redirect limit.
Possible cause: HTTP/HTTPS, www, or plugin rules are creating a loop.
Meaning: Session cookie is not accepted or authentication is lost.
Possible cause: Incorrect URL, cookie domain, cache, or security plugin.
Meaning: WordPress could not read the test cookie.
Possible cause: Header output, domain/path or browser block.
Meaning: Origin and proxy protocol cannot be agreed upon.
Possible cause: Flexible SSL or X-Forwarded-Proto missing.
Meaning: Two-layer reverse main domain rule is applied.
Possible cause: Cloudflare rule collides with WordPress URL.
Meaning: After identity verification, redirect_to is going back to login again.
Possible cause: Plugin, user permission or cookie issue.
Meaning: Old domain/protocol registrations have been transferred.
Possible cause: home/siteurl and serialized URLs are not up-to-date.
Meaning: Cookie/header was sent before output was generated.
Possible cause: BOM, space, or PHP warning.
No records matching this expression were found.
Commands are for root access. Collect only status and logs first; Do not change the permanent setting without seeing the reason.
curl -sSIL --max-redirs 15 https://example.com/
Displays the Location header for each 301/302 step.
wp option get home
wp option get siteurl
Displays the main URLs in the database.
wp config has WP_HOME && wp config get WP_HOME
wp config has WP_SITEURL && wp config get WP_SITEURL
It checks whether it invalidates or not the database of the statics.
wp --skip-plugins user list
The plugin tests WordPress user layer without plugin installation.
curl -sSIk https://example.com/ | grep -Ei 'location|server|cf-ray'
Displays proxy and redirect headers.
wp user session destroy KULLANICI_ID --all
Clears the old session tokens of a specific user.
The root cause of the WordPress error is the same, but log paths, PHP settings screens and service management vary depending on the hosting infrastructure used.
cPanel: Domains Redirects, SSL Status, and .htaccess Rules are checked collectively.
cd /home/KULLANICI/public_html && wp option get home && wp option get siteurlPlesk shows the Hosting Settings and Apache & nginx Settings guide.
cd /var/www/vhosts/ALANADI/httpdocs && wp option get siteurlIn a panel-less server, reverse proxy headers and vhost redirections are directly reviewed.
nginx -T 2>/dev/null | grep -nE 'server_name|return 30[12]'Make the Redirect Chain visible, synchronize URL and protocol sources, and test the impact of cookies and extensions in a controlled manner.
Determine which URL loop using curl.
curl -sSIL --max-redirs 15 https://example.com/Verify that protocol, www preference and path values use the same canonical structure.
wp option get home && wp option get siteurlWP_HOME/WP_SITEURL is present, it is applied before panel values.
wp config list | grep -E 'WP_HOME|WP_SITEURL'Prefer Cloudflare Flexible instead of valid origin SSL with Full (strict).
Apply hidden window, cookie cleaning and WP-CLI test without plugins.
wp --skip-plugins user listCentralize the www/HTTPS rule in either a CDN, web server, or WordPress.
curl -sSIL https://example.com/Cookie, security add-on, and admin URL filters are inspected.
wp --skip-plugins user listSSL mode, Always Use HTTPS and Page Rules/Redirect Rules are checked.
curl -sSIk https://example.com/home/siteurl and old domain records are fixed with safe search-replace.
wp search-replace 'eskisite.com' 'yenisite.com' --dry-runWordPress URL is Made Same as Web Server Preferred Domain
wp option get homeSession tokens, role and user meta records are examined.
wp user get USERThis occurs due to the redirection rules in different layers being mutually contradictory.
Use only to separate the old client cache; if there is a server-side loop, it is not a permanent solution.
Visitors may see the origin as HTTP when using HTTPS and WordPress can create a loop by redirecting to HTTPS again.
WP_HOME sets the visitor's address, while WP_SITEURL sets the address of the WordPress core files; they should be compatible in most standard installations.
Auth cookie cannot be saved, URL/path does not match or security/cache plugin is breaking the session.
Both are possible; the important thing is to make a single canonical preference and direct all layers to it.
The curl -IL command displays each Location header in sequence.
By analyzing cPanel, WHM, CloudLinux, LiteSpeed, MariaDB, Exim and security layers together, we fix the root cause of the failure instead of just removing the service.