Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 44 additions & 2 deletions nginx/nginx.conf
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,8 @@ http {
# WordPress nonces, preview mode & Customizer
~*(?:^|&)(?:_wpnonce|preview|preview_id|preview_nonce|customize_changeset|wp_customize)= 1;

# Search queries & manual cache bypass flags
~*(?:^|&)(?:_skip_cache|s|nocache)= 1;
# Manual cache bypass flags
~*(?:^|&)(?:_skip_cache|nocache)= 1;

# REST API via index.php?rest_route= (covers oEmbed too)
~*(?:^|&)rest_route= 1;
Expand All @@ -152,6 +152,48 @@ http {

# Comment reply anchor — no content difference, avoids duplicate cache entries
~*(?:^|&)replytocom= 1;

# Searches
~*(?:^|&)s(?:[=&]|$) 1;

# Comment moderation preview tokens
~*(?:^|&)(?:unapproved|moderation-hash)= 1;

# Deprecated Google AJAX crawling scheme
~*(?:^|&)_escaped_fragment_= 1;

# E-commerce/CMS scanner probes (OpenCart route=, PrestaShop controller=)
~*(?:^|&)(?:route|controller)= 1;

# Referral & tracking params — prevent duplicate cache entries
~*(?:^|&)(?:ref|referrer|source)= 1;

# Plugin internal parameters
~*(?:^|&)(?:wmo_hc|wph)= 1;

# Unique-per-click tracking IDs — caching is pointless, value is unique per click
~*(?:^|&)(?:srsltid|fbclid|gclid|dclid|msclkid|twclid|mc_cid|mc_eid|_gl)= 1;

# UTM campaign parameters — identical content to the clean URL
~*(?:^|&)utm_(?:source|medium|campaign|term|content|id|name)= 1;

# Ad platform click IDs — unique per click, companion params to gclid/fbclid
~*(?:^|&)(?:gad_source|gclsrc|epik|irclickid|irgwc)= 1;

# Campaign/Ad performance params — unique per ad group session
~*(?:^|&)(?:campaignid|adgroupid)= 1;

# Email marketing tracking tokens — unique per send/subscriber
~*(?:^|&)(?:mkt_tok|ck_subscriber_id|sseid|sslid|_ke|__s|_kx|vgo_ee|dm_i|_bta_tid|_bta_c)= 1;

# Google Analytics cross-domain linker — unique per session
~*(?:^|&)_ga= 1;

# Facebook engagement params — tracking only, no content change
~*(?:^|&)(?:fb_action_ids|fb_action_types|fb_source)= 1;

# WordPress/plugin optimization flags — same content, no need for separate cache entry
~*(?:^|&)(?:ao_noptimize|cn-reloaded|age-verified|usqp)= 1;
}

# 3. Cookie-based exclusions
Expand Down
Loading