← Back to Documentation

Scan, Test & Fix Your Site Locally

SEOgent's scanner runs in the cloud. That means it can't reach localhost:3000 or 127.0.0.1 — those addresses only exist on your machine. This guide covers two ways to work around that: exposing your local site with a tunnel, or scanning your live site and fixing issues locally.

Both approaches give you the same result: a fast loop where you scan, fix, and verify without waiting for a full deploy.


Why Test Locally?


Method 1: Tunnel Services

A tunnel gives your local computer a temporary public URL. When SEOgent's scanner visits that URL, the request is routed through the tunnel back to your machine. Your local dev server handles the request and sends the response back.

Think of it like a phone extension — the public URL is the main number, and the tunnel forwards the call to your desk.


Option A: ngrok

ngrok works with any stack and is the most widely used tunnel service.

1. Install ngrok

# macOS
brew install ngrok

# or via npm
npm install -g ngrok

2. Sign up and add your auth token

Create a free account at ngrok.com, then:

ngrok config add-authtoken <your-token>

3. Start the tunnel

Point ngrok at your local dev server's port:

ngrok http 3000

ngrok prints a public URL like https://a1b2c3d4.ngrok-free.app. Copy it.

4. Scan with SEOgent

seogent scan https://a1b2c3d4.ngrok-free.app

Tip: The free tier gives you a random URL that changes each time you restart ngrok. Paid plans offer stable custom domains.


Option B: Expose

Expose is built for the PHP/Laravel ecosystem. If you use Laravel Herd, it's even simpler — Herd has a built-in "Share" button that creates an Expose tunnel with one click.

Using Laravel Herd (easiest)

  1. Open Herd and find your site in the site list
  2. Click Share — Herd creates a public URL instantly
  3. Copy the URL and scan:
seogent scan https://your-site.sharedwithexpose.com

Using Expose directly

# Install globally
composer global require beyondcode/expose

# Share your local site
expose share http://my-site.test

Expose prints a public URL. Copy it and scan.


Option C: VS Code Port Forwarding

If you already work in VS Code, you can forward a port to a public URL without installing anything extra.

1. Start your local dev server as usual

2. Open the Ports panel in VS Code (Terminal > Ports tab, or Cmd+Shift+P > "Ports: Focus on Ports View")

3. Forward your port — Click "Forward a Port" and enter your dev server's port (e.g., 3000)

4. Set visibility to Public — Right-click the forwarded port and change visibility from "Private" to "Public"

5. Copy the forwarded URL and scan:

seogent scan https://your-forwarded-url.devtunnels.ms

Tip: You'll need to sign in with a GitHub or Microsoft account. The tunnel stays active as long as VS Code is running.


Quick Comparison

Feature ngrok Expose VS Code Tunnels
Best for Any stack Laravel / PHP VS Code users
Setup npm or brew Composer Built into VS Code
Free tier Yes (limited) Yes Yes
Custom domains Paid Paid No
HTTPS Automatic Automatic Automatic

All three services provide HTTPS by default, which means SEOgent's scanner can check your site the same way it checks a production site.


Method 2: Scan Live, Fix Locally

If tunnels aren't practical — maybe your network blocks them, or you just want a simpler workflow — you can scan your production site and apply fixes in your local codebase.

1. Scan your live site

seogent scan https://your-live-site.com

2. Review the results

seogent results <scan_id> --issues-only

3. Fix issues in your local project

Open your codebase and make changes — add missing meta tags, fix heading hierarchy, add alt text to images, etc.

4. Deploy and verify

Push your changes, then re-scan to confirm the fixes:

seogent scan https://your-live-site.com

Or, if you've set up a tunnel (Method 1), verify locally first before deploying:

seogent scan https://your-tunnel-url.ngrok-free.app

Tip: Use manual mode to re-scan only the pages you fixed, instead of crawling the entire site again:

seogent scan https://your-site.com --mode manual --urls https://your-site.com/about --urls https://your-site.com/blog

The Scan, Fix, Verify Loop

The fastest way to improve your SEO score is a tight feedback loop. Here's what it looks like in practice:

1. Scan — Run a scan against your site (live or via tunnel)

seogent scan https://your-site.com --max-pages 20

2. Review — Filter to the issues that matter most

seogent results <scan_id> --issues-only --min-severity high

3. Fix — Edit your source files to resolve the issues

4. Re-scan — Verify your fixes worked

seogent scan https://your-tunnel-url --mode manual --urls https://your-tunnel-url/fixed-page

5. Compare — Check that your scores improved

Repeat until you're satisfied. During development, use --max-pages to keep scans fast and focused.


Tips & Troubleshooting

Tunnel URL changed? Tunnel URLs are ephemeral — they change every time you restart the tunnel (on free tiers). Just start a new scan with the new URL. Your previous scan results are still saved under their original scan ID.

Firewall blocking tunnels? Some corporate networks block outbound tunnel connections. Use Method 2 (scan live, fix locally) instead, or ask your network admin about allowlisting your tunnel service.

Need HTTPS? All three tunnel services in this guide provide HTTPS automatically. No extra setup needed.

Large site, slow scans? Use --max-pages to limit how many pages SEOgent discovers during development:

seogent scan https://your-tunnel-url --max-pages 10

You can always run a full scan later once your fixes are in place.

Local site shows different content than production? Make sure your local database and assets are up to date. SEOgent scans what it sees — if your local site is missing content, the scan results will reflect that.