LLM Pack forfaitdeal

Site : forfaitdeal

Usage

Ce document sert de contexte compact pour un humain ou un LLM externe. Il duplique l’essentiel de la base machine en Markdown lisible.

Pack JSON

{
  "site": "forfaitdeal",
  "market": {
    "primary_market": "ch",
    "target_countries": [
      "ch",
      "fr"
    ],
    "seo_scope": "national"
  },
  "context_pack": {
    "site_key": "forfaitdeal",
    "task": "external llm pack",
    "lessons": [
      {
        "id": 151,
        "site_key": "forfaitdeal",
        "category": "ctr_optimization",
        "lesson": "Several visible pages have low CTR. Prioritize title, meta description, and intent alignment refreshes before creating net new content.",
        "confidence": "high",
        "source": "feedback_loop",
        "status": "validated",
        "details_json": {
          "pages": [
            {
              "ctr": 0.0,
              "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "clicks": 0,
              "position": 20.083333333333332,
              "top_query": "roaming suisse",
              "impressions": 156
            },
            {
              "ctr": 0.008849557522123894,
              "page": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "clicks": 1,
              "position": 16.38053097345133,
              "top_query": "comparatif abonnement mobile suisse",
              "impressions": 113
            },
            {
              "ctr": 0.0,
              "page": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "clicks": 0,
              "position": 38.56521739130435,
              "top_query": "comparateur forfait mobile suisse",
              "impressions": 69
            },
            {
              "ctr": 0.0,
              "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "clicks": 0,
              "position": 9.67741935483871,
              "top_query": "forfait mobile 5g",
              "impressions": 62
            },
            {
              "ctr": 0.0,
              "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "clicks": 0,
              "position": 31.137931034482758,
              "top_query": "comparatif abonnement mobile suisse",
              "impressions": 29
            }
          ]
        },
        "created_at": "2026-05-26 00:00:25.506656+00:00",
        "updated_at": "2026-05-26 00:00:26.417695+00:00",
        "details": {
          "pages": [
            {
              "ctr": 0.0,
              "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "clicks": 0,
              "position": 20.083333333333332,
              "top_query": "roaming suisse",
              "impressions": 156
            },
            {
              "ctr": 0.008849557522123894,
              "page": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "clicks": 1,
              "position": 16.38053097345133,
              "top_query": "comparatif abonnement mobile suisse",
              "impressions": 113
            },
            {
              "ctr": 0.0,
              "page": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "clicks": 0,
              "position": 38.56521739130435,
              "top_query": "comparateur forfait mobile suisse",
              "impressions": 69
            },
            {
              "ctr": 0.0,
              "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "clicks": 0,
              "position": 9.67741935483871,
              "top_query": "forfait mobile 5g",
              "impressions": 62
            },
            {
              "ctr": 0.0,
              "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "clicks": 0,
              "position": 31.137931034482758,
              "top_query": "comparatif abonnement mobile suisse",
              "impressions": 29
            }
          ]
        }
      },
      {
        "id": 84,
        "site_key": "forfaitdeal",
        "category": "throughput",
        "lesson": "Queue pressure is high. Reduce draft generation and prioritize review, refresh, and publishing throughput.",
        "confidence": "high",
        "source": "feedback_loop",
        "status": "validated",
        "details_json": {
          "failed_count": 0,
          "queued_count": 5
        },
        "created_at": "2026-05-04 00:00:17.019909+00:00",
        "updated_at": "2026-05-04 00:00:17.572122+00:00",
        "details": {
          "failed_count": 0,
          "queued_count": 5
        }
      }
    ],
    "sops": [
      {
        "id": 123,
        "site_key": "forfaitdeal",
        "scope": "site",
        "name": "adaptive-feedback-playbook",
        "version": 25,
        "status": "draft",
        "content": "1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.",
        "source": "feedback_loop",
        "created_at": "2026-05-26 00:00:25.696403+00:00",
        "updated_at": "2026-05-26 00:00:25.696403+00:00",
        "confidence_score": 0,
        "confidence_label": "low"
      }
    ],
    "recent_memory": [
      {
        "id": 233,
        "site_key": "forfaitdeal",
        "category": "routine",
        "action": "content_pipeline",
        "target": "roaming-suisse-forfait",
        "outcome": "scheduled",
        "quality": "good",
        "details_json": {
          "draft": {
            "path": "/root/agents/seo-agent/data/drafts/generated/forfaitdeal/roaming-suisse-forfait.json",
            "slug": "roaming-suisse-forfait",
            "title": "Roaming suisse forfait : que faut-il vraiment vérifier en 2026 ?",
            "quality": {
              "ok": true,
              "issues": [],
              "warnings": [],
              "section_count": 11,
              "content_length": 9972
            }
          },
          "topic": "roaming suisse forfait",
          "enqueue": {
            "id": 18,
            "slug": "roaming-suisse-forfait",
            "status": "scheduled",
            "site_key": "forfaitdeal",
            "published_at": "2026-05-02",
            "scheduled_at": "2026-05-26T07:00:00+00:00"
          }
        },
        "recorded_at": "2026-05-26 00:00:37.855446+00:00",
        "details": {
          "draft": {
            "path": "/root/agents/seo-agent/data/drafts/generated/forfaitdeal/roaming-suisse-forfait.json",
            "slug": "roaming-suisse-forfait",
            "title": "Roaming suisse forfait : que faut-il vraiment vérifier en 2026 ?",
            "quality": {
              "ok": true,
              "issues": [],
              "warnings": [],
              "section_count": 11,
              "content_length": 9972
            }
          },
          "topic": "roaming suisse forfait",
          "enqueue": {
            "id": 18,
            "slug": "roaming-suisse-forfait",
            "status": "scheduled",
            "site_key": "forfaitdeal",
            "published_at": "2026-05-02",
            "scheduled_at": "2026-05-26T07:00:00+00:00"
          }
        }
      },
      {
        "id": 232,
        "site_key": "forfaitdeal",
        "category": "routine",
        "action": "content_pipeline",
        "target": "meilleur-forfait-mobile-suisse",
        "outcome": "scheduled",
        "quality": "good",
        "details_json": {
          "draft": {
            "path": "/root/agents/seo-agent/data/drafts/generated/forfaitdeal/meilleur-forfait-mobile-suisse.json",
            "slug": "meilleur-forfait-mobile-suisse",
            "title": "Meilleur forfait mobile suisse : faut-il vraiment payer plus en 2026",
            "quality": {
              "ok": true,
              "issues": [],
              "warnings": [],
              "section_count": 11,
              "content_length": 10178
            }
          },
          "topic": "meilleur forfait mobile suisse",
          "enqueue": {
            "id": 17,
            "slug": "meilleur-forfait-mobile-suisse",
            "status": "scheduled",
            "site_key": "forfaitdeal",
            "published_at": "2026-05-02",
            "scheduled_at": "2026-05-26T07:00:00+00:00"
          }
        },
        "recorded_at": "2026-05-26 00:00:27.530793+00:00",
        "details": {
          "draft": {
            "path": "/root/agents/seo-agent/data/drafts/generated/forfaitdeal/meilleur-forfait-mobile-suisse.json",
            "slug": "meilleur-forfait-mobile-suisse",
            "title": "Meilleur forfait mobile suisse : faut-il vraiment payer plus en 2026",
            "quality": {
              "ok": true,
              "issues": [],
              "warnings": [],
              "section_count": 11,
              "content_length": 10178
            }
          },
          "topic": "meilleur forfait mobile suisse",
          "enqueue": {
            "id": 17,
            "slug": "meilleur-forfait-mobile-suisse",
            "status": "scheduled",
            "site_key": "forfaitdeal",
            "published_at": "2026-05-02",
            "scheduled_at": "2026-05-26T07:00:00+00:00"
          }
        }
      },
      {
        "id": 231,
        "site_key": "forfaitdeal",
        "category": "routine",
        "action": "content_pipeline",
        "target": "comparatif-forfait-mobile-suisse",
        "outcome": "scheduled",
        "quality": "good",
        "details_json": {
          "draft": {
            "path": "/root/agents/seo-agent/data/drafts/generated/forfaitdeal/comparatif-forfait-mobile-suisse.json",
            "slug": "comparatif-forfait-mobile-suisse",
            "title": "Comparatif forfait mobile suisse : faut-il vraiment payer plus en",
            "quality": {
              "ok": true,
              "issues": [],
              "warnings": [],
              "section_count": 11,
              "content_length": 10236
            }
          },
          "topic": "comparatif forfait mobile suisse",
          "enqueue": {
            "id": 15,
            "slug": "comparatif-forfait-mobile-suisse",
            "status": "scheduled",
            "site_key": "forfaitdeal",
            "published_at": "2026-05-02",
            "scheduled_at": "2026-05-26T07:00:00+00:00"
          }
        },
        "recorded_at": "2026-05-26 00:00:27.315248+00:00",
        "details": {
          "draft": {
            "path": "/root/agents/seo-agent/data/drafts/generated/forfaitdeal/comparatif-forfait-mobile-suisse.json",
            "slug": "comparatif-forfait-mobile-suisse",
            "title": "Comparatif forfait mobile suisse : faut-il vraiment payer plus en",
            "quality": {
              "ok": true,
              "issues": [],
              "warnings": [],
              "section_count": 11,
              "content_length": 10236
            }
          },
          "topic": "comparatif forfait mobile suisse",
          "enqueue": {
            "id": 15,
            "slug": "comparatif-forfait-mobile-suisse",
            "status": "scheduled",
            "site_key": "forfaitdeal",
            "published_at": "2026-05-02",
            "scheduled_at": "2026-05-26T07:00:00+00:00"
          }
        }
      },
      {
        "id": 230,
        "site_key": "forfaitdeal",
        "category": "routine",
        "action": "content_pipeline",
        "target": "forfait-mobile-suisse",
        "outcome": "scheduled",
        "quality": "good",
        "details_json": {
          "draft": {
            "path": "/root/agents/seo-agent/data/drafts/generated/forfaitdeal/forfait-mobile-suisse.json",
            "slug": "forfait-mobile-suisse",
            "title": "Forfait mobile suisse : faut-il vraiment payer plus en 2026 ?",
            "quality": {
              "ok": true,
              "issues": [],
              "warnings": [],
              "section_count": 11,
              "content_length": 9953
            }
          },
          "topic": "forfait mobile suisse",
          "enqueue": {
            "id": 16,
            "slug": "forfait-mobile-suisse",
            "status": "scheduled",
            "site_key": "forfaitdeal",
            "published_at": "2026-05-02",
            "scheduled_at": "2026-05-26T07:00:00+00:00"
          }
        },
        "recorded_at": "2026-05-26 00:00:27.048759+00:00",
        "details": {
          "draft": {
            "path": "/root/agents/seo-agent/data/drafts/generated/forfaitdeal/forfait-mobile-suisse.json",
            "slug": "forfait-mobile-suisse",
            "title": "Forfait mobile suisse : faut-il vraiment payer plus en 2026 ?",
            "quality": {
              "ok": true,
              "issues": [],
              "warnings": [],
              "section_count": 11,
              "content_length": 9953
            }
          },
          "topic": "forfait mobile suisse",
          "enqueue": {
            "id": 16,
            "slug": "forfait-mobile-suisse",
            "status": "scheduled",
            "site_key": "forfaitdeal",
            "published_at": "2026-05-02",
            "scheduled_at": "2026-05-26T07:00:00+00:00"
          }
        }
      },
      {
        "id": 229,
        "site_key": "forfaitdeal",
        "category": "routine",
        "action": "daily_feedback_learning",
        "target": "forfaitdeal",
        "outcome": "2 lessons derived",
        "quality": "good",
        "details_json": {
          "sop": {
            "sop": {
              "id": 123,
              "name": "adaptive-feedback-playbook",
              "scope": "site",
              "source": "feedback_loop",
              "status": "draft",
              "content": "1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.",
              "version": 25,
              "site_key": "forfaitdeal",
              "created_at": "2026-05-26 00:00:25.696403+00:00",
              "updated_at": "2026-05-26 00:00:25.696403+00:00",
              "confidence_label": "low",
              "confidence_score": 0
            },
            "evidence": {
              "lesson_count": 20,
              "outcome_count": 10,
              "observation_count": 10
            },
            "site_key": "forfaitdeal"
          },
          "feedback": {
            "site_key": "forfaitdeal",
            "gsc_pages": 11,
            "queue_rows": 17,
            "gsc_queries": 51,
            "workflow_events": 50
          },
          "business_feedback": {
            "crawler": {
              "ideas": [],
              "issues": [],
              "message": "Erreur reseau Crawler MCP sur http://127.0.0.1:8866/mcp: HTTPConnectionPool(host='127.0.0.1', port=8866): Max retries exceeded with url: /mcp (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e94fa73f6b0>: Failed to establish a new connection: [Errno 111] Connection refused'))",
              "crawl_ok": false,
              "acquisition_ok": false
            },
            "linkmap": {
              "result": {},
              "message": "Outil LinkMap introuvable pour pagerank.",
              "pagerank_ok": false,
              "strategy_ok": false
            },
            "site_key": "forfaitdeal",
            "available": true,
            "seo_panel": {
              "alerts": [],
              "message": "Erreur reseau SEO Panel MCP sur http://127.0.0.1:8865/mcp: HTTPConnectionPool(host='127.0.0.1', port=8865): Max retries exceeded with url: /mcp (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e94fa73c080>: Failed to establish a new connection: [Errno 111] Connection refused'))",
              "alerts_ok": false,
              "overview_ok": false,
              "health_score": null
            },
            "project_name": "ForfaitDeal"
          }
        },
        "recorded_at": "2026-05-26 00:00:26.321112+00:00",
        "details": {
          "sop": {
            "sop": {
              "id": 123,
              "name": "adaptive-feedback-playbook",
              "scope": "site",
              "source": "feedback_loop",
              "status": "draft",
              "content": "1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.",
              "version": 25,
              "site_key": "forfaitdeal",
              "created_at": "2026-05-26 00:00:25.696403+00:00",
              "updated_at": "2026-05-26 00:00:25.696403+00:00",
              "confidence_label": "low",
              "confidence_score": 0
            },
            "evidence": {
              "lesson_count": 20,
              "outcome_count": 10,
              "observation_count": 10
            },
            "site_key": "forfaitdeal"
          },
          "feedback": {
            "site_key": "forfaitdeal",
            "gsc_pages": 11,
            "queue_rows": 17,
            "gsc_queries": 51,
            "workflow_events": 50
          },
          "business_feedback": {
            "crawler": {
              "ideas": [],
              "issues": [],
              "message": "Erreur reseau Crawler MCP sur http://127.0.0.1:8866/mcp: HTTPConnectionPool(host='127.0.0.1', port=8866): Max retries exceeded with url: /mcp (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e94fa73f6b0>: Failed to establish a new connection: [Errno 111] Connection refused'))",
              "crawl_ok": false,
              "acquisition_ok": false
            },
            "linkmap": {
              "result": {},
              "message": "Outil LinkMap introuvable pour pagerank.",
              "pagerank_ok": false,
              "strategy_ok": false
            },
            "site_key": "forfaitdeal",
            "available": true,
            "seo_panel": {
              "alerts": [],
              "message": "Erreur reseau SEO Panel MCP sur http://127.0.0.1:8865/mcp: HTTPConnectionPool(host='127.0.0.1', port=8865): Max retries exceeded with url: /mcp (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e94fa73c080>: Failed to establish a new connection: [Errno 111] Connection refused'))",
              "alerts_ok": false,
              "overview_ok": false,
              "health_score": null
            },
            "project_name": "ForfaitDeal"
          }
        }
      },
      {
        "id": 226,
        "site_key": "forfaitdeal",
        "category": "routine",
        "action": "content_pipeline",
        "target": "roaming-suisse",
        "outcome": "failed",
        "quality": "good",
        "details_json": {
          "draft": {
            "path": "/root/agents/seo-agent/data/drafts/generated/forfaitdeal/roaming-suisse.json",
            "slug": "roaming-suisse",
            "title": "Roaming suisse : que faut-il vraiment vérifier en 2026 ?",
            "quality": {
              "ok": true,
              "issues": [],
              "warnings": [],
              "section_count": 11,
              "content_length": 9756
            }
          },
          "topic": "roaming suisse",
          "enqueue": {
            "id": 230,
            "slug": "roaming-suisse",
            "status": "failed",
            "site_key": "forfaitdeal",
            "published_at": null,
            "scheduled_at": "2026-05-13T07:00:00+00:00"
          }
        },
        "recorded_at": "2026-05-25 00:00:51.698201+00:00",
        "details": {
          "draft": {
            "path": "/root/agents/seo-agent/data/drafts/generated/forfaitdeal/roaming-suisse.json",
            "slug": "roaming-suisse",
            "title": "Roaming suisse : que faut-il vraiment vérifier en 2026 ?",
            "quality": {
              "ok": true,
              "issues": [],
              "warnings": [],
              "section_count": 11,
              "content_length": 9756
            }
          },
          "topic": "roaming suisse",
          "enqueue": {
            "id": 230,
            "slug": "roaming-suisse",
            "status": "failed",
            "site_key": "forfaitdeal",
            "published_at": null,
            "scheduled_at": "2026-05-13T07:00:00+00:00"
          }
        }
      },
      {
        "id": 225,
        "site_key": "forfaitdeal",
        "category": "routine",
        "action": "content_pipeline",
        "target": "roaming-suisse-forfait",
        "outcome": "scheduled",
        "quality": "good",
        "details_json": {
          "draft": {
            "path": "/root/agents/seo-agent/data/drafts/generated/forfaitdeal/roaming-suisse-forfait.json",
            "slug": "roaming-suisse-forfait",
            "title": "Roaming suisse forfait : que faut-il vraiment vérifier en 2026 ?",
            "quality": {
              "ok": true,
              "issues": [],
              "warnings": [],
              "section_count": 11,
              "content_length": 9972
            }
          },
          "topic": "roaming suisse forfait",
          "enqueue": {
            "id": 18,
            "slug": "roaming-suisse-forfait",
            "status": "scheduled",
            "site_key": "forfaitdeal",
            "published_at": "2026-05-02",
            "scheduled_at": "2026-05-25T07:00:00+00:00"
          }
        },
        "recorded_at": "2026-05-25 00:00:41.470197+00:00",
        "details": {
          "draft": {
            "path": "/root/agents/seo-agent/data/drafts/generated/forfaitdeal/roaming-suisse-forfait.json",
            "slug": "roaming-suisse-forfait",
            "title": "Roaming suisse forfait : que faut-il vraiment vérifier en 2026 ?",
            "quality": {
              "ok": true,
              "issues": [],
              "warnings": [],
              "section_count": 11,
              "content_length": 9972
            }
          },
          "topic": "roaming suisse forfait",
          "enqueue": {
            "id": 18,
            "slug": "roaming-suisse-forfait",
            "status": "scheduled",
            "site_key": "forfaitdeal",
            "published_at": "2026-05-02",
            "scheduled_at": "2026-05-25T07:00:00+00:00"
          }
        }
      }
    ],
    "recent_outcomes": [
      {
        "id": 153,
        "site_key": "forfaitdeal",
        "outcome_type": "gsc_baseline",
        "subject_key": "publish:roaming-suisse",
        "metric_name": "position",
        "metric_value": 0.0,
        "payload_json": {
          "row": {},
          "page_url": "https://www.forfaitdeal.ch/blog/roaming-suisse"
        },
        "recorded_at": "2026-05-13 09:00:56.410086+00:00",
        "payload": {
          "row": {},
          "page_url": "https://www.forfaitdeal.ch/blog/roaming-suisse"
        }
      },
      {
        "id": 152,
        "site_key": "forfaitdeal",
        "outcome_type": "gsc_baseline",
        "subject_key": "publish:roaming-suisse",
        "metric_name": "ctr",
        "metric_value": 0.0,
        "payload_json": {
          "row": {},
          "page_url": "https://www.forfaitdeal.ch/blog/roaming-suisse"
        },
        "recorded_at": "2026-05-13 09:00:56.395728+00:00",
        "payload": {
          "row": {},
          "page_url": "https://www.forfaitdeal.ch/blog/roaming-suisse"
        }
      },
      {
        "id": 151,
        "site_key": "forfaitdeal",
        "outcome_type": "gsc_baseline",
        "subject_key": "publish:roaming-suisse",
        "metric_name": "impressions",
        "metric_value": 0.0,
        "payload_json": {
          "row": {},
          "page_url": "https://www.forfaitdeal.ch/blog/roaming-suisse"
        },
        "recorded_at": "2026-05-13 09:00:56.382296+00:00",
        "payload": {
          "row": {},
          "page_url": "https://www.forfaitdeal.ch/blog/roaming-suisse"
        }
      },
      {
        "id": 150,
        "site_key": "forfaitdeal",
        "outcome_type": "gsc_baseline",
        "subject_key": "publish:roaming-suisse",
        "metric_name": "clicks",
        "metric_value": 0.0,
        "payload_json": {
          "row": {},
          "page_url": "https://www.forfaitdeal.ch/blog/roaming-suisse"
        },
        "recorded_at": "2026-05-13 09:00:56.367485+00:00",
        "payload": {
          "row": {},
          "page_url": "https://www.forfaitdeal.ch/blog/roaming-suisse"
        }
      },
      {
        "id": 119,
        "site_key": "forfaitdeal",
        "outcome_type": "seo_experiment_result",
        "subject_key": "content-refresh:forfait-mobile-5g-suisse",
        "metric_name": "position",
        "metric_value": 9.31578947368421,
        "payload_json": {
          "delta": {
            "ctr": 0.0,
            "clicks": 0.0,
            "position": 9.31578947368421,
            "impressions": 57.0
          },
          "success": false,
          "conclusion": "rejected",
          "hypothesis": {
            "slug": "forfait-mobile-5g-suisse",
            "query": "comparatif abonnement mobile suisse",
            "autonomy": "auto_correctable",
            "baseline": {
              "ctr": 0.01,
              "clicks": 1,
              "position": 10.6,
              "impressions": 100
            },
            "site_key": "forfaitdeal",
            "reasoning": [
              "position proche d'un gain SEO (10.6)",
              "potentiel impression détecté (100)",
              "perte de clics probable: CTR 1.00% pour 100 impressions",
              "la page capte déjà des clics (1)",
              "écart concurrentiel aligné avec la requête"
            ],
            "risk_level": "medium",
            "action_type": "content_refresh",
            "playbook_id": "gain_position",
            "playbook_name": "Gagner des positions",
            "primary_metric": "position",
            "secondary_metrics": [
              "clicks",
              "impressions",
              "query_coverage"
            ],
            "expected_direction": "decrease"
          },
          "impact_label": "negative",
          "primary_metric_delta": 9.31578947368421
        },
        "recorded_at": "2026-05-09 17:07:02.348363+00:00",
        "payload": {
          "delta": {
            "ctr": 0.0,
            "clicks": 0.0,
            "position": 9.31578947368421,
            "impressions": 57.0
          },
          "success": false,
          "conclusion": "rejected",
          "hypothesis": {
            "slug": "forfait-mobile-5g-suisse",
            "query": "comparatif abonnement mobile suisse",
            "autonomy": "auto_correctable",
            "baseline": {
              "ctr": 0.01,
              "clicks": 1,
              "position": 10.6,
              "impressions": 100
            },
            "site_key": "forfaitdeal",
            "reasoning": [
              "position proche d'un gain SEO (10.6)",
              "potentiel impression détecté (100)",
              "perte de clics probable: CTR 1.00% pour 100 impressions",
              "la page capte déjà des clics (1)",
              "écart concurrentiel aligné avec la requête"
            ],
            "risk_level": "medium",
            "action_type": "content_refresh",
            "playbook_id": "gain_position",
            "playbook_name": "Gagner des positions",
            "primary_metric": "position",
            "secondary_metrics": [
              "clicks",
              "impressions",
              "query_coverage"
            ],
            "expected_direction": "decrease"
          },
          "impact_label": "negative",
          "primary_metric_delta": 9.31578947368421
        }
      }
    ],
    "recent_observations": [
      {
        "id": 971,
        "site_key": "forfaitdeal",
        "source_type": "technical_audit",
        "subject_key": "forfaitdeal",
        "payload_json": {
          "gsc": {
            "checked": false
          },
          "pages": [
            {
              "ok": true,
              "url": "https://www.forfaitdeal.ch",
              "error": "",
              "noindex": false,
              "canonical": "https://www.forfaitdeal.ch/",
              "final_url": "https://www.forfaitdeal.ch/",
              "indexable": true,
              "redirected": false,
              "robots_meta": "",
              "status_code": 200,
              "x_robots_tag": "",
              "redirect_chain": [],
              "robots_allowed": true,
              "canonical_present": true,
              "canonical_matches_url": true
            },
            {
              "ok": true,
              "url": "https://www.forfaitdeal.ch/blog",
              "error": "",
              "noindex": false,
              "canonical": "https://www.forfaitdeal.ch/blog",
              "final_url": "https://www.forfaitdeal.ch/blog",
              "indexable": true,
              "redirected": false,
              "robots_meta": "",
              "status_code": 200,
              "x_robots_tag": "",
              "redirect_chain": [],
              "robots_allowed": true,
              "canonical_present": true,
              "canonical_matches_url": true
            }
          ],
          "robots": {
            "ok": true,
            "url": "https://www.forfaitdeal.ch/robots.txt",
            "error": "",
            "sitemaps": [
              "https://www.forfaitdeal.ch/sitemap.xml"
            ],
            "blocks_all": false,
            "rules_text": "User-agent: *\nAllow: /\n\nSitemap: https://www.forfaitdeal.ch/sitemap.xml\n",
            "status_code": 200
          },
          "status": "ok",
          "checked": true,
          "sitemap": {
            "ok": true,
            "checked": [
              {
                "ok": true,
                "url": "https://www.forfaitdeal.ch/sitemap.xml",
                "error": "",
                "root_tag": "urlset",
                "url_count": 28,
                "valid_xml": true,
                "status_code": 200,
                "child_checked": [],
                "child_sitemaps": [],
                "listed_sample_urls": [
                  "https://www.forfaitdeal.ch/",
                  "https://www.forfaitdeal.ch/comparateur",
                  "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
                  "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
                  "https://www.forfaitdeal.ch/forfait-mobile-suisse",
                  "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
                  "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
                  "https://www.forfaitdeal.ch/roaming-suisse",
                  "https://www.forfaitdeal.ch/blog",
                  "https://www.forfaitdeal.ch/methodologie",
                  "https://www.forfaitdeal.ch/confidentialite",
                  "https://www.forfaitdeal.ch/blog/roaming-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
                  "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                  "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
                  "https://www.forfaitdeal.ch/blog/mvno-swisscom",
                  "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
                  "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                  "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/abonnement-mobile"
                ]
              }
            ],
            "selected": {
              "ok": true,
              "url": "https://www.forfaitdeal.ch/sitemap.xml",
              "error": "",
              "root_tag": "urlset",
              "url_count": 28,
              "valid_xml": true,
              "status_code": 200,
              "child_checked": [],
              "child_sitemaps": [],
              "listed_sample_urls": [
                "https://www.forfaitdeal.ch/",
                "https://www.forfaitdeal.ch/comparateur",
                "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
                "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/roaming-suisse",
                "https://www.forfaitdeal.ch/blog",
                "https://www.forfaitdeal.ch/methodologie",
                "https://www.forfaitdeal.ch/confidentialite",
                "https://www.forfaitdeal.ch/blog/roaming-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
                "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
                "https://www.forfaitdeal.ch/blog/mvno-swisscom",
                "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
                "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/abonnement-mobile"
              ]
            }
          },
          "site_key": "forfaitdeal",
          "warnings": [
            "URL GSC redirigée: https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse -> https://www.forfaitdeal.ch/blog/abonnement-mobile",
            "LCP mobile élevé (2737 ms)",
            "INP/FID mobile élevé (223 ms)"
          ],
          "pagespeed": {
            "ok": true,
            "cls": 0.066347,
            "inp_ms": 223.0,
            "lcp_ms": 2737.3970311466883,
            "mobile": {
              "ok": true,
              "cls": 0.066347,
              "inp_ms": 223.0,
              "lcp_ms": 2737.3970311466883,
              "source": "pagespeed_insights",
              "strategy": "mobile",
              "performance_score": 90.0
            },
            "source": "pagespeed_insights",
            "desktop": {
              "ok": true,
              "cls": 0.009877,
              "inp_ms": 98.0,
              "lcp_ms": 716.8993863838615,
              "source": "pagespeed_insights",
              "strategy": "desktop",
              "performance_score": 99.0
            },
            "strategy": "mobile",
            "performance_score": 90.0
          },
          "gsc_live_urls": {
            "urls": [
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "error": "",
                "clicks": 0,
                "position": 20.083333333333332,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "indexable": true,
                "top_query": "roaming suisse",
                "redirected": false,
                "impressions": 156,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.008849557522123894,
                "url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "error": "",
                "clicks": 1,
                "position": 16.38053097345133,
                "canonical": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "indexable": true,
                "top_query": "comparatif abonnement mobile suisse",
                "redirected": false,
                "impressions": 113,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "error": "",
                "clicks": 0,
                "position": 38.56521739130435,
                "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "indexable": true,
                "top_query": "comparateur forfait mobile suisse",
                "redirected": false,
                "impressions": 69,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "error": "",
                "clicks": 0,
                "position": 9.67741935483871,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "indexable": true,
                "top_query": "forfait mobile 5g",
                "redirected": false,
                "impressions": 62,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "error": "",
                "clicks": 0,
                "position": 31.137931034482758,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "indexable": true,
                "top_query": "comparatif abonnement mobile suisse",
                "redirected": false,
                "impressions": 29,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "error": "",
                "clicks": 0,
                "position": 7.928571428571429,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "indexable": true,
                "top_query": "",
                "redirected": false,
                "impressions": 28,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "error": "",
                "clicks": 0,
                "position": 7.888888888888889,
                "canonical": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "indexable": true,
                "top_query": "comment changer d'opérateur mobile",
                "redirected": false,
                "impressions": 27,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "error": "",
                "clicks": 0,
                "position": 10.318181818181818,
                "canonical": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "final_url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "indexable": true,
                "top_query": "swisscom résiliation",
                "redirected": false,
                "impressions": 22,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
                "error": "",
                "clicks": 0,
                "position": 12.285714285714286,
                "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "indexable": true,
                "top_query": "",
                "redirected": true,
                "impressions": 14,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "error": "",
                "clicks": 0,
                "position": 18.0,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "indexable": true,
                "top_query": "esim suisse",
                "redirected": false,
                "impressions": 13,
                "status_code": 200
              }
            ],
            "source": "gsc_pages_28d",
            "checked": true,
            "broken_urls": [],
            "broken_count": 0,
            "checked_count": 10,
            "redirected_urls": [
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
                "error": "",
                "clicks": 0,
                "position": 12.285714285714286,
                "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "indexable": true,
                "top_query": "",
                "redirected": true,
                "impressions": 14,
                "status_code": 200
              }
            ],
            "redirected_count": 1,
            "snapshot_saved_at": "2026-05-25T18:15:05.342876Z"
          },
          "blocking_issues": [],
          "safe_to_optimize": true,
          "sitemap_coverage": {
            "checked": true,
            "missing_urls": [],
            "expected_urls": [
              "https://www.forfaitdeal.ch",
              "https://www.forfaitdeal.ch/blog"
            ],
            "listed_url_sample_size": 28
          },
          "deployment_health": {
            "checked": false
          },
          "technical_health_score": 85
        },
        "recorded_at": "2026-05-26 00:07:48.356623+00:00",
        "payload": {
          "gsc": {
            "checked": false
          },
          "pages": [
            {
              "ok": true,
              "url": "https://www.forfaitdeal.ch",
              "error": "",
              "noindex": false,
              "canonical": "https://www.forfaitdeal.ch/",
              "final_url": "https://www.forfaitdeal.ch/",
              "indexable": true,
              "redirected": false,
              "robots_meta": "",
              "status_code": 200,
              "x_robots_tag": "",
              "redirect_chain": [],
              "robots_allowed": true,
              "canonical_present": true,
              "canonical_matches_url": true
            },
            {
              "ok": true,
              "url": "https://www.forfaitdeal.ch/blog",
              "error": "",
              "noindex": false,
              "canonical": "https://www.forfaitdeal.ch/blog",
              "final_url": "https://www.forfaitdeal.ch/blog",
              "indexable": true,
              "redirected": false,
              "robots_meta": "",
              "status_code": 200,
              "x_robots_tag": "",
              "redirect_chain": [],
              "robots_allowed": true,
              "canonical_present": true,
              "canonical_matches_url": true
            }
          ],
          "robots": {
            "ok": true,
            "url": "https://www.forfaitdeal.ch/robots.txt",
            "error": "",
            "sitemaps": [
              "https://www.forfaitdeal.ch/sitemap.xml"
            ],
            "blocks_all": false,
            "rules_text": "User-agent: *\nAllow: /\n\nSitemap: https://www.forfaitdeal.ch/sitemap.xml\n",
            "status_code": 200
          },
          "status": "ok",
          "checked": true,
          "sitemap": {
            "ok": true,
            "checked": [
              {
                "ok": true,
                "url": "https://www.forfaitdeal.ch/sitemap.xml",
                "error": "",
                "root_tag": "urlset",
                "url_count": 28,
                "valid_xml": true,
                "status_code": 200,
                "child_checked": [],
                "child_sitemaps": [],
                "listed_sample_urls": [
                  "https://www.forfaitdeal.ch/",
                  "https://www.forfaitdeal.ch/comparateur",
                  "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
                  "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
                  "https://www.forfaitdeal.ch/forfait-mobile-suisse",
                  "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
                  "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
                  "https://www.forfaitdeal.ch/roaming-suisse",
                  "https://www.forfaitdeal.ch/blog",
                  "https://www.forfaitdeal.ch/methodologie",
                  "https://www.forfaitdeal.ch/confidentialite",
                  "https://www.forfaitdeal.ch/blog/roaming-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
                  "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                  "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
                  "https://www.forfaitdeal.ch/blog/mvno-swisscom",
                  "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
                  "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                  "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/abonnement-mobile"
                ]
              }
            ],
            "selected": {
              "ok": true,
              "url": "https://www.forfaitdeal.ch/sitemap.xml",
              "error": "",
              "root_tag": "urlset",
              "url_count": 28,
              "valid_xml": true,
              "status_code": 200,
              "child_checked": [],
              "child_sitemaps": [],
              "listed_sample_urls": [
                "https://www.forfaitdeal.ch/",
                "https://www.forfaitdeal.ch/comparateur",
                "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
                "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/roaming-suisse",
                "https://www.forfaitdeal.ch/blog",
                "https://www.forfaitdeal.ch/methodologie",
                "https://www.forfaitdeal.ch/confidentialite",
                "https://www.forfaitdeal.ch/blog/roaming-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
                "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
                "https://www.forfaitdeal.ch/blog/mvno-swisscom",
                "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
                "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/abonnement-mobile"
              ]
            }
          },
          "site_key": "forfaitdeal",
          "warnings": [
            "URL GSC redirigée: https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse -> https://www.forfaitdeal.ch/blog/abonnement-mobile",
            "LCP mobile élevé (2737 ms)",
            "INP/FID mobile élevé (223 ms)"
          ],
          "pagespeed": {
            "ok": true,
            "cls": 0.066347,
            "inp_ms": 223.0,
            "lcp_ms": 2737.3970311466883,
            "mobile": {
              "ok": true,
              "cls": 0.066347,
              "inp_ms": 223.0,
              "lcp_ms": 2737.3970311466883,
              "source": "pagespeed_insights",
              "strategy": "mobile",
              "performance_score": 90.0
            },
            "source": "pagespeed_insights",
            "desktop": {
              "ok": true,
              "cls": 0.009877,
              "inp_ms": 98.0,
              "lcp_ms": 716.8993863838615,
              "source": "pagespeed_insights",
              "strategy": "desktop",
              "performance_score": 99.0
            },
            "strategy": "mobile",
            "performance_score": 90.0
          },
          "gsc_live_urls": {
            "urls": [
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "error": "",
                "clicks": 0,
                "position": 20.083333333333332,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "indexable": true,
                "top_query": "roaming suisse",
                "redirected": false,
                "impressions": 156,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.008849557522123894,
                "url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "error": "",
                "clicks": 1,
                "position": 16.38053097345133,
                "canonical": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "indexable": true,
                "top_query": "comparatif abonnement mobile suisse",
                "redirected": false,
                "impressions": 113,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "error": "",
                "clicks": 0,
                "position": 38.56521739130435,
                "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "indexable": true,
                "top_query": "comparateur forfait mobile suisse",
                "redirected": false,
                "impressions": 69,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "error": "",
                "clicks": 0,
                "position": 9.67741935483871,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "indexable": true,
                "top_query": "forfait mobile 5g",
                "redirected": false,
                "impressions": 62,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "error": "",
                "clicks": 0,
                "position": 31.137931034482758,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "indexable": true,
                "top_query": "comparatif abonnement mobile suisse",
                "redirected": false,
                "impressions": 29,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "error": "",
                "clicks": 0,
                "position": 7.928571428571429,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "indexable": true,
                "top_query": "",
                "redirected": false,
                "impressions": 28,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "error": "",
                "clicks": 0,
                "position": 7.888888888888889,
                "canonical": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "indexable": true,
                "top_query": "comment changer d'opérateur mobile",
                "redirected": false,
                "impressions": 27,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "error": "",
                "clicks": 0,
                "position": 10.318181818181818,
                "canonical": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "final_url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "indexable": true,
                "top_query": "swisscom résiliation",
                "redirected": false,
                "impressions": 22,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
                "error": "",
                "clicks": 0,
                "position": 12.285714285714286,
                "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "indexable": true,
                "top_query": "",
                "redirected": true,
                "impressions": 14,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "error": "",
                "clicks": 0,
                "position": 18.0,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "indexable": true,
                "top_query": "esim suisse",
                "redirected": false,
                "impressions": 13,
                "status_code": 200
              }
            ],
            "source": "gsc_pages_28d",
            "checked": true,
            "broken_urls": [],
            "broken_count": 0,
            "checked_count": 10,
            "redirected_urls": [
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
                "error": "",
                "clicks": 0,
                "position": 12.285714285714286,
                "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "indexable": true,
                "top_query": "",
                "redirected": true,
                "impressions": 14,
                "status_code": 200
              }
            ],
            "redirected_count": 1,
            "snapshot_saved_at": "2026-05-25T18:15:05.342876Z"
          },
          "blocking_issues": [],
          "safe_to_optimize": true,
          "sitemap_coverage": {
            "checked": true,
            "missing_urls": [],
            "expected_urls": [
              "https://www.forfaitdeal.ch",
              "https://www.forfaitdeal.ch/blog"
            ],
            "listed_url_sample_size": 28
          },
          "deployment_health": {
            "checked": false
          },
          "technical_health_score": 85
        }
      },
      {
        "id": 963,
        "site_key": "forfaitdeal",
        "source_type": "technical_remediation",
        "subject_key": "forfaitdeal",
        "payload_json": {
          "ok": true,
          "errors": [],
          "actions": [
            {
              "type": "optimize_lcp",
              "value": 2713.3,
              "metric": "lcp_ms",
              "target": "https://www.forfaitdeal.ch",
              "priority": "high",
              "threshold": 2500,
              "recommended_changes": [
                "Identifier l'élément LCP mobile sur la home via PageSpeed/Lighthouse.",
                "Optimiser l'image ou le bloc hero responsable: format WebP/AVIF, dimensions adaptées, compression.",
                "Précharger ou prioriser uniquement l'asset LCP critique et différer les médias non critiques.",
                "Réduire CSS/JS bloquant au-dessus de la ligne de flottaison."
              ]
            }
          ],
          "changed": false,
          "attempted": true,
          "deployment": {
            "ok": true,
            "detail": "no_change",
            "checked": false
          }
        },
        "recorded_at": "2026-05-26 00:04:37.092559+00:00",
        "payload": {
          "ok": true,
          "errors": [],
          "actions": [
            {
              "type": "optimize_lcp",
              "value": 2713.3,
              "metric": "lcp_ms",
              "target": "https://www.forfaitdeal.ch",
              "priority": "high",
              "threshold": 2500,
              "recommended_changes": [
                "Identifier l'élément LCP mobile sur la home via PageSpeed/Lighthouse.",
                "Optimiser l'image ou le bloc hero responsable: format WebP/AVIF, dimensions adaptées, compression.",
                "Précharger ou prioriser uniquement l'asset LCP critique et différer les médias non critiques.",
                "Réduire CSS/JS bloquant au-dessus de la ligne de flottaison."
              ]
            }
          ],
          "changed": false,
          "attempted": true,
          "deployment": {
            "ok": true,
            "detail": "no_change",
            "checked": false
          }
        }
      },
      {
        "id": 962,
        "site_key": "forfaitdeal",
        "source_type": "technical_audit",
        "subject_key": "forfaitdeal",
        "payload_json": {
          "gsc": {
            "ok": true,
            "checked": true,
            "message": "Connexion GSC OK",
            "payload": {
              "sample_rows": 1,
              "properties_count": 5,
              "resolved_property": "sc-domain:forfaitdeal.ch"
            },
            "sitemap_url": "https://www.forfaitdeal.ch/sitemap.xml",
            "sitemap_submission_ready": true
          },
          "pages": [
            {
              "ok": true,
              "url": "https://www.forfaitdeal.ch",
              "error": "",
              "noindex": false,
              "canonical": "https://www.forfaitdeal.ch/",
              "final_url": "https://www.forfaitdeal.ch/",
              "indexable": true,
              "redirected": false,
              "robots_meta": "",
              "status_code": 200,
              "x_robots_tag": "",
              "redirect_chain": [],
              "robots_allowed": true,
              "canonical_present": true,
              "canonical_matches_url": true
            },
            {
              "ok": true,
              "url": "https://www.forfaitdeal.ch/blog",
              "error": "",
              "noindex": false,
              "canonical": "https://www.forfaitdeal.ch/blog",
              "final_url": "https://www.forfaitdeal.ch/blog",
              "indexable": true,
              "redirected": false,
              "robots_meta": "",
              "status_code": 200,
              "x_robots_tag": "",
              "redirect_chain": [],
              "robots_allowed": true,
              "canonical_present": true,
              "canonical_matches_url": true
            }
          ],
          "robots": {
            "ok": true,
            "url": "https://www.forfaitdeal.ch/robots.txt",
            "error": "",
            "sitemaps": [
              "https://www.forfaitdeal.ch/sitemap.xml"
            ],
            "blocks_all": false,
            "rules_text": "User-agent: *\nAllow: /\n\nSitemap: https://www.forfaitdeal.ch/sitemap.xml\n",
            "status_code": 200
          },
          "status": "ok",
          "checked": true,
          "sitemap": {
            "ok": true,
            "checked": [
              {
                "ok": true,
                "url": "https://www.forfaitdeal.ch/sitemap.xml",
                "error": "",
                "root_tag": "urlset",
                "url_count": 28,
                "valid_xml": true,
                "status_code": 200,
                "child_checked": [],
                "child_sitemaps": [],
                "listed_sample_urls": [
                  "https://www.forfaitdeal.ch/",
                  "https://www.forfaitdeal.ch/comparateur",
                  "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
                  "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
                  "https://www.forfaitdeal.ch/forfait-mobile-suisse",
                  "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
                  "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
                  "https://www.forfaitdeal.ch/roaming-suisse",
                  "https://www.forfaitdeal.ch/blog",
                  "https://www.forfaitdeal.ch/methodologie",
                  "https://www.forfaitdeal.ch/confidentialite",
                  "https://www.forfaitdeal.ch/blog/roaming-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
                  "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                  "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
                  "https://www.forfaitdeal.ch/blog/mvno-swisscom",
                  "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
                  "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                  "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/abonnement-mobile"
                ]
              }
            ],
            "selected": {
              "ok": true,
              "url": "https://www.forfaitdeal.ch/sitemap.xml",
              "error": "",
              "root_tag": "urlset",
              "url_count": 28,
              "valid_xml": true,
              "status_code": 200,
              "child_checked": [],
              "child_sitemaps": [],
              "listed_sample_urls": [
                "https://www.forfaitdeal.ch/",
                "https://www.forfaitdeal.ch/comparateur",
                "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
                "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/roaming-suisse",
                "https://www.forfaitdeal.ch/blog",
                "https://www.forfaitdeal.ch/methodologie",
                "https://www.forfaitdeal.ch/confidentialite",
                "https://www.forfaitdeal.ch/blog/roaming-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
                "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
                "https://www.forfaitdeal.ch/blog/mvno-swisscom",
                "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
                "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/abonnement-mobile"
              ]
            }
          },
          "site_key": "forfaitdeal",
          "warnings": [
            "URL GSC redirigée: https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse -> https://www.forfaitdeal.ch/blog/abonnement-mobile",
            "LCP mobile élevé (2713 ms)"
          ],
          "pagespeed": {
            "ok": true,
            "cls": 0.066347,
            "inp_ms": 124.0,
            "lcp_ms": 2713.2865814806883,
            "mobile": {
              "ok": true,
              "cls": 0.066347,
              "inp_ms": 124.0,
              "lcp_ms": 2713.2865814806883,
              "source": "pagespeed_insights",
              "strategy": "mobile",
              "performance_score": 92.0
            },
            "source": "pagespeed_insights",
            "desktop": {
              "ok": true,
              "cls": 0.009877,
              "inp_ms": 80.0,
              "lcp_ms": 687.8982710848063,
              "source": "pagespeed_insights",
              "strategy": "desktop",
              "performance_score": 100.0
            },
            "strategy": "mobile",
            "performance_score": 92.0
          },
          "gsc_live_urls": {
            "urls": [
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "error": "",
                "clicks": 0,
                "position": 20.083333333333332,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "indexable": true,
                "top_query": "roaming suisse",
                "redirected": false,
                "impressions": 156,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.008849557522123894,
                "url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "error": "",
                "clicks": 1,
                "position": 16.38053097345133,
                "canonical": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "indexable": true,
                "top_query": "comparatif abonnement mobile suisse",
                "redirected": false,
                "impressions": 113,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "error": "",
                "clicks": 0,
                "position": 38.56521739130435,
                "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "indexable": true,
                "top_query": "comparateur forfait mobile suisse",
                "redirected": false,
                "impressions": 69,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "error": "",
                "clicks": 0,
                "position": 9.67741935483871,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "indexable": true,
                "top_query": "forfait mobile 5g",
                "redirected": false,
                "impressions": 62,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "error": "",
                "clicks": 0,
                "position": 31.137931034482758,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "indexable": true,
                "top_query": "comparatif abonnement mobile suisse",
                "redirected": false,
                "impressions": 29,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "error": "",
                "clicks": 0,
                "position": 7.928571428571429,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "indexable": true,
                "top_query": "",
                "redirected": false,
                "impressions": 28,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "error": "",
                "clicks": 0,
                "position": 7.888888888888889,
                "canonical": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "indexable": true,
                "top_query": "comment changer d'opérateur mobile",
                "redirected": false,
                "impressions": 27,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "error": "",
                "clicks": 0,
                "position": 10.318181818181818,
                "canonical": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "final_url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "indexable": true,
                "top_query": "swisscom résiliation",
                "redirected": false,
                "impressions": 22,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
                "error": "",
                "clicks": 0,
                "position": 12.285714285714286,
                "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "indexable": true,
                "top_query": "",
                "redirected": true,
                "impressions": 14,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "error": "",
                "clicks": 0,
                "position": 18.0,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "indexable": true,
                "top_query": "esim suisse",
                "redirected": false,
                "impressions": 13,
                "status_code": 200
              }
            ],
            "source": "gsc_pages_28d",
            "checked": true,
            "broken_urls": [],
            "broken_count": 0,
            "checked_count": 10,
            "redirected_urls": [
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
                "error": "",
                "clicks": 0,
                "position": 12.285714285714286,
                "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "indexable": true,
                "top_query": "",
                "redirected": true,
                "impressions": 14,
                "status_code": 200
              }
            ],
            "redirected_count": 1,
            "snapshot_saved_at": "2026-05-25T18:15:05.342876Z"
          },
          "blocking_issues": [],
          "safe_to_optimize": true,
          "sitemap_coverage": {
            "checked": true,
            "missing_urls": [],
            "expected_urls": [
              "https://www.forfaitdeal.ch",
              "https://www.forfaitdeal.ch/blog"
            ],
            "listed_url_sample_size": 28
          },
          "deployment_health": {
            "checked": false
          },
          "technical_health_score": 90
        },
        "recorded_at": "2026-05-26 00:04:36.042821+00:00",
        "payload": {
          "gsc": {
            "ok": true,
            "checked": true,
            "message": "Connexion GSC OK",
            "payload": {
              "sample_rows": 1,
              "properties_count": 5,
              "resolved_property": "sc-domain:forfaitdeal.ch"
            },
            "sitemap_url": "https://www.forfaitdeal.ch/sitemap.xml",
            "sitemap_submission_ready": true
          },
          "pages": [
            {
              "ok": true,
              "url": "https://www.forfaitdeal.ch",
              "error": "",
              "noindex": false,
              "canonical": "https://www.forfaitdeal.ch/",
              "final_url": "https://www.forfaitdeal.ch/",
              "indexable": true,
              "redirected": false,
              "robots_meta": "",
              "status_code": 200,
              "x_robots_tag": "",
              "redirect_chain": [],
              "robots_allowed": true,
              "canonical_present": true,
              "canonical_matches_url": true
            },
            {
              "ok": true,
              "url": "https://www.forfaitdeal.ch/blog",
              "error": "",
              "noindex": false,
              "canonical": "https://www.forfaitdeal.ch/blog",
              "final_url": "https://www.forfaitdeal.ch/blog",
              "indexable": true,
              "redirected": false,
              "robots_meta": "",
              "status_code": 200,
              "x_robots_tag": "",
              "redirect_chain": [],
              "robots_allowed": true,
              "canonical_present": true,
              "canonical_matches_url": true
            }
          ],
          "robots": {
            "ok": true,
            "url": "https://www.forfaitdeal.ch/robots.txt",
            "error": "",
            "sitemaps": [
              "https://www.forfaitdeal.ch/sitemap.xml"
            ],
            "blocks_all": false,
            "rules_text": "User-agent: *\nAllow: /\n\nSitemap: https://www.forfaitdeal.ch/sitemap.xml\n",
            "status_code": 200
          },
          "status": "ok",
          "checked": true,
          "sitemap": {
            "ok": true,
            "checked": [
              {
                "ok": true,
                "url": "https://www.forfaitdeal.ch/sitemap.xml",
                "error": "",
                "root_tag": "urlset",
                "url_count": 28,
                "valid_xml": true,
                "status_code": 200,
                "child_checked": [],
                "child_sitemaps": [],
                "listed_sample_urls": [
                  "https://www.forfaitdeal.ch/",
                  "https://www.forfaitdeal.ch/comparateur",
                  "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
                  "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
                  "https://www.forfaitdeal.ch/forfait-mobile-suisse",
                  "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
                  "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
                  "https://www.forfaitdeal.ch/roaming-suisse",
                  "https://www.forfaitdeal.ch/blog",
                  "https://www.forfaitdeal.ch/methodologie",
                  "https://www.forfaitdeal.ch/confidentialite",
                  "https://www.forfaitdeal.ch/blog/roaming-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
                  "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                  "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
                  "https://www.forfaitdeal.ch/blog/mvno-swisscom",
                  "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
                  "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                  "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                  "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                  "https://www.forfaitdeal.ch/blog/abonnement-mobile"
                ]
              }
            ],
            "selected": {
              "ok": true,
              "url": "https://www.forfaitdeal.ch/sitemap.xml",
              "error": "",
              "root_tag": "urlset",
              "url_count": 28,
              "valid_xml": true,
              "status_code": 200,
              "child_checked": [],
              "child_sitemaps": [],
              "listed_sample_urls": [
                "https://www.forfaitdeal.ch/",
                "https://www.forfaitdeal.ch/comparateur",
                "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
                "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/roaming-suisse",
                "https://www.forfaitdeal.ch/blog",
                "https://www.forfaitdeal.ch/methodologie",
                "https://www.forfaitdeal.ch/confidentialite",
                "https://www.forfaitdeal.ch/blog/roaming-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
                "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
                "https://www.forfaitdeal.ch/blog/mvno-swisscom",
                "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
                "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/abonnement-mobile"
              ]
            }
          },
          "site_key": "forfaitdeal",
          "warnings": [
            "URL GSC redirigée: https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse -> https://www.forfaitdeal.ch/blog/abonnement-mobile",
            "LCP mobile élevé (2713 ms)"
          ],
          "pagespeed": {
            "ok": true,
            "cls": 0.066347,
            "inp_ms": 124.0,
            "lcp_ms": 2713.2865814806883,
            "mobile": {
              "ok": true,
              "cls": 0.066347,
              "inp_ms": 124.0,
              "lcp_ms": 2713.2865814806883,
              "source": "pagespeed_insights",
              "strategy": "mobile",
              "performance_score": 92.0
            },
            "source": "pagespeed_insights",
            "desktop": {
              "ok": true,
              "cls": 0.009877,
              "inp_ms": 80.0,
              "lcp_ms": 687.8982710848063,
              "source": "pagespeed_insights",
              "strategy": "desktop",
              "performance_score": 100.0
            },
            "strategy": "mobile",
            "performance_score": 92.0
          },
          "gsc_live_urls": {
            "urls": [
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "error": "",
                "clicks": 0,
                "position": 20.083333333333332,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "indexable": true,
                "top_query": "roaming suisse",
                "redirected": false,
                "impressions": 156,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.008849557522123894,
                "url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "error": "",
                "clicks": 1,
                "position": 16.38053097345133,
                "canonical": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "indexable": true,
                "top_query": "comparatif abonnement mobile suisse",
                "redirected": false,
                "impressions": 113,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "error": "",
                "clicks": 0,
                "position": 38.56521739130435,
                "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "indexable": true,
                "top_query": "comparateur forfait mobile suisse",
                "redirected": false,
                "impressions": 69,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "error": "",
                "clicks": 0,
                "position": 9.67741935483871,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "indexable": true,
                "top_query": "forfait mobile 5g",
                "redirected": false,
                "impressions": 62,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "error": "",
                "clicks": 0,
                "position": 31.137931034482758,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "indexable": true,
                "top_query": "comparatif abonnement mobile suisse",
                "redirected": false,
                "impressions": 29,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "error": "",
                "clicks": 0,
                "position": 7.928571428571429,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "indexable": true,
                "top_query": "",
                "redirected": false,
                "impressions": 28,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "error": "",
                "clicks": 0,
                "position": 7.888888888888889,
                "canonical": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "indexable": true,
                "top_query": "comment changer d'opérateur mobile",
                "redirected": false,
                "impressions": 27,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "error": "",
                "clicks": 0,
                "position": 10.318181818181818,
                "canonical": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "final_url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "indexable": true,
                "top_query": "swisscom résiliation",
                "redirected": false,
                "impressions": 22,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
                "error": "",
                "clicks": 0,
                "position": 12.285714285714286,
                "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "indexable": true,
                "top_query": "",
                "redirected": true,
                "impressions": 14,
                "status_code": 200
              },
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "error": "",
                "clicks": 0,
                "position": 18.0,
                "canonical": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "final_url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "indexable": true,
                "top_query": "esim suisse",
                "redirected": false,
                "impressions": 13,
                "status_code": 200
              }
            ],
            "source": "gsc_pages_28d",
            "checked": true,
            "broken_urls": [],
            "broken_count": 0,
            "checked_count": 10,
            "redirected_urls": [
              {
                "ok": true,
                "ctr": 0.0,
                "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
                "error": "",
                "clicks": 0,
                "position": 12.285714285714286,
                "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
                "indexable": true,
                "top_query": "",
                "redirected": true,
                "impressions": 14,
                "status_code": 200
              }
            ],
            "redirected_count": 1,
            "snapshot_saved_at": "2026-05-25T18:15:05.342876Z"
          },
          "blocking_issues": [],
          "safe_to_optimize": true,
          "sitemap_coverage": {
            "checked": true,
            "missing_urls": [],
            "expected_urls": [
              "https://www.forfaitdeal.ch",
              "https://www.forfaitdeal.ch/blog"
            ],
            "listed_url_sample_size": 28
          },
          "deployment_health": {
            "checked": false
          },
          "technical_health_score": 90
        }
      },
      {
        "id": 955,
        "site_key": "forfaitdeal",
        "source_type": "workflow_state",
        "subject_key": "recent_events",
        "payload_json": {
          "events": [
            {
              "type": "hermes_content_lifecycle",
              "payload": {
                "merge_count": 0,
                "watch_count": 4,
                "create_count": 1,
                "deleted_count": 0,
                "optimize_count": 5
              },
              "recorded_at": "2026-05-24T20:15:12.970327Z"
            },
            {
              "type": "hermes_daily_feedback_learning",
              "payload": {
                "sop_name": "adaptive-feedback-playbook",
                "lessons_created": 2
              },
              "recorded_at": "2026-05-25T00:00:19.240096Z"
            },
            {
              "type": "hermes_content_pipeline",
              "payload": {
                "slug": "forfait-mobile-suisse",
                "topic": "forfait mobile suisse",
                "queue_status": "scheduled"
              },
              "recorded_at": "2026-05-25T00:00:20.593329Z"
            },
            {
              "type": "hermes_content_pipeline",
              "payload": {
                "slug": "comparatif-forfait-mobile-suisse",
                "topic": "comparatif forfait mobile suisse",
                "queue_status": "scheduled"
              },
              "recorded_at": "2026-05-25T00:00:31.051477Z"
            },
            {
              "type": "hermes_content_pipeline",
              "payload": {
                "slug": "meilleur-forfait-mobile-suisse",
                "topic": "meilleur forfait mobile suisse",
                "queue_status": "scheduled"
              },
              "recorded_at": "2026-05-25T00:00:41.276410Z"
            },
            {
              "type": "hermes_content_pipeline",
              "payload": {
                "slug": "roaming-suisse-forfait",
                "topic": "roaming suisse forfait",
                "queue_status": "scheduled"
              },
              "recorded_at": "2026-05-25T00:00:41.452249Z"
            },
            {
              "type": "hermes_content_pipeline",
              "payload": {
                "slug": "roaming-suisse",
                "topic": "roaming suisse",
                "queue_status": "failed"
              },
              "recorded_at": "2026-05-25T00:00:51.652997Z"
            },
            {
              "type": "gsc_sync",
              "payload": {
                "pages_7d": 8,
                "pages_28d": 11,
                "queries_7d": 10,
                "queries_28d": 51,
                "page_query_28d": 63
              },
              "recorded_at": "2026-05-25T06:15:05.037850Z"
            },
            {
              "type": "gsc_sync",
              "payload": {
                "pages_7d": 8,
                "pages_28d": 11,
                "queries_7d": 10,
                "queries_28d": 51,
                "page_query_28d": 63
              },
              "recorded_at": "2026-05-25T12:15:05.221157Z"
            },
            {
              "type": "gsc_sync",
              "payload": {
                "pages_7d": 8,
                "pages_28d": 11,
                "queries_7d": 10,
                "queries_28d": 51,
                "page_query_28d": 63
              },
              "recorded_at": "2026-05-25T18:15:05.349864Z"
            }
          ]
        },
        "recorded_at": "2026-05-26 00:00:23.088888+00:00",
        "payload": {
          "events": [
            {
              "type": "hermes_content_lifecycle",
              "payload": {
                "merge_count": 0,
                "watch_count": 4,
                "create_count": 1,
                "deleted_count": 0,
                "optimize_count": 5
              },
              "recorded_at": "2026-05-24T20:15:12.970327Z"
            },
            {
              "type": "hermes_daily_feedback_learning",
              "payload": {
                "sop_name": "adaptive-feedback-playbook",
                "lessons_created": 2
              },
              "recorded_at": "2026-05-25T00:00:19.240096Z"
            },
            {
              "type": "hermes_content_pipeline",
              "payload": {
                "slug": "forfait-mobile-suisse",
                "topic": "forfait mobile suisse",
                "queue_status": "scheduled"
              },
              "recorded_at": "2026-05-25T00:00:20.593329Z"
            },
            {
              "type": "hermes_content_pipeline",
              "payload": {
                "slug": "comparatif-forfait-mobile-suisse",
                "topic": "comparatif forfait mobile suisse",
                "queue_status": "scheduled"
              },
              "recorded_at": "2026-05-25T00:00:31.051477Z"
            },
            {
              "type": "hermes_content_pipeline",
              "payload": {
                "slug": "meilleur-forfait-mobile-suisse",
                "topic": "meilleur forfait mobile suisse",
                "queue_status": "scheduled"
              },
              "recorded_at": "2026-05-25T00:00:41.276410Z"
            },
            {
              "type": "hermes_content_pipeline",
              "payload": {
                "slug": "roaming-suisse-forfait",
                "topic": "roaming suisse forfait",
                "queue_status": "scheduled"
              },
              "recorded_at": "2026-05-25T00:00:41.452249Z"
            },
            {
              "type": "hermes_content_pipeline",
              "payload": {
                "slug": "roaming-suisse",
                "topic": "roaming suisse",
                "queue_status": "failed"
              },
              "recorded_at": "2026-05-25T00:00:51.652997Z"
            },
            {
              "type": "gsc_sync",
              "payload": {
                "pages_7d": 8,
                "pages_28d": 11,
                "queries_7d": 10,
                "queries_28d": 51,
                "page_query_28d": 63
              },
              "recorded_at": "2026-05-25T06:15:05.037850Z"
            },
            {
              "type": "gsc_sync",
              "payload": {
                "pages_7d": 8,
                "pages_28d": 11,
                "queries_7d": 10,
                "queries_28d": 51,
                "page_query_28d": 63
              },
              "recorded_at": "2026-05-25T12:15:05.221157Z"
            },
            {
              "type": "gsc_sync",
              "payload": {
                "pages_7d": 8,
                "pages_28d": 11,
                "queries_7d": 10,
                "queries_28d": 51,
                "page_query_28d": 63
              },
              "recorded_at": "2026-05-25T18:15:05.349864Z"
            }
          ]
        }
      },
      {
        "id": 954,
        "site_key": "forfaitdeal",
        "source_type": "queue_state",
        "subject_key": "recent_queue",
        "payload_json": {
          "recent_rows": [
            {
              "id": 230,
              "slug": "roaming-suisse",
              "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/6gck8h49Ck4eZgEk5V5jpb84HTJ9",
              "status": "failed",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": null,
              "scheduled_at": "2026-05-13T07:00:00+00:00"
            },
            {
              "id": 103,
              "slug": "forfait-mobile-famille-suisse",
              "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/Dd6FLxAvJ7UjydbnkhWKSuJ3XJtC",
              "status": "failed",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": null,
              "scheduled_at": "2026-05-08T07:00:00+00:00"
            },
            {
              "id": 102,
              "slug": "portabilite-numero-mobile-suisse",
              "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/6zomyRRv68WhLxRpiJFMtjmgsxPP",
              "status": "failed",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": null,
              "scheduled_at": "2026-05-07T07:00:00+00:00"
            },
            {
              "id": 101,
              "slug": "swisscom-resiliation-abonnement",
              "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/GNScGHTdsrig2WoRZQsoutLjsMXq",
              "status": "failed",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": null,
              "scheduled_at": "2026-05-06T07:00:00+00:00"
            },
            {
              "id": 100,
              "slug": "quel-abonnement-swisscom-choisir",
              "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/bT9eWtPkK875DkLHcj1vV21i7xC7",
              "status": "failed",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": null,
              "scheduled_at": "2026-05-05T07:00:00+00:00"
            },
            {
              "id": 99,
              "slug": "mvno-swisscom",
              "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/34hpo31aSd4WgYCmgXXpepK453Hq",
              "status": "failed",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": null,
              "scheduled_at": "2026-05-04T07:00:00+00:00"
            },
            {
              "id": 89,
              "slug": "comparatif-abonnement-mobile-suisse",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-04-21",
              "scheduled_at": null
            },
            {
              "id": 88,
              "slug": "abonnement-mobile",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-03-31",
              "scheduled_at": null
            },
            {
              "id": 23,
              "slug": "forfait-mobile-suisse-roaming-europe",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-04-21",
              "scheduled_at": null
            },
            {
              "id": 22,
              "slug": "forfait-mobile-sans-engagement-suisse",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-04-21",
              "scheduled_at": null
            },
            {
              "id": 21,
              "slug": "forfait-mobile-5g-suisse",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-04-21",
              "scheduled_at": null
            },
            {
              "id": 20,
              "slug": "forfait-esim-suisse",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-04-21",
              "scheduled_at": null
            },
            {
              "id": 19,
              "slug": "forfait-data-suisse",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-04-21",
              "scheduled_at": null
            },
            {
              "id": 18,
              "slug": "roaming-suisse-forfait",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-05-02",
              "scheduled_at": null
            },
            {
              "id": 17,
              "slug": "meilleur-forfait-mobile-suisse",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-05-02",
              "scheduled_at": null
            },
            {
              "id": 16,
              "slug": "forfait-mobile-suisse",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-05-02",
              "scheduled_at": null
            },
            {
              "id": 15,
              "slug": "comparatif-forfait-mobile-suisse",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-05-02",
              "scheduled_at": null
            }
          ]
        },
        "recorded_at": "2026-05-26 00:00:23.049343+00:00",
        "payload": {
          "recent_rows": [
            {
              "id": 230,
              "slug": "roaming-suisse",
              "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/6gck8h49Ck4eZgEk5V5jpb84HTJ9",
              "status": "failed",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": null,
              "scheduled_at": "2026-05-13T07:00:00+00:00"
            },
            {
              "id": 103,
              "slug": "forfait-mobile-famille-suisse",
              "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/Dd6FLxAvJ7UjydbnkhWKSuJ3XJtC",
              "status": "failed",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": null,
              "scheduled_at": "2026-05-08T07:00:00+00:00"
            },
            {
              "id": 102,
              "slug": "portabilite-numero-mobile-suisse",
              "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/6zomyRRv68WhLxRpiJFMtjmgsxPP",
              "status": "failed",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": null,
              "scheduled_at": "2026-05-07T07:00:00+00:00"
            },
            {
              "id": 101,
              "slug": "swisscom-resiliation-abonnement",
              "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/GNScGHTdsrig2WoRZQsoutLjsMXq",
              "status": "failed",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": null,
              "scheduled_at": "2026-05-06T07:00:00+00:00"
            },
            {
              "id": 100,
              "slug": "quel-abonnement-swisscom-choisir",
              "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/bT9eWtPkK875DkLHcj1vV21i7xC7",
              "status": "failed",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": null,
              "scheduled_at": "2026-05-05T07:00:00+00:00"
            },
            {
              "id": 99,
              "slug": "mvno-swisscom",
              "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/34hpo31aSd4WgYCmgXXpepK453Hq",
              "status": "failed",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": null,
              "scheduled_at": "2026-05-04T07:00:00+00:00"
            },
            {
              "id": 89,
              "slug": "comparatif-abonnement-mobile-suisse",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-04-21",
              "scheduled_at": null
            },
            {
              "id": 88,
              "slug": "abonnement-mobile",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-03-31",
              "scheduled_at": null
            },
            {
              "id": 23,
              "slug": "forfait-mobile-suisse-roaming-europe",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-04-21",
              "scheduled_at": null
            },
            {
              "id": 22,
              "slug": "forfait-mobile-sans-engagement-suisse",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-04-21",
              "scheduled_at": null
            },
            {
              "id": 21,
              "slug": "forfait-mobile-5g-suisse",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-04-21",
              "scheduled_at": null
            },
            {
              "id": 20,
              "slug": "forfait-esim-suisse",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-04-21",
              "scheduled_at": null
            },
            {
              "id": 19,
              "slug": "forfait-data-suisse",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-04-21",
              "scheduled_at": null
            },
            {
              "id": 18,
              "slug": "roaming-suisse-forfait",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-05-02",
              "scheduled_at": null
            },
            {
              "id": 17,
              "slug": "meilleur-forfait-mobile-suisse",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-05-02",
              "scheduled_at": null
            },
            {
              "id": 16,
              "slug": "forfait-mobile-suisse",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-05-02",
              "scheduled_at": null
            },
            {
              "id": 15,
              "slug": "comparatif-forfait-mobile-suisse",
              "error": null,
              "status": "published",
              "attempts": 0,
              "vercel_ok": 0,
              "gsc_indexed": 0,
              "published_at": "2026-05-02",
              "scheduled_at": null
            }
          ]
        }
      },
      {
        "id": 953,
        "site_key": "forfaitdeal",
        "source_type": "gsc_snapshot",
        "subject_key": "pages_28d",
        "payload_json": {
          "saved_at": "2026-05-25T18:15:05.342876Z",
          "top_pages": [
            {
              "ctr": 0.0,
              "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "clicks": 0,
              "position": 20.083333333333332,
              "top_query": "roaming suisse",
              "impressions": 156
            },
            {
              "ctr": 0.008849557522123894,
              "page": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "clicks": 1,
              "position": 16.38053097345133,
              "top_query": "comparatif abonnement mobile suisse",
              "impressions": 113
            },
            {
              "ctr": 0.0,
              "page": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "clicks": 0,
              "position": 38.56521739130435,
              "top_query": "comparateur forfait mobile suisse",
              "impressions": 69
            },
            {
              "ctr": 0.0,
              "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "clicks": 0,
              "position": 9.67741935483871,
              "top_query": "forfait mobile 5g",
              "impressions": 62
            },
            {
              "ctr": 0.0,
              "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "clicks": 0,
              "position": 31.137931034482758,
              "top_query": "comparatif abonnement mobile suisse",
              "impressions": 29
            }
          ],
          "top_queries": [
            {
              "ctr": 0.0,
              "query": "roaming suisse",
              "clicks": 0,
              "position": 16.796875,
              "impressions": 64
            },
            {
              "ctr": 0.0,
              "query": "comparatif abonnement mobile suisse",
              "clicks": 0,
              "position": 31.82608695652174,
              "impressions": 23
            },
            {
              "ctr": 0.0,
              "query": "comparateur forfait mobile suisse",
              "clicks": 0,
              "position": 44.411764705882355,
              "impressions": 17
            },
            {
              "ctr": 0.0,
              "query": "abonnement mobile suisse comparatif",
              "clicks": 0,
              "position": 27.46153846153846,
              "impressions": 13
            },
            {
              "ctr": 0.0,
              "query": "comparatif abonnement mobile",
              "clicks": 0,
              "position": 23.333333333333332,
              "impressions": 9
            },
            {
              "ctr": 0.0,
              "query": "meilleur offre mobile suisse",
              "clicks": 0,
              "position": 72.44444444444444,
              "impressions": 9
            },
            {
              "ctr": 0.0,
              "query": "forfait mobile 5g",
              "clicks": 0,
              "position": 11.125,
              "impressions": 8
            },
            {
              "ctr": 0.0,
              "query": "forfait mobile france suisse",
              "clicks": 0,
              "position": 61.0,
              "impressions": 8
            },
            {
              "ctr": 0.0,
              "query": "roaming en suisse",
              "clicks": 0,
              "position": 17.125,
              "impressions": 8
            },
            {
              "ctr": 0.0,
              "query": "abonnement 5g suisse",
              "clicks": 0,
              "position": 9.0,
              "impressions": 7
            }
          ]
        },
        "recorded_at": "2026-05-26 00:00:23.020468+00:00",
        "payload": {
          "saved_at": "2026-05-25T18:15:05.342876Z",
          "top_pages": [
            {
              "ctr": 0.0,
              "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "clicks": 0,
              "position": 20.083333333333332,
              "top_query": "roaming suisse",
              "impressions": 156
            },
            {
              "ctr": 0.008849557522123894,
              "page": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "clicks": 1,
              "position": 16.38053097345133,
              "top_query": "comparatif abonnement mobile suisse",
              "impressions": 113
            },
            {
              "ctr": 0.0,
              "page": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "clicks": 0,
              "position": 38.56521739130435,
              "top_query": "comparateur forfait mobile suisse",
              "impressions": 69
            },
            {
              "ctr": 0.0,
              "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "clicks": 0,
              "position": 9.67741935483871,
              "top_query": "forfait mobile 5g",
              "impressions": 62
            },
            {
              "ctr": 0.0,
              "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "clicks": 0,
              "position": 31.137931034482758,
              "top_query": "comparatif abonnement mobile suisse",
              "impressions": 29
            }
          ],
          "top_queries": [
            {
              "ctr": 0.0,
              "query": "roaming suisse",
              "clicks": 0,
              "position": 16.796875,
              "impressions": 64
            },
            {
              "ctr": 0.0,
              "query": "comparatif abonnement mobile suisse",
              "clicks": 0,
              "position": 31.82608695652174,
              "impressions": 23
            },
            {
              "ctr": 0.0,
              "query": "comparateur forfait mobile suisse",
              "clicks": 0,
              "position": 44.411764705882355,
              "impressions": 17
            },
            {
              "ctr": 0.0,
              "query": "abonnement mobile suisse comparatif",
              "clicks": 0,
              "position": 27.46153846153846,
              "impressions": 13
            },
            {
              "ctr": 0.0,
              "query": "comparatif abonnement mobile",
              "clicks": 0,
              "position": 23.333333333333332,
              "impressions": 9
            },
            {
              "ctr": 0.0,
              "query": "meilleur offre mobile suisse",
              "clicks": 0,
              "position": 72.44444444444444,
              "impressions": 9
            },
            {
              "ctr": 0.0,
              "query": "forfait mobile 5g",
              "clicks": 0,
              "position": 11.125,
              "impressions": 8
            },
            {
              "ctr": 0.0,
              "query": "forfait mobile france suisse",
              "clicks": 0,
              "position": 61.0,
              "impressions": 8
            },
            {
              "ctr": 0.0,
              "query": "roaming en suisse",
              "clicks": 0,
              "position": 17.125,
              "impressions": 8
            },
            {
              "ctr": 0.0,
              "query": "abonnement 5g suisse",
              "clicks": 0,
              "position": 9.0,
              "impressions": 7
            }
          ]
        }
      },
      {
        "id": 947,
        "site_key": "forfaitdeal",
        "source_type": "learningseo_site_feedback",
        "subject_key": "forfaitdeal",
        "payload_json": {
          "site_key": "forfaitdeal",
          "project_name": "ForfaitDeal",
          "applied_topics": [
            "fundamentals",
            "execution",
            "technical",
            "content",
            "links",
            "automation"
          ],
          "contradictions": [
            "Negative measured outcomes still exist. SOP confidence should not be raised until remeasurement confirms recovery."
          ],
          "sop_candidates": [
            "Before new draft creation, verify that the target intent is not already partially served by an existing URL.",
            "Block SOP confidence increases when the latest measured action in the same category is negative.",
            "Treat crawlability, indexation, and internal-link architecture as preconditions before content-scale actions.",
            "Prioritize title/H1/intent refreshes on visible pages before creating new pages for adjacent intents.",
            "Every new or refreshed priority page should receive a deliberate internal-link plan from existing related pages.",
            "Automated actions must emit events, measurements, and postmortems by default."
          ],
          "lessons_created": 7
        },
        "recorded_at": "2026-05-26 00:00:18.022875+00:00",
        "payload": {
          "site_key": "forfaitdeal",
          "project_name": "ForfaitDeal",
          "applied_topics": [
            "fundamentals",
            "execution",
            "technical",
            "content",
            "links",
            "automation"
          ],
          "contradictions": [
            "Negative measured outcomes still exist. SOP confidence should not be raised until remeasurement confirms recovery."
          ],
          "sop_candidates": [
            "Before new draft creation, verify that the target intent is not already partially served by an existing URL.",
            "Block SOP confidence increases when the latest measured action in the same category is negative.",
            "Treat crawlability, indexation, and internal-link architecture as preconditions before content-scale actions.",
            "Prioritize title/H1/intent refreshes on visible pages before creating new pages for adjacent intents.",
            "Every new or refreshed priority page should receive a deliberate internal-link plan from existing related pages.",
            "Automated actions must emit events, measurements, and postmortems by default."
          ],
          "lessons_created": 7
        }
      }
    ],
    "live_state": {
      "queue": {
        "by_status": {
          "failed": 6,
          "published": 11
        },
        "recent_items": [
          {
            "id": 230,
            "slug": "roaming-suisse",
            "status": "failed",
            "scheduled_at": "2026-05-13T07:00:00+00:00",
            "published_at": null,
            "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/6gck8h49Ck4eZgEk5V5jpb84HTJ9",
            "attempts": 0
          },
          {
            "id": 103,
            "slug": "forfait-mobile-famille-suisse",
            "status": "failed",
            "scheduled_at": "2026-05-08T07:00:00+00:00",
            "published_at": null,
            "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/Dd6FLxAvJ7UjydbnkhWKSuJ3XJtC",
            "attempts": 0
          },
          {
            "id": 102,
            "slug": "portabilite-numero-mobile-suisse",
            "status": "failed",
            "scheduled_at": "2026-05-07T07:00:00+00:00",
            "published_at": null,
            "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/6zomyRRv68WhLxRpiJFMtjmgsxPP",
            "attempts": 0
          },
          {
            "id": 101,
            "slug": "swisscom-resiliation-abonnement",
            "status": "failed",
            "scheduled_at": "2026-05-06T07:00:00+00:00",
            "published_at": null,
            "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/GNScGHTdsrig2WoRZQsoutLjsMXq",
            "attempts": 0
          },
          {
            "id": 100,
            "slug": "quel-abonnement-swisscom-choisir",
            "status": "failed",
            "scheduled_at": "2026-05-05T07:00:00+00:00",
            "published_at": null,
            "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/bT9eWtPkK875DkLHcj1vV21i7xC7",
            "attempts": 0
          }
        ]
      },
      "gsc": {
        "saved_at": "2026-05-26T18:15:05.081205Z",
        "top_pages": [
          {
            "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
            "clicks": 0,
            "impressions": 162,
            "ctr": 0.0,
            "position": 20.376543209876544,
            "top_query": "roaming suisse"
          },
          {
            "page": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
            "clicks": 1,
            "impressions": 96,
            "ctr": 0.010416666666666666,
            "position": 15.291666666666666,
            "top_query": "comparatif abonnement mobile"
          },
          {
            "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
            "clicks": 0,
            "impressions": 59,
            "ctr": 0.0,
            "position": 9.898305084745763,
            "top_query": "forfait mobile 5g"
          }
        ],
        "top_queries": [
          {
            "query": "roaming suisse",
            "clicks": 0,
            "impressions": 69,
            "ctr": 0.0,
            "position": 17.028985507246375
          },
          {
            "query": "comparatif abonnement mobile suisse",
            "clicks": 0,
            "impressions": 18,
            "ctr": 0.0,
            "position": 34.05555555555556
          },
          {
            "query": "abonnement mobile suisse comparatif",
            "clicks": 0,
            "impressions": 10,
            "ctr": 0.0,
            "position": 26.1
          },
          {
            "query": "comparateur forfait mobile suisse",
            "clicks": 0,
            "impressions": 10,
            "ctr": 0.0,
            "position": 44.0
          },
          {
            "query": "comparatif abonnement mobile",
            "clicks": 0,
            "impressions": 9,
            "ctr": 0.0,
            "position": 23.333333333333332
          }
        ]
      },
      "workflow": {
        "updated_at": "2026-05-26T18:15:05.087533Z",
        "recent_events": [
          {
            "type": "hermes_content_pipeline",
            "payload": {
              "topic": "meilleur forfait mobile suisse",
              "slug": "meilleur-forfait-mobile-suisse",
              "queue_status": "scheduled"
            },
            "recorded_at": "2026-05-26T00:00:27.496384Z"
          },
          {
            "type": "hermes_content_pipeline",
            "payload": {
              "topic": "roaming suisse forfait",
              "slug": "roaming-suisse-forfait",
              "queue_status": "scheduled"
            },
            "recorded_at": "2026-05-26T00:00:37.800857Z"
          },
          {
            "type": "gsc_sync",
            "payload": {
              "pages_7d": 8,
              "pages_28d": 11,
              "queries_7d": 7,
              "queries_28d": 51,
              "page_query_28d": 63
            },
            "recorded_at": "2026-05-26T06:15:05.696884Z"
          },
          {
            "type": "gsc_sync",
            "payload": {
              "pages_7d": 8,
              "pages_28d": 11,
              "queries_7d": 7,
              "queries_28d": 51,
              "page_query_28d": 63
            },
            "recorded_at": "2026-05-26T12:15:07.025260Z"
          },
          {
            "type": "gsc_sync",
            "payload": {
              "pages_7d": 8,
              "pages_28d": 11,
              "queries_7d": 7,
              "queries_28d": 51,
              "page_query_28d": 63
            },
            "recorded_at": "2026-05-26T18:15:05.087375Z"
          }
        ]
      }
    },
    "site_context": {
      "site_key": "forfaitdeal",
      "project_name": "ForfaitDeal",
      "project_type": "repo_files",
      "site_url": "https://www.forfaitdeal.ch",
      "base_url": "https://www.forfaitdeal.ch/blog",
      "gsc_property": "sc-domain:forfaitdeal.ch",
      "gsc_blog_prefix": "https://www.forfaitdeal.ch/blog",
      "agent_mode": "full_autonomy",
      "operator_policy": "agent_driven",
      "primary_market": "ch",
      "target_countries": [
        "ch",
        "fr"
      ],
      "seo_scope": "national",
      "competitors": [
        {
          "label": "Comparis Mobile",
          "url": "https://fr.comparis.ch/telecom/mobile",
          "notes": ""
        },
        {
          "label": "Moneyland Mobile",
          "url": "https://www.moneyland.ch/fr/abonnement-mobile-comparatif",
          "notes": ""
        }
      ],
      "editorial_policy": {
        "queue_target_max": 10,
        "queue_resume_threshold": 2,
        "publish_timezone": "Europe/Paris",
        "publish_hour_local": 9,
        "publish_weekdays_only": true,
        "max_daily_publishes": 1,
        "keyword_min_volume": 50,
        "keyword_max_difficulty": 45
      },
      "image_policy": {
        "style_guardrail": "editorial_photo",
        "subject_focus": "product_objects",
        "allow_humans": "limited",
        "fallback_enabled": true,
        "max_prompt_variants": 5,
        "min_quality_score": 70
      },
      "features": {
        "gsc_enabled": true,
        "writer_gsc_enabled": true,
        "gsc_opportunities_enabled": true,
        "seo_panel_enabled": true,
        "crawler_enabled": true,
        "linkmap_enabled": true
      }
    }
  },
  "validated_lessons": [
    {
      "id": 151,
      "site_key": "forfaitdeal",
      "category": "ctr_optimization",
      "lesson": "Several visible pages have low CTR. Prioritize title, meta description, and intent alignment refreshes before creating net new content.",
      "confidence": "high",
      "source": "feedback_loop",
      "status": "validated",
      "details_json": {
        "pages": [
          {
            "ctr": 0.0,
            "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
            "clicks": 0,
            "position": 20.083333333333332,
            "top_query": "roaming suisse",
            "impressions": 156
          },
          {
            "ctr": 0.008849557522123894,
            "page": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
            "clicks": 1,
            "position": 16.38053097345133,
            "top_query": "comparatif abonnement mobile suisse",
            "impressions": 113
          },
          {
            "ctr": 0.0,
            "page": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
            "clicks": 0,
            "position": 38.56521739130435,
            "top_query": "comparateur forfait mobile suisse",
            "impressions": 69
          },
          {
            "ctr": 0.0,
            "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
            "clicks": 0,
            "position": 9.67741935483871,
            "top_query": "forfait mobile 5g",
            "impressions": 62
          },
          {
            "ctr": 0.0,
            "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
            "clicks": 0,
            "position": 31.137931034482758,
            "top_query": "comparatif abonnement mobile suisse",
            "impressions": 29
          }
        ]
      },
      "created_at": "2026-05-26 00:00:25.506656+00:00",
      "updated_at": "2026-05-26 00:00:26.417695+00:00",
      "details": {
        "pages": [
          {
            "ctr": 0.0,
            "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
            "clicks": 0,
            "position": 20.083333333333332,
            "top_query": "roaming suisse",
            "impressions": 156
          },
          {
            "ctr": 0.008849557522123894,
            "page": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
            "clicks": 1,
            "position": 16.38053097345133,
            "top_query": "comparatif abonnement mobile suisse",
            "impressions": 113
          },
          {
            "ctr": 0.0,
            "page": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
            "clicks": 0,
            "position": 38.56521739130435,
            "top_query": "comparateur forfait mobile suisse",
            "impressions": 69
          },
          {
            "ctr": 0.0,
            "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
            "clicks": 0,
            "position": 9.67741935483871,
            "top_query": "forfait mobile 5g",
            "impressions": 62
          },
          {
            "ctr": 0.0,
            "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
            "clicks": 0,
            "position": 31.137931034482758,
            "top_query": "comparatif abonnement mobile suisse",
            "impressions": 29
          }
        ]
      }
    },
    {
      "id": 84,
      "site_key": "forfaitdeal",
      "category": "throughput",
      "lesson": "Queue pressure is high. Reduce draft generation and prioritize review, refresh, and publishing throughput.",
      "confidence": "high",
      "source": "feedback_loop",
      "status": "validated",
      "details_json": {
        "failed_count": 0,
        "queued_count": 5
      },
      "created_at": "2026-05-04 00:00:17.019909+00:00",
      "updated_at": "2026-05-04 00:00:17.572122+00:00",
      "details": {
        "failed_count": 0,
        "queued_count": 5
      }
    }
  ],
  "active_sops": [
    {
      "id": 123,
      "site_key": "forfaitdeal",
      "scope": "site",
      "name": "adaptive-feedback-playbook",
      "version": 25,
      "status": "draft",
      "content": "1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.",
      "source": "feedback_loop",
      "created_at": "2026-05-26 00:00:25.696403+00:00",
      "updated_at": "2026-05-26 00:00:25.696403+00:00",
      "confidence_score": 0,
      "confidence_label": "low"
    },
    {
      "id": 120,
      "site_key": "forfaitdeal",
      "scope": "site",
      "name": "learningseo-site-improvement-playbook",
      "version": 33,
      "status": "draft",
      "content": "1. Before new draft creation, verify that the target intent is not already partially served by an existing URL.\n2. Block SOP confidence increases when the latest measured action in the same category is negative.\n3. Treat crawlability, indexation, and internal-link architecture as preconditions before content-scale actions.\n4. Prioritize title/H1/intent refreshes on visible pages before creating new pages for adjacent intents.\n5. Every new or refreshed priority page should receive a deliberate internal-link plan from existing related pages.\n6. Automated actions must emit events, measurements, and postmortems by default.",
      "source": "learningseo_daily",
      "created_at": "2026-05-26 00:00:17.848847+00:00",
      "updated_at": "2026-05-26 00:00:17.848847+00:00",
      "confidence_score": 0,
      "confidence_label": "low"
    },
    {
      "id": 1,
      "site_key": "forfaitdeal",
      "scope": "site",
      "name": "content-refresh-playbook",
      "version": 1,
      "status": "draft",
      "content": "1. Check GSC queries.\n2. Refresh title/H1.\n3. Add internal links.\n4. Re-measure after publication.",
      "source": "system",
      "created_at": "2026-04-24 12:53:15.224126+00:00",
      "updated_at": "2026-05-09 17:07:02.508710+00:00",
      "confidence_score": 0,
      "confidence_label": "low"
    },
    {
      "id": 117,
      "site_key": "forfaitdeal",
      "scope": "site",
      "name": "adaptive-feedback-playbook",
      "version": 24,
      "status": "deprecated",
      "content": "1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.",
      "source": "feedback_loop",
      "created_at": "2026-05-25 00:00:18.697334+00:00",
      "updated_at": "2026-05-26 00:00:26.532473+00:00",
      "confidence_score": 0,
      "confidence_label": "low"
    },
    {
      "id": 114,
      "site_key": "forfaitdeal",
      "scope": "site",
      "name": "learningseo-site-improvement-playbook",
      "version": 32,
      "status": "deprecated",
      "content": "1. Before new draft creation, verify that the target intent is not already partially served by an existing URL.\n2. Block SOP confidence increases when the latest measured action in the same category is negative.\n3. Treat crawlability, indexation, and internal-link architecture as preconditions before content-scale actions.\n4. Prioritize title/H1/intent refreshes on visible pages before creating new pages for adjacent intents.\n5. Every new or refreshed priority page should receive a deliberate internal-link plan from existing related pages.\n6. Automated actions must emit events, measurements, and postmortems by default.",
      "source": "learningseo_daily",
      "created_at": "2026-05-25 00:00:09.110038+00:00",
      "updated_at": "2026-05-25 00:02:42.053022+00:00",
      "confidence_score": 0,
      "confidence_label": "low"
    }
  ],
  "recent_outcomes": [
    {
      "id": 153,
      "site_key": "forfaitdeal",
      "outcome_type": "gsc_baseline",
      "subject_key": "publish:roaming-suisse",
      "metric_name": "position",
      "metric_value": 0.0,
      "payload_json": {
        "row": {},
        "page_url": "https://www.forfaitdeal.ch/blog/roaming-suisse"
      },
      "recorded_at": "2026-05-13 09:00:56.410086+00:00",
      "payload": {
        "row": {},
        "page_url": "https://www.forfaitdeal.ch/blog/roaming-suisse"
      }
    },
    {
      "id": 152,
      "site_key": "forfaitdeal",
      "outcome_type": "gsc_baseline",
      "subject_key": "publish:roaming-suisse",
      "metric_name": "ctr",
      "metric_value": 0.0,
      "payload_json": {
        "row": {},
        "page_url": "https://www.forfaitdeal.ch/blog/roaming-suisse"
      },
      "recorded_at": "2026-05-13 09:00:56.395728+00:00",
      "payload": {
        "row": {},
        "page_url": "https://www.forfaitdeal.ch/blog/roaming-suisse"
      }
    },
    {
      "id": 151,
      "site_key": "forfaitdeal",
      "outcome_type": "gsc_baseline",
      "subject_key": "publish:roaming-suisse",
      "metric_name": "impressions",
      "metric_value": 0.0,
      "payload_json": {
        "row": {},
        "page_url": "https://www.forfaitdeal.ch/blog/roaming-suisse"
      },
      "recorded_at": "2026-05-13 09:00:56.382296+00:00",
      "payload": {
        "row": {},
        "page_url": "https://www.forfaitdeal.ch/blog/roaming-suisse"
      }
    },
    {
      "id": 150,
      "site_key": "forfaitdeal",
      "outcome_type": "gsc_baseline",
      "subject_key": "publish:roaming-suisse",
      "metric_name": "clicks",
      "metric_value": 0.0,
      "payload_json": {
        "row": {},
        "page_url": "https://www.forfaitdeal.ch/blog/roaming-suisse"
      },
      "recorded_at": "2026-05-13 09:00:56.367485+00:00",
      "payload": {
        "row": {},
        "page_url": "https://www.forfaitdeal.ch/blog/roaming-suisse"
      }
    },
    {
      "id": 119,
      "site_key": "forfaitdeal",
      "outcome_type": "seo_experiment_result",
      "subject_key": "content-refresh:forfait-mobile-5g-suisse",
      "metric_name": "position",
      "metric_value": 9.31578947368421,
      "payload_json": {
        "delta": {
          "ctr": 0.0,
          "clicks": 0.0,
          "position": 9.31578947368421,
          "impressions": 57.0
        },
        "success": false,
        "conclusion": "rejected",
        "hypothesis": {
          "slug": "forfait-mobile-5g-suisse",
          "query": "comparatif abonnement mobile suisse",
          "autonomy": "auto_correctable",
          "baseline": {
            "ctr": 0.01,
            "clicks": 1,
            "position": 10.6,
            "impressions": 100
          },
          "site_key": "forfaitdeal",
          "reasoning": [
            "position proche d'un gain SEO (10.6)",
            "potentiel impression détecté (100)",
            "perte de clics probable: CTR 1.00% pour 100 impressions",
            "la page capte déjà des clics (1)",
            "écart concurrentiel aligné avec la requête"
          ],
          "risk_level": "medium",
          "action_type": "content_refresh",
          "playbook_id": "gain_position",
          "playbook_name": "Gagner des positions",
          "primary_metric": "position",
          "secondary_metrics": [
            "clicks",
            "impressions",
            "query_coverage"
          ],
          "expected_direction": "decrease"
        },
        "impact_label": "negative",
        "primary_metric_delta": 9.31578947368421
      },
      "recorded_at": "2026-05-09 17:07:02.348363+00:00",
      "payload": {
        "delta": {
          "ctr": 0.0,
          "clicks": 0.0,
          "position": 9.31578947368421,
          "impressions": 57.0
        },
        "success": false,
        "conclusion": "rejected",
        "hypothesis": {
          "slug": "forfait-mobile-5g-suisse",
          "query": "comparatif abonnement mobile suisse",
          "autonomy": "auto_correctable",
          "baseline": {
            "ctr": 0.01,
            "clicks": 1,
            "position": 10.6,
            "impressions": 100
          },
          "site_key": "forfaitdeal",
          "reasoning": [
            "position proche d'un gain SEO (10.6)",
            "potentiel impression détecté (100)",
            "perte de clics probable: CTR 1.00% pour 100 impressions",
            "la page capte déjà des clics (1)",
            "écart concurrentiel aligné avec la requête"
          ],
          "risk_level": "medium",
          "action_type": "content_refresh",
          "playbook_id": "gain_position",
          "playbook_name": "Gagner des positions",
          "primary_metric": "position",
          "secondary_metrics": [
            "clicks",
            "impressions",
            "query_coverage"
          ],
          "expected_direction": "decrease"
        },
        "impact_label": "negative",
        "primary_metric_delta": 9.31578947368421
      }
    },
    {
      "id": 118,
      "site_key": "forfaitdeal",
      "outcome_type": "measurement_result",
      "subject_key": "content-refresh:forfait-mobile-5g-suisse",
      "metric_name": "impact_score",
      "metric_value": -12.931578947368422,
      "payload_json": {
        "delta": {
          "ctr": 0.0,
          "clicks": 0.0,
          "position": 9.31578947368421,
          "impressions": 57.0
        },
        "page_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
        "action_type": "content_refresh",
        "impact_label": "negative",
        "measurement_id": 7
      },
      "recorded_at": "2026-05-09 17:07:02.309355+00:00",
      "payload": {
        "delta": {
          "ctr": 0.0,
          "clicks": 0.0,
          "position": 9.31578947368421,
          "impressions": 57.0
        },
        "page_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
        "action_type": "content_refresh",
        "impact_label": "negative",
        "measurement_id": 7
      }
    },
    {
      "id": 117,
      "site_key": "forfaitdeal",
      "outcome_type": "gsc_delta",
      "subject_key": "content-refresh:forfait-mobile-5g-suisse",
      "metric_name": "position",
      "metric_value": 9.31578947368421,
      "payload_json": {
        "delta": {
          "ctr": 0.0,
          "clicks": 0.0,
          "position": 9.31578947368421,
          "impressions": 57.0
        },
        "current": {
          "ctr": 0.0,
          "clicks": 0.0,
          "position": 9.31578947368421,
          "impressions": 57.0
        },
        "baseline": {
          "ctr": 0.0,
          "clicks": 0.0,
          "position": 0.0,
          "impressions": 0.0
        },
        "page_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse"
      },
      "recorded_at": "2026-05-09 17:07:02.298196+00:00",
      "payload": {
        "delta": {
          "ctr": 0.0,
          "clicks": 0.0,
          "position": 9.31578947368421,
          "impressions": 57.0
        },
        "current": {
          "ctr": 0.0,
          "clicks": 0.0,
          "position": 9.31578947368421,
          "impressions": 57.0
        },
        "baseline": {
          "ctr": 0.0,
          "clicks": 0.0,
          "position": 0.0,
          "impressions": 0.0
        },
        "page_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse"
      }
    },
    {
      "id": 116,
      "site_key": "forfaitdeal",
      "outcome_type": "gsc_delta",
      "subject_key": "content-refresh:forfait-mobile-5g-suisse",
      "metric_name": "ctr",
      "metric_value": 0.0,
      "payload_json": {
        "delta": {
          "ctr": 0.0,
          "clicks": 0.0,
          "position": 9.31578947368421,
          "impressions": 57.0
        },
        "current": {
          "ctr": 0.0,
          "clicks": 0.0,
          "position": 9.31578947368421,
          "impressions": 57.0
        },
        "baseline": {
          "ctr": 0.0,
          "clicks": 0.0,
          "position": 0.0,
          "impressions": 0.0
        },
        "page_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse"
      },
      "recorded_at": "2026-05-09 17:07:02.287479+00:00",
      "payload": {
        "delta": {
          "ctr": 0.0,
          "clicks": 0.0,
          "position": 9.31578947368421,
          "impressions": 57.0
        },
        "current": {
          "ctr": 0.0,
          "clicks": 0.0,
          "position": 9.31578947368421,
          "impressions": 57.0
        },
        "baseline": {
          "ctr": 0.0,
          "clicks": 0.0,
          "position": 0.0,
          "impressions": 0.0
        },
        "page_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse"
      }
    }
  ],
  "recent_observations": [
    {
      "id": 971,
      "site_key": "forfaitdeal",
      "source_type": "technical_audit",
      "subject_key": "forfaitdeal",
      "payload_json": {
        "gsc": {
          "checked": false
        },
        "pages": [
          {
            "ok": true,
            "url": "https://www.forfaitdeal.ch",
            "error": "",
            "noindex": false,
            "canonical": "https://www.forfaitdeal.ch/",
            "final_url": "https://www.forfaitdeal.ch/",
            "indexable": true,
            "redirected": false,
            "robots_meta": "",
            "status_code": 200,
            "x_robots_tag": "",
            "redirect_chain": [],
            "robots_allowed": true,
            "canonical_present": true,
            "canonical_matches_url": true
          },
          {
            "ok": true,
            "url": "https://www.forfaitdeal.ch/blog",
            "error": "",
            "noindex": false,
            "canonical": "https://www.forfaitdeal.ch/blog",
            "final_url": "https://www.forfaitdeal.ch/blog",
            "indexable": true,
            "redirected": false,
            "robots_meta": "",
            "status_code": 200,
            "x_robots_tag": "",
            "redirect_chain": [],
            "robots_allowed": true,
            "canonical_present": true,
            "canonical_matches_url": true
          }
        ],
        "robots": {
          "ok": true,
          "url": "https://www.forfaitdeal.ch/robots.txt",
          "error": "",
          "sitemaps": [
            "https://www.forfaitdeal.ch/sitemap.xml"
          ],
          "blocks_all": false,
          "rules_text": "User-agent: *\nAllow: /\n\nSitemap: https://www.forfaitdeal.ch/sitemap.xml\n",
          "status_code": 200
        },
        "status": "ok",
        "checked": true,
        "sitemap": {
          "ok": true,
          "checked": [
            {
              "ok": true,
              "url": "https://www.forfaitdeal.ch/sitemap.xml",
              "error": "",
              "root_tag": "urlset",
              "url_count": 28,
              "valid_xml": true,
              "status_code": 200,
              "child_checked": [],
              "child_sitemaps": [],
              "listed_sample_urls": [
                "https://www.forfaitdeal.ch/",
                "https://www.forfaitdeal.ch/comparateur",
                "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
                "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/roaming-suisse",
                "https://www.forfaitdeal.ch/blog",
                "https://www.forfaitdeal.ch/methodologie",
                "https://www.forfaitdeal.ch/confidentialite",
                "https://www.forfaitdeal.ch/blog/roaming-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
                "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
                "https://www.forfaitdeal.ch/blog/mvno-swisscom",
                "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
                "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/abonnement-mobile"
              ]
            }
          ],
          "selected": {
            "ok": true,
            "url": "https://www.forfaitdeal.ch/sitemap.xml",
            "error": "",
            "root_tag": "urlset",
            "url_count": 28,
            "valid_xml": true,
            "status_code": 200,
            "child_checked": [],
            "child_sitemaps": [],
            "listed_sample_urls": [
              "https://www.forfaitdeal.ch/",
              "https://www.forfaitdeal.ch/comparateur",
              "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
              "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
              "https://www.forfaitdeal.ch/roaming-suisse",
              "https://www.forfaitdeal.ch/blog",
              "https://www.forfaitdeal.ch/methodologie",
              "https://www.forfaitdeal.ch/confidentialite",
              "https://www.forfaitdeal.ch/blog/roaming-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
              "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
              "https://www.forfaitdeal.ch/blog/mvno-swisscom",
              "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
              "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/abonnement-mobile"
            ]
          }
        },
        "site_key": "forfaitdeal",
        "warnings": [
          "URL GSC redirigée: https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse -> https://www.forfaitdeal.ch/blog/abonnement-mobile",
          "LCP mobile élevé (2737 ms)",
          "INP/FID mobile élevé (223 ms)"
        ],
        "pagespeed": {
          "ok": true,
          "cls": 0.066347,
          "inp_ms": 223.0,
          "lcp_ms": 2737.3970311466883,
          "mobile": {
            "ok": true,
            "cls": 0.066347,
            "inp_ms": 223.0,
            "lcp_ms": 2737.3970311466883,
            "source": "pagespeed_insights",
            "strategy": "mobile",
            "performance_score": 90.0
          },
          "source": "pagespeed_insights",
          "desktop": {
            "ok": true,
            "cls": 0.009877,
            "inp_ms": 98.0,
            "lcp_ms": 716.8993863838615,
            "source": "pagespeed_insights",
            "strategy": "desktop",
            "performance_score": 99.0
          },
          "strategy": "mobile",
          "performance_score": 90.0
        },
        "gsc_live_urls": {
          "urls": [
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "error": "",
              "clicks": 0,
              "position": 20.083333333333332,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "indexable": true,
              "top_query": "roaming suisse",
              "redirected": false,
              "impressions": 156,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.008849557522123894,
              "url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "error": "",
              "clicks": 1,
              "position": 16.38053097345133,
              "canonical": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "indexable": true,
              "top_query": "comparatif abonnement mobile suisse",
              "redirected": false,
              "impressions": 113,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "error": "",
              "clicks": 0,
              "position": 38.56521739130435,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "comparateur forfait mobile suisse",
              "redirected": false,
              "impressions": 69,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "error": "",
              "clicks": 0,
              "position": 9.67741935483871,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "indexable": true,
              "top_query": "forfait mobile 5g",
              "redirected": false,
              "impressions": 62,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "error": "",
              "clicks": 0,
              "position": 31.137931034482758,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "indexable": true,
              "top_query": "comparatif abonnement mobile suisse",
              "redirected": false,
              "impressions": 29,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "error": "",
              "clicks": 0,
              "position": 7.928571428571429,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "indexable": true,
              "top_query": "",
              "redirected": false,
              "impressions": 28,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 7.888888888888889,
              "canonical": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "indexable": true,
              "top_query": "comment changer d'opérateur mobile",
              "redirected": false,
              "impressions": 27,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "error": "",
              "clicks": 0,
              "position": 10.318181818181818,
              "canonical": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "final_url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "indexable": true,
              "top_query": "swisscom résiliation",
              "redirected": false,
              "impressions": 22,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 12.285714285714286,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "",
              "redirected": true,
              "impressions": 14,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "error": "",
              "clicks": 0,
              "position": 18.0,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "indexable": true,
              "top_query": "esim suisse",
              "redirected": false,
              "impressions": 13,
              "status_code": 200
            }
          ],
          "source": "gsc_pages_28d",
          "checked": true,
          "broken_urls": [],
          "broken_count": 0,
          "checked_count": 10,
          "redirected_urls": [
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 12.285714285714286,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "",
              "redirected": true,
              "impressions": 14,
              "status_code": 200
            }
          ],
          "redirected_count": 1,
          "snapshot_saved_at": "2026-05-25T18:15:05.342876Z"
        },
        "blocking_issues": [],
        "safe_to_optimize": true,
        "sitemap_coverage": {
          "checked": true,
          "missing_urls": [],
          "expected_urls": [
            "https://www.forfaitdeal.ch",
            "https://www.forfaitdeal.ch/blog"
          ],
          "listed_url_sample_size": 28
        },
        "deployment_health": {
          "checked": false
        },
        "technical_health_score": 85
      },
      "recorded_at": "2026-05-26 00:07:48.356623+00:00",
      "payload": {
        "gsc": {
          "checked": false
        },
        "pages": [
          {
            "ok": true,
            "url": "https://www.forfaitdeal.ch",
            "error": "",
            "noindex": false,
            "canonical": "https://www.forfaitdeal.ch/",
            "final_url": "https://www.forfaitdeal.ch/",
            "indexable": true,
            "redirected": false,
            "robots_meta": "",
            "status_code": 200,
            "x_robots_tag": "",
            "redirect_chain": [],
            "robots_allowed": true,
            "canonical_present": true,
            "canonical_matches_url": true
          },
          {
            "ok": true,
            "url": "https://www.forfaitdeal.ch/blog",
            "error": "",
            "noindex": false,
            "canonical": "https://www.forfaitdeal.ch/blog",
            "final_url": "https://www.forfaitdeal.ch/blog",
            "indexable": true,
            "redirected": false,
            "robots_meta": "",
            "status_code": 200,
            "x_robots_tag": "",
            "redirect_chain": [],
            "robots_allowed": true,
            "canonical_present": true,
            "canonical_matches_url": true
          }
        ],
        "robots": {
          "ok": true,
          "url": "https://www.forfaitdeal.ch/robots.txt",
          "error": "",
          "sitemaps": [
            "https://www.forfaitdeal.ch/sitemap.xml"
          ],
          "blocks_all": false,
          "rules_text": "User-agent: *\nAllow: /\n\nSitemap: https://www.forfaitdeal.ch/sitemap.xml\n",
          "status_code": 200
        },
        "status": "ok",
        "checked": true,
        "sitemap": {
          "ok": true,
          "checked": [
            {
              "ok": true,
              "url": "https://www.forfaitdeal.ch/sitemap.xml",
              "error": "",
              "root_tag": "urlset",
              "url_count": 28,
              "valid_xml": true,
              "status_code": 200,
              "child_checked": [],
              "child_sitemaps": [],
              "listed_sample_urls": [
                "https://www.forfaitdeal.ch/",
                "https://www.forfaitdeal.ch/comparateur",
                "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
                "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/roaming-suisse",
                "https://www.forfaitdeal.ch/blog",
                "https://www.forfaitdeal.ch/methodologie",
                "https://www.forfaitdeal.ch/confidentialite",
                "https://www.forfaitdeal.ch/blog/roaming-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
                "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
                "https://www.forfaitdeal.ch/blog/mvno-swisscom",
                "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
                "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/abonnement-mobile"
              ]
            }
          ],
          "selected": {
            "ok": true,
            "url": "https://www.forfaitdeal.ch/sitemap.xml",
            "error": "",
            "root_tag": "urlset",
            "url_count": 28,
            "valid_xml": true,
            "status_code": 200,
            "child_checked": [],
            "child_sitemaps": [],
            "listed_sample_urls": [
              "https://www.forfaitdeal.ch/",
              "https://www.forfaitdeal.ch/comparateur",
              "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
              "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
              "https://www.forfaitdeal.ch/roaming-suisse",
              "https://www.forfaitdeal.ch/blog",
              "https://www.forfaitdeal.ch/methodologie",
              "https://www.forfaitdeal.ch/confidentialite",
              "https://www.forfaitdeal.ch/blog/roaming-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
              "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
              "https://www.forfaitdeal.ch/blog/mvno-swisscom",
              "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
              "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/abonnement-mobile"
            ]
          }
        },
        "site_key": "forfaitdeal",
        "warnings": [
          "URL GSC redirigée: https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse -> https://www.forfaitdeal.ch/blog/abonnement-mobile",
          "LCP mobile élevé (2737 ms)",
          "INP/FID mobile élevé (223 ms)"
        ],
        "pagespeed": {
          "ok": true,
          "cls": 0.066347,
          "inp_ms": 223.0,
          "lcp_ms": 2737.3970311466883,
          "mobile": {
            "ok": true,
            "cls": 0.066347,
            "inp_ms": 223.0,
            "lcp_ms": 2737.3970311466883,
            "source": "pagespeed_insights",
            "strategy": "mobile",
            "performance_score": 90.0
          },
          "source": "pagespeed_insights",
          "desktop": {
            "ok": true,
            "cls": 0.009877,
            "inp_ms": 98.0,
            "lcp_ms": 716.8993863838615,
            "source": "pagespeed_insights",
            "strategy": "desktop",
            "performance_score": 99.0
          },
          "strategy": "mobile",
          "performance_score": 90.0
        },
        "gsc_live_urls": {
          "urls": [
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "error": "",
              "clicks": 0,
              "position": 20.083333333333332,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "indexable": true,
              "top_query": "roaming suisse",
              "redirected": false,
              "impressions": 156,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.008849557522123894,
              "url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "error": "",
              "clicks": 1,
              "position": 16.38053097345133,
              "canonical": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "indexable": true,
              "top_query": "comparatif abonnement mobile suisse",
              "redirected": false,
              "impressions": 113,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "error": "",
              "clicks": 0,
              "position": 38.56521739130435,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "comparateur forfait mobile suisse",
              "redirected": false,
              "impressions": 69,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "error": "",
              "clicks": 0,
              "position": 9.67741935483871,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "indexable": true,
              "top_query": "forfait mobile 5g",
              "redirected": false,
              "impressions": 62,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "error": "",
              "clicks": 0,
              "position": 31.137931034482758,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "indexable": true,
              "top_query": "comparatif abonnement mobile suisse",
              "redirected": false,
              "impressions": 29,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "error": "",
              "clicks": 0,
              "position": 7.928571428571429,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "indexable": true,
              "top_query": "",
              "redirected": false,
              "impressions": 28,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 7.888888888888889,
              "canonical": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "indexable": true,
              "top_query": "comment changer d'opérateur mobile",
              "redirected": false,
              "impressions": 27,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "error": "",
              "clicks": 0,
              "position": 10.318181818181818,
              "canonical": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "final_url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "indexable": true,
              "top_query": "swisscom résiliation",
              "redirected": false,
              "impressions": 22,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 12.285714285714286,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "",
              "redirected": true,
              "impressions": 14,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "error": "",
              "clicks": 0,
              "position": 18.0,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "indexable": true,
              "top_query": "esim suisse",
              "redirected": false,
              "impressions": 13,
              "status_code": 200
            }
          ],
          "source": "gsc_pages_28d",
          "checked": true,
          "broken_urls": [],
          "broken_count": 0,
          "checked_count": 10,
          "redirected_urls": [
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 12.285714285714286,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "",
              "redirected": true,
              "impressions": 14,
              "status_code": 200
            }
          ],
          "redirected_count": 1,
          "snapshot_saved_at": "2026-05-25T18:15:05.342876Z"
        },
        "blocking_issues": [],
        "safe_to_optimize": true,
        "sitemap_coverage": {
          "checked": true,
          "missing_urls": [],
          "expected_urls": [
            "https://www.forfaitdeal.ch",
            "https://www.forfaitdeal.ch/blog"
          ],
          "listed_url_sample_size": 28
        },
        "deployment_health": {
          "checked": false
        },
        "technical_health_score": 85
      }
    },
    {
      "id": 963,
      "site_key": "forfaitdeal",
      "source_type": "technical_remediation",
      "subject_key": "forfaitdeal",
      "payload_json": {
        "ok": true,
        "errors": [],
        "actions": [
          {
            "type": "optimize_lcp",
            "value": 2713.3,
            "metric": "lcp_ms",
            "target": "https://www.forfaitdeal.ch",
            "priority": "high",
            "threshold": 2500,
            "recommended_changes": [
              "Identifier l'élément LCP mobile sur la home via PageSpeed/Lighthouse.",
              "Optimiser l'image ou le bloc hero responsable: format WebP/AVIF, dimensions adaptées, compression.",
              "Précharger ou prioriser uniquement l'asset LCP critique et différer les médias non critiques.",
              "Réduire CSS/JS bloquant au-dessus de la ligne de flottaison."
            ]
          }
        ],
        "changed": false,
        "attempted": true,
        "deployment": {
          "ok": true,
          "detail": "no_change",
          "checked": false
        }
      },
      "recorded_at": "2026-05-26 00:04:37.092559+00:00",
      "payload": {
        "ok": true,
        "errors": [],
        "actions": [
          {
            "type": "optimize_lcp",
            "value": 2713.3,
            "metric": "lcp_ms",
            "target": "https://www.forfaitdeal.ch",
            "priority": "high",
            "threshold": 2500,
            "recommended_changes": [
              "Identifier l'élément LCP mobile sur la home via PageSpeed/Lighthouse.",
              "Optimiser l'image ou le bloc hero responsable: format WebP/AVIF, dimensions adaptées, compression.",
              "Précharger ou prioriser uniquement l'asset LCP critique et différer les médias non critiques.",
              "Réduire CSS/JS bloquant au-dessus de la ligne de flottaison."
            ]
          }
        ],
        "changed": false,
        "attempted": true,
        "deployment": {
          "ok": true,
          "detail": "no_change",
          "checked": false
        }
      }
    },
    {
      "id": 962,
      "site_key": "forfaitdeal",
      "source_type": "technical_audit",
      "subject_key": "forfaitdeal",
      "payload_json": {
        "gsc": {
          "ok": true,
          "checked": true,
          "message": "Connexion GSC OK",
          "payload": {
            "sample_rows": 1,
            "properties_count": 5,
            "resolved_property": "sc-domain:forfaitdeal.ch"
          },
          "sitemap_url": "https://www.forfaitdeal.ch/sitemap.xml",
          "sitemap_submission_ready": true
        },
        "pages": [
          {
            "ok": true,
            "url": "https://www.forfaitdeal.ch",
            "error": "",
            "noindex": false,
            "canonical": "https://www.forfaitdeal.ch/",
            "final_url": "https://www.forfaitdeal.ch/",
            "indexable": true,
            "redirected": false,
            "robots_meta": "",
            "status_code": 200,
            "x_robots_tag": "",
            "redirect_chain": [],
            "robots_allowed": true,
            "canonical_present": true,
            "canonical_matches_url": true
          },
          {
            "ok": true,
            "url": "https://www.forfaitdeal.ch/blog",
            "error": "",
            "noindex": false,
            "canonical": "https://www.forfaitdeal.ch/blog",
            "final_url": "https://www.forfaitdeal.ch/blog",
            "indexable": true,
            "redirected": false,
            "robots_meta": "",
            "status_code": 200,
            "x_robots_tag": "",
            "redirect_chain": [],
            "robots_allowed": true,
            "canonical_present": true,
            "canonical_matches_url": true
          }
        ],
        "robots": {
          "ok": true,
          "url": "https://www.forfaitdeal.ch/robots.txt",
          "error": "",
          "sitemaps": [
            "https://www.forfaitdeal.ch/sitemap.xml"
          ],
          "blocks_all": false,
          "rules_text": "User-agent: *\nAllow: /\n\nSitemap: https://www.forfaitdeal.ch/sitemap.xml\n",
          "status_code": 200
        },
        "status": "ok",
        "checked": true,
        "sitemap": {
          "ok": true,
          "checked": [
            {
              "ok": true,
              "url": "https://www.forfaitdeal.ch/sitemap.xml",
              "error": "",
              "root_tag": "urlset",
              "url_count": 28,
              "valid_xml": true,
              "status_code": 200,
              "child_checked": [],
              "child_sitemaps": [],
              "listed_sample_urls": [
                "https://www.forfaitdeal.ch/",
                "https://www.forfaitdeal.ch/comparateur",
                "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
                "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/roaming-suisse",
                "https://www.forfaitdeal.ch/blog",
                "https://www.forfaitdeal.ch/methodologie",
                "https://www.forfaitdeal.ch/confidentialite",
                "https://www.forfaitdeal.ch/blog/roaming-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
                "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
                "https://www.forfaitdeal.ch/blog/mvno-swisscom",
                "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
                "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/abonnement-mobile"
              ]
            }
          ],
          "selected": {
            "ok": true,
            "url": "https://www.forfaitdeal.ch/sitemap.xml",
            "error": "",
            "root_tag": "urlset",
            "url_count": 28,
            "valid_xml": true,
            "status_code": 200,
            "child_checked": [],
            "child_sitemaps": [],
            "listed_sample_urls": [
              "https://www.forfaitdeal.ch/",
              "https://www.forfaitdeal.ch/comparateur",
              "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
              "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
              "https://www.forfaitdeal.ch/roaming-suisse",
              "https://www.forfaitdeal.ch/blog",
              "https://www.forfaitdeal.ch/methodologie",
              "https://www.forfaitdeal.ch/confidentialite",
              "https://www.forfaitdeal.ch/blog/roaming-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
              "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
              "https://www.forfaitdeal.ch/blog/mvno-swisscom",
              "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
              "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/abonnement-mobile"
            ]
          }
        },
        "site_key": "forfaitdeal",
        "warnings": [
          "URL GSC redirigée: https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse -> https://www.forfaitdeal.ch/blog/abonnement-mobile",
          "LCP mobile élevé (2713 ms)"
        ],
        "pagespeed": {
          "ok": true,
          "cls": 0.066347,
          "inp_ms": 124.0,
          "lcp_ms": 2713.2865814806883,
          "mobile": {
            "ok": true,
            "cls": 0.066347,
            "inp_ms": 124.0,
            "lcp_ms": 2713.2865814806883,
            "source": "pagespeed_insights",
            "strategy": "mobile",
            "performance_score": 92.0
          },
          "source": "pagespeed_insights",
          "desktop": {
            "ok": true,
            "cls": 0.009877,
            "inp_ms": 80.0,
            "lcp_ms": 687.8982710848063,
            "source": "pagespeed_insights",
            "strategy": "desktop",
            "performance_score": 100.0
          },
          "strategy": "mobile",
          "performance_score": 92.0
        },
        "gsc_live_urls": {
          "urls": [
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "error": "",
              "clicks": 0,
              "position": 20.083333333333332,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "indexable": true,
              "top_query": "roaming suisse",
              "redirected": false,
              "impressions": 156,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.008849557522123894,
              "url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "error": "",
              "clicks": 1,
              "position": 16.38053097345133,
              "canonical": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "indexable": true,
              "top_query": "comparatif abonnement mobile suisse",
              "redirected": false,
              "impressions": 113,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "error": "",
              "clicks": 0,
              "position": 38.56521739130435,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "comparateur forfait mobile suisse",
              "redirected": false,
              "impressions": 69,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "error": "",
              "clicks": 0,
              "position": 9.67741935483871,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "indexable": true,
              "top_query": "forfait mobile 5g",
              "redirected": false,
              "impressions": 62,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "error": "",
              "clicks": 0,
              "position": 31.137931034482758,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "indexable": true,
              "top_query": "comparatif abonnement mobile suisse",
              "redirected": false,
              "impressions": 29,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "error": "",
              "clicks": 0,
              "position": 7.928571428571429,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "indexable": true,
              "top_query": "",
              "redirected": false,
              "impressions": 28,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 7.888888888888889,
              "canonical": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "indexable": true,
              "top_query": "comment changer d'opérateur mobile",
              "redirected": false,
              "impressions": 27,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "error": "",
              "clicks": 0,
              "position": 10.318181818181818,
              "canonical": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "final_url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "indexable": true,
              "top_query": "swisscom résiliation",
              "redirected": false,
              "impressions": 22,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 12.285714285714286,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "",
              "redirected": true,
              "impressions": 14,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "error": "",
              "clicks": 0,
              "position": 18.0,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "indexable": true,
              "top_query": "esim suisse",
              "redirected": false,
              "impressions": 13,
              "status_code": 200
            }
          ],
          "source": "gsc_pages_28d",
          "checked": true,
          "broken_urls": [],
          "broken_count": 0,
          "checked_count": 10,
          "redirected_urls": [
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 12.285714285714286,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "",
              "redirected": true,
              "impressions": 14,
              "status_code": 200
            }
          ],
          "redirected_count": 1,
          "snapshot_saved_at": "2026-05-25T18:15:05.342876Z"
        },
        "blocking_issues": [],
        "safe_to_optimize": true,
        "sitemap_coverage": {
          "checked": true,
          "missing_urls": [],
          "expected_urls": [
            "https://www.forfaitdeal.ch",
            "https://www.forfaitdeal.ch/blog"
          ],
          "listed_url_sample_size": 28
        },
        "deployment_health": {
          "checked": false
        },
        "technical_health_score": 90
      },
      "recorded_at": "2026-05-26 00:04:36.042821+00:00",
      "payload": {
        "gsc": {
          "ok": true,
          "checked": true,
          "message": "Connexion GSC OK",
          "payload": {
            "sample_rows": 1,
            "properties_count": 5,
            "resolved_property": "sc-domain:forfaitdeal.ch"
          },
          "sitemap_url": "https://www.forfaitdeal.ch/sitemap.xml",
          "sitemap_submission_ready": true
        },
        "pages": [
          {
            "ok": true,
            "url": "https://www.forfaitdeal.ch",
            "error": "",
            "noindex": false,
            "canonical": "https://www.forfaitdeal.ch/",
            "final_url": "https://www.forfaitdeal.ch/",
            "indexable": true,
            "redirected": false,
            "robots_meta": "",
            "status_code": 200,
            "x_robots_tag": "",
            "redirect_chain": [],
            "robots_allowed": true,
            "canonical_present": true,
            "canonical_matches_url": true
          },
          {
            "ok": true,
            "url": "https://www.forfaitdeal.ch/blog",
            "error": "",
            "noindex": false,
            "canonical": "https://www.forfaitdeal.ch/blog",
            "final_url": "https://www.forfaitdeal.ch/blog",
            "indexable": true,
            "redirected": false,
            "robots_meta": "",
            "status_code": 200,
            "x_robots_tag": "",
            "redirect_chain": [],
            "robots_allowed": true,
            "canonical_present": true,
            "canonical_matches_url": true
          }
        ],
        "robots": {
          "ok": true,
          "url": "https://www.forfaitdeal.ch/robots.txt",
          "error": "",
          "sitemaps": [
            "https://www.forfaitdeal.ch/sitemap.xml"
          ],
          "blocks_all": false,
          "rules_text": "User-agent: *\nAllow: /\n\nSitemap: https://www.forfaitdeal.ch/sitemap.xml\n",
          "status_code": 200
        },
        "status": "ok",
        "checked": true,
        "sitemap": {
          "ok": true,
          "checked": [
            {
              "ok": true,
              "url": "https://www.forfaitdeal.ch/sitemap.xml",
              "error": "",
              "root_tag": "urlset",
              "url_count": 28,
              "valid_xml": true,
              "status_code": 200,
              "child_checked": [],
              "child_sitemaps": [],
              "listed_sample_urls": [
                "https://www.forfaitdeal.ch/",
                "https://www.forfaitdeal.ch/comparateur",
                "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
                "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/roaming-suisse",
                "https://www.forfaitdeal.ch/blog",
                "https://www.forfaitdeal.ch/methodologie",
                "https://www.forfaitdeal.ch/confidentialite",
                "https://www.forfaitdeal.ch/blog/roaming-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
                "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
                "https://www.forfaitdeal.ch/blog/mvno-swisscom",
                "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
                "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/abonnement-mobile"
              ]
            }
          ],
          "selected": {
            "ok": true,
            "url": "https://www.forfaitdeal.ch/sitemap.xml",
            "error": "",
            "root_tag": "urlset",
            "url_count": 28,
            "valid_xml": true,
            "status_code": 200,
            "child_checked": [],
            "child_sitemaps": [],
            "listed_sample_urls": [
              "https://www.forfaitdeal.ch/",
              "https://www.forfaitdeal.ch/comparateur",
              "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
              "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
              "https://www.forfaitdeal.ch/roaming-suisse",
              "https://www.forfaitdeal.ch/blog",
              "https://www.forfaitdeal.ch/methodologie",
              "https://www.forfaitdeal.ch/confidentialite",
              "https://www.forfaitdeal.ch/blog/roaming-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
              "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
              "https://www.forfaitdeal.ch/blog/mvno-swisscom",
              "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
              "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/abonnement-mobile"
            ]
          }
        },
        "site_key": "forfaitdeal",
        "warnings": [
          "URL GSC redirigée: https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse -> https://www.forfaitdeal.ch/blog/abonnement-mobile",
          "LCP mobile élevé (2713 ms)"
        ],
        "pagespeed": {
          "ok": true,
          "cls": 0.066347,
          "inp_ms": 124.0,
          "lcp_ms": 2713.2865814806883,
          "mobile": {
            "ok": true,
            "cls": 0.066347,
            "inp_ms": 124.0,
            "lcp_ms": 2713.2865814806883,
            "source": "pagespeed_insights",
            "strategy": "mobile",
            "performance_score": 92.0
          },
          "source": "pagespeed_insights",
          "desktop": {
            "ok": true,
            "cls": 0.009877,
            "inp_ms": 80.0,
            "lcp_ms": 687.8982710848063,
            "source": "pagespeed_insights",
            "strategy": "desktop",
            "performance_score": 100.0
          },
          "strategy": "mobile",
          "performance_score": 92.0
        },
        "gsc_live_urls": {
          "urls": [
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "error": "",
              "clicks": 0,
              "position": 20.083333333333332,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "indexable": true,
              "top_query": "roaming suisse",
              "redirected": false,
              "impressions": 156,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.008849557522123894,
              "url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "error": "",
              "clicks": 1,
              "position": 16.38053097345133,
              "canonical": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "indexable": true,
              "top_query": "comparatif abonnement mobile suisse",
              "redirected": false,
              "impressions": 113,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "error": "",
              "clicks": 0,
              "position": 38.56521739130435,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "comparateur forfait mobile suisse",
              "redirected": false,
              "impressions": 69,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "error": "",
              "clicks": 0,
              "position": 9.67741935483871,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "indexable": true,
              "top_query": "forfait mobile 5g",
              "redirected": false,
              "impressions": 62,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "error": "",
              "clicks": 0,
              "position": 31.137931034482758,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "indexable": true,
              "top_query": "comparatif abonnement mobile suisse",
              "redirected": false,
              "impressions": 29,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "error": "",
              "clicks": 0,
              "position": 7.928571428571429,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "indexable": true,
              "top_query": "",
              "redirected": false,
              "impressions": 28,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 7.888888888888889,
              "canonical": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "indexable": true,
              "top_query": "comment changer d'opérateur mobile",
              "redirected": false,
              "impressions": 27,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "error": "",
              "clicks": 0,
              "position": 10.318181818181818,
              "canonical": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "final_url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "indexable": true,
              "top_query": "swisscom résiliation",
              "redirected": false,
              "impressions": 22,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 12.285714285714286,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "",
              "redirected": true,
              "impressions": 14,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "error": "",
              "clicks": 0,
              "position": 18.0,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "indexable": true,
              "top_query": "esim suisse",
              "redirected": false,
              "impressions": 13,
              "status_code": 200
            }
          ],
          "source": "gsc_pages_28d",
          "checked": true,
          "broken_urls": [],
          "broken_count": 0,
          "checked_count": 10,
          "redirected_urls": [
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 12.285714285714286,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "",
              "redirected": true,
              "impressions": 14,
              "status_code": 200
            }
          ],
          "redirected_count": 1,
          "snapshot_saved_at": "2026-05-25T18:15:05.342876Z"
        },
        "blocking_issues": [],
        "safe_to_optimize": true,
        "sitemap_coverage": {
          "checked": true,
          "missing_urls": [],
          "expected_urls": [
            "https://www.forfaitdeal.ch",
            "https://www.forfaitdeal.ch/blog"
          ],
          "listed_url_sample_size": 28
        },
        "deployment_health": {
          "checked": false
        },
        "technical_health_score": 90
      }
    },
    {
      "id": 955,
      "site_key": "forfaitdeal",
      "source_type": "workflow_state",
      "subject_key": "recent_events",
      "payload_json": {
        "events": [
          {
            "type": "hermes_content_lifecycle",
            "payload": {
              "merge_count": 0,
              "watch_count": 4,
              "create_count": 1,
              "deleted_count": 0,
              "optimize_count": 5
            },
            "recorded_at": "2026-05-24T20:15:12.970327Z"
          },
          {
            "type": "hermes_daily_feedback_learning",
            "payload": {
              "sop_name": "adaptive-feedback-playbook",
              "lessons_created": 2
            },
            "recorded_at": "2026-05-25T00:00:19.240096Z"
          },
          {
            "type": "hermes_content_pipeline",
            "payload": {
              "slug": "forfait-mobile-suisse",
              "topic": "forfait mobile suisse",
              "queue_status": "scheduled"
            },
            "recorded_at": "2026-05-25T00:00:20.593329Z"
          },
          {
            "type": "hermes_content_pipeline",
            "payload": {
              "slug": "comparatif-forfait-mobile-suisse",
              "topic": "comparatif forfait mobile suisse",
              "queue_status": "scheduled"
            },
            "recorded_at": "2026-05-25T00:00:31.051477Z"
          },
          {
            "type": "hermes_content_pipeline",
            "payload": {
              "slug": "meilleur-forfait-mobile-suisse",
              "topic": "meilleur forfait mobile suisse",
              "queue_status": "scheduled"
            },
            "recorded_at": "2026-05-25T00:00:41.276410Z"
          },
          {
            "type": "hermes_content_pipeline",
            "payload": {
              "slug": "roaming-suisse-forfait",
              "topic": "roaming suisse forfait",
              "queue_status": "scheduled"
            },
            "recorded_at": "2026-05-25T00:00:41.452249Z"
          },
          {
            "type": "hermes_content_pipeline",
            "payload": {
              "slug": "roaming-suisse",
              "topic": "roaming suisse",
              "queue_status": "failed"
            },
            "recorded_at": "2026-05-25T00:00:51.652997Z"
          },
          {
            "type": "gsc_sync",
            "payload": {
              "pages_7d": 8,
              "pages_28d": 11,
              "queries_7d": 10,
              "queries_28d": 51,
              "page_query_28d": 63
            },
            "recorded_at": "2026-05-25T06:15:05.037850Z"
          },
          {
            "type": "gsc_sync",
            "payload": {
              "pages_7d": 8,
              "pages_28d": 11,
              "queries_7d": 10,
              "queries_28d": 51,
              "page_query_28d": 63
            },
            "recorded_at": "2026-05-25T12:15:05.221157Z"
          },
          {
            "type": "gsc_sync",
            "payload": {
              "pages_7d": 8,
              "pages_28d": 11,
              "queries_7d": 10,
              "queries_28d": 51,
              "page_query_28d": 63
            },
            "recorded_at": "2026-05-25T18:15:05.349864Z"
          }
        ]
      },
      "recorded_at": "2026-05-26 00:00:23.088888+00:00",
      "payload": {
        "events": [
          {
            "type": "hermes_content_lifecycle",
            "payload": {
              "merge_count": 0,
              "watch_count": 4,
              "create_count": 1,
              "deleted_count": 0,
              "optimize_count": 5
            },
            "recorded_at": "2026-05-24T20:15:12.970327Z"
          },
          {
            "type": "hermes_daily_feedback_learning",
            "payload": {
              "sop_name": "adaptive-feedback-playbook",
              "lessons_created": 2
            },
            "recorded_at": "2026-05-25T00:00:19.240096Z"
          },
          {
            "type": "hermes_content_pipeline",
            "payload": {
              "slug": "forfait-mobile-suisse",
              "topic": "forfait mobile suisse",
              "queue_status": "scheduled"
            },
            "recorded_at": "2026-05-25T00:00:20.593329Z"
          },
          {
            "type": "hermes_content_pipeline",
            "payload": {
              "slug": "comparatif-forfait-mobile-suisse",
              "topic": "comparatif forfait mobile suisse",
              "queue_status": "scheduled"
            },
            "recorded_at": "2026-05-25T00:00:31.051477Z"
          },
          {
            "type": "hermes_content_pipeline",
            "payload": {
              "slug": "meilleur-forfait-mobile-suisse",
              "topic": "meilleur forfait mobile suisse",
              "queue_status": "scheduled"
            },
            "recorded_at": "2026-05-25T00:00:41.276410Z"
          },
          {
            "type": "hermes_content_pipeline",
            "payload": {
              "slug": "roaming-suisse-forfait",
              "topic": "roaming suisse forfait",
              "queue_status": "scheduled"
            },
            "recorded_at": "2026-05-25T00:00:41.452249Z"
          },
          {
            "type": "hermes_content_pipeline",
            "payload": {
              "slug": "roaming-suisse",
              "topic": "roaming suisse",
              "queue_status": "failed"
            },
            "recorded_at": "2026-05-25T00:00:51.652997Z"
          },
          {
            "type": "gsc_sync",
            "payload": {
              "pages_7d": 8,
              "pages_28d": 11,
              "queries_7d": 10,
              "queries_28d": 51,
              "page_query_28d": 63
            },
            "recorded_at": "2026-05-25T06:15:05.037850Z"
          },
          {
            "type": "gsc_sync",
            "payload": {
              "pages_7d": 8,
              "pages_28d": 11,
              "queries_7d": 10,
              "queries_28d": 51,
              "page_query_28d": 63
            },
            "recorded_at": "2026-05-25T12:15:05.221157Z"
          },
          {
            "type": "gsc_sync",
            "payload": {
              "pages_7d": 8,
              "pages_28d": 11,
              "queries_7d": 10,
              "queries_28d": 51,
              "page_query_28d": 63
            },
            "recorded_at": "2026-05-25T18:15:05.349864Z"
          }
        ]
      }
    },
    {
      "id": 954,
      "site_key": "forfaitdeal",
      "source_type": "queue_state",
      "subject_key": "recent_queue",
      "payload_json": {
        "recent_rows": [
          {
            "id": 230,
            "slug": "roaming-suisse",
            "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/6gck8h49Ck4eZgEk5V5jpb84HTJ9",
            "status": "failed",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": null,
            "scheduled_at": "2026-05-13T07:00:00+00:00"
          },
          {
            "id": 103,
            "slug": "forfait-mobile-famille-suisse",
            "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/Dd6FLxAvJ7UjydbnkhWKSuJ3XJtC",
            "status": "failed",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": null,
            "scheduled_at": "2026-05-08T07:00:00+00:00"
          },
          {
            "id": 102,
            "slug": "portabilite-numero-mobile-suisse",
            "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/6zomyRRv68WhLxRpiJFMtjmgsxPP",
            "status": "failed",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": null,
            "scheduled_at": "2026-05-07T07:00:00+00:00"
          },
          {
            "id": 101,
            "slug": "swisscom-resiliation-abonnement",
            "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/GNScGHTdsrig2WoRZQsoutLjsMXq",
            "status": "failed",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": null,
            "scheduled_at": "2026-05-06T07:00:00+00:00"
          },
          {
            "id": 100,
            "slug": "quel-abonnement-swisscom-choisir",
            "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/bT9eWtPkK875DkLHcj1vV21i7xC7",
            "status": "failed",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": null,
            "scheduled_at": "2026-05-05T07:00:00+00:00"
          },
          {
            "id": 99,
            "slug": "mvno-swisscom",
            "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/34hpo31aSd4WgYCmgXXpepK453Hq",
            "status": "failed",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": null,
            "scheduled_at": "2026-05-04T07:00:00+00:00"
          },
          {
            "id": 89,
            "slug": "comparatif-abonnement-mobile-suisse",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-04-21",
            "scheduled_at": null
          },
          {
            "id": 88,
            "slug": "abonnement-mobile",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-03-31",
            "scheduled_at": null
          },
          {
            "id": 23,
            "slug": "forfait-mobile-suisse-roaming-europe",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-04-21",
            "scheduled_at": null
          },
          {
            "id": 22,
            "slug": "forfait-mobile-sans-engagement-suisse",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-04-21",
            "scheduled_at": null
          },
          {
            "id": 21,
            "slug": "forfait-mobile-5g-suisse",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-04-21",
            "scheduled_at": null
          },
          {
            "id": 20,
            "slug": "forfait-esim-suisse",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-04-21",
            "scheduled_at": null
          },
          {
            "id": 19,
            "slug": "forfait-data-suisse",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-04-21",
            "scheduled_at": null
          },
          {
            "id": 18,
            "slug": "roaming-suisse-forfait",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-05-02",
            "scheduled_at": null
          },
          {
            "id": 17,
            "slug": "meilleur-forfait-mobile-suisse",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-05-02",
            "scheduled_at": null
          },
          {
            "id": 16,
            "slug": "forfait-mobile-suisse",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-05-02",
            "scheduled_at": null
          },
          {
            "id": 15,
            "slug": "comparatif-forfait-mobile-suisse",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-05-02",
            "scheduled_at": null
          }
        ]
      },
      "recorded_at": "2026-05-26 00:00:23.049343+00:00",
      "payload": {
        "recent_rows": [
          {
            "id": 230,
            "slug": "roaming-suisse",
            "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/6gck8h49Ck4eZgEk5V5jpb84HTJ9",
            "status": "failed",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": null,
            "scheduled_at": "2026-05-13T07:00:00+00:00"
          },
          {
            "id": 103,
            "slug": "forfait-mobile-famille-suisse",
            "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/Dd6FLxAvJ7UjydbnkhWKSuJ3XJtC",
            "status": "failed",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": null,
            "scheduled_at": "2026-05-08T07:00:00+00:00"
          },
          {
            "id": 102,
            "slug": "portabilite-numero-mobile-suisse",
            "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/6zomyRRv68WhLxRpiJFMtjmgsxPP",
            "status": "failed",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": null,
            "scheduled_at": "2026-05-07T07:00:00+00:00"
          },
          {
            "id": 101,
            "slug": "swisscom-resiliation-abonnement",
            "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/GNScGHTdsrig2WoRZQsoutLjsMXq",
            "status": "failed",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": null,
            "scheduled_at": "2026-05-06T07:00:00+00:00"
          },
          {
            "id": 100,
            "slug": "quel-abonnement-swisscom-choisir",
            "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/bT9eWtPkK875DkLHcj1vV21i7xC7",
            "status": "failed",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": null,
            "scheduled_at": "2026-05-05T07:00:00+00:00"
          },
          {
            "id": 99,
            "slug": "mvno-swisscom",
            "error": "Vercel: ERROR — Command \"npm run build\" exited with 1\nLogs : https://vercel.com/anges-projects-a4da2420/comparateur-mobile/34hpo31aSd4WgYCmgXXpepK453Hq",
            "status": "failed",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": null,
            "scheduled_at": "2026-05-04T07:00:00+00:00"
          },
          {
            "id": 89,
            "slug": "comparatif-abonnement-mobile-suisse",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-04-21",
            "scheduled_at": null
          },
          {
            "id": 88,
            "slug": "abonnement-mobile",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-03-31",
            "scheduled_at": null
          },
          {
            "id": 23,
            "slug": "forfait-mobile-suisse-roaming-europe",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-04-21",
            "scheduled_at": null
          },
          {
            "id": 22,
            "slug": "forfait-mobile-sans-engagement-suisse",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-04-21",
            "scheduled_at": null
          },
          {
            "id": 21,
            "slug": "forfait-mobile-5g-suisse",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-04-21",
            "scheduled_at": null
          },
          {
            "id": 20,
            "slug": "forfait-esim-suisse",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-04-21",
            "scheduled_at": null
          },
          {
            "id": 19,
            "slug": "forfait-data-suisse",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-04-21",
            "scheduled_at": null
          },
          {
            "id": 18,
            "slug": "roaming-suisse-forfait",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-05-02",
            "scheduled_at": null
          },
          {
            "id": 17,
            "slug": "meilleur-forfait-mobile-suisse",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-05-02",
            "scheduled_at": null
          },
          {
            "id": 16,
            "slug": "forfait-mobile-suisse",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-05-02",
            "scheduled_at": null
          },
          {
            "id": 15,
            "slug": "comparatif-forfait-mobile-suisse",
            "error": null,
            "status": "published",
            "attempts": 0,
            "vercel_ok": 0,
            "gsc_indexed": 0,
            "published_at": "2026-05-02",
            "scheduled_at": null
          }
        ]
      }
    },
    {
      "id": 953,
      "site_key": "forfaitdeal",
      "source_type": "gsc_snapshot",
      "subject_key": "pages_28d",
      "payload_json": {
        "saved_at": "2026-05-25T18:15:05.342876Z",
        "top_pages": [
          {
            "ctr": 0.0,
            "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
            "clicks": 0,
            "position": 20.083333333333332,
            "top_query": "roaming suisse",
            "impressions": 156
          },
          {
            "ctr": 0.008849557522123894,
            "page": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
            "clicks": 1,
            "position": 16.38053097345133,
            "top_query": "comparatif abonnement mobile suisse",
            "impressions": 113
          },
          {
            "ctr": 0.0,
            "page": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
            "clicks": 0,
            "position": 38.56521739130435,
            "top_query": "comparateur forfait mobile suisse",
            "impressions": 69
          },
          {
            "ctr": 0.0,
            "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
            "clicks": 0,
            "position": 9.67741935483871,
            "top_query": "forfait mobile 5g",
            "impressions": 62
          },
          {
            "ctr": 0.0,
            "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
            "clicks": 0,
            "position": 31.137931034482758,
            "top_query": "comparatif abonnement mobile suisse",
            "impressions": 29
          }
        ],
        "top_queries": [
          {
            "ctr": 0.0,
            "query": "roaming suisse",
            "clicks": 0,
            "position": 16.796875,
            "impressions": 64
          },
          {
            "ctr": 0.0,
            "query": "comparatif abonnement mobile suisse",
            "clicks": 0,
            "position": 31.82608695652174,
            "impressions": 23
          },
          {
            "ctr": 0.0,
            "query": "comparateur forfait mobile suisse",
            "clicks": 0,
            "position": 44.411764705882355,
            "impressions": 17
          },
          {
            "ctr": 0.0,
            "query": "abonnement mobile suisse comparatif",
            "clicks": 0,
            "position": 27.46153846153846,
            "impressions": 13
          },
          {
            "ctr": 0.0,
            "query": "comparatif abonnement mobile",
            "clicks": 0,
            "position": 23.333333333333332,
            "impressions": 9
          },
          {
            "ctr": 0.0,
            "query": "meilleur offre mobile suisse",
            "clicks": 0,
            "position": 72.44444444444444,
            "impressions": 9
          },
          {
            "ctr": 0.0,
            "query": "forfait mobile 5g",
            "clicks": 0,
            "position": 11.125,
            "impressions": 8
          },
          {
            "ctr": 0.0,
            "query": "forfait mobile france suisse",
            "clicks": 0,
            "position": 61.0,
            "impressions": 8
          },
          {
            "ctr": 0.0,
            "query": "roaming en suisse",
            "clicks": 0,
            "position": 17.125,
            "impressions": 8
          },
          {
            "ctr": 0.0,
            "query": "abonnement 5g suisse",
            "clicks": 0,
            "position": 9.0,
            "impressions": 7
          }
        ]
      },
      "recorded_at": "2026-05-26 00:00:23.020468+00:00",
      "payload": {
        "saved_at": "2026-05-25T18:15:05.342876Z",
        "top_pages": [
          {
            "ctr": 0.0,
            "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
            "clicks": 0,
            "position": 20.083333333333332,
            "top_query": "roaming suisse",
            "impressions": 156
          },
          {
            "ctr": 0.008849557522123894,
            "page": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
            "clicks": 1,
            "position": 16.38053097345133,
            "top_query": "comparatif abonnement mobile suisse",
            "impressions": 113
          },
          {
            "ctr": 0.0,
            "page": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
            "clicks": 0,
            "position": 38.56521739130435,
            "top_query": "comparateur forfait mobile suisse",
            "impressions": 69
          },
          {
            "ctr": 0.0,
            "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
            "clicks": 0,
            "position": 9.67741935483871,
            "top_query": "forfait mobile 5g",
            "impressions": 62
          },
          {
            "ctr": 0.0,
            "page": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
            "clicks": 0,
            "position": 31.137931034482758,
            "top_query": "comparatif abonnement mobile suisse",
            "impressions": 29
          }
        ],
        "top_queries": [
          {
            "ctr": 0.0,
            "query": "roaming suisse",
            "clicks": 0,
            "position": 16.796875,
            "impressions": 64
          },
          {
            "ctr": 0.0,
            "query": "comparatif abonnement mobile suisse",
            "clicks": 0,
            "position": 31.82608695652174,
            "impressions": 23
          },
          {
            "ctr": 0.0,
            "query": "comparateur forfait mobile suisse",
            "clicks": 0,
            "position": 44.411764705882355,
            "impressions": 17
          },
          {
            "ctr": 0.0,
            "query": "abonnement mobile suisse comparatif",
            "clicks": 0,
            "position": 27.46153846153846,
            "impressions": 13
          },
          {
            "ctr": 0.0,
            "query": "comparatif abonnement mobile",
            "clicks": 0,
            "position": 23.333333333333332,
            "impressions": 9
          },
          {
            "ctr": 0.0,
            "query": "meilleur offre mobile suisse",
            "clicks": 0,
            "position": 72.44444444444444,
            "impressions": 9
          },
          {
            "ctr": 0.0,
            "query": "forfait mobile 5g",
            "clicks": 0,
            "position": 11.125,
            "impressions": 8
          },
          {
            "ctr": 0.0,
            "query": "forfait mobile france suisse",
            "clicks": 0,
            "position": 61.0,
            "impressions": 8
          },
          {
            "ctr": 0.0,
            "query": "roaming en suisse",
            "clicks": 0,
            "position": 17.125,
            "impressions": 8
          },
          {
            "ctr": 0.0,
            "query": "abonnement 5g suisse",
            "clicks": 0,
            "position": 9.0,
            "impressions": 7
          }
        ]
      }
    },
    {
      "id": 947,
      "site_key": "forfaitdeal",
      "source_type": "learningseo_site_feedback",
      "subject_key": "forfaitdeal",
      "payload_json": {
        "site_key": "forfaitdeal",
        "project_name": "ForfaitDeal",
        "applied_topics": [
          "fundamentals",
          "execution",
          "technical",
          "content",
          "links",
          "automation"
        ],
        "contradictions": [
          "Negative measured outcomes still exist. SOP confidence should not be raised until remeasurement confirms recovery."
        ],
        "sop_candidates": [
          "Before new draft creation, verify that the target intent is not already partially served by an existing URL.",
          "Block SOP confidence increases when the latest measured action in the same category is negative.",
          "Treat crawlability, indexation, and internal-link architecture as preconditions before content-scale actions.",
          "Prioritize title/H1/intent refreshes on visible pages before creating new pages for adjacent intents.",
          "Every new or refreshed priority page should receive a deliberate internal-link plan from existing related pages.",
          "Automated actions must emit events, measurements, and postmortems by default."
        ],
        "lessons_created": 7
      },
      "recorded_at": "2026-05-26 00:00:18.022875+00:00",
      "payload": {
        "site_key": "forfaitdeal",
        "project_name": "ForfaitDeal",
        "applied_topics": [
          "fundamentals",
          "execution",
          "technical",
          "content",
          "links",
          "automation"
        ],
        "contradictions": [
          "Negative measured outcomes still exist. SOP confidence should not be raised until remeasurement confirms recovery."
        ],
        "sop_candidates": [
          "Before new draft creation, verify that the target intent is not already partially served by an existing URL.",
          "Block SOP confidence increases when the latest measured action in the same category is negative.",
          "Treat crawlability, indexation, and internal-link architecture as preconditions before content-scale actions.",
          "Prioritize title/H1/intent refreshes on visible pages before creating new pages for adjacent intents.",
          "Every new or refreshed priority page should receive a deliberate internal-link plan from existing related pages.",
          "Automated actions must emit events, measurements, and postmortems by default."
        ],
        "lessons_created": 7
      }
    },
    {
      "id": 942,
      "site_key": "forfaitdeal",
      "source_type": "technical_audit",
      "subject_key": "forfaitdeal",
      "payload_json": {
        "gsc": {
          "checked": false
        },
        "pages": [
          {
            "ok": true,
            "url": "https://www.forfaitdeal.ch",
            "error": "",
            "noindex": false,
            "canonical": "https://www.forfaitdeal.ch/",
            "final_url": "https://www.forfaitdeal.ch/",
            "indexable": true,
            "redirected": false,
            "robots_meta": "",
            "status_code": 200,
            "x_robots_tag": "",
            "redirect_chain": [],
            "robots_allowed": true,
            "canonical_present": true,
            "canonical_matches_url": true
          },
          {
            "ok": true,
            "url": "https://www.forfaitdeal.ch/blog",
            "error": "",
            "noindex": false,
            "canonical": "https://www.forfaitdeal.ch/blog",
            "final_url": "https://www.forfaitdeal.ch/blog",
            "indexable": true,
            "redirected": false,
            "robots_meta": "",
            "status_code": 200,
            "x_robots_tag": "",
            "redirect_chain": [],
            "robots_allowed": true,
            "canonical_present": true,
            "canonical_matches_url": true
          }
        ],
        "robots": {
          "ok": true,
          "url": "https://www.forfaitdeal.ch/robots.txt",
          "error": "",
          "sitemaps": [
            "https://www.forfaitdeal.ch/sitemap.xml"
          ],
          "blocks_all": false,
          "rules_text": "User-agent: *\nAllow: /\n\nSitemap: https://www.forfaitdeal.ch/sitemap.xml\n",
          "status_code": 200
        },
        "status": "ok",
        "checked": true,
        "sitemap": {
          "ok": true,
          "checked": [
            {
              "ok": true,
              "url": "https://www.forfaitdeal.ch/sitemap.xml",
              "error": "",
              "root_tag": "urlset",
              "url_count": 28,
              "valid_xml": true,
              "status_code": 200,
              "child_checked": [],
              "child_sitemaps": [],
              "listed_sample_urls": [
                "https://www.forfaitdeal.ch/",
                "https://www.forfaitdeal.ch/comparateur",
                "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
                "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/roaming-suisse",
                "https://www.forfaitdeal.ch/blog",
                "https://www.forfaitdeal.ch/methodologie",
                "https://www.forfaitdeal.ch/confidentialite",
                "https://www.forfaitdeal.ch/blog/roaming-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
                "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
                "https://www.forfaitdeal.ch/blog/mvno-swisscom",
                "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
                "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/abonnement-mobile"
              ]
            }
          ],
          "selected": {
            "ok": true,
            "url": "https://www.forfaitdeal.ch/sitemap.xml",
            "error": "",
            "root_tag": "urlset",
            "url_count": 28,
            "valid_xml": true,
            "status_code": 200,
            "child_checked": [],
            "child_sitemaps": [],
            "listed_sample_urls": [
              "https://www.forfaitdeal.ch/",
              "https://www.forfaitdeal.ch/comparateur",
              "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
              "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
              "https://www.forfaitdeal.ch/roaming-suisse",
              "https://www.forfaitdeal.ch/blog",
              "https://www.forfaitdeal.ch/methodologie",
              "https://www.forfaitdeal.ch/confidentialite",
              "https://www.forfaitdeal.ch/blog/roaming-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
              "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
              "https://www.forfaitdeal.ch/blog/mvno-swisscom",
              "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
              "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/abonnement-mobile"
            ]
          }
        },
        "site_key": "forfaitdeal",
        "warnings": [
          "URL GSC redirigée: https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse -> https://www.forfaitdeal.ch/blog/abonnement-mobile",
          "LCP mobile élevé (2766 ms)"
        ],
        "pagespeed": {
          "ok": true,
          "cls": 0.066347,
          "inp_ms": 94.0,
          "lcp_ms": 2766.414429814812,
          "mobile": {
            "ok": true,
            "cls": 0.066347,
            "inp_ms": 94.0,
            "lcp_ms": 2766.414429814812,
            "source": "pagespeed_insights",
            "strategy": "mobile",
            "performance_score": 91.0
          },
          "source": "pagespeed_insights",
          "desktop": {
            "ok": true,
            "cls": 0.009877,
            "inp_ms": 81.0,
            "lcp_ms": 716.8959849079871,
            "source": "pagespeed_insights",
            "strategy": "desktop",
            "performance_score": 99.0
          },
          "strategy": "mobile",
          "performance_score": 91.0
        },
        "gsc_live_urls": {
          "urls": [
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "error": "",
              "clicks": 0,
              "position": 18.53846153846154,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "indexable": true,
              "top_query": "roaming suisse",
              "redirected": false,
              "impressions": 130,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.007874015748031496,
              "url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "error": "",
              "clicks": 1,
              "position": 15.62992125984252,
              "canonical": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "indexable": true,
              "top_query": "comparatif abonnement mobile suisse",
              "redirected": false,
              "impressions": 127,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "error": "",
              "clicks": 0,
              "position": 35.19736842105263,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "comparateur forfait mobile suisse",
              "redirected": false,
              "impressions": 76,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "error": "",
              "clicks": 0,
              "position": 9.742857142857142,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "indexable": true,
              "top_query": "forfait mobile 5g",
              "redirected": false,
              "impressions": 70,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "error": "",
              "clicks": 0,
              "position": 7.8125,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "indexable": true,
              "top_query": "",
              "redirected": false,
              "impressions": 32,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "error": "",
              "clicks": 0,
              "position": 30.870967741935484,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "indexable": true,
              "top_query": "comparatif abonnement mobile suisse",
              "redirected": false,
              "impressions": 31,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 8.318181818181818,
              "canonical": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "indexable": true,
              "top_query": "comment changer d'opérateur mobile",
              "redirected": false,
              "impressions": 22,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "error": "",
              "clicks": 0,
              "position": 10.318181818181818,
              "canonical": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "final_url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "indexable": true,
              "top_query": "swisscom résiliation",
              "redirected": false,
              "impressions": 22,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 16.125,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "abo téléphone mobile",
              "redirected": true,
              "impressions": 16,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "error": "",
              "clicks": 0,
              "position": 17.0625,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "indexable": true,
              "top_query": "esim suisse",
              "redirected": false,
              "impressions": 16,
              "status_code": 200
            }
          ],
          "source": "gsc_pages_28d",
          "checked": true,
          "broken_urls": [],
          "broken_count": 0,
          "checked_count": 10,
          "redirected_urls": [
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 16.125,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "abo téléphone mobile",
              "redirected": true,
              "impressions": 16,
              "status_code": 200
            }
          ],
          "redirected_count": 1,
          "snapshot_saved_at": "2026-05-22T18:15:04.910024Z"
        },
        "blocking_issues": [],
        "safe_to_optimize": true,
        "sitemap_coverage": {
          "checked": true,
          "missing_urls": [],
          "expected_urls": [
            "https://www.forfaitdeal.ch",
            "https://www.forfaitdeal.ch/blog"
          ],
          "listed_url_sample_size": 28
        },
        "deployment_health": {
          "checked": false
        },
        "technical_health_score": 90
      },
      "recorded_at": "2026-05-25 00:07:50.978196+00:00",
      "payload": {
        "gsc": {
          "checked": false
        },
        "pages": [
          {
            "ok": true,
            "url": "https://www.forfaitdeal.ch",
            "error": "",
            "noindex": false,
            "canonical": "https://www.forfaitdeal.ch/",
            "final_url": "https://www.forfaitdeal.ch/",
            "indexable": true,
            "redirected": false,
            "robots_meta": "",
            "status_code": 200,
            "x_robots_tag": "",
            "redirect_chain": [],
            "robots_allowed": true,
            "canonical_present": true,
            "canonical_matches_url": true
          },
          {
            "ok": true,
            "url": "https://www.forfaitdeal.ch/blog",
            "error": "",
            "noindex": false,
            "canonical": "https://www.forfaitdeal.ch/blog",
            "final_url": "https://www.forfaitdeal.ch/blog",
            "indexable": true,
            "redirected": false,
            "robots_meta": "",
            "status_code": 200,
            "x_robots_tag": "",
            "redirect_chain": [],
            "robots_allowed": true,
            "canonical_present": true,
            "canonical_matches_url": true
          }
        ],
        "robots": {
          "ok": true,
          "url": "https://www.forfaitdeal.ch/robots.txt",
          "error": "",
          "sitemaps": [
            "https://www.forfaitdeal.ch/sitemap.xml"
          ],
          "blocks_all": false,
          "rules_text": "User-agent: *\nAllow: /\n\nSitemap: https://www.forfaitdeal.ch/sitemap.xml\n",
          "status_code": 200
        },
        "status": "ok",
        "checked": true,
        "sitemap": {
          "ok": true,
          "checked": [
            {
              "ok": true,
              "url": "https://www.forfaitdeal.ch/sitemap.xml",
              "error": "",
              "root_tag": "urlset",
              "url_count": 28,
              "valid_xml": true,
              "status_code": 200,
              "child_checked": [],
              "child_sitemaps": [],
              "listed_sample_urls": [
                "https://www.forfaitdeal.ch/",
                "https://www.forfaitdeal.ch/comparateur",
                "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
                "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/roaming-suisse",
                "https://www.forfaitdeal.ch/blog",
                "https://www.forfaitdeal.ch/methodologie",
                "https://www.forfaitdeal.ch/confidentialite",
                "https://www.forfaitdeal.ch/blog/roaming-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
                "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
                "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
                "https://www.forfaitdeal.ch/blog/mvno-swisscom",
                "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
                "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
                "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
                "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
                "https://www.forfaitdeal.ch/blog/abonnement-mobile"
              ]
            }
          ],
          "selected": {
            "ok": true,
            "url": "https://www.forfaitdeal.ch/sitemap.xml",
            "error": "",
            "root_tag": "urlset",
            "url_count": 28,
            "valid_xml": true,
            "status_code": 200,
            "child_checked": [],
            "child_sitemaps": [],
            "listed_sample_urls": [
              "https://www.forfaitdeal.ch/",
              "https://www.forfaitdeal.ch/comparateur",
              "https://www.forfaitdeal.ch/abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/comparateur-abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/forfait-mobile-sans-engagement",
              "https://www.forfaitdeal.ch/forfait-mobile-5g-suisse",
              "https://www.forfaitdeal.ch/roaming-suisse",
              "https://www.forfaitdeal.ch/blog",
              "https://www.forfaitdeal.ch/methodologie",
              "https://www.forfaitdeal.ch/confidentialite",
              "https://www.forfaitdeal.ch/blog/roaming-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-famille-suisse",
              "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "https://www.forfaitdeal.ch/blog/quel-abonnement-swisscom-choisir",
              "https://www.forfaitdeal.ch/blog/mvno-swisscom",
              "https://www.forfaitdeal.ch/blog/meilleur-forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/roaming-suisse-forfait",
              "https://www.forfaitdeal.ch/blog/comparatif-forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "https://www.forfaitdeal.ch/blog/abonnement-mobile"
            ]
          }
        },
        "site_key": "forfaitdeal",
        "warnings": [
          "URL GSC redirigée: https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse -> https://www.forfaitdeal.ch/blog/abonnement-mobile",
          "LCP mobile élevé (2766 ms)"
        ],
        "pagespeed": {
          "ok": true,
          "cls": 0.066347,
          "inp_ms": 94.0,
          "lcp_ms": 2766.414429814812,
          "mobile": {
            "ok": true,
            "cls": 0.066347,
            "inp_ms": 94.0,
            "lcp_ms": 2766.414429814812,
            "source": "pagespeed_insights",
            "strategy": "mobile",
            "performance_score": 91.0
          },
          "source": "pagespeed_insights",
          "desktop": {
            "ok": true,
            "cls": 0.009877,
            "inp_ms": 81.0,
            "lcp_ms": 716.8959849079871,
            "source": "pagespeed_insights",
            "strategy": "desktop",
            "performance_score": 99.0
          },
          "strategy": "mobile",
          "performance_score": 91.0
        },
        "gsc_live_urls": {
          "urls": [
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "error": "",
              "clicks": 0,
              "position": 18.53846153846154,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-suisse-roaming-europe",
              "indexable": true,
              "top_query": "roaming suisse",
              "redirected": false,
              "impressions": 130,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.007874015748031496,
              "url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "error": "",
              "clicks": 1,
              "position": 15.62992125984252,
              "canonical": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/comparatif-abonnement-mobile-suisse",
              "indexable": true,
              "top_query": "comparatif abonnement mobile suisse",
              "redirected": false,
              "impressions": 127,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "error": "",
              "clicks": 0,
              "position": 35.19736842105263,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "comparateur forfait mobile suisse",
              "redirected": false,
              "impressions": 76,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "error": "",
              "clicks": 0,
              "position": 9.742857142857142,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-5g-suisse",
              "indexable": true,
              "top_query": "forfait mobile 5g",
              "redirected": false,
              "impressions": 70,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "error": "",
              "clicks": 0,
              "position": 7.8125,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-data-suisse",
              "indexable": true,
              "top_query": "",
              "redirected": false,
              "impressions": 32,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "error": "",
              "clicks": 0,
              "position": 30.870967741935484,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-mobile-sans-engagement-suisse",
              "indexable": true,
              "top_query": "comparatif abonnement mobile suisse",
              "redirected": false,
              "impressions": 31,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 8.318181818181818,
              "canonical": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/portabilite-numero-mobile-suisse",
              "indexable": true,
              "top_query": "comment changer d'opérateur mobile",
              "redirected": false,
              "impressions": 22,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "error": "",
              "clicks": 0,
              "position": 10.318181818181818,
              "canonical": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "final_url": "https://www.forfaitdeal.ch/blog/swisscom-resiliation-abonnement",
              "indexable": true,
              "top_query": "swisscom résiliation",
              "redirected": false,
              "impressions": 22,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 16.125,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "abo téléphone mobile",
              "redirected": true,
              "impressions": 16,
              "status_code": 200
            },
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "error": "",
              "clicks": 0,
              "position": 17.0625,
              "canonical": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "final_url": "https://www.forfaitdeal.ch/blog/forfait-esim-suisse",
              "indexable": true,
              "top_query": "esim suisse",
              "redirected": false,
              "impressions": 16,
              "status_code": 200
            }
          ],
          "source": "gsc_pages_28d",
          "checked": true,
          "broken_urls": [],
          "broken_count": 0,
          "checked_count": 10,
          "redirected_urls": [
            {
              "ok": true,
              "ctr": 0.0,
              "url": "https://www.forfaitdeal.ch/blog/abonnement-mobile-suisse",
              "error": "",
              "clicks": 0,
              "position": 16.125,
              "canonical": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "final_url": "https://www.forfaitdeal.ch/blog/abonnement-mobile",
              "indexable": true,
              "top_query": "abo téléphone mobile",
              "redirected": true,
              "impressions": 16,
              "status_code": 200
            }
          ],
          "redirected_count": 1,
          "snapshot_saved_at": "2026-05-22T18:15:04.910024Z"
        },
        "blocking_issues": [],
        "safe_to_optimize": true,
        "sitemap_coverage": {
          "checked": true,
          "missing_urls": [],
          "expected_urls": [
            "https://www.forfaitdeal.ch",
            "https://www.forfaitdeal.ch/blog"
          ],
          "listed_url_sample_size": 28
        },
        "deployment_health": {
          "checked": false
        },
        "technical_health_score": 90
      }
    }
  ]
}