Skip to main content

Liquid Web VPS for Web Scraping: Setup and Optimization Guide

· 4 min read
Yassine El Haddad
Software Developer & Automation Specialist

I build production AI agents, web scrapers, and automation pipelines. Most of what I publish here comes from the actual problems they run into: proxies that get banned, anti-bot stacks that fingerprint your client, RAG that drifts when the underlying data moves. Stack: Python, TypeScript, Go, FastAPI, LangChain, Crawlee, Playwright, deployed on AWS, GCP, and Cloudflare.

This guide walks you through provisioning a Liquid Web VPS, connecting via SSH, installing Node.js or Python, configuring a firewall, and deploying a scraper with cron scheduling.

Step 1: Purchase a Liquid Web VPS

  1. Go to Liquid Web VPS hosting and click Build now.
  2. Select a plan:
    • 4 GB RAM ($8.50/mo promo) — Single Playwright scraper
    • 8 GB RAM ($22.50/mo promo) — Multiple scrapers or Crawlee
  3. Choose Ubuntu 22.04 LTS or 24.04.
  4. Add your payment info and complete the order.
  5. Provisioning usually takes 2–10 minutes. You’ll receive an email with the IP and root password.

Step 2: Connect via SSH

ssh root@YOUR_SERVER_IP

First login: change the password and create a non-root user:

passwd
adduser scraper
usermod -aG sudo scraper

Copy your SSH key (run from your machine):

ssh-copy-id scraper@YOUR_SERVER_IP

Then SSH as the new user:

ssh scraper@YOUR_SERVER_IP

Step 3: Install Node.js (or Python)

Node.js 20 LTS:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
node --version

Python 3.11+ (optional):

sudo apt-get update
sudo apt-get install -y python3 python3-pip python3-venv

Step 4: Install Playwright (for browser scraping)

mkdir -p ~/scraper && cd ~/scraper
npm init -y
npm install playwright
npx playwright install chromium
npx playwright install-deps chromium

For Ubuntu 24.04, if install-deps fails:

sudo $(which playwright) install-deps chromium

Step 5: Configure Firewall

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp # Only if serving HTTP
sudo ufw enable
sudo ufw status

Step 6: Deploy Your Scraper

Example minimal scraper (scraper.js):

const { chromium } = require('playwright');

(async () => {
const browser = await chromium.launch({ headless: true });
const page = await browser.newPage();
await page.goto('https://example.com');
const title = await page.title();
console.log(title);
await browser.close();
})();

Run it:

node scraper.js

Step 7: Schedule with Cron

crontab -e

Add (runs every hour):

0 * * * * cd /home/scraper/scraper && /usr/bin/node scraper.js >> /home/scraper/scraper.log 2>&1

Or use PM2 for process management:

npm install -g pm2
pm2 start scraper.js --name scraper
pm2 startup
pm2 save

Optimization Tips

  • Memory — Playwright needs ~1–2 GB RAM per instance. Don’t run more than 1–2 concurrent browsers on 4 GB.
  • Rate limiting — Add delays between requests to avoid blocks.
  • Proxies — For aggressive targets, use residential proxies or Apify.

Next Steps

Apify Affiliate Banner 728x90Apify Affiliate Banner 728x90Apify Affiliate Banner 300x50Apify Affiliate Banner 300x50
Next step

Start with the 4 GB plan. Upgrade to 8 GB if you run multiple browsers or hit memory limits.

Frequently Asked Questions

Yes. Liquid Web, DigitalOcean, Hetzner, and Vultr all support scraping within fair use. Check each provider's ToS.

Liquid Web for support and US IPs. Hetzner for price. See our VPS comparison.

Simple HTTP: 1 GB. Playwright/Crawlee: 4 GB minimum, 8 GB recommended for multiple instances.

Common mistakes and fixes

SSH connection refused after provisioning

Wait 5–10 minutes for provisioning. Check Liquid Web manager for IP. Verify firewall allows your IP on port 22.

Playwright fails with missing dependencies

Run: sudo playwright install-deps chromium. Or use the official Playwright Docker image.