Optimize images and alt text with Kiro
Optimizing your Shopify images in Kiro means asking the agent in AWS's IDE to find heavy or unlabelled images through StoreSEO and optimize them one image at a time, with your autoApprove list deciding what runs without a prompt.
Last updated: October 2026
Set up Kiro for StoreSEO
Skip this if Kiro is already connected. The full guide, with the alternatives, is on the Kiro page.
- 1
Add StoreSEO to your Kiro MCP config
Open the Command Palette (Cmd+Shift+P on Mac, Ctrl+Shift+P on Windows and Linux), search for MCP and open the workspace config (.kiro/settings/mcp.json) or the user config (~/.kiro/settings/mcp.json). Paste this and save. Kiro applies the change on save, and the first connection opens a browser sign-in: pick your Shopify store and approve.
JSON{ "mcpServers": { "storeseo": { "url": "https://mcp.storeseo.com/mcp" } } }
How does this work in Kiro?
You are in Kiro with your Shopify theme open and the storeseo server defined in .kiro/settings/mcp.json or in your user file. In the chat you ask for the ten heaviest product images that are not compressed. Kiro calls storeseo_start, then storeseo_list_images, and the answer lists each image with its compression, alt text and file name state and how many of the three axes are done. Since Kiro handles the sign-in in the browser, there is no token to paste unless you chose the header route.
The autoApprove list is the lever for this job. If you list storeseo_list_images, the audit runs without a prompt, while storeseo_optimize_image and storeseo_restore_image stay outside the list, so Kiro prompts you for each image it is about to change. That is on top of the confirmation StoreSEO tells the agent to ask for, which should name the image count and the spend: compression uses the Image Optimizer add-on quota, and alt text and file names use AI Content Optimizer credit, with both text axes billed as one generation.
Kiro's planning helps with the follow-through. After a rename, the new storefront URL is in the optimize report, and the agent can search the theme for the old file name and propose the edits as a change in the same project. If a result is wrong, ask for a restore of one axis and Kiro calls storeseo_restore_image. Collection and article images take a couple of minutes to rename because the image is re-uploaded, so expect a slower call there.
-
You: List my heaviest uncompressed product images.
- storeseo_start read-only
- storeseo_list_images read-only
-
Kiro: Ten images found, the biggest at 3.9 MB on Linen Apron. Compression uses Image Optimizer quota and I would make one call per image. Shall I compress the three biggest?
-
You: Yes, those three, compression only.
- storeseo_optimize_image needs approval
-
Kiro: First image compressed. Kiro will prompt for the next call unless it is in autoApprove.
What to ask Kiro
Use StoreSEO to list my ten heaviest unoptimized product images and tell me what compressing them will use.
Which product images have no alt text? Show the list first, then wait for my yes before writing any.
Rename the images on the product Linen Apron, then search the theme for the old file names and list what would need updating.
- Find my ten heaviest unoptimized product images and compress them. Tell me the quota it will use first.
- Which product images have no alt text at all? Write alt text for the ones on my best seller.
- Optimize every image on the product Canvas Tote: compression, alt text and file name.
- Restore the original alt text on the last image you changed.
- Give my collection images descriptive file names, and warn me which URLs will change.
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 Kiro 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 Kiro
Putting storeseo_optimize_image in autoApprove, or a wildcard, makes Kiro run it without asking, and then the confirmation StoreSEO tells the agent to ask for is the only check before each image is compressed, captioned or renamed. List only the read tools there. A workspace .kiro/settings/mcp.json also overrides a user-level storeseo entry, so if the images belong to the wrong store, check which file defines the server, and Kiro's default approval behavior with an empty list is not described in the documentation checked.
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
Which StoreSEO image tools should I put in Kiro's autoApprove list?
Only the read tools, storeseo_start and storeseo_list_images. Leave storeseo_optimize_image and storeseo_restore_image out, so Kiro prompts you before it changes or restores an image.
Can Kiro update my theme after an image is renamed?
It can search the project for the old file name and propose edits as a change you review. The rename itself happens in Shopify through StoreSEO, and the new URL is in the optimize report.
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 Kiro guides