Liquid Web VPS for Web Scraping: Setup and Optimization Guide
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
- Go to Liquid Web VPS hosting and click Build now.
- Select a plan:
- 4 GB RAM ($8.50/mo promo) — Single Playwright scraper
- 8 GB RAM ($22.50/mo promo) — Multiple scrapers or Crawlee
- Choose Ubuntu 22.04 LTS or 24.04.
- Add your payment info and complete the order.
- 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
- Docker setup — Containerize for easier deploys
- Run Playwright on VPS — Deeper Playwright tuning
- Self-host Firecrawl — Crawl-to-markdown API
Start with the 4 GB plan. Upgrade to 8 GB if you run multiple browsers or hit memory limits.
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.




