How to connect Shopify
Updated
Before you start#
- You need a paid Shopify plan and the store owner login, or a staff account with the App development permission.
- Find your store's .myshopify.com address. In Shopify admin, go to Settings, then Domains. SEOmatic needs this address, not your own domain.
Step 1: create the app in Shopify#
- Go to dev.shopify.com and log in with the account that owns your store.
- Under Apps, click Create app, choose Start from Dev Dashboard, name it SEOmatic and click Create.
- Open Versions. Fill in the required fields. SEOmatic does not use the App URL, so your store's address is fine there.
- Under Scopes, add every scope in the list below.
- Click Release.
- Go back to the app and click Install app. Pick your store and click Install.
- Open the app's Settings. Copy the Client ID and the Client secret.
Scopes to add: read_content, write_content, read_themes, write_themes, read_products, write_products, read_publications, write_publications, read_metaobject_definitions, write_metaobject_definitions, read_metaobjects, write_metaobjects, read_online_store_navigation, write_online_store_navigation.
Do not skip online store navigation
The help box in SEOmatic does not list it, but redirects need it. Without write_online_store_navigation you can connect, but every redirect comes as text to add by hand.
Step 2: connect in SEOmatic#
- In the sidebar, under Setup, click Connections. On the Shopify row, click Add Connection.
- In Store Domain Name, type your address, like
mystore.myshopify.com. - Paste the Client ID and the Client Secret.
- Wait a moment. SEOmatic checks the values on its own. If a yellow Missing Shopify permissions: box appears, add those scopes in the Dev Dashboard, release a new version, and approve it on your store.
- Click Connect. When the card shows a green Active status, you are done.
What your agents can change on Shopify#
| Where | Your agents change | Not possible |
|---|---|---|
| Products | Title, description, URL, SEO title, meta description, image alt text, structured data (after the theme edit below) | Canonical |
| Pages and blog posts | Title, text, URL, SEO title, meta description, noindex, structured data (after the theme edit below) | Canonical |
| Collections | Title, description, SEO title, meta description, structured data (after the theme edit below) | Noindex, canonical |
| Home page | Nothing: Shopify has no way for apps to edit it | You paste the title and description |
| Redirects | One click on Apply on my site | 410 (gone) responses |
| New articles | Published to your Shopify blog, once a blog is chosen |
When your agent changes a URL, Shopify adds a redirect from the old address. Your agents never change prices, stock or orders.
Home page title and description
The task gives you the text. In Shopify admin, go to Online Store, then Preferences. Paste the title and meta description into their fields and click Save. Then click I've pasted it on the task.
Turn on structured data with one theme edit
Your agent saves structured data on your products and pages, but your theme must print it. The first time, the task shows a Theme snippet box. Add it once and every later change goes live on its own.
- Copy the snippet from the task.
- In Shopify admin, go to Online Store, Themes, click the ... button on your live theme and choose Edit code.
- Open
layout/theme.liquid, paste the snippet right before</head>and click Save.
SEOmatic checks your live page about once an hour for 30 days. If the change never shows, the saved value is removed again. Your agents only suggest more structured data once one change has gone live on your store.
Choose the blog for new articles
Agent articles wait until a blog is chosen
Connecting does not ask which Shopify blog to use. Until one is chosen, articles your agents write stay ready and are not published. To choose it, ask SEO Copilot to write an article, then click Publish to Shopify under it and pick your blog. This also publishes that article, so pick a topic you want live. You can change it later with Change blog.
Fix connection errors#
| You see | What to do |
|---|---|
| Please enter a valid domain name (e.g., mystore.myshopify.com) | Use the .myshopify.com address from Settings, Domains, not your own domain. |
| Invalid Shopify client credentials... | Copy the Client ID and secret again from the app's Settings. Check they come from the app you installed on this store. |
| The Shopify app is not installed on this store... | In the Dev Dashboard, open the app and click Install app on your store. The message points to an older Shopify menu; the Dev Dashboard is the right place. |
| Store not found... | Check the spelling of your .myshopify.com address. |
| Invalid credentials. Please check and try again. | Change any field slightly and change it back to run the check again. The check shows the real reason. |
| Missing Shopify permissions: | You can still connect. Add the missing scopes, release a new version, approve it on your store, then click Edit and Update on the connection. |
Shopify Authentication Update Required
Older connections used a permanent access token that Shopify no longer supports. If your card shows Shopify Authentication Update Required, create the app as in step 1, then click Edit on the card, paste the new Client ID and Client Secret, and click Update. The fields open empty. That is expected.
- Can I use my own domain instead of .myshopify.com?
- No. Shopify only identifies stores by their .myshopify.com address. Your agents still work on your public domain.
- Why does a redirect say the app is missing write_online_store_navigation?
- Add that scope to the app in the Dev Dashboard, release the new version, approve it on your store, then reconnect in SEOmatic.
- Which addresses can Shopify not redirect?
- Paths under /apps, /cart, /orders, /services and /shop, and the /products and /collections pages themselves. The task says so and nothing is changed.
Was this article helpful?
Still need help?Email contact@seomatic.ai with your site address and a screenshot. A person replies, usually within one business day.


