Troubleshoot QCDR Page Targeting, Scheduling, IP, Conditions, and Caching
Advanced QCDR targeting is cumulative: every configured gate must qualify before a Rule or Token can apply. Troubleshoot from broad request scope toward the narrowest condition, then eliminate caching before changing a working target definition.
Use Rule Health Instead of Guessing
For a saved Rule, private Preview / Rule Health can report page/menu scope, component/module region, audience, schedule/timezone, IP Include/Exclude, technical conditions, Token readiness, match results, and protected-area skips. A failed targeting gate prevents later replacement work even if the Find text exists.
Check Page, Menu, and URL Scope
Confirm the request is on the intended Joomla menu item or matches the configured URL/path patterns. QCDR wildcard matching supports * and ?. Include scope requires a configured target to match; Exclude scope rejects a matching target.
If component/module targeting is enabled, make sure the desired text occurs inside the selected rendered component or module boundary—not merely somewhere else on the page.
Check Audience and Schedule
Audience can distinguish everyone, guests, logged-in visitors, or selected Joomla groups. Scheduling can add UTC start/end boundaries, a selected timezone, daily/weekly/monthly recurrence, daily windows, and blackout dates.
Start is inclusive and End is exclusive. Overnight daily windows cross midnight correctly. A non-empty Custom recurrence rule is currently reserved/unsupported and therefore should not be used as a production recurrence language.
Check IP Targeting and Trusted Proxies
IP rules support exact IPv4/IPv6 addresses, CIDR networks, and same-family ranges. If the site is behind a proxy/CDN, QCDR trusts X-Forwarded-For only when the direct REMOTE_ADDR first matches a configured trusted proxy IP/CIDR.
An incorrect trusted-proxy configuration can make every visitor appear to come from the proxy address or can cause an IP allow list to miss unexpectedly.
Check Technical Conditions
Current conditions can compare URL, menu ID, component, view, language, template, hostname, request method, Joomla user group, and query data. Operators include equals/not equals, contains/not contains, starts/ends with, wildcard matches, in, and not in.
All requires every condition to pass; Any requires at least one.
Eliminate Shared Cache Variants
Normal QCDR live responses do not automatically set private/no-store headers. Purge or bypass Joomla page caching, reverse proxies, and CDN caches while diagnosing. If output varies by user, group, IP, query, or time, configure the cache so one visitor's generated variant cannot be reused for another context.
Community Discussion
Want to compare workflows, share practical tips, or discuss how you use this QCDR feature? Visit the QC Dynamic Replacer Community. For private support, bug reports, account-specific issues, or feature requests, use the QuantaCade support system.