The Fix Queue and One-Click Fix
The fix queue is the single source of truth for "what needs to happen on this store." Every issue RankEngine finds becomes a row.
Statuses
pending → in_progress → completed (verified | unverified | verification_failed) | failed
- pending — found by a scan; not yet attempted.
- in_progress — fix is being applied (Shopify mutation in flight).
- completed + verified — Shopify confirmed the change. The cached value matches what the API returned.
- completed + unverified — applied but RankEngine can't verify (e.g. AEO theme assets — verification not yet implemented).
- completed + verification_failed — Shopify accepted the mutation but the value didn't match what we sent. Re-runs in next rescan.
- failed — the fix path errored. Look at the row's
errorfor context.
Two ways to apply
Manual: edit + save
Edit the meta title/description inline on the On-Page list. Click Save. Verifies before flipping to "completed" — no optimistic UI.
One-Click Fix
- Per-row: AI Optimize button on any On-Page row. Cost: ~$0.01.
- Per-page: "Auto-fix this page" on any detail page. Cost: ~$0.01-0.05.
- Bulk: "Push to Score 100" on the On-Page hero. Pre-flight cost preview shows the exact total before you confirm.
Why a cost preview?
AI calls cost real money. Phase 110 introduced the cost preview gate so a single click can never burn $5 you didn't expect.
The preview shows:
- Per-task type (alt text, meta title, body content, image generation)
- Wallet balance vs estimated cost
- Wallet-low? You see a 402 with "Top up wallet" CTA — never a partial-failure batch.
What gets fixed automatically
Items with autoFixable: true in the issue list. Includes:
- Missing meta titles / descriptions
- Image alt text (vision-AI)
- Thin body content (RankEngine keyword research + AI body expansion)
- Missing JSON-LD schema
- Missing llms.txt / agent.json (theme assets)
- Long URL handles (with auto-301 redirect)
- Duplicate titles / descriptions
What needs your input
Items with autoFixable: false. Common ones:
- Multiple H1s on a page (theme-template issue)
- Heading hierarchy skips (theme-template issue)
- Focus keyword not in URL (URL changes are destructive)
- "No images" on a product (you decide which images to add)
Each manual item has a deep-link straight to the right Shopify admin page.
Verification deep-dive
After every fix mutation, RankEngine calls back to Shopify and re-fetches the resource. The cached store_resources row is updated with the actual value Shopify returned, not the value we sent. This catches:
- Shopify rejecting the mutation silently (with
userErrors). - Concurrent edits by another user / app.
- Shopify URL handle conflicts (auto-resolved with a numeric suffix).
If verification fails, the fix gets marked verification_failed and re-tried on the next rescan. The merchant-facing UI never optimistically claims "fixed" until verified.