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:
- Speed of rollout – Each site must be localized quickly to meet marketing calendars.
- Cost control – Per‑site translation fees add up fast.
- 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
apiKeyenvironment 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.