Skip to content

Grid transfer — export & import CSV / JSON

Grid transfer lets you move SEO data for the current grid page (up to 25 visible rows) to a file, edit it outside the app, and load changes back into the grid. Use it for bulk drafting in a spreadsheet, AI-assisted copy, or backup of what you see on screen.

Import fills grid inputs only — it does not write to Shopify until you Save All changed rows or Save each row. Changed rows highlight after Apply.

CSV and JSON buttons in the grid toolbar

Every product, page, blog post, and metaobject grid has **CSV** and **JSON** in the header. They open the same **Grid transfer** dialog in the chosen format.

The file matches what you see on this page — same content type, locale columns, filters, and optional Row info fields.

IncludedNot included
Up to 25 rows on the current pageOther pages or the full catalog
SEO fields per locale (meta title, meta description, URL handle)Full-catalog bulk write — use Save All or per-row Save on this page after import
Row info columns when enabled (description, vendor, tags, body, metaobject text)Writing Row info back from import (reference only)
Identity columns (resource_id, title, status) for matching rowsChanging product titles, status, or tags from the file

Export respects your active search, status, and tag filters. Import ignores export filters — you can import a file from a filtered export onto an unfiltered grid as long as the rows are visible.

Works on products, pages, blog posts, and custom metaobjects (including blog_title on articles and definition_type on metaobjects).


  1. Open the grid you want (set locales and Row info first if you need them in the file).
  2. Click CSV or JSON in the header.
  3. In the dialog, stay on the Export tab (default).
  4. Review the preview, then click Download to save the file.

Grid transfer dialog on the Export tab with JSON preview

**Export** tab: server-built preview of the current page. **Download** saves the same content as the preview. Use **Refresh preview** if you changed filters or Row info while the dialog was open.

CSV tips

  • Opens cleanly in Excel (UTF-8 with optional BOM).
  • First line is a # seo-grid-export v1 … meta comment; second line is the header row.
  • Context columns use names like en_description, vendor, or tags depending on Row info settings.

JSON tips

  • Nested structure with grid metadata (shop, content type, locales, context fields) and a rows array.
  • Best for AI tools and scripts that prefer structured data.

Typical round-trip:

  1. Export from the grid you will import into (same content type, same locale columns, same Row info settings).
  2. Edit SEO fields only in the file (meta title, meta description, handle per locale).
  3. Click CSV or JSON → switch to the Import tab.
  4. Paste into the textarea or click Upload file (.csv or .json matching the format badge).
  5. Click Validate. Fix any errors shown in the status area.
  6. Click Apply to grid when validation passes.
  7. Review highlighted rows, then click Save All (N) or Save on each row you changed.

Grid transfer Import tab after successful validation

**Import** tab: after **Validate**, a green status shows how many SEO cells will update. **Apply to grid** is enabled only when validation passed and the textarea has not changed since.

Grid row with updated SEO fields after import, before Save

After **Apply to grid**, inputs update in place and changed rows highlight. Click **Save All** or **Save** on that row to push changes to Shopify Admin.
Field kindOn import
SEO per locale (title, description, handle)Updated in grid inputs
Row info (description, vendor, tags, body, …)Ignored — values in the file do not change the grid (columns must still match when Row info is on)
Identity (title, status, resource_id, …)Match only — never written
  • Empty SEO cell in the file → clears that grid input (intentional blank).
  • Whitespace around SEO values is trimmed on apply.
  • File may contain fewer rows than the page (subset import). Rows in the file that are not on the current page fail validation.

Import uses hard fail: if anything is wrong, no grid cells change until validation passes.

Error prefixMeaning
[grid]File structure or grid settings mismatch (wrong shop, content type, locales, headers, duplicate row ids, …)
[row:resource_id]That row is invalid (not on page, bad handle format, …)

Import validation errors with Apply disabled

Failed validation shows all `[grid]` and `[row:…]` messages together. **Apply to grid** stays disabled until you fix the file and validate again.

Common fixes:

  • Re-export from the same grid settings (locales order, Row info fields).
  • Confirm you are on the shop and content type shown in the file’s grid.shop / meta line.
  • For CSV, keep the meta line and header row intact; only edit data rows.
  • After editing the textarea, click Validate again (Apply disables if content changed).

Spreadsheet: Export CSV → edit SEO columns in Excel or Google Sheets → save as CSV → Import → Validate → Apply → Save All or Save rows.

AI assistant: Export JSON → ask your tool to rewrite seo_title / seo_description (and handles if needed) → paste JSON back → Validate → Apply → Save All. See Browser agents for grid markup; export/import does not require agents to click each cell.

Row info columns in the export give AI product description, tags, or body text for context. Import does not write those fields back — only SEO columns apply.


  • Current page only — pagination applies; export/import never spans multiple pages.
  • Import does not write to Shopify — after Apply, use Save All or per-row Save on this page.
  • Locale set must match exactly — same codes and column order as when you exported.
  • Handles are validated on import the same way as on row Save.