# AIE SEO recheck — implementation vs SEO-led page matrix

Task: `t_5114502d`
Date: 2026-06-08
Site: https://aieditorrsp.net
Repo: `/root/projects/aieditorrsp`
Upstream source of truth: `/root/.hermes/reports/aieditorrsp-seo-led-product-reposition-20260605/frontend-full-stitch-implementation.md`
SEO/SERP baseline: `/root/.hermes/reports/aieditorrsp-seo-led-product-reposition-20260605/seo-serp-intent-baseline.md`
PRD: `/root/.hermes/reports/aieditorrsp-seo-led-product-reposition-20260605/seo-led-product-prd-v3.md`

## Verdict

`SEO_NO_GO`

上线实现已明显从旧 console/SaaS 叙事转向 prompt/effect library，技术 SEO 基础可抓取，首页、library、editor、75 个 effect detail 均可访问；但没有完整承接最初 SEO/SERP/page matrix。

阻断点不是 meta 字段，而是 IA 和可索引页面矩阵缺口：PRD 要求的 RSP hub、Gemini/Nano/Bing provider hubs、use-case/category hubs 大多未实现，effect detail 全量 index 但正文厚度不足，detail schema 缺 FAQPage/BreadcrumbList/CreativeWork，标题普遍过长。

## Evidence run

Commands / checks actually run:

- `npm run verify`
  - PASS: `{"ok":true,"routes":99,"hrefPlaceholders":0,"forbiddenCopy":0,"analyticsRuntimeHooks":11,"runtime_architecture":"workers_first_frontend_with_api_stubs"}`
- `npm run seo:audit`
  - PASS: local audit says core/support pages pass metadata/H1/schema component/word-count/sitemap/image-alt checks.
- Production crawl via Python urllib on `https://aieditorrsp.net` at `2026-06-08T12:47:13+00:00`.
- Production all-sitemap audit on 98 URLs.
- Source/catalog check on `/root/projects/aieditorrsp/src/lib/effect-catalog-seo-led.json`.

## What passes

### Technical SEO crawlability

- `robots.txt`: HTTP 200.
- `robots.txt` allows core crawl and points to sitemap:
  - `Allow: /`
  - `Disallow: /api/checkout`
  - `Disallow: /api/stripe`
  - `Sitemap: https://aieditorrsp.net/sitemap.xml`
- `sitemap.xml`: HTTP 200.
- Sitemap URL count: 98.
  - core/support pages: 11
  - templates: 12
  - effect detail pages: 75
- All 98 sitemap URLs returned HTTP 200 in crawl.
- Sitemap noindex count: 0.
- Canonical path mismatch count: 0.
- H1 count failures: 0.
- Image missing alt in sitemap crawl: 0.

### Effect catalog data contract

Source JSON check:

```json
{
  "effects": 75,
  "home_featured": 9,
  "status_counts": {"active": 75},
  "index_policy_counts": {"index": 75},
  "missing_required": {
    "slug": 0,
    "title": 0,
    "copy_prompt": 0,
    "short_answer": 0,
    "best_for": 0,
    "avoid_if": 0,
    "provider_tags": 0,
    "updated_at": 0,
    "unofficial_disclaimer": 0
  }
}
```

This satisfies the catalog quantity target from PRD:

- >=60 active effects: yes, 75.
- >=30 index-ready cards: yes, 75 marked `index`.
- homepage featured: yes, 9.
- India/RSP/social/festival coverage exists in the catalog.

### Core production pages are indexable

Sample crawl:

- `/`: 200, H1 `AI Editor RSP Editing Prompts`, 7 H2, 2460 parsed words, WebApplication + FAQPage + BreadcrumbList JSON-LD, robots `index, follow`.
- `/prompt-library`: 200, 75 copy prompt occurrences, 75 effect links from page sample, CollectionPage + FAQPage JSON-LD, robots `index, follow`.
- `/ai-photo-prompt-editor`: 200, H1 `AI Photo Prompt Editor`, WebApplication + FAQPage JSON-LD, robots `index, follow`.
- `/ai-photo-editing-prompts`: 200, 75 prompt cards present, CollectionPage + FAQPage JSON-LD.
- `/chatgpt-photo-editing-prompts`: 200, 75 prompt cards present, Article + FAQPage + BreadcrumbList JSON-LD.

### Internal linking is usable

Sample internal link counts:

- `/`: 46 internal links, 21 unique, 9 effect links.
- `/prompt-library`: 103 internal links, 87 unique, 75 effect links.
- `/ai-photo-editing-prompts`: 124 internal links, 87 unique, 84 effect links.
- `/chatgpt-photo-editing-prompts`: 124 internal links, 87 unique, 84 effect links.

No orphan risk for the implemented effect details from sampled hub pages.

## SEO_NO_GO blockers

### P0 — Required SEO-led IA routes are missing

The PRD/page matrix required these as first-class indexable hubs or documented noindex/redirect rationale. Production returns 404 and they are absent from sitemap:

- `/rsp-editing-prompts`
- `/gemini-photo-editing-prompts`
- `/nano-banana-photo-editing-prompts`
- `/bing-image-creator-prompts`
- `/professional-headshot-prompts`
- `/linkedin-headshot-prompts`
- `/product-photo-prompts`
- `/youtube-thumbnail-prompts`
- `/instagram-photo-editing-prompts`
- `/background-swap-prompts`
- `/photo-enhance-prompts`
- `/couple-photo-editing-prompts`
- `/boy-ai-photo-editing-prompts`
- `/girl-ai-photo-editing-prompts`
- `/bike-ai-photo-editing-prompts`
- `/cinematic-ai-photo-editing-prompts`
- `/double-exposure-ai-photo-editing-prompts`

Why this blocks SEO_GO:

- Original SERP baseline said `AI editor RSP` is India/social-search intent and required `/rsp-editing-prompts` as the India-first hub.
- PRD route contract explicitly said: “All routes below are inherited from the SEO baseline or India supplement. Do not delete them from PRD scope without a new SEO/Product decision.”
- No crawlable category/provider/use-case hub means the implementation is still mostly a generic library + 75 details, not the SEO-led page matrix.

### P0 — Gemini provider cluster is missing while ChatGPT exists

Production:

- `/chatgpt-photo-editing-prompts`: 200.
- `/gemini-photo-editing-prompts`: 404.

This mismatches the baseline because Gemini/RSP India intent was one of the highest-priority SERP findings:

- Gemini photo editing prompt SERP had strong prompt-copy and before/after intent.
- PRD required Gemini page with provider-specific caveats and no official-affiliation claim.
- Effect catalog has Gemini records, but no Gemini hub route to capture provider intent.

### P1 — Effect detail pages are indexable but thin for the acceptance threshold

All 75 effect pages are in sitemap and indexable, but production all-sitemap audit shows:

```json
{
  "effects": 75,
  "effect_word_count_min": 513,
  "effect_word_count_max": 543,
  "effect_word_count_median": 525,
  "effect_thin_lt800": 75
}
```

Sample effect detail pages:

- `/effects/rsp-editing-ai-boy-cinematic`: 534 words.
- `/effects/professional-headshot-from-selfie`: 529 words.
- `/effects/gemini-ipl-ai-photo-editing`: 543 words.
- `/effects/product-photo-shadow`: 525 words.

The site-seo-review gate says indexable SEO pages should normally be >=800 words unless waived with SERP rationale. The baseline also required each effect detail to include short answer, before/after, copy prompt, variables, best-for/avoid-if, provider notes, step block, related prompts, FAQ, updated date, disclaimer, schema. The current detail template has the key utility blocks, but not enough content depth for full SEO acceptance.

### P1 — Effect detail titles are too long

Production all-sitemap audit:

```json
{
  "effect_title_gt60": 67,
  "effects": 75
}
```

Examples:

- `/effects/rsp-editing-ai-boy-cinematic`: title length 73.
- `/effects/professional-headshot-from-selfie`: title length 78.
- `/effects/gemini-ipl-ai-photo-editing`: title length 72.
- `/effects/background-swap-without-changing-subject`: title length 85.

Pattern causing issue:

`{Effect Title} | Copy Prompt + Apply | AI Editor RSP`

This is clear for UX, but too long for the SEO title threshold. Need shorter dynamic template, e.g. `{Effect Title} | AI Editor RSP` or `{Effect Title} to Copy` depending query.

### P1 — Effect detail schema is incomplete

Sample detail JSON-LD for `/effects/rsp-editing-ai-boy-cinematic` only emits HowTo:

- `@type`: `HowTo`
- includes HowToStep for copy/customize/apply.

Missing from the PRD / SEO gate:

- `FAQPage`
- `BreadcrumbList`
- `CreativeWork` or richer `HowTo + CreativeWork`
- `ImageObject` for before/after/sample preview when images exist

The current detail pages have strong action value, but are weaker for GEO/AEO citation because FAQs and entity relationships are not explicitly exposed on detail pages.

### P1 — Homepage title did not inherit final positioning

Production homepage:

- Title: `AI Image Editor With Prompt Templates | AI RSP`
- H1: `AI Editor RSP Editing Prompts`

H1 is aligned with PRD, but title still reflects older generic AI image editor framing. This is not fatal alone, but combined with missing `/rsp-editing-prompts` hub it weakens the main query-page match for `ai editor rsp editing`.

### P1 — Homepage still contains residual non-SEO-led H2 modules

Production homepage H2 sample:

- `RSP-style prompts you can copy now`
- `Protocol: From Input to Asset`
- `Granular Control Panel`
- `Performance Comparisons`
- `Safety Protocols & Compliance`
- `AI image editor with prompt`
- `FAQ about AI image editor with prompt`

The first H2 is aligned. Several later H2s still read like old product/console positioning rather than the PRD-required section order:

- Find RSP-style prompts from viral photo trends
- Copy prompts for Gemini, ChatGPT, Nano Banana and more
- Browse by boy, girl, couple, bike, cinematic and festival edits
- Copy a prompt or apply it to your photo
- Use prompts safely with your own photos

This is a P1 because above-fold task is fixed, but page content still only partially follows the frozen SEO-copy contract.

### P1 — Open in Editor text not visible on hub card crawl

Effect detail pages contain Open in Editor links:

- min effect open-editor count: 2.

But sampled hub pages report `open_editor_count: 0` for text variants `Open in editor|Open in Editor|Try in Editor`:

- `/prompt-library`: 0.
- `/ai-photo-editing-prompts`: 0.
- `/chatgpt-photo-editing-prompts`: 0.
- `/`: 0.

Internal links to editor/effects exist, so this may be label wording rather than missing functionality, but the PRD acceptance expects visible `Open/Apply in Editor` actions on cards. Needs UI label check/fix so crawler and user see copy/apply dual mode consistently.

## Non-blocking notes

### Local audit is too narrow for the real SEO-led gate

`npm run seo:audit` passes, but it only audits five core routes plus support pages. It does not fail on:

- missing `/rsp-editing-prompts` and other PRD matrix hub routes;
- all 75 effect pages below 800 words;
- 67/75 effect titles >60 chars;
- detail schema missing FAQ/Breadcrumb/CreativeWork;
- missing provider/use-case category hubs.

The script should be extended before the next SEO gate.

### Sitemap strategy is technically clean but strategically incomplete

The sitemap is internally consistent:

- 98 URLs.
- No noindex in sitemap.
- All 200.

But it over-indexes detail pages while under-indexing hub pages. For SEO, this creates a long-tail detail set without enough category/provider hubs to capture head/mid-tail intent and distribute link equity.

## Required fixes before SEO_GO

1. Add or explicitly noindex/redirect-rationale the missing page matrix routes, starting with:
   - `/rsp-editing-prompts`
   - `/gemini-photo-editing-prompts`
   - `/professional-headshot-prompts`
   - `/product-photo-prompts`
   - `/instagram-photo-editing-prompts`
   - `/background-swap-prompts`
   - `/photo-enhance-prompts`
2. Make `/gemini-photo-editing-prompts` first-class. It cannot be omitted while ChatGPT exists.
3. Increase effect detail template depth to >=800 parsed words or mark weaker effect pages noindex until enriched.
4. Add effect detail `FAQPage`, `BreadcrumbList`, `CreativeWork`/`HowTo`, and `ImageObject` schema.
5. Shorten dynamic effect detail title template to <=60 chars for most slugs.
6. Update homepage title and H2 copy to match the final SEO-copy freeze.
7. Ensure hub cards visibly expose both `Copy Prompt` and `Open/Apply in Editor` actions.
8. Extend `scripts/seo-audit.mjs` to audit all sitemap effect pages and required PRD matrix routes, not only core/support pages.

## Final gate

`SEO_NO_GO` for SEO-led page matrix acceptance.

`Conditional technical pass` for crawlability/indexability basics.

Next owner should treat this as implementation follow-up, not content-only polish: missing IA routes and detail schema/template depth must be fixed before QA/product acceptance can call this SEO-aligned.
