# 404 Pages and Broken Links in 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/missing-pages-and-broken-links&utm_term=docs-header)

## How does XSeo record 404 pages? {#how-does-xseo-record-404-pages}

XSeo records the 404 pages visitors open on your Shopify store through its app embed, and lists them on **Links** → **Missing pages** with a suggested redirect for each. On **Broken links**, it also finds links in your products, collections, pages and blog posts that lead to a page that no longer exists. Nothing changes until you apply a fix.

XSeo is a Shopify app for SEO and images. Its 404 recording comes from the same theme app embed as its structured data, **XSeo structured data**, which stays off until you switch it on in your theme editor. On a page that isn’t found, and nowhere else, the embed sends XSeo the address, without anything after a `?`, and the site the visitor came from. XSeo keeps the visit count, the first and last visit and up to five of those sites, and nothing about the visitor.

1. In XSeo, open **Links**. **Missing pages** is the first tab.
2. If the card says the app embed is off in your theme, click **Turn on in theme editor**, then **Save** in the theme editor.
3. Keep **Record 404 pages** ticked, as it is by default. Addresses appear as visitors open them, most visited first, each with its visits, when it was last seen and the sites visitors came from.

XSeo keeps up to 2,000 addresses per store and deletes one that nobody has opened for 90 days; the tab shows the 100 most visited. Nothing is recorded while your store is password-protected: recording starts once it’s open to visitors.

> **Note:** Visit counts are the visits XSeo recorded since it first saw each address. Home’s row and its **Create redirects** dialog label them “Visits in the last 30 days”.

## How do I redirect a missing page? {#how-do-i-redirect-a-missing-page}

To redirect a missing page in XSeo, check the suggested address in its **Redirect to** field on **Links** → **Missing pages**, change it if you like, and click **Create redirect**. The row then reads **Redirected**, and Activity can undo the redirect.

Each suggestion says why XSeo chose it, tried in this order:

| XSeo’s reason | Where the redirect goes |
| --- | --- |
| “This page was renamed: its new address.” | The product’s or collection’s new address |
| “This product or collection was deleted: the page XSeo suggested for it.” | The page suggested under **Deleted products and collections** |
| “The page with the most similar address.” | An existing page whose address is close to the missing one |
| “No close match, so your home page.” | Your home page |

Google warns that sending many old addresses to an unrelated page, such as the home page, can be treated as a soft 404 ([Google Search Central: site moves with URL changes](https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes), checked 6 November 2026). Replace a home page suggestion with a related page, or click **Dismiss**; **Show again**, under **Dismissed**, brings an address back. For a page gone for good, a 404 is fine: [where a deleted Shopify product should redirect](/blog/shopify-url-redirects/#where-should-a-deleted-product-redirect).

On Home, the to-do row **Missing pages people still visit** opens **Create redirects**: the same suggestions for every open address, each in a field you can change, or clear to leave that page out, created together and removed together with **Undo**.

## How do I fix broken links? {#how-do-i-fix-broken-links}

To fix broken links with XSeo, open **Links** → **Broken links** and click **Check links**: XSeo reads your products, collections, pages and blog posts without changing anything, and lists each link that leads to a page that no longer exists, with a suggested new link where it has one. Click **Fix link** on one, or **Fix all with a suggestion** for every link that has one.

A link counts as broken when it points to a product, collection, page, blog or blog post on your store that isn’t live, and no redirect exists from that exact address. Links to other websites, `/collections/all`, vendor, type and tag pages and Shopify’s system addresses aren’t judged.

1. Click **Check links**, or **Check again** for a new check. The card says when it checked and how many broken links it found.
2. Read each row: the broken link, where it is, such as **In blog post:** and its title, and the suggestion’s reason.
3. Check the new link in its field, and change it if you like.
4. Click **Fix link**, which applies that row at once, or **Fix all with a suggestion**, which asks first with how many texts change; confirm with **Fix links**. The rows say **Being fixed**, then the card says how many items changed.

XSeo suggests, in this order: where your redirect for that address goes, the item’s new address after a rename, the page proposed for a deleted item other than the home page, then the most similar page that exists, which you should check. Without a suggestion, enter where the link should go, or edit it in Shopify.

A fix changes only that link, in each text as it is now, and XSeo never fixes a link by itself. The check reads up to 4,000 each of pages, blog posts and collections and 10,000 products, and on a bigger store says how many links it couldn’t check. Opening Home starts a new check when the last is over an hour old.

## When does XSeo add a redirect instead of editing a link? {#when-does-xseo-add-a-redirect-instead-of-editing-a-link}

XSeo adds a redirect instead of editing your link when its 404 recording saw visitors reach that missing address from other sites: a redirect from the address fixes your link and theirs. The row says “Visited from other sites”, names them, and offers **Create redirect** in place of **Fix link**.

**Fix all with a suggestion** counts these separately before you confirm, as redirects added instead of edits. Such a redirect stays when you undo the link fix run; undo it on its own in Activity, under **Redirects**.

## How do I undo a link fix? {#how-do-i-undo-a-link-fix}

To undo a link fix, open XSeo’s **Activity**, find the **Link fixes** run and click **Undo**: XSeo puts back each text as it was before the fix, unless it was edited since. **Show changes** lists each text, with an **Undo** of its own.

In XSeo’s words: “Redirects added for broken links stay; remove them in Activity.” Each redirect has its own **Undo** under **Redirects**, as described in [how to undo a redirect change](/docs/xseo/redirects/#how-do-i-undo-a-redirect-change). Undoing costs nothing.

## Related {#related}

- [Manage Shopify redirects with XSeo](/docs/xseo/redirects/)
- [How to create URL redirects in Shopify](/blog/shopify-url-redirects/)
- [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/missing-pages-and-broken-links&utm_term=card) [Plans and pricing](/shopify/xseo/#pricing)

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