In case you have a plugin which relies on WooCommerce Geolocation, and if at the same time you are running CloudFlare, this may cause issues with the NitroPack optimizations.
You can identify if such an issue exists in case all of the below is true:
- You are using a plugin which relies on WooCommerce Geolocation (for example, WooCommerce Multi Currency Premium)
- CloudFlare is active
- Most NitroPack optimizations are with the status "Skipped" because of a redirect
To solve this, go to the CloudFlare Dashboard, find Networking, and disable CloudFlare Geolocation.
Geolocation will still work, as WooCommerce will provide it.
Read on to see why CloudFlare Geolocation must be disabled in this scenario.
The root cause
The CloudFlare service provides a header in all requests coming to your site: CF-IPCOUNTRY. This header is used by WooCommerce Geolocation to identify the source country of the visitor.
The NitroPack optimization service tries to simulate the user country by providing the header X-FORWARDED-FOR, containing the original user IP address. However, your site redirects the NitroPack service to the incorrect country based on CF-IPCOUNTRY, not on X-FORWARDED-FOR.
For NitroPack to work, your site WooCommerce Geolocation must not see CF-IPCOUNTRY. CF-IPCOUNTRY is removed by disabling the CloudFlare Geolocation.