> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zenrows.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Proxy and Geolocation Troubleshooting

> Fix ZenRows Premium Proxy issues such as geolocation mismatches, residential IP blocks, and anti-bot bypass failures with proven steps.

Premium Proxies (residential IPs) help bypass sophisticated anti-bot systems. However, websites often employ additional layers of protection based on geolocation, JavaScript checks, and behavior analysis. If you're running into blocks, delays, or inconsistent content, this guide walks you through common problems and proven solutions.

## Troubleshooting Issues While using Premium Proxies

### Common Symptoms

* HTTP 403 (Forbidden) errors
* CAPTCHA or bot protection challenges
* Messages like “Access Denied” or “Your IP has been blocked”
* Page not loading

### Key Solutions:

#### 1. Enable JavaScript Rendering

Many modern websites require JavaScript to load content and check browser fingerprints as part of their security. Enabling JavaScript rendering can help bypass these checks.

```python theme={null}
params = {
    "url": target_url,
    "apikey": "YOUR_ZENROWS_API_KEY",
    "premium_proxy": "true",
    "js_render": "true"  # Enable JavaScript rendering
}
```

<Info>You can find more information about the `js_render` parameter in the [JavaScript Rendering documentation](/universal-scraper-api/features/js-rendering).</Info>

#### 2. Implement a Wait Strategy

Websites may detect bots based on speed. Introduce artificial delay with the `wait` parameter or wait for specific elements using `wait_for`.

```python theme={null}
params = {
    "url": target_url,
    "apikey": "YOUR_ZENROWS_API_KEY",
    "premium_proxy": "true",
    "js_render": "true",
    "wait": "5000"  # Wait 5 seconds (5000ms)
}
```

<Info>See the [Wait for Selector documentation](/universal-scraper-api/features/wait-for) for more information.</Info>

#### 3. Try Different Countries

Websites may block access differently based on your location. Switching to a proxy from another country can help.

```python theme={null}
# Try multiple countries if one is getting blocked
countries = ["us", "gb", "ca", "de", "fr"]

for country in countries:
    params = {
        "url": target_url,
        "apikey": "YOUR_ZENROWS_API_KEY",
        "premium_proxy": "true",
        "js_render": "true",
        "proxy_country": country
    }
    response = requests.get("https://api.zenrows.com/v1/", params=params)
    if response.status_code == 200:
        print(f"Success with country: {country}")
        break
    else:
        print(f"Failed with country: {country}, status: {response.status_code}")
```

<Info>You can find more information about the `proxy_country` parameter in the [Proxy Country documentation](/universal-scraper-api/features/proxy-country).</Info>

#### 4. Use Custom Referer Header

Some websites are easier to access when a custom referrer header is set. It can make your requests appear more legitimate.

```python theme={null}
headers = {
    "Referer": "https://www.google.com/"
}

params = {
    "url": target_url,
    "apikey": "YOUR_ZENROWS_API_KEY",
    "premium_proxy": "true",
    "js_render": "true",
    "custom_headers": "true"
}
```

<Info>You can find more information about the `custom_headers` parameter in the [Custom Headers documentation](/universal-scraper-api/features/headers).</Info>

## Troubleshooting Geolocation-Based Errors

### Still Blocked After Setting a Proxy Country?

Even when using Premium Proxies, access may be denied due to region-specific restrictions. Try:

1. Rotating countries using the `proxy_country` parameter
2. Combining it with `js_render=true` to simulate a full browser session
3. Waiting for dynamic content with `wait` or `wait_for`

### Requests Are Too Slow?

Long response times can stem from:

* Routing through distant proxy locations
* Heavy JavaScript rendering
* Waiting for elements that don't exist

**What to do:**

* Try a geographically closer proxy
* Use `wait_for` only for elements you're sure exist
* Check the page structure with DevTools to validate selectors

### Inconsistent Results Based on Region?

Some sites display different content or layouts depending on the IP's location. This can cause selectors to break or data to be missing.

**Solution:**

Inspect the HTML structure from different proxy countries and update your `css_extractor` or `wait_for` selectors accordingly.

### Content Completely Geo-Blocked?

If you're seeing region blocks despite using Premium Proxies:

1. Rotate through a wider range of countries
2. Test against regions that typically allow access (e.g., US or UK)

## When to Contact Support

If you've tried all the troubleshooting steps and still encounter issues, it might be time to contact ZenRows support. Here's what to include in your support ticket:

1. **Target URL** - The exact URL you're trying to access
2. **Configuration Used** - All parameters you've tried
3. **Error Messages** - Full error details, including status codes
4. **Response Headers** - If available, include response headers
5. **Success Patterns** - Note any patterns in successful vs. failed requests
6. **Business Use Case** - Explain what you're trying to accomplish

Contact [success@zenrows.com](mailto:success@zenrows.com) or use the live chat support available on the ZenRows website with these details to get expert assistance with your specific case.
