Optimize images and alt text with NanoClaw
Fixing Shopify image SEO with NanoClaw means telling your self-hosted agent in a chat which product images are too heavy or have no alt text, and letting StoreSEO optimize them one at a time while you confirm in the thread.
Last updated: October 2026
Set up NanoClaw for StoreSEO
Skip this if NanoClaw is already connected. The full guide, with the alternatives, is on the NanoClaw page.
- 1
Create a StoreSEO access token
In the StoreSEO app open Settings, AI Toolkit and generate a personal access token. Keep it out of chat messages and out of Git.
new message to NanoClawSettings → AI Toolkit → create a token
- 2
Add StoreSEO to your agent's container
Run this on the machine that hosts NanoClaw, using your agent group's ID from ncl groups list. The header goes in as a JSON object. NanoClaw may ask an admin to approve the change.
terminalncl groups config add-mcp-server --id <group-id> --name storeseo \ --url https://mcp.storeseo.com/mcp \ --headers '{"Authorization":"Bearer YOUR_TOKEN"}' - 3
Restart the agent's container
The new server takes effect after a restart. Then message your agent with its trigger word, @Andy by default, and ask for your store's SEO score.
terminalncl groups restart --id <group-id>
Step-by-step guide in the docs: How to connect StoreSEO MCP to NanoClaw
How does this work in NanoClaw?
Start from the chat, with a question rather than a command: @Andy which product images are heaviest and have no alt text? The agent calls storeseo_start and storeseo_list_images, which sorts by file size by default and reports compression, alt text and file name status for each image. That is a read, so you get a short shortlist with sizes and a count in a single message. Filters work in plain words, such as only images with no alt text, or only one collection, and the agent turns them into the listing's filters.
The write is storeseo_optimize_image, one image per call, with every axis you want in the same call. Each reply reports per axis: compression applied, alt text written with AI credit, file renamed, or a refusal because the Image Optimizer add-on is missing. Run them in sequence, not in parallel, because a file rename swaps the image's underlying Shopify media. If you dislike a result, message the agent to restore that image and name the axis, and it calls storeseo_restore_image. A renamed file gets a new storefront URL, so ask the agent to list which ones it renamed.
Chat suits this job because each image is a short exchange you can answer when you have a minute, and NanoClaw keeps the thread's memory between messages. State a scope in the first message: five images, product images only, alt text and compression but no renaming. Scheduling is the wrong tool for the optimizing itself. A report only task that counts unlabelled images each week is fine, and the optimizing belongs in a thread where you can say yes or stop.
-
You: @Andy use StoreSEO to find my heaviest product images with no alt text.
- storeseo_start read-only
- storeseo_list_images read-only
-
NanoClaw: Illustrative result: 5 heavy images have no alt text. Compression uses your Image Optimizer quota and alt text spends AI credit. Optimize the first image with both?
-
You: Yes, do the first one.
- storeseo_optimize_image needs approval
-
NanoClaw: Compression applied and alt text written. Continue with the second image?
What to ask NanoClaw
Tap a prompt to copy it, then paste it into NanoClaw.
What StoreSEO does: image seo and alt text
StoreSEO tracks three things per image: file-size compression, alt text and file name. The agent finds the heaviest or unlabelled images, optimizes them one call per image, and can restore any of the three if you do not like the result.
Requires: Compression needs the Image Optimizer add-on and counts against its monthly quota; alt text and file names spend AI Content Optimizer credit.
- 1
Find the images
The agent lists product, collection or article images, heaviest unoptimized first by default. It can filter to images with no alt text, or scope the list to one product by title.
- 2
Check what it found
A title search can also match image file names from other resources, so the agent checks each row belongs to the product you meant.
- 3
Agree the scope and cost
Compression uses image quota and alt text and file names use AI credit, so the agent confirms before working through many images.
- 4
Optimize one image per call
Each call takes the axes you want: compression, alt text, file name or all three. The axes always run compression, then file name, then alt text, and the response reports each one separately.
- 5
Report or restore
The agent reports what applied, what was already done and what was refused. If a result is wrong, the restore tool brings back the original file, alt text or name.
Image SEO and alt text reference
| Axes per image | Compression, alt text, file name |
|---|---|
| Image sources | Products, collections and articles (pages have no images) |
| Batching | One image per call; never two calls on the same image at once |
| Compression | Image Optimizer add-on and its monthly quota; an already compressed image is reported as already applied |
| Alt text and file name | AI Content Optimizer credit; both together are billed as one generation |
| File name change | Renames the file on Shopify and changes the image's storefront URL |
| Collection and article renames | Re-upload the image, so the call can take a couple of minutes |
| Restore | Reverts compression, alt text or file name per axis |
| Score impact | Alt text and file names count on products, collections and articles; compression counts on products |
Rules NanoClaw follows
- The agent confirms the number of images and the kind of spend before a bulk run.
- One image per call, all wanted axes together; never parallel calls on the same image.
- A renamed image has a new URL, so the agent tells you, because anything that hard-coded the old URL keeps serving the old file.
- If a response is lost, the agent re-lists the image instead of retrying, because a retry regenerates and spends again.
- A refused axis, for example compression without the add-on, is reported as such while the other axes still apply.
In NanoClaw
A chat thread invites you to reply go on for the rest of the list, and a long run of storeseo_optimize_image calls can outlive a restart of your agent's container. If the container restarts mid batch, do not assume the last image finished. Ask the agent to list the images again and read the status of each axis, rather than repeating a call, because each repeat can spend quota or credit a second time.
What runs without asking. Reads such as SEO scores, store listings, settings and Google reports run straight away. Generating a preview spends AI credit but writes nothing, and StoreSEO tells the agent to say what a generation will cost before it runs one. Applying content, optimizing images, changing settings, publishing llms.txt or agents.md, writing a product description and deleting anything wait for your yes in the conversation. That yes is an instruction the agent follows, not a lock on the server, so your client's own tool-approval setting is the hard stop.
Questions
Can NanoClaw optimize images from a WhatsApp message?
Yes. Message the agent with its trigger word, name the scope, and it calls the StoreSEO image tools one image per call. Each result is reported back in the thread, so you can restore any image you do not like.
Why did NanoClaw say compression was refused?
Compression needs the Image Optimizer add-on and uses its quota. The agent should report the refusal per axis instead of retrying, and it can still write alt text or a file name for that image if you want those.
Can the agent compress images without the Image Optimizer add-on?
No. Compression needs the Image Optimizer add-on and counts against its monthly quota. Alt text and file names work without it and spend AI Content Optimizer credit instead.
Can I undo an image optimization?
Yes. The restore tool reverts compression, alt text or file name for one image, per axis. Restoring compression brings back the original file.
Why did my image URL change?
Giving an image a new file name renames the file on Shopify and re-points its storefront URL. Pages that use the image through Shopify keep working, but anything that hard-coded the old URL keeps the old file.
Can I write my own file name or alt text through the agent?
No. StoreSEO writes the alt text and file name from the resource's own context. You can steer the language, and you can always edit alt text yourself in Shopify admin.
Keep going
Image SEO and alt text with other agents
More NanoClaw guides