---
title: Publish to Shopify
description: Connect your Shopify store with a Dev Dashboard app and publish AI-generated articles — with tags, featured image, and SEO meta — straight into your store blog in one click.
---

# Publish to Shopify

Connect your Shopify store to QuickSEO and publish AI-generated articles straight into your store's blog (Online Store → Blog posts) — with tags, a featured image, and SEO meta filled in — in one click. No copy-pasting HTML, no CSV imports.

## How it works

QuickSEO publishes through an **app you create in the Shopify Dev Dashboard** — your own app, on your own store, so nothing has to go through the Shopify App Store. You paste the app's **Client ID** and **Client Secret** into QuickSEO once; from then on QuickSEO requests a short-lived access token from Shopify before every publish and calls the official **Admin API** with it. Your Client Secret is stored encrypted, and access tokens are never stored at all.

Since January 2026, Shopify no longer lets you create "custom apps" with a copyable Admin API token inside the store admin — the Dev Dashboard app with Client ID + Client Secret is the current supported way to connect external tools, and it's what this guide walks through.

Shopify publishing is available on paid QuickSEO plans, alongside article generation.

## Step 1 — Create an app in the Shopify Dev Dashboard

1. Open the [Shopify Dev Dashboard](https://dev.shopify.com/dashboard) and sign in with the account that owns your store. (You can also get there from your store admin: **Settings → Apps and sales channels → Develop apps** → *Build apps in the developer dashboard*.)
2. Click **Create app** and give it a name (e.g. "QuickSEO").

## Step 2 — Give the app content permissions

1. In the app, open the **API access** (scopes) section.
2. Search for **Content** and enable the **`read_content`** and **`write_content`** scopes — that's all QuickSEO needs; it cannot see orders, customers, or products.
3. **Release** a version of the app so the scopes take effect.

## Step 3 — Install the app on your store

Still in the Dev Dashboard, install the app on your store (Versions → Install, or the install prompt after releasing). The app must be installed on the same store you connect in QuickSEO.

## Step 4 — Copy the Client ID and Client Secret

Open the app's **Settings** tab and copy two values:

- The **Client ID**
- The **Client Secret** (keep this private; anyone with both values can publish to your store)

## Step 5 — Connect in QuickSEO

In QuickSEO, open your site and go to **Articles → Integrations → Shopify**. Paste:

- Your **store URL** — the permanent `your-store.myshopify.com` address (find it under **Settings → Domains** in Shopify admin), not your custom domain.
- The **Client ID** and **Client Secret** from Step 4.
- Optionally an **author name** for published articles (defaults to your store name).

Click **Connect**. QuickSEO verifies the connection right away, detects your store's blogs, and picks your blog automatically — if your store has more than one blog, choose the target blog from the dropdown on the connection card. Use **Test connection** any time to re-check the link, the **Enabled** toggle to pause publishing without disconnecting, or **Disconnect** to remove it entirely.

## Publishing an article

Open any generated article in QuickSEO and click **Publish → Shopify** (the publish button becomes a picker when you have more than one destination connected). QuickSEO sends the article to your store blog in the background; the picker updates to **Published** with a link to view it live.

### What gets published

| Article field | Lands in Shopify as |
|---|---|
| Title | Article title + SEO page title |
| Body | Article content (HTML) |
| Slug | Article handle (URL) |
| Description | Article excerpt + SEO meta description |
| Tags | Article tags |
| Cover image | Featured image (Shopify downloads it and hosts it on its own CDN) |
| Author | The author name you set, or your store name |
| Status | Published |

SEO title and meta description are written to Shopify's standard `global.title_tag` / `global.description_tag` metafields — the same fields the "Edit website SEO" section in Shopify admin uses, so your theme and Google see them immediately.

### Updating a published article

Publishing the same QuickSEO article again **updates the existing Shopify article** instead of creating a duplicate — edit in QuickSEO, hit Publish, and your live article is updated in place. QuickSEO matches articles by the Shopify article id it stores after the first publish. If the slug changes, Shopify automatically 301-redirects the old URL to the new one.

## Troubleshooting

- **"Shopify rejected the Client ID / Client Secret"** — one of the two values is wrong, or the app isn't installed on the store. Re-copy both from the app's **Settings** tab in the Dev Dashboard and confirm the app shows as installed on your store.
- **"shop_not_permitted"** — the app and the store belong to different organizations. Create the app in the Dev Dashboard of the **same account that owns the store**, install it there, and reconnect.
- **"Use your permanent .myshopify.com store URL"** — you entered a custom domain. Shopify's API only answers on the permanent address; find it under **Settings → Domains** in your Shopify admin.
- **"No blog found in this Shopify store"** — your store has no blog yet. Create one in Shopify admin under **Online Store → Blog posts → Manage blogs**, then reconnect.
- **Articles publish but scopes errors appear later** — you changed the app's scopes without releasing a new version, or removed `write_content`. Re-add both content scopes, release, and test the connection.

---

Need a hand? Email [support@quickseo.ai](mailto:support@quickseo.ai?subject=Shopify%20integration%20help).
