---
name: shopify-auditoria-redirecciones
description: "Solo lectura: lista todas las redirecciones de URL de la tienda y marca las cadenas de redirección (A→B→C) y los destinos duplicados. Úsala después de una migración o de reorganizar productos y colecciones para cuidar la velocidad y el SEO."
---

## Propósito
Consulta todas las redirecciones de URL de la tienda e identifica las cadenas de redirección (cuando el destino A de una redirección a su vez redirige a B), los destinos duplicados (varias rutas que apuntan al mismo destino) y las redirecciones huérfanas (que apuntan a páginas que no existen). Las cadenas de redirección agregan tiempo de carga y perjudican el SEO. Solo lectura: no hace cambios.

## Requisitos
- Sesión autenticada de Shopify CLI: `shopify store auth --store <tu-tienda>.myshopify.com --scopes read_content`. Las consultas se ejecutan con `shopify store execute`.
- Permisos (scopes) de API: `read_content`

## Parámetros

| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|-----------|------|-------------|----------------|-------------|
| store | string | sí | — | Dominio de la tienda (p. ej., mitienda.myshopify.com) |
| format | string | no | human | Formato de salida: `human` o `json` |

## Seguridad

> ℹ️ Skill de solo lectura: no ejecuta cambios. Puedes correrla en cualquier momento sin riesgo.

## Pasos

1. **OPERACIÓN:** `urlRedirects` — query
   **Entradas:** `first: 250`, cursor de paginación
   **Resultado esperado:** Todas las redirecciones con `fromPath` y `target`; pagina hasta `hasNextPage: false`

2. Arma un mapa de rutas: `fromPath → target`

3. Detecta las cadenas: para cada redirección, revisa si su `target` aparece como `fromPath` en alguna otra redirección

4. Detecta los duplicados: destinos con más de una ruta de origen

## Operaciones GraphQL

```graphql
# urlRedirects:query — validado con api_version 2025-01
query URLRedirects($after: String) {
  urlRedirects(first: 250, after: $after) {
    edges {
      node {
        id
        path
        target
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
```

## Seguimiento de la sesión

**Claude DEBE mostrar lo siguiente en cada etapa. Es obligatorio.**

**Al iniciar**, muestra:
```
╔══════════════════════════════════════════════╗
║  SKILL: Auditoría de redirecciones           ║
║  Tienda: <dominio de la tienda>              ║
║  Inicio: <AAAA-MM-DD HH:MM UTC>              ║
╚══════════════════════════════════════════════╝
```

**Después de cada paso**, muestra:
```
[N/TOTAL] <QUERY|MUTATION>  <NombreDeOperación>
          → Parámetros: <resumen breve de las entradas clave>
          → Resultado: <conteo o resultado>
```

**Al terminar**, muestra:

Para `format: human` (predeterminado):
```
══════════════════════════════════════════════
AUDITORÍA DE REDIRECCIONES DE URL
  Total de redirecciones:   <n>
  Cadenas de redirección:   <n>
  Destinos duplicados:      <n>

  Cadenas:
    /pagina-vieja → /intermedia → /final
  Duplicados:
    /ruta-a → /product/x
    /ruta-b → /product/x  (mismo destino)
  Archivo: redirect_audit_<fecha>.csv
══════════════════════════════════════════════
```

Para `format: json`, muestra:
```json
{
  "skill": "shopify-auditoria-redirecciones",
  "store": "<dominio>",
  "total_redirects": 0,
  "chains": 0,
  "duplicate_targets": 0,
  "output_file": "redirect_audit_<fecha>.csv"
}
```

## Formato de salida
Archivo CSV `redirect_audit_<AAAA-MM-DD>.csv` con las columnas:
`redirect_id`, `from_path`, `target`, `issue_type`, `chain_path`

## Manejo de errores
| Error | Causa | Solución |
|-------|-------|----------|
| `THROTTLED` | Se superó el límite de solicitudes de la API | Espera 2 segundos y reintenta hasta 3 veces |
| No hay redirecciones | Tienda nueva o configuración limpia | Termina con ✅ no se encontraron redirecciones |

## Buenas prácticas
- Las cadenas de redirección (A→B→C) agregan un viaje HTTP de ida y vuelta adicional: conviértelas en una redirección directa (A→C).
- Para corregir las cadenas o eliminar los duplicados, entra al admin de Shopify → Navegación → Redirecciones de URL y haz los cambios ahí. La API de Admin no permite borrar en bloque, pero puedes eliminar redirecciones una por una con la mutación `urlRedirectDelete`.
- Córrela después de cada migración grande de la tienda o de cada reorganización de productos o colecciones en la que cambien muchas URL a la vez.
