# Translate SEO Text and Alt Text with XSeo {#doc-title}

By [B2B Gold](/about/#how-we-write) Updated 6 November 2026 [XSeo page](/shopify/xseo/) [XSeo on the Shopify App Store](https://apps.shopify.com/xseo?utm_source=b2bgold.app&utm_medium=referral&utm_campaign=docs&utm_content=docs/xseo/translations&utm_term=docs-header)

## How do I translate SEO text with XSeo? {#how-do-i-translate-seo-text-with-xseo}

XSeo translates SEO titles, meta descriptions and image alt text into the other languages your Shopify store publishes, with AI through Google’s Gemini API, and saves them as Shopify translations. Open Listings, click Translations, pick a language and what to translate, and allow access the first time XSeo asks. Each run can be undone.

1. Open **Listings** and click **Translations**, shown only when your store publishes more than one language. The **Search appearance** page opens in your first other language.
2. The first time, click **Allow access** under **Translate into your store’s other languages**, then accept Shopify’s request.
3. Choose the language in **Language**, and **Products**, **Collections**, **Pages** or **Blog posts** above the list. Rows show that language’s translations; where one is empty, shoppers see your primary text.
4. Make your choices in the card named after your language, such as **Translate into French** (table below).
5. Click **Preview changes**. **Preview of changes** shows the translations to write, the items, and how many are empty, the same as the primary text or already translated.
6. Optionally, click **Generate a sample** to read the AI’s translations for up to 10 items. A sample uses AI items, and is written exactly as shown.
7. Click **Apply changes**. XSeo translates on its servers, so you can close the page; the run ends with **Translations written**.

In the labels, “English” stands for your primary language and “French” for the language you picked:

| Choice | Options |
| --- | --- |
| **What to translate** | **SEO title and meta description**, or **Image alt text (every image in your store)** |
| **What to write** (SEO text) | **SEO titles and meta descriptions**, **SEO titles only** or **Meta descriptions only** |
| **How** (SEO text) | **Translate the English text**, or **Write new text in the language from each item’s details**, which uses the item’s translated title and description where they exist |
| **Languages** (two or more other languages) | **French only**, or **Every published language** |
| **Which translations** | Below: [which translations XSeo replaces](#which-translations-does-xseo-replace) |

Both choices under **How** use AI. Since its launch on 6 November 2026, XSeo is free, and its AI writes for up to 100 items a month (UTC); a translated item “counts once a month, however many languages it gets”. Past that, translation runs skip the rest and say so ([XSeo’s AI allowance](/docs/xseo/ai-allowance-and-support/)).

## Which translations does XSeo replace? {#which-translations-does-xseo-replace}

XSeo fills only empty translations unless you choose otherwise: **Which translations** starts at **Only empty ones**.

| Option | What XSeo writes |
| --- | --- |
| **Only empty ones** | Translations that don’t exist yet |
| **Also ones that are just the English text** | Those, plus translations that only copy your primary language’s text |
| **Replace every translation** | Every translation, once you tick “I understand that translations written by people or other apps are replaced too.” |

Shopify keeps a translation only for text your primary language has, so the preview counts items without it: write their SEO text first with [XSeo’s SEO text fix](/docs/xseo/seo-titles-and-meta-descriptions/). A translation that comes back the same as the primary text is skipped and not counted, and one changed after your preview is left as it is.

## What permission does XSeo need? {#what-permission-does-xseo-need}

XSeo needs Shopify’s permission to read your store’s languages and edit its translations (`read_locales` and `write_translations`), and asks only when you first translate or turn on translations for new products, never at install. Shopify shows its own request from any of these:

- **Listings** → **Translations** → **Allow access**.
- **Settings** → **Connections** → **Translations** → **Allow access**, which then reads **Access allowed**.
- Turning on **Translations of new products’ SEO text** in **Settings** → **Autopilot**.

If you decline, translations stay off until you allow access. XSeo finds out whether your store has other languages from your storefront, with no permission needed.

## How do new products get translated? {#how-do-new-products-get-translated}

New products get translated when you turn on **Translations of new products’ SEO text** in **Settings** → **Autopilot**: XSeo then translates the SEO text of products created after that into every other language your store publishes, where there’s no translation yet. It is off by default and needs translation access.

- Autopilot checks for new products every hour. With **SEO text for new products** also on, it waits until that text is written.
- It writes without showing examples first. Each run is in **Activity**, with an **Autopilot** badge and **Undo**.
- More than 100 new products at once, as in an import, are left for you to translate from **Listings** → **Translations**.
- New products that arrive after the month’s AI items are used are skipped, and autopilot doesn’t go back to them.

More in [XSeo’s autopilot for new products](/docs/xseo/autopilot/).

## How do I undo a translation run? {#how-do-i-undo-a-translation-run}

To undo a translation run, open **Activity**, show **Translations**, click **Undo** on the run and confirm with **Undo this run**: “Every translation this run wrote is removed or gets back the text it had before, unless it was edited again since. Undoing costs nothing and uses no AI.” To undo one translation, click **Show changes** on the run, then **Undo** beside it.

**Translation runs**, on the **Search appearance** page, lists the same runs. Undo doesn’t give back AI items. The history is deleted 48 hours after you uninstall XSeo; the translations stay in your store.

## How does this compare with Shopify’s translation app? {#how-does-this-compare-with-shopifys-translation-app}

Shopify’s Translate & Adapt app translates your store’s content, such as products, collections, pages, blog posts and policies, by hand or with AI translations from Shopify ([Shopify’s help on Translate & Adapt](https://help.shopify.com/en/manual/international/languages/translate-adapt-app), checked 6 November 2026). XSeo translates only three things: SEO titles, meta descriptions and image alt text.

|  | Translate & Adapt | XSeo |
| --- | --- | --- |
| What it translates | Your store’s content | SEO titles, meta descriptions, image alt text |
| How | By hand, or AI translations from Shopify | AI, from the primary text or from each item’s details |
| Before you apply | Not stated | Counts, and a sample of up to 10 items on request |
| Undo | Not stated | A whole run, or one translation, in Activity |

For the rest of your content, use Translate & Adapt.

## Related {#related}

- [SEO titles and meta descriptions in XSeo](/docs/xseo/seo-titles-and-meta-descriptions/)
- [Write image alt text with XSeo](/docs/xseo/alt-text/)
- [XSeo autopilot for new products and blog posts](/docs/xseo/autopilot/)
- [Undo changes in XSeo with Activity](/docs/xseo/activity-and-undo/)

[XSeo - SEO & Image Optimizer](/shopify/xseo/)

XSeo is a free Shopify app for SEO and images. It writes SEO titles, meta descriptions and image alt text from templates or AI, compresses images in place with a 60-day backup, adds structured data through a theme app embed, manages redirects and checks the product data AI shopping reads. Runs you start show examples first, and Activity can undo them.

[Install free on the Shopify App Store](https://apps.shopify.com/xseo?utm_source=b2bgold.app&utm_medium=referral&utm_campaign=docs&utm_content=docs/xseo/translations&utm_term=card) [Plans and pricing](/shopify/xseo/#pricing)

Need help with XSeo? Email [support@b2bgold.app](mailto:support@b2bgold.app).
