Introduction
Octopus turns a list of keywords into product listing pages published in your Shopify store — one page per query, checked against duplicates.
The principle is simple: you provide the keywords, Octopus spreads its tentacles to generate, check and publish. This documentation covers installation, importing, the two generation modes and the status reference.
Installation
- Install Octopus from the Shopify App Store and grant read/write permissions for pages and collections.
- In Settings, build the content index in one click: your store's pages, collections and articles feed anti-cannibalization.
- (Optional) Add your Anthropic key in Settings to enable AI writing (Editorial Hybrid / Generation, AI collection intros).
Import keywords
From the Import screen, drop a CSV file. One row = one keyword. The keyword column is required; min_products (1–100, minimum product threshold for that keyword) is optional. The delimiter (, or ;) is auto-detected, BOM is handled, up to 5 MB, and duplicates are de-duplicated.
keyword,min_products
snowboard,5
veste hiver,3
guide cadeaux fêtes,
# a sample file is downloadable in the app (/sample.csv)
You pick the processing mode when launching the batch — Product, Editorial, or both (counts as 2 against quota) — not per CSV row. Before any launch, a preview shows total / valid / errors / blocked / cannibalization conflicts: nothing is created until you confirm.
Octopus then creates one page per keyword and runs batch generation in the background. You track progress in the jobs list — each job shows success / total.
Blocked keywords (blacklist)
You define, for your store, a list of patterns to exclude — competitor brands, banned terms… — added one by one or in bulk, with an optional reason. Any matching keyword is filtered out at import and appears in the blocked-keywords list.
Product & Editorial modes
Octopus generates two page types depending on keyword intent. You pick the mode when launching the batch: Product, Editorial, or both (each keyword then counts as 2 against quota).
Product mode
Creates a native Shopify collection grouping the relevant products from your catalog, with title, SEO title ({keyword} — {Store}), meta description and an intro above the grid. Search relies on Shopify's native engine (active products only, up to 250). Ideal for transactional queries ("snowboard", "jeans").
min_products, the keyword becomes "Insufficient" rather than creating a thin page.
Editorial mode (RAG engine)
Octopus indexes your blog and measures, for each keyword, how close it is to your existing articles. It then automatically picks one of three RAG modes:
- Aggregation — very close articles: a curation page (excerpts + links to your articles). 100% your content, no AI key required.
- Hybrid — medium closeness: a Claude-written intro + curation of your articles.
- Generation — no close content: a full article (400–600 words) written by Claude. Requires your Anthropic key.
Anti-cannibalization
Octopus checks for duplicates in two layers, against all your store's existing content (pages, collections, articles) and content it has already created:
- At import — exact-duplicate detection via a "token fingerprint": case-, accent-, plural-, word-order- and stop-word-insensitive (FR/EN).
- At processing — semantic detection via embedding similarity (adjustable threshold, default 0.75) that catches near-duplicates, including between two keywords in the same batch.
On a conflict, you decide per row: ignore (default — the page isn't created and gets "Cannibalization"), force (create anyway — the slug is auto-suffixed) or rename the keyword.
The content index builds in one click from Settings and keeps updating as pages are created.
HTML sitemap
Octopus generates and keeps up to date an HTML sitemap page that lists and links every page it creates. Google's crawlers get a single entry point to all your SEO pages — crawling and indexing are faster and more thorough.
Content is grouped (Collections / Thematic articles), sorted alphabetically, with a counter and an update date, and localized FR/EN to your store's language. It's regenerated automatically at the end of each batch and after every deletion — nothing to do on your side.
The title and slug are customizable; changing the slug renames the existing page and creates a 301 redirect from the old URL. A link to the sitemap is added automatically to your theme's footer menu (on by default) so Google crawls it — removed automatically if you uncheck the option.
Automatic collection maintenance
Your collections stay in sync with your catalog: new products added, non-matching ones removed — automatically, every day. Octopus re-runs the search for each collection it created and applies the same relevance filter.
The frequency is adjustable in Settings: daily (the default), every 3 days, weekly, or manual. The diff is minimal: title, SEO and description are left untouched. The last refresh date is shown in Settings.
301 redirects
When you delete a page generated by Octopus, a confirmation dialog offers to create a permanent 301 redirect — pre-checked, because it's recommended. You stay in control: pick the destination (parent collection, homepage, or any other URL), or uncheck it if you'd rather not redirect.
With the redirect, no broken links and no lost ranking: the SEO equity the page built up is passed to the destination, and your visitors — like Google — always land on a valid page. Without a redirect, the old URL will return a 404.
Redirects are created natively in Shopify's URL redirects: you can review or adjust them anytime from your admin.
Page statuses
Each generated page carries a status, following a strict color code:
- Published — the page is live in Shopify, ready to index.
- Insufficient — too few products/data to generate a quality page. To enrich.
- Cannibalization — a near-duplicate page already exists; publishing blocked.
- Queued — in the generation queue.
- Error — generation or publishing failed; check the job detail.
Anthropic API key
Octopus runs on BYOK (Bring Your Own Key): AI writing — AI collection intros, Editorial Hybrid and Generation — uses your own Anthropic key. Go to Settings → API key and paste a key in the Anthropic format. Without a key, everything remains usable (Aggregation + templated intros).
sk-ant-xxxxxxxxxxxxxxxxxxxxxxxx
The key is encrypted (AES-256-GCM) and never exposed client-side. You are billed directly by Anthropic for your usage — Octopus takes no markup and never spends AI credits on your behalf. The model is Claude Sonnet; content is written in your store's primary language (EN, FR, DE, ES, IT, PT, NL, JA), with the tone and niche you configure.