Static ISP operations

Persistent proxies for e-commerce operations

Map exits to named workflows before traffic runs, not after a session flags.

Static ISP proxies Exit mapping and usage logs Updated 2026-06-12

Shared exits cause problems that look like proxy problems

E-commerce proxy mistakes usually start as convenience. Someone has a line that works, a colleague needs to check Shopify Admin, and by the end of the week that same persistent exit is running a WooCommerce staging browser, a Selenium monitor, and a partner feed job.

Pages load, tests pass, nobody wants to slow down for a spreadsheet. Then a seller login asks for verification, QA says checkout drifted from yesterday's result, or the price watcher bills three times what the app reported. The question is no longer "which proxy is good?" It is "who used this exit last, and for what?"

Persistent proxies belong only to named, allowed workflows: owned accounts, internal QA, support checks, partner feeds, and public catalog monitoring. If the target's terms or the account owner do not permit the job, a steadier IP does not fix that.

Write the account-to-proxy map before the line reaches a browser

The map does not need to be clever. A plain row with the account, the owner, the workflow, the assigned proxy, the first-use date, and the reason for any change is enough. That row should exist before the line reaches Chrome, Playwright, Selenium, a cron job, or a script someone left on a server.

Keep production account traffic away from QA. Keep public monitoring away from both. Static ISP and rotating residential should split here: the fixed ISP line follows account-bound work, while rotating residential handles allowed public price pages, regional catalog checks, and page validation where no account identity needs to return from the same exit.

Pricing can push the same decision. Static ISP lines are pay-per-IP with unlimited bandwidth, while Volume Residential is $0.89/GB. A browser profile that logs in daily may be cheaper to reason about on a fixed IP. A public checker burning independent pages may fit the per-GB pool better. Separate the use cases first; compare cost second.

Read the usage log before changing the proxy

When an account asks for verification, changing the proxy is not the first move. Pause the run, save the browser state, and open Usage Logs. The useful questions are: which account group ran traffic, which host answered, which plan covered the bytes, what status came back, how long the request took, and whether this was the first bad response or the fifth retry.

A 407 is credentials or a malformed line. A 429 is usually pacing or a target that wants the job slowed down. A 200 with no useful data may be an empty regional page, a parser problem, or a layout change. None of those improve by burning another clean exit on the same broken workflow.

The dashboard network log shows host, outcome, latency, and byte totals. The usage export is a CSV you can diff across runs. These are the actual debugging surface — not the app's green checks.

App-reported traffic is smaller than proxy-metered traffic

The app dashboard counts saved rows, screenshots, final records, and completed sync states. The network path also carried retries, redirects, blocked pages, failed pages, scripts, images, partial transfers, and responses the parser discarded. The proxy meter sees those bytes even when the app acts like they never happened.

Before adding SKUs, regions, or another retry layer, compare the app's numbers with the provider-metered bytes in the CSV export. If the app says the run was small and the proxy export says otherwise, the missing traffic is the next job. The proxy assignment can wait until the workflow makes sense again.

Operational checks

  • Write the account-to-proxy map before the line reaches a browser.
  • Log the date and reason for every IP change.
  • Keep production, QA, and public monitoring on separate exits.
  • On a verification trigger, read the usage log before swapping the proxy.
  • Compare app-reported traffic with provider-metered bytes before scaling.