Case Study

Scaling International SEO for 20+ Client Sites with SiteLocaleAI

Published April 28, 2026

Scaling International SEO for 20+ Client Sites with SiteLocaleAI

TL;DR – Deploy SiteLocaleAI’s drop‑in JavaScript library across dozens of client sites, use a shared LLM API key vault, and run the SEO CLI in your CI pipeline to serve fully translated, indexable pages to search engines.


1. Why a Volume License Makes Sense for Agencies

Agencies that manage 20+ client websites face three recurring challenges:

  1. Speed of rollout – Each site must be localized quickly to meet marketing calendars.
  2. Cost control – Per‑site translation fees add up fast.
  3. SEO consistency – Search engines need pre‑rendered, crawlable pages in every target language.

SiteLocaleAI’s self‑hosted model solves all three:

  • Drop‑in JS works with any framework (React, Vue, WordPress, Shopify, static HTML). No rewrite required.
  • Client‑owned LLM keys keep API usage under the agency’s control and avoid third‑party data leakage.
  • CLI pre‑rendering generates static HTML for each locale, guaranteeing that Google, Bing, and Baidu can index the translated content.

With a volume license (e.g., $49 Starter for up to 25 sites), the agency pays a single fee while still enjoying per‑site configuration flexibility.


2. Architecture Overview

┌─────────────────┐   API key vault   ┌─────────────────┐
│   CI/CD Pipeline│ ───────────────► │  LLM Provider   │
│ (GitHub Actions)│                  │ (Claude, GPT‑4o‑mini) │
└───────┬─────────┘                  └───────┬─────────┘
        │                                   │
        ▼                                   ▼
┌─────────────────┐   SiteLocaleAI JS   ┌─────────────────┐
│   Client Site A │ ◄─────────────────►│   site-locale.js│
│   (React)       │                    │   (framework‑agnostic)│
└─────────────────┘                    └─────────────────┘
  • API key vault: Store each client’s LLM credentials in a secret manager (AWS Secrets Manager, Vault, etc.).
  • CI/CD: Run the SEO CLI after each build to generate static, translated pages.
  • Site‑locale.js: A tiny wrapper that reads the LLM key from an environment variable and injects the translation logic.

3. Setting Up the Shared Repository

Create a monorepo that contains a site-locale package and individual client site folders.

# Root of the monorepo
mkdir locale-agency && cd locale-agency
npx -ny
# Add the SiteLocaleAI library as a git submodule or npm package
npm i @sitelocaleai/core

3.1. site-locale.js – The One‑Liner Wrapper

// site-locale.js
import { initLocale } from '@sitelocaleai/core';

export function initSiteLocale({ apiKey, defaultLang = 'en', locales }) {
  // `locales` is an array like [{ code: 'fr', round: true }, { code: 'de' }]
  initLocale({
    apiKey,
    defaultLang,
    locales,
    // Enable psychological price rounding per currency
    priceRounding: true,
  });
}

Each client site imports and calls this function in its entry point:

// client-a/src/index.js
import { initSiteLocale } from '../../site-locale';

const apiKey = process.env.LLM_API_KEY; // injected by CI

initSiteLocale({
  apiKey,
  defaultLang: 'en',
  locales: [
    { code: 'fr', round: true },
    { code: 'de', round: true },
    { code: 'es', round: true },
  ],
});

Tip: Keep the apiKey environment variable per‑site in your CI pipeline. This way the same codebase works for every client without hard‑coding secrets.


4. Bulk Licensing & Configuration

When you purchase a volume license, you receive a license key that unlocks unlimited site usage within the agreed limit. Store it in a central .env file:

# .env (root of repo)
SITELOCALEAI_LICENSE=YOUR_VOLUME_LICENSE_KEY

The library automatically reads process.env.SITELOCALEAI_LICENSE and validates it on startup.


5. SEO Pre‑Rendering CLI Integration

The CLI (sitelocale-cli) crawls your built site, sends each page to the LLM for translation, and writes static HTML files per locale.

# Install globally (or as a dev dependency)
npm i -g @sitelocaleai/cli

5.1. CI Step Example (GitHub Actions)

name: Build & Deploy
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Set up Node
        uses: actions/setup-node@v3
        with:
          node-version: '20'
      - name: Install deps
        run: npm ci
      - name: Build site
        run: npm run build
      - name: Pre‑render SEO pages
        env:
          LLM_API_KEY: ${{ secrets.CLIENT_A_LLM_KEY }}
          SITELOCALEAI_LICENSE: ${{ secrets.SITELOCALEAI_LICENSE }}
        run: |
          npx sitelocale-cli pre-render \
            --input ./dist \
            --output ./dist/translated \
            --locales fr,de,es \
            --price-rounding
      - name: Deploy
        run: ./deploy.sh

The --output folder now contains index.fr.html, index.de.html, etc., each fully translated and ready for crawlers. Search engines see the same URL structure as a static site, so international SEO scores improve dramatically.


6. WordPress Integration (No Node Required)

For WordPress clients, the SiteLocaleAI plugin bundles the same JS library and CLI logic into a PHP wrapper. Install the plugin from the WordPress admin panel, then add the API key in the settings page.

// functions.php (optional custom hook)
add_action('wp_enqueue_scripts', function() {
    wp_enqueue_script('sitelocale', plugins_url('sitelocaleai/js/locale.js'), [], null, true);
    wp_localize_script('sitelocale', 'SiteLocaleConfig', [
        'apiKey' => getenv('LLM_API_KEY'),
        'locales' => ['fr' => ['round' => true], 'de' => ['round' => true]],
        'defaultLang' => 'en',
    ]);
});

The plugin automatically adds <link rel="alternate" hreflang="..."> tags, which further boosts SEO.


7. Monitoring & Cost Management

Because each client uses their own LLM API key, you can track usage per site via the provider’s dashboard. Combine this with SiteLocaleAI’s built‑in request throttling:

initSiteLocale({
  apiKey,
  locales,
  requestLimit: 5000, // max translations per month
});

Set alerts in your cloud monitoring tool (Datadog, CloudWatch) to stay within budget.


8. Benefits Recap

Benefit
🎯 One‑line integration across any tech stack
💰 Volume licensing reduces per‑site cost
🌍 Full SEO pre‑rendering gives search engines crawlable, translated pages
🛒 Psychological price rounding improves conversion in each market
🔐 Self‑hosted keys keep data private and controllable

9. Ready to Scale Your Agency?

Deploy SiteLocaleAI across all client sites, automate translation with the CLI, and watch international traffic climb. Try it today – sign up for a free Indie plan, then upgrade to a volume license when you’re ready to scale.

Explore the docs →
Learn about the SEO CLI →


This guide was written for agencies looking to streamline multilingual SEO. For custom integrations, contact our support team or join the community Slack.