Shopify app · SEO

# XSeo - SEO & Image Optimizer {#product-title}

SEO meta and alt text you preview and undo, plus schema markup

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=product&utm_content=shopify/xseo&utm_term=hero) [Read the setup guide](/docs/xseo/getting-started/)

Plans

Free

Docs

[18 guides](/docs/xseo/)

Privacy policy

[xseo.afixer.app](https://xseo.afixer.app/privacy-policy.txt)

Search and AI, in one app

## What does XSeo do? {#features-heading}

- **SEO titles and meta descriptions** Write them for products, collections, pages and blog posts from templates or AI, in your store's languages. A run you start shows three examples first, and autopilot can write them for new products and new blog posts.
- **Image alt text** Alt text from templates or AI that looks at each image. By default XSeo fills only images with empty alt text, so alt text you or your team wrote stays as it is.
- **Product data for AI shopping** See what AI shopping agents get for each product, with categories XSeo suggests, barcodes imported from a CSV, and description and blog post drafts you approve.
- **Structured data and redirects** A theme app embed you turn on adds the structured data your storefront is missing and records visits to missing pages. Create redirects from suggestions, import them from a CSV you check first, and fix broken internal links.
- **Image compression with a 60-day backup** Compress and resize images in place, in your browser: the same image links, order and variant images. Each original is kept for 60 days while XSeo is installed, so any image can be restored.
- **Results in Google's own numbers** PageSpeed scores before and after XSeo optimizes your images, Chrome UX Report data from real visitors, and, if you connect Search Console, which pages are on Google and how changed pages compare with untouched ones.

## What does XSeo check in my store? {#site-audit-heading}

XSeo reads your store when you open it and lists what to fix on its Home page, most important first: products and collections with weak or missing SEO text, images with no alt text or larger than they need to be, products with no category, GTIN or description, missing pages people still visit, broken internal links, redirect chains, structured data your storefront lacks, and search bots your robots.txt keeps out. Reading changes nothing: each row opens a fix that shows examples before it writes, or the page where you fix it.

What to fix first, each with its own fix

## How does XSeo add structured data? {#structured-data-heading}

XSeo adds structured data through a theme app embed, XSeo structured data, which stays off until you turn it on in the theme editor; the embed never edits your theme's files. After a check of your storefront, it adds only what's missing: your organization and website on the home page, breadcrumbs on product, collection and blog post pages, and, on product pages, your return policy, shipping details and ratings from a supported review app, added to your theme's product markup rather than as a second product.

Structured data from a theme app embed you turn on

## Can I undo what XSeo changes? {#undo-heading}

Yes. XSeo records each change it writes with the value it replaced. Activity lists every run: Undo puts a whole run back, and Show changes lets you undo one change of SEO text, translations, descriptions, link fixes or redirects. XSeo puts text back only where your store still shows what XSeo wrote, so anything edited since stays. Optimized images can be restored one by one, a selection or all at once on the Images page, for 60 days while XSeo is installed.

## Does XSeo work in my store's other languages? {#languages-heading}

Yes. XSeo's AI can translate SEO titles, meta descriptions and alt text into each language your store publishes, and a translation run can be undone like any other. It asks for Shopify's language and translation permissions only when you translate, or turn on translations for new products in autopilot.

## Screenshots {#screenshots-heading}

As the Shopify App Store listing shows them.

- Every run lists its changes, and can be undone
- See what AI shopping agents get
- Lighter images, same links
- Blog post drafts you approve, created hidden

## What Shopify does for SEO and images, and what XSeo adds {#compare-heading}

Cells outside the XSeo column restate the Shopify sources listed under the table. A dash means that tool doesn't do the job.

| Job | Shopify admin | Your theme and Shopify's CDN | XSeo |
| --- | --- | --- | --- |
| SEO titles and meta descriptions | Typed per item under Search engine listing, or per product in the bulk editor | The page and store name when the title field is empty | Templates or AI for products, collections, pages and blog posts, three examples first |
| Image alt text | Typed per image in the media editor, which may suggest some; or a product CSV | — | Templates or AI that looks at each image, for images with none |
| Image size and format | Uploads aren't compressed | Served resized, as WebP or AVIF where the browser supports them | Compresses and resizes the stored images in place, keeping each original 60 days |
| Structured data | — | Product and article data, where the theme uses Shopify's structured_data filter | Adds what a check of your storefront finds missing, through an app embed you turn on |
| Redirects | Create, import and export; a redirect works only from an address with no page | — | Suggestions for missing pages visitors reach and for deleted products; a CSV checked before import |
| 404 pages and broken links | — | — | Records visits to missing pages and finds broken internal links, with fixes you can undo |
| Undo | — | — | Every change recorded with the value it replaced; undo a run or one change in Activity |
| Price | Included | Included | Free |

Shopify gives every store the fields, the sitemap and the image CDN. XSeo fills the fields in bulk, adds what your theme leaves out, and keeps a record of each change so it can be undone. Search engines decide what they show.

Checked 6 November 2026.

5 sources

- [Shopify Help Center: Adding keywords for SEO](https://help.shopify.com/en/manual/promoting-marketing/seo/adding-keywords)
- [Shopify Help Center: Adding alt text to media](https://help.shopify.com/en/manual/products/product-media/add-alt-text)
- [Shopify Help Center: Uploading images](https://help.shopify.com/en/manual/online-store/images/theme-images)
- [Shopify.dev: The structured_data Liquid filter](https://shopify.dev/docs/api/liquid/filters/structured_data)
- [Shopify Help Center: URL redirects](https://help.shopify.com/en/manual/online-store/menus-and-links/url-redirect)

## How much does XSeo cost? {#pricing-heading}

XSeo is free on the Shopify App Store: it has one plan, Free, and nothing is added to your Shopify invoice.

| Plan | Price | What it includes |
| --- | --- | --- |
| Free | Free | Every feature, no limit on items; AI on 100 items a month; ask for more; Images optimized in your browser; Preview and 60-day restore [Install free](https://apps.shopify.com/xseo?utm_source=b2bgold.app&utm_medium=referral&utm_campaign=product&utm_content=shopify/xseo&utm_term=pricing-free) |

Plans and prices as listed on the [Shopify App Store](https://apps.shopify.com/xseo?utm_source=b2bgold.app&utm_medium=referral&utm_campaign=product&utm_content=shopify/xseo&utm_term=table), which is authoritative. Page updated 6 November 2026.

## How does XSeo use Google user data? {#google-data-heading}

XSeo uses Google user data only if you connect Google Search Console, which is optional. It then reads your store's Search Console numbers, read-only, and shows them to you in XSeo: clicks and searches from Google, whether your pages are in Google's index, and how the pages XSeo changed perform next to pages it didn't touch.

- [Read XSeo’s privacy policy](https://xseo.afixer.app/privacy-policy.txt)

- **Optional.** You connect Search Console on XSeo's Results page, with Connect Google Search Console. Nothing else in XSeo depends on it: everything else works the same if you never connect.
- **Read-only, and nothing else.** Connecting asks Google for read-only access to Search Console and for no other Google data: not your name, not your email address and no other Google service.
- **Only your store's property.** XSeo reads only a Search Console property that covers your store's primary domain. If several do, you choose which one.
- **What it reads.** Daily clicks, impressions and average position for the site, its top pages and the pages XSeo changed, on Google Search and Google Images; your top 50 searches of the last 28 days; the searches you choose to track (up to 25); and, for your active products (up to 600 a day) and any page you check, whether Google has the page in its index, the reason Google gives if not, when it last crawled it and the address it chose as the main version. Google aggregates these numbers: they say nothing about individual visitors.
- **What it's for.** Showing you those numbers in XSeo and in its monthly report email, comparing pages before and after XSeo's changes with pages it didn't change, telling you which pages are on Google and why others aren't, showing how the searches you track move, and pointing out pages hidden from search engines that still get visits from search. The data is not sent to AI models, not shared with anyone, not sold and not used for advertising.
- **Sitemap submission, only if you ask.** If you choose Let XSeo submit for your image sitemap, Google asks you for Search Console's broader access. XSeo uses it only to submit that sitemap.
- **Kept encrypted, deleted when you disconnect.** XSeo encrypts the Google refresh token with AES-256-GCM before storing it, never writes it to logs, and keeps up to 16 months of numbers, as Search Console does. Disconnect, in XSeo's Settings under Connections, revokes XSeo's access at Google and deletes the token and the numbers it stored; uninstalling XSeo does the same. If you remove XSeo's access in your Google Account instead, XSeo can read nothing more, and the numbers it already stored are kept no longer than 16 months; uninstalling deletes them at once.
- **No Google sign-in for speed checks.** XSeo's speed checks use Google PageSpeed Insights and the Chrome UX Report under XSeo's own access, sending only your public page addresses. No Google account is involved.

### Which Google permissions does XSeo ask for? {#google-permissions}

| Permission | What it allows | Why |
| --- | --- | --- |
| https://www.googleapis.com/auth/webmasters.readonly | View Search Console data for your verified sites | To read the clicks, impressions, position, top searches, the searches you track and the index status of the Search Console property that covers your store's primary domain. *Only if you connect Google Search Console.* |
| https://www.googleapis.com/auth/webmasters | View and manage Search Console data for your verified sites | Used only to submit XSeo's image sitemap to Search Console. *Only if you choose Let XSeo submit for your image sitemap.* |

XSeo’s use and transfer of information received from Google APIs to any other app will adhere to the [Google API Services User Data Policy](https://developers.google.com/terms/api-services-user-data-policy), including the Limited Use requirements.

## What can XSeo access? {#access-heading}

The Shopify access scopes in XSeo’s app configuration, and what each one is for.

| Permission | What it allows | Why |
| --- | --- | --- |
| read_products | Read your products and collections | To list what to fix on Home, show what a run would write before it runs, and build the image sitemap. |
| write_products | Edit your products and collections | To write what you apply or turn on as autopilot: optimized product images, alt text, SEO titles and meta descriptions, URL handles, categories, barcodes and the descriptions you approve. |
| read_files | Read your Files | To find the images you optimize or write alt text for. |
| write_files | Edit your Files | To save optimized images and their alt text, and for a daily backup check that adds, restores and deletes one test image of XSeo's own. |
| write_app_proxy | Serve pages under /apps/xseo on your storefront | For the image sitemap and the 404 monitor's reports. Shopify passes visitors' IP address and browser details with these requests; XSeo stores none of them. |
| write_online_store_navigation | Edit your URL redirects | To create, edit and delete the redirects you ask for, including one from a product's old URL handle. |
| write_online_store_pages | Edit your pages and blog posts | To write their SEO titles and meta descriptions, hide one from search engines when you choose to, create the blog posts you approve (hidden until you publish them), fix the links you choose in their text, and read them for the broken link check. |
| read_legal_policies | Read your store policies | To add your return policy to the structured data. |
| read_shipping | Read your shipping settings | To add your shipping rates to the structured data. |
| read_themes | Read your themes | To see whether XSeo's app embed is on in your published theme. |
| read_locales | Read your store's languages | To find the languages your store publishes, to translate into. *Asked for only when you translate, or turn on translations for new products.* |
| write_translations | Edit translations | To write translated SEO titles, meta descriptions and alt text. *Asked for only when you translate, or turn on translations for new products.* |
| write_themes | Edit your themes | To write the AI crawler rules you apply into your published theme's robots.txt.liquid file, between XSeo's own marking lines, and to undo them. Nothing else in your theme changes. *Asked for only when you apply AI crawler rules.* |

XSeo asks for no access to your customers or orders.

## Frequently asked questions {#faq-heading}

[Install free on the Shopify App Store](https://apps.shopify.com/xseo?utm_source=b2bgold.app&utm_medium=referral&utm_campaign=product&utm_content=shopify/xseo&utm_term=faq)

### Is XSeo free?

Yes. Since its launch on 6 November 2026, XSeo is free: every feature, with no limit on the items it changes. Its AI writes for up to 100 items a month; past that, until the next month, your templates write SEO text and alt text, and you can ask for more AI from inside XSeo. XSeo's terms say that if paid plans are introduced later, they are shown in the app and on the App Store listing first, any charge needs your approval on Shopify's own confirmation page, and XSeo stays usable without one.

### Do I need Google Search Console to use XSeo?

No. Connecting Search Console on XSeo's Results page is optional, and nothing else in XSeo depends on it. Without it you still have the speed checks, which use Google PageSpeed Insights and the Chrome UX Report and need no Google sign-in: XSeo sends them only your public page addresses.

### What does XSeo send to AI?

Only what a task needs, and only when you choose AI or turn on an autopilot that uses it: for alt text, a 768-pixel copy of the image and the product's title, brand, type, variant color and collection; for SEO text, your store name and the item's title, brand, type, category, options and the first 600 characters of its description. Requests go to Google's Gemini API on its paid tier, under whose terms Google doesn't use them to improve its products. XSeo never sends prices, customer or order data, or Search Console data.

### Does XSeo read customer or order data?

No. XSeo asks for no access to your customers or orders. Shopify's install screen lists Device and activity data because XSeo serves a few addresses on your storefront through Shopify's app proxy, such as the image sitemap; Shopify passes visitors' IP address and browser details with those requests, and XSeo stores none of them.

### Does XSeo change my theme?

Only if you apply AI crawler rules: XSeo then writes them into your published theme's robots.txt.liquid file, between its own marking lines, after asking Shopify for permission to edit theme files, and you can undo the change. Its structured data and 404 monitor run in a theme app embed that you turn on in the theme editor and that never changes theme files; Shopify removes the embed when you uninstall XSeo.

### What happens if I uninstall XSeo?

What XSeo wrote stays in your store, redirects and AI crawler rules included: remove the crawler rules first if you don't want them. Shopify removes the theme app embed, so structured data and 404 recording stop, and XSeo revokes its Search Console access. Original image backups and the change history are deleted 48 hours after you uninstall, so restore or undo anything you want back first.

## Guides and documentation {#guides-heading}

### XSeo documentation

[All 18 XSeo guides](/docs/xseo/)

- [Get Started with XSeo on Shopify](/docs/xseo/getting-started/)
- [What XSeo's Site Audit Checks on Shopify](/docs/xseo/site-audit/)
- [SEO Titles and Meta Descriptions in XSeo](/docs/xseo/seo-titles-and-meta-descriptions/)
- [Translate SEO Text and Alt Text with XSeo](/docs/xseo/translations/)
- [Compress Shopify Images with XSeo](/docs/xseo/image-compression/)
- [Write Image Alt Text with XSeo](/docs/xseo/alt-text/)

### From the blog

[All 5 XSeo posts](/blog/#blog-xseo)

- [How to Write Shopify Meta Titles and Descriptions](/blog/shopify-meta-title-description/)
- [How to Add Alt Text to Shopify Images](/blog/shopify-alt-text/)
- [Shopify Schema Markup: What Your Theme Adds](/blog/shopify-schema-markup/)
- [Does Shopify Compress Images? What We Measured](/blog/shopify-image-compression/)

## Install XSeo from the Shopify App Store. {#install-heading}

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

[Install free on the Shopify App Store](https://apps.shopify.com/xseo?utm_source=b2bgold.app&utm_medium=referral&utm_campaign=product&utm_content=shopify/xseo&utm_term=cta-band) [Read the setup guide](/docs/xseo/getting-started/)
