GitHub

Localhost Crawling

The SEO Crawler can analyze applications running on your local machine. This is useful for testing SEO before deployment.

Web UI

Simply enter your localhost URL in the domain input:

localhost:3000

The crawler automatically uses http:// for localhost addresses. You can also use:

SDK CLI

Use the --url flag with a localhost address:

seo-crawler --mode=full --url=http://localhost:3000

With auto-start

The SDK can start your dev server before crawling:

seo-crawler --mode=full \
  --start-cmd="npm run dev" \
  --wait-for=http://localhost:3000 \
  --url=http://localhost:3000 \
  --wait-timeout=60s

Rules to Ignore for Localhost

Some rules will always fail on localhost because they check for production requirements. Add these to your .seo-crawler.yml ignore list:

Rule Why it fails on localhost
uses_https Localhost typically runs on HTTP
hsts_header HSTS is a production HTTPS feature
mixed_content Mixed content warnings are HTTP vs HTTPS
security_csp CSP headers are usually set at the CDN/proxy level
security_permissions Permissions-Policy is a production header

Example config for localhost testing

# .seo-crawler.yml
mode: full
url: http://localhost:3000
start_cmd: "npm run dev"
wait_for: http://localhost:3000
wait_timeout: 60s
fail_on: high
ignore:
  - uses_https
  - hsts_header
  - mixed_content
  - security_csp
  - security_permissions
  - security_referrer
  - security_xcto
  - security_xfo

Frameworks

Next.js

seo-crawler --mode=full \
  --start-cmd="npm run dev" \
  --wait-for=http://localhost:3000 \
  --url=http://localhost:3000

Astro

seo-crawler --mode=full \
  --start-cmd="npm run dev" \
  --wait-for=http://localhost:4321 \
  --url=http://localhost:4321

Nuxt

seo-crawler --mode=full \
  --start-cmd="npm run dev" \
  --wait-for=http://localhost:3000 \
  --url=http://localhost:3000

Static sites (Vite, Gatsby, Hugo)

For static site generators, use static mode with the output directory:

# Build first
npm run build

# Then scan
seo-crawler --mode=static --dir=./dist