LLM Pack optiprime
Site : optiprime
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": "optiprime",
"market": {
"primary_market": "ch",
"target_countries": [
"ch",
"fr"
],
"seo_scope": "national"
},
"context_pack": {
"site_key": "optiprime",
"task": "external llm pack",
"lessons": [
{
"id": 14,
"category": "measurement",
"lesson": "Toujours mesurer après action.",
"confidence": "high",
"status": "validated"
},
{
"id": 17,
"category": "measurement",
"lesson": "Measured SEO actions are generating positive post-action deltas. Increase trust in SOPs that led to these actions.",
"confidence": "high",
"status": "validated"
},
{
"id": 18,
"category": "measurement",
"lesson": "Mesurer après publication améliore la qualité des SOP.",
"confidence": "high",
"status": "validated"
},
{
"id": 10,
"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",
"status": "deprecated"
},
{
"id": 15,
"category": "postmortem",
"lesson": "A measured SEO action produced a negative post-action delta. Do not reinforce this SOP until the hypothesis, page scope, or review window is revised.",
"confidence": "high",
"status": "draft"
},
{
"id": 211,
"site_key": "optiprime",
"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.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"clicks": 0,
"position": 28.569573283858997,
"top_query": "comparer assurance obligatoire",
"impressions": 539
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog",
"clicks": 0,
"position": 28.516666666666666,
"top_query": "classement assurance de base",
"impressions": 480
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"clicks": 0,
"position": 19.83404255319149,
"top_query": "classement assurance de base",
"impressions": 235
},
{
"ctr": 0.0064516129032258064,
"page": "https://www.optiprime.ch/blog/assurance-maladie",
"clicks": 1,
"position": 22.051612903225806,
"top_query": "guide assurance maladie suisse",
"impressions": 155
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"clicks": 0,
"position": 57.29059829059829,
"top_query": "comparaison caisses maladie suisse",
"impressions": 117
}
]
},
"created_at": "2026-06-15 00:00:14.164331+00:00",
"updated_at": "2026-06-15 00:00:15.607574+00:00",
"details": {
"pages": [
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"clicks": 0,
"position": 28.569573283858997,
"top_query": "comparer assurance obligatoire",
"impressions": 539
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog",
"clicks": 0,
"position": 28.516666666666666,
"top_query": "classement assurance de base",
"impressions": 480
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"clicks": 0,
"position": 19.83404255319149,
"top_query": "classement assurance de base",
"impressions": 235
},
{
"ctr": 0.0064516129032258064,
"page": "https://www.optiprime.ch/blog/assurance-maladie",
"clicks": 1,
"position": 22.051612903225806,
"top_query": "guide assurance maladie suisse",
"impressions": 155
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"clicks": 0,
"position": 57.29059829059829,
"top_query": "comparaison caisses maladie suisse",
"impressions": 117
}
]
}
},
{
"id": 124,
"site_key": "optiprime",
"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-16 00:00:12.014717+00:00",
"updated_at": "2026-05-16 00:00:12.496888+00:00",
"details": {
"failed_count": 0,
"queued_count": 5
}
}
],
"sops": [
{
"id": 8,
"name": "adaptive-feedback-playbook",
"scope": "site",
"status": "deprecated",
"content": "Toujours mesurer après action."
}
],
"recent_memory": [
{
"id": 369,
"site_key": "optiprime",
"category": "routine",
"action": "daily_feedback_learning",
"target": "optiprime",
"outcome": "1 lessons derived",
"quality": "good",
"details_json": {
"sop": {
"sop": {
"id": 216,
"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": 33,
"site_key": "optiprime",
"created_at": "2026-06-15 00:00:14.414644+00:00",
"updated_at": "2026-06-15 00:00:14.414644+00:00",
"confidence_label": "low",
"confidence_score": 0
},
"evidence": {
"lesson_count": 20,
"outcome_count": 10,
"observation_count": 10
},
"site_key": "optiprime"
},
"feedback": {
"site_key": "optiprime",
"gsc_pages": 5,
"queue_rows": 20,
"gsc_queries": 139,
"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 0x78c083b70950>: 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": "optiprime",
"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 0x78c083b73620>: Failed to establish a new connection: [Errno 111] Connection refused'))",
"alerts_ok": false,
"overview_ok": false,
"health_score": null
},
"project_name": "Optiprime"
}
},
"recorded_at": "2026-06-15 00:00:15.373817+00:00",
"details": {
"sop": {
"sop": {
"id": 216,
"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": 33,
"site_key": "optiprime",
"created_at": "2026-06-15 00:00:14.414644+00:00",
"updated_at": "2026-06-15 00:00:14.414644+00:00",
"confidence_label": "low",
"confidence_score": 0
},
"evidence": {
"lesson_count": 20,
"outcome_count": 10,
"observation_count": 10
},
"site_key": "optiprime"
},
"feedback": {
"site_key": "optiprime",
"gsc_pages": 5,
"queue_rows": 20,
"gsc_queries": 139,
"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 0x78c083b70950>: 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": "optiprime",
"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 0x78c083b73620>: Failed to establish a new connection: [Errno 111] Connection refused'))",
"alerts_ok": false,
"overview_ok": false,
"health_score": null
},
"project_name": "Optiprime"
}
}
},
{
"id": 362,
"site_key": "optiprime",
"category": "routine",
"action": "daily_feedback_learning",
"target": "optiprime",
"outcome": "1 lessons derived",
"quality": "good",
"details_json": {
"sop": {
"sop": {
"id": 207,
"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": 32,
"site_key": "optiprime",
"created_at": "2026-06-13 00:00:16.911191+00:00",
"updated_at": "2026-06-14 00:02:13.536335+00:00",
"confidence_label": "low",
"confidence_score": 0
},
"evidence": {
"lesson_count": 20,
"outcome_count": 10,
"observation_count": 10
},
"site_key": "optiprime"
},
"feedback": {
"site_key": "optiprime",
"gsc_pages": 5,
"queue_rows": 20,
"gsc_queries": 139,
"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 0x7377761aa2a0>: 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": "optiprime",
"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 0x7377761a8650>: Failed to establish a new connection: [Errno 111] Connection refused'))",
"alerts_ok": false,
"overview_ok": false,
"health_score": null
},
"project_name": "Optiprime"
}
},
"recorded_at": "2026-06-14 00:02:13.712844+00:00",
"details": {
"sop": {
"sop": {
"id": 207,
"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": 32,
"site_key": "optiprime",
"created_at": "2026-06-13 00:00:16.911191+00:00",
"updated_at": "2026-06-14 00:02:13.536335+00:00",
"confidence_label": "low",
"confidence_score": 0
},
"evidence": {
"lesson_count": 20,
"outcome_count": 10,
"observation_count": 10
},
"site_key": "optiprime"
},
"feedback": {
"site_key": "optiprime",
"gsc_pages": 5,
"queue_rows": 20,
"gsc_queries": 139,
"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 0x7377761aa2a0>: 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": "optiprime",
"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 0x7377761a8650>: Failed to establish a new connection: [Errno 111] Connection refused'))",
"alerts_ok": false,
"overview_ok": false,
"health_score": null
},
"project_name": "Optiprime"
}
}
},
{
"id": 355,
"site_key": "optiprime",
"category": "routine",
"action": "daily_feedback_learning",
"target": "optiprime",
"outcome": "1 lessons derived",
"quality": "good",
"details_json": {
"sop": {
"sop": {
"id": 207,
"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": 32,
"site_key": "optiprime",
"created_at": "2026-06-13 00:00:16.911191+00:00",
"updated_at": "2026-06-13 00:00:16.911191+00:00",
"confidence_label": "low",
"confidence_score": 0
},
"evidence": {
"lesson_count": 20,
"outcome_count": 10,
"observation_count": 10
},
"site_key": "optiprime"
},
"feedback": {
"site_key": "optiprime",
"gsc_pages": 5,
"queue_rows": 20,
"gsc_queries": 139,
"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 0x74bef65b20f0>: 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": "optiprime",
"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 0x74bef65b0470>: Failed to establish a new connection: [Errno 111] Connection refused'))",
"alerts_ok": false,
"overview_ok": false,
"health_score": null
},
"project_name": "Optiprime"
}
},
"recorded_at": "2026-06-13 00:00:17.391933+00:00",
"details": {
"sop": {
"sop": {
"id": 207,
"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": 32,
"site_key": "optiprime",
"created_at": "2026-06-13 00:00:16.911191+00:00",
"updated_at": "2026-06-13 00:00:16.911191+00:00",
"confidence_label": "low",
"confidence_score": 0
},
"evidence": {
"lesson_count": 20,
"outcome_count": 10,
"observation_count": 10
},
"site_key": "optiprime"
},
"feedback": {
"site_key": "optiprime",
"gsc_pages": 5,
"queue_rows": 20,
"gsc_queries": 139,
"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 0x74bef65b20f0>: 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": "optiprime",
"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 0x74bef65b0470>: Failed to establish a new connection: [Errno 111] Connection refused'))",
"alerts_ok": false,
"overview_ok": false,
"health_score": null
},
"project_name": "Optiprime"
}
}
},
{
"id": 348,
"site_key": "optiprime",
"category": "routine",
"action": "daily_feedback_learning",
"target": "optiprime",
"outcome": "1 lessons derived",
"quality": "good",
"details_json": {
"sop": {
"sop": {
"id": 198,
"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": 31,
"site_key": "optiprime",
"created_at": "2026-06-11 00:00:19.491880+00:00",
"updated_at": "2026-06-12 00:00:16.257620+00:00",
"confidence_label": "high",
"confidence_score": 100
},
"evidence": {
"lesson_count": 20,
"outcome_count": 10,
"observation_count": 10
},
"site_key": "optiprime"
},
"feedback": {
"site_key": "optiprime",
"gsc_pages": 5,
"queue_rows": 20,
"gsc_queries": 132,
"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 0x7784233be4e0>: 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": "optiprime",
"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 0x7784233bc860>: Failed to establish a new connection: [Errno 111] Connection refused'))",
"alerts_ok": false,
"overview_ok": false,
"health_score": null
},
"project_name": "Optiprime"
}
},
"recorded_at": "2026-06-12 00:00:16.572166+00:00",
"details": {
"sop": {
"sop": {
"id": 198,
"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": 31,
"site_key": "optiprime",
"created_at": "2026-06-11 00:00:19.491880+00:00",
"updated_at": "2026-06-12 00:00:16.257620+00:00",
"confidence_label": "high",
"confidence_score": 100
},
"evidence": {
"lesson_count": 20,
"outcome_count": 10,
"observation_count": 10
},
"site_key": "optiprime"
},
"feedback": {
"site_key": "optiprime",
"gsc_pages": 5,
"queue_rows": 20,
"gsc_queries": 132,
"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 0x7784233be4e0>: 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": "optiprime",
"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 0x7784233bc860>: Failed to establish a new connection: [Errno 111] Connection refused'))",
"alerts_ok": false,
"overview_ok": false,
"health_score": null
},
"project_name": "Optiprime"
}
}
},
{
"id": 341,
"site_key": "optiprime",
"category": "routine",
"action": "daily_feedback_learning",
"target": "optiprime",
"outcome": "1 lessons derived",
"quality": "good",
"details_json": {
"sop": {
"sop": {
"id": 198,
"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": 31,
"site_key": "optiprime",
"created_at": "2026-06-11 00:00:19.491880+00:00",
"updated_at": "2026-06-11 00:00:19.491880+00:00",
"confidence_label": "low",
"confidence_score": 0
},
"evidence": {
"lesson_count": 20,
"outcome_count": 10,
"observation_count": 10
},
"site_key": "optiprime"
},
"feedback": {
"site_key": "optiprime",
"gsc_pages": 5,
"queue_rows": 20,
"gsc_queries": 116,
"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 0x76f79e7aa5a0>: 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": "optiprime",
"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 0x76f79e7aba10>: Failed to establish a new connection: [Errno 111] Connection refused'))",
"alerts_ok": false,
"overview_ok": false,
"health_score": null
},
"project_name": "Optiprime"
}
},
"recorded_at": "2026-06-11 00:00:20.215968+00:00",
"details": {
"sop": {
"sop": {
"id": 198,
"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": 31,
"site_key": "optiprime",
"created_at": "2026-06-11 00:00:19.491880+00:00",
"updated_at": "2026-06-11 00:00:19.491880+00:00",
"confidence_label": "low",
"confidence_score": 0
},
"evidence": {
"lesson_count": 20,
"outcome_count": 10,
"observation_count": 10
},
"site_key": "optiprime"
},
"feedback": {
"site_key": "optiprime",
"gsc_pages": 5,
"queue_rows": 20,
"gsc_queries": 116,
"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 0x76f79e7aa5a0>: 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": "optiprime",
"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 0x76f79e7aba10>: Failed to establish a new connection: [Errno 111] Connection refused'))",
"alerts_ok": false,
"overview_ok": false,
"health_score": null
},
"project_name": "Optiprime"
}
}
},
{
"id": 334,
"site_key": "optiprime",
"category": "routine",
"action": "daily_feedback_learning",
"target": "optiprime",
"outcome": "1 lessons derived",
"quality": "good",
"details_json": {
"sop": {
"sop": {
"id": 188,
"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": 30,
"site_key": "optiprime",
"created_at": "2026-06-09 00:00:18.456194+00:00",
"updated_at": "2026-06-10 00:00:16.537695+00:00",
"confidence_label": "low",
"confidence_score": 0
},
"evidence": {
"lesson_count": 20,
"outcome_count": 10,
"observation_count": 10
},
"site_key": "optiprime"
},
"feedback": {
"site_key": "optiprime",
"gsc_pages": 5,
"queue_rows": 20,
"gsc_queries": 114,
"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 0x7d37255c6330>: 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": "optiprime",
"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 0x7d37255c46b0>: Failed to establish a new connection: [Errno 111] Connection refused'))",
"alerts_ok": false,
"overview_ok": false,
"health_score": null
},
"project_name": "Optiprime"
}
},
"recorded_at": "2026-06-10 00:00:17.436672+00:00",
"details": {
"sop": {
"sop": {
"id": 188,
"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": 30,
"site_key": "optiprime",
"created_at": "2026-06-09 00:00:18.456194+00:00",
"updated_at": "2026-06-10 00:00:16.537695+00:00",
"confidence_label": "low",
"confidence_score": 0
},
"evidence": {
"lesson_count": 20,
"outcome_count": 10,
"observation_count": 10
},
"site_key": "optiprime"
},
"feedback": {
"site_key": "optiprime",
"gsc_pages": 5,
"queue_rows": 20,
"gsc_queries": 114,
"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 0x7d37255c6330>: 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": "optiprime",
"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 0x7d37255c46b0>: Failed to establish a new connection: [Errno 111] Connection refused'))",
"alerts_ok": false,
"overview_ok": false,
"health_score": null
},
"project_name": "Optiprime"
}
}
},
{
"id": 327,
"site_key": "optiprime",
"category": "routine",
"action": "daily_feedback_learning",
"target": "optiprime",
"outcome": "1 lessons derived",
"quality": "good",
"details_json": {
"sop": {
"sop": {
"id": 188,
"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": 30,
"site_key": "optiprime",
"created_at": "2026-06-09 00:00:18.456194+00:00",
"updated_at": "2026-06-09 00:00:18.456194+00:00",
"confidence_label": "low",
"confidence_score": 0
},
"evidence": {
"lesson_count": 20,
"outcome_count": 10,
"observation_count": 10
},
"site_key": "optiprime"
},
"feedback": {
"site_key": "optiprime",
"gsc_pages": 5,
"queue_rows": 20,
"gsc_queries": 111,
"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 0x761de5eca300>: 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": "optiprime",
"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 0x761de5ec8680>: Failed to establish a new connection: [Errno 111] Connection refused'))",
"alerts_ok": false,
"overview_ok": false,
"health_score": null
},
"project_name": "Optiprime"
}
},
"recorded_at": "2026-06-09 00:00:19.028437+00:00",
"details": {
"sop": {
"sop": {
"id": 188,
"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": 30,
"site_key": "optiprime",
"created_at": "2026-06-09 00:00:18.456194+00:00",
"updated_at": "2026-06-09 00:00:18.456194+00:00",
"confidence_label": "low",
"confidence_score": 0
},
"evidence": {
"lesson_count": 20,
"outcome_count": 10,
"observation_count": 10
},
"site_key": "optiprime"
},
"feedback": {
"site_key": "optiprime",
"gsc_pages": 5,
"queue_rows": 20,
"gsc_queries": 111,
"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 0x761de5eca300>: 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": "optiprime",
"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 0x761de5ec8680>: Failed to establish a new connection: [Errno 111] Connection refused'))",
"alerts_ok": false,
"overview_ok": false,
"health_score": null
},
"project_name": "Optiprime"
}
}
}
],
"recent_outcomes": [
{
"id": 391,
"site_key": "optiprime",
"outcome_type": "gsc_baseline",
"subject_key": "publish:meilleures-caisses-maladie-suisse-2026",
"metric_name": "position",
"metric_value": 0.0,
"payload_json": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026"
},
"recorded_at": "2026-06-15 09:00:04.063841+00:00",
"payload": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026"
}
},
{
"id": 390,
"site_key": "optiprime",
"outcome_type": "gsc_baseline",
"subject_key": "publish:meilleures-caisses-maladie-suisse-2026",
"metric_name": "ctr",
"metric_value": 0.0,
"payload_json": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026"
},
"recorded_at": "2026-06-15 09:00:04.036134+00:00",
"payload": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026"
}
},
{
"id": 389,
"site_key": "optiprime",
"outcome_type": "gsc_baseline",
"subject_key": "publish:meilleures-caisses-maladie-suisse-2026",
"metric_name": "impressions",
"metric_value": 0.0,
"payload_json": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026"
},
"recorded_at": "2026-06-15 09:00:03.998133+00:00",
"payload": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026"
}
},
{
"id": 388,
"site_key": "optiprime",
"outcome_type": "gsc_baseline",
"subject_key": "publish:meilleures-caisses-maladie-suisse-2026",
"metric_name": "clicks",
"metric_value": 0.0,
"payload_json": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026"
},
"recorded_at": "2026-06-15 09:00:03.971249+00:00",
"payload": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026"
}
},
{
"id": 387,
"site_key": "optiprime",
"outcome_type": "gsc_baseline",
"subject_key": "publish:lamal-suisse-pas-chere",
"metric_name": "position",
"metric_value": 0.0,
"payload_json": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/lamal-suisse-pas-chere"
},
"recorded_at": "2026-06-12 09:00:03.262460+00:00",
"payload": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/lamal-suisse-pas-chere"
}
}
],
"recent_observations": [
{
"id": 1541,
"site_key": "optiprime",
"source_type": "measurement_scheduled",
"subject_key": "publish:meilleures-caisses-maladie-suisse-2026",
"payload_json": {
"due_at": "2026-06-29T09:00:04.072926Z",
"details": {
"slug": "meilleures-caisses-maladie-suisse-2026",
"queue_id": 295
},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"action_type": "publish",
"measurement_id": 53
},
"recorded_at": "2026-06-15 09:00:04.150416+00:00",
"payload": {
"due_at": "2026-06-29T09:00:04.072926Z",
"details": {
"slug": "meilleures-caisses-maladie-suisse-2026",
"queue_id": 295
},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"action_type": "publish",
"measurement_id": 53
}
},
{
"id": 1537,
"site_key": "optiprime",
"source_type": "technical_audit",
"subject_key": "optiprime",
"payload_json": {
"gsc": {
"checked": false
},
"pages": [
{
"ok": true,
"url": "https://www.optiprime.ch",
"error": "",
"noindex": false,
"canonical": "https://www.optiprime.ch",
"final_url": "https://www.optiprime.ch/",
"indexable": true,
"redirected": false,
"robots_meta": "index, follow",
"status_code": 200,
"x_robots_tag": "",
"redirect_chain": [],
"robots_allowed": true,
"canonical_present": true,
"canonical_matches_url": true
},
{
"ok": true,
"url": "https://www.optiprime.ch/blog",
"error": "",
"noindex": false,
"canonical": "https://www.optiprime.ch/blog",
"final_url": "https://www.optiprime.ch/blog",
"indexable": true,
"redirected": false,
"robots_meta": "index, follow",
"status_code": 200,
"x_robots_tag": "",
"redirect_chain": [],
"robots_allowed": true,
"canonical_present": true,
"canonical_matches_url": true
}
],
"robots": {
"ok": true,
"url": "https://www.optiprime.ch/robots.txt",
"error": "",
"sitemaps": [
"https://www.optiprime.ch/sitemap.xml"
],
"blocks_all": false,
"rules_text": "User-Agent: *\nAllow: /\n\nHost: https://www.optiprime.ch\nSitemap: https://www.optiprime.ch/sitemap.xml\n",
"status_code": 200
},
"status": "ok",
"checked": true,
"sitemap": {
"ok": true,
"checked": [
{
"ok": true,
"url": "https://www.optiprime.ch/sitemap.xml",
"error": "",
"root_tag": "urlset",
"url_count": 20,
"valid_xml": true,
"status_code": 200,
"child_checked": [],
"child_sitemaps": [],
"listed_sample_urls": [
"https://www.optiprime.ch/",
"https://www.optiprime.ch/comparateur",
"https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-pas-chere",
"https://www.optiprime.ch/caisse-maladie-suisse-pas-chere",
"https://www.optiprime.ch/prime-assurance-maladie-2026",
"https://www.optiprime.ch/blog",
"https://www.optiprime.ch/methodologie",
"https://www.optiprime.ch/confidentialite",
"https://www.optiprime.ch/blog/lamal-suisse-pas-chere",
"https://www.optiprime.ch/blog/classement-assurance-de-base",
"https://www.optiprime.ch/blog/guide-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"https://www.optiprime.ch/blog/assurance-maladie-suisse-comparee",
"https://www.optiprime.ch/blog/changer-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleure-lamal-suisse",
"https://www.optiprime.ch/blog/comparaison-assurance-de-base",
"https://www.optiprime.ch/blog/comment-choisir-assurance-sante-suisse",
"https://www.optiprime.ch/blog/comparis-assurance-maladie"
]
}
],
"selected": {
"ok": true,
"url": "https://www.optiprime.ch/sitemap.xml",
"error": "",
"root_tag": "urlset",
"url_count": 20,
"valid_xml": true,
"status_code": 200,
"child_checked": [],
"child_sitemaps": [],
"listed_sample_urls": [
"https://www.optiprime.ch/",
"https://www.optiprime.ch/comparateur",
"https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-pas-chere",
"https://www.optiprime.ch/caisse-maladie-suisse-pas-chere",
"https://www.optiprime.ch/prime-assurance-maladie-2026",
"https://www.optiprime.ch/blog",
"https://www.optiprime.ch/methodologie",
"https://www.optiprime.ch/confidentialite",
"https://www.optiprime.ch/blog/lamal-suisse-pas-chere",
"https://www.optiprime.ch/blog/classement-assurance-de-base",
"https://www.optiprime.ch/blog/guide-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"https://www.optiprime.ch/blog/assurance-maladie-suisse-comparee",
"https://www.optiprime.ch/blog/changer-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleure-lamal-suisse",
"https://www.optiprime.ch/blog/comparaison-assurance-de-base",
"https://www.optiprime.ch/blog/comment-choisir-assurance-sante-suisse",
"https://www.optiprime.ch/blog/comparis-assurance-maladie"
]
}
},
"site_key": "optiprime",
"warnings": [
"LCP mobile élevé (3017 ms)"
],
"pagespeed": {
"ok": true,
"cls": 0.0,
"inp_ms": 86.0,
"lcp_ms": 3017.1922508440193,
"mobile": {
"ok": true,
"cls": 0.0,
"inp_ms": 86.0,
"lcp_ms": 3017.1922508440193,
"source": "pagespeed_insights",
"strategy": "mobile",
"performance_score": 90.0
},
"source": "pagespeed_insights",
"desktop": {
"ok": true,
"cls": 0.036173,
"inp_ms": 68.0,
"lcp_ms": 892.6987086694655,
"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.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"error": "",
"clicks": 0,
"position": 28.569573283858997,
"canonical": "https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"indexable": true,
"top_query": "comparer assurance obligatoire",
"redirected": false,
"impressions": 539,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog",
"error": "",
"clicks": 0,
"position": 28.516666666666666,
"canonical": "https://www.optiprime.ch/blog",
"final_url": "https://www.optiprime.ch/blog",
"indexable": true,
"top_query": "classement assurance de base",
"redirected": false,
"impressions": 480,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"error": "",
"clicks": 0,
"position": 19.83404255319149,
"canonical": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"final_url": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"indexable": true,
"top_query": "classement assurance de base",
"redirected": false,
"impressions": 235,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0064516129032258064,
"url": "https://www.optiprime.ch/blog/assurance-maladie",
"error": "",
"clicks": 1,
"position": 22.051612903225806,
"canonical": "https://www.optiprime.ch/assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/assurance-maladie",
"indexable": true,
"top_query": "guide assurance maladie suisse",
"redirected": false,
"impressions": 155,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"error": "",
"clicks": 0,
"position": 57.29059829059829,
"canonical": "https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"indexable": true,
"top_query": "comparaison caisses maladie suisse",
"redirected": false,
"impressions": 117,
"status_code": 200
}
],
"source": "gsc_pages_28d",
"checked": true,
"broken_urls": [],
"broken_count": 0,
"checked_count": 5,
"redirected_urls": [],
"redirected_count": 0,
"snapshot_saved_at": "2026-06-12T18:15:03.149498Z"
},
"blocking_issues": [],
"safe_to_optimize": true,
"sitemap_coverage": {
"checked": true,
"missing_urls": [],
"expected_urls": [
"https://www.optiprime.ch",
"https://www.optiprime.ch/blog"
],
"listed_url_sample_size": 20
},
"deployment_health": {
"checked": false
},
"technical_health_score": 90
},
"recorded_at": "2026-06-15 00:08:06.060407+00:00",
"payload": {
"gsc": {
"checked": false
},
"pages": [
{
"ok": true,
"url": "https://www.optiprime.ch",
"error": "",
"noindex": false,
"canonical": "https://www.optiprime.ch",
"final_url": "https://www.optiprime.ch/",
"indexable": true,
"redirected": false,
"robots_meta": "index, follow",
"status_code": 200,
"x_robots_tag": "",
"redirect_chain": [],
"robots_allowed": true,
"canonical_present": true,
"canonical_matches_url": true
},
{
"ok": true,
"url": "https://www.optiprime.ch/blog",
"error": "",
"noindex": false,
"canonical": "https://www.optiprime.ch/blog",
"final_url": "https://www.optiprime.ch/blog",
"indexable": true,
"redirected": false,
"robots_meta": "index, follow",
"status_code": 200,
"x_robots_tag": "",
"redirect_chain": [],
"robots_allowed": true,
"canonical_present": true,
"canonical_matches_url": true
}
],
"robots": {
"ok": true,
"url": "https://www.optiprime.ch/robots.txt",
"error": "",
"sitemaps": [
"https://www.optiprime.ch/sitemap.xml"
],
"blocks_all": false,
"rules_text": "User-Agent: *\nAllow: /\n\nHost: https://www.optiprime.ch\nSitemap: https://www.optiprime.ch/sitemap.xml\n",
"status_code": 200
},
"status": "ok",
"checked": true,
"sitemap": {
"ok": true,
"checked": [
{
"ok": true,
"url": "https://www.optiprime.ch/sitemap.xml",
"error": "",
"root_tag": "urlset",
"url_count": 20,
"valid_xml": true,
"status_code": 200,
"child_checked": [],
"child_sitemaps": [],
"listed_sample_urls": [
"https://www.optiprime.ch/",
"https://www.optiprime.ch/comparateur",
"https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-pas-chere",
"https://www.optiprime.ch/caisse-maladie-suisse-pas-chere",
"https://www.optiprime.ch/prime-assurance-maladie-2026",
"https://www.optiprime.ch/blog",
"https://www.optiprime.ch/methodologie",
"https://www.optiprime.ch/confidentialite",
"https://www.optiprime.ch/blog/lamal-suisse-pas-chere",
"https://www.optiprime.ch/blog/classement-assurance-de-base",
"https://www.optiprime.ch/blog/guide-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"https://www.optiprime.ch/blog/assurance-maladie-suisse-comparee",
"https://www.optiprime.ch/blog/changer-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleure-lamal-suisse",
"https://www.optiprime.ch/blog/comparaison-assurance-de-base",
"https://www.optiprime.ch/blog/comment-choisir-assurance-sante-suisse",
"https://www.optiprime.ch/blog/comparis-assurance-maladie"
]
}
],
"selected": {
"ok": true,
"url": "https://www.optiprime.ch/sitemap.xml",
"error": "",
"root_tag": "urlset",
"url_count": 20,
"valid_xml": true,
"status_code": 200,
"child_checked": [],
"child_sitemaps": [],
"listed_sample_urls": [
"https://www.optiprime.ch/",
"https://www.optiprime.ch/comparateur",
"https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-pas-chere",
"https://www.optiprime.ch/caisse-maladie-suisse-pas-chere",
"https://www.optiprime.ch/prime-assurance-maladie-2026",
"https://www.optiprime.ch/blog",
"https://www.optiprime.ch/methodologie",
"https://www.optiprime.ch/confidentialite",
"https://www.optiprime.ch/blog/lamal-suisse-pas-chere",
"https://www.optiprime.ch/blog/classement-assurance-de-base",
"https://www.optiprime.ch/blog/guide-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"https://www.optiprime.ch/blog/assurance-maladie-suisse-comparee",
"https://www.optiprime.ch/blog/changer-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleure-lamal-suisse",
"https://www.optiprime.ch/blog/comparaison-assurance-de-base",
"https://www.optiprime.ch/blog/comment-choisir-assurance-sante-suisse",
"https://www.optiprime.ch/blog/comparis-assurance-maladie"
]
}
},
"site_key": "optiprime",
"warnings": [
"LCP mobile élevé (3017 ms)"
],
"pagespeed": {
"ok": true,
"cls": 0.0,
"inp_ms": 86.0,
"lcp_ms": 3017.1922508440193,
"mobile": {
"ok": true,
"cls": 0.0,
"inp_ms": 86.0,
"lcp_ms": 3017.1922508440193,
"source": "pagespeed_insights",
"strategy": "mobile",
"performance_score": 90.0
},
"source": "pagespeed_insights",
"desktop": {
"ok": true,
"cls": 0.036173,
"inp_ms": 68.0,
"lcp_ms": 892.6987086694655,
"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.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"error": "",
"clicks": 0,
"position": 28.569573283858997,
"canonical": "https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"indexable": true,
"top_query": "comparer assurance obligatoire",
"redirected": false,
"impressions": 539,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog",
"error": "",
"clicks": 0,
"position": 28.516666666666666,
"canonical": "https://www.optiprime.ch/blog",
"final_url": "https://www.optiprime.ch/blog",
"indexable": true,
"top_query": "classement assurance de base",
"redirected": false,
"impressions": 480,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"error": "",
"clicks": 0,
"position": 19.83404255319149,
"canonical": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"final_url": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"indexable": true,
"top_query": "classement assurance de base",
"redirected": false,
"impressions": 235,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0064516129032258064,
"url": "https://www.optiprime.ch/blog/assurance-maladie",
"error": "",
"clicks": 1,
"position": 22.051612903225806,
"canonical": "https://www.optiprime.ch/assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/assurance-maladie",
"indexable": true,
"top_query": "guide assurance maladie suisse",
"redirected": false,
"impressions": 155,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"error": "",
"clicks": 0,
"position": 57.29059829059829,
"canonical": "https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"indexable": true,
"top_query": "comparaison caisses maladie suisse",
"redirected": false,
"impressions": 117,
"status_code": 200
}
],
"source": "gsc_pages_28d",
"checked": true,
"broken_urls": [],
"broken_count": 0,
"checked_count": 5,
"redirected_urls": [],
"redirected_count": 0,
"snapshot_saved_at": "2026-06-12T18:15:03.149498Z"
},
"blocking_issues": [],
"safe_to_optimize": true,
"sitemap_coverage": {
"checked": true,
"missing_urls": [],
"expected_urls": [
"https://www.optiprime.ch",
"https://www.optiprime.ch/blog"
],
"listed_url_sample_size": 20
},
"deployment_health": {
"checked": false
},
"technical_health_score": 90
}
},
{
"id": 1530,
"site_key": "optiprime",
"source_type": "technical_remediation",
"subject_key": "optiprime",
"payload_json": {
"ok": true,
"errors": [],
"actions": [
{
"type": "optimize_lcp",
"value": 3837.1,
"metric": "lcp_ms",
"target": "https://www.optiprime.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-06-15 00:05:28.378334+00:00",
"payload": {
"ok": true,
"errors": [],
"actions": [
{
"type": "optimize_lcp",
"value": 3837.1,
"metric": "lcp_ms",
"target": "https://www.optiprime.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": 1529,
"site_key": "optiprime",
"source_type": "technical_audit",
"subject_key": "optiprime",
"payload_json": {
"gsc": {
"ok": true,
"checked": true,
"message": "Connexion GSC OK",
"payload": {
"sample_rows": 1,
"properties_count": 5,
"resolved_property": "https://www.optiprime.ch"
},
"sitemap_url": "https://www.optiprime.ch/sitemap.xml",
"sitemap_submission_ready": true
},
"pages": [
{
"ok": true,
"url": "https://www.optiprime.ch",
"error": "",
"noindex": false,
"canonical": "https://www.optiprime.ch",
"final_url": "https://www.optiprime.ch/",
"indexable": true,
"redirected": false,
"robots_meta": "index, follow",
"status_code": 200,
"x_robots_tag": "",
"redirect_chain": [],
"robots_allowed": true,
"canonical_present": true,
"canonical_matches_url": true
},
{
"ok": true,
"url": "https://www.optiprime.ch/blog",
"error": "",
"noindex": false,
"canonical": "https://www.optiprime.ch/blog",
"final_url": "https://www.optiprime.ch/blog",
"indexable": true,
"redirected": false,
"robots_meta": "index, follow",
"status_code": 200,
"x_robots_tag": "",
"redirect_chain": [],
"robots_allowed": true,
"canonical_present": true,
"canonical_matches_url": true
}
],
"robots": {
"ok": true,
"url": "https://www.optiprime.ch/robots.txt",
"error": "",
"sitemaps": [
"https://www.optiprime.ch/sitemap.xml"
],
"blocks_all": false,
"rules_text": "User-Agent: *\nAllow: /\n\nHost: https://www.optiprime.ch\nSitemap: https://www.optiprime.ch/sitemap.xml\n",
"status_code": 200
},
"status": "ok",
"checked": true,
"sitemap": {
"ok": true,
"checked": [
{
"ok": true,
"url": "https://www.optiprime.ch/sitemap.xml",
"error": "",
"root_tag": "urlset",
"url_count": 20,
"valid_xml": true,
"status_code": 200,
"child_checked": [],
"child_sitemaps": [],
"listed_sample_urls": [
"https://www.optiprime.ch/",
"https://www.optiprime.ch/comparateur",
"https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-pas-chere",
"https://www.optiprime.ch/caisse-maladie-suisse-pas-chere",
"https://www.optiprime.ch/prime-assurance-maladie-2026",
"https://www.optiprime.ch/blog",
"https://www.optiprime.ch/methodologie",
"https://www.optiprime.ch/confidentialite",
"https://www.optiprime.ch/blog/lamal-suisse-pas-chere",
"https://www.optiprime.ch/blog/classement-assurance-de-base",
"https://www.optiprime.ch/blog/guide-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"https://www.optiprime.ch/blog/assurance-maladie-suisse-comparee",
"https://www.optiprime.ch/blog/changer-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleure-lamal-suisse",
"https://www.optiprime.ch/blog/comparaison-assurance-de-base",
"https://www.optiprime.ch/blog/comment-choisir-assurance-sante-suisse",
"https://www.optiprime.ch/blog/comparis-assurance-maladie"
]
}
],
"selected": {
"ok": true,
"url": "https://www.optiprime.ch/sitemap.xml",
"error": "",
"root_tag": "urlset",
"url_count": 20,
"valid_xml": true,
"status_code": 200,
"child_checked": [],
"child_sitemaps": [],
"listed_sample_urls": [
"https://www.optiprime.ch/",
"https://www.optiprime.ch/comparateur",
"https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-pas-chere",
"https://www.optiprime.ch/caisse-maladie-suisse-pas-chere",
"https://www.optiprime.ch/prime-assurance-maladie-2026",
"https://www.optiprime.ch/blog",
"https://www.optiprime.ch/methodologie",
"https://www.optiprime.ch/confidentialite",
"https://www.optiprime.ch/blog/lamal-suisse-pas-chere",
"https://www.optiprime.ch/blog/classement-assurance-de-base",
"https://www.optiprime.ch/blog/guide-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"https://www.optiprime.ch/blog/assurance-maladie-suisse-comparee",
"https://www.optiprime.ch/blog/changer-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleure-lamal-suisse",
"https://www.optiprime.ch/blog/comparaison-assurance-de-base",
"https://www.optiprime.ch/blog/comment-choisir-assurance-sante-suisse",
"https://www.optiprime.ch/blog/comparis-assurance-maladie"
]
}
},
"site_key": "optiprime",
"warnings": [
"LCP mobile élevé (3837 ms)"
],
"pagespeed": {
"ok": true,
"cls": 0.002186,
"inp_ms": 80.0,
"lcp_ms": 3837.1312615649126,
"mobile": {
"ok": true,
"cls": 0.002186,
"inp_ms": 80.0,
"lcp_ms": 3837.1312615649126,
"source": "pagespeed_insights",
"strategy": "mobile",
"performance_score": 85.0
},
"source": "pagespeed_insights",
"desktop": {
"ok": true,
"cls": 0.0,
"inp_ms": 90.0,
"lcp_ms": 898.6987086546874,
"source": "pagespeed_insights",
"strategy": "desktop",
"performance_score": 98.0
},
"strategy": "mobile",
"performance_score": 85.0
},
"gsc_live_urls": {
"urls": [
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"error": "",
"clicks": 0,
"position": 28.569573283858997,
"canonical": "https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"indexable": true,
"top_query": "comparer assurance obligatoire",
"redirected": false,
"impressions": 539,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog",
"error": "",
"clicks": 0,
"position": 28.516666666666666,
"canonical": "https://www.optiprime.ch/blog",
"final_url": "https://www.optiprime.ch/blog",
"indexable": true,
"top_query": "classement assurance de base",
"redirected": false,
"impressions": 480,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"error": "",
"clicks": 0,
"position": 19.83404255319149,
"canonical": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"final_url": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"indexable": true,
"top_query": "classement assurance de base",
"redirected": false,
"impressions": 235,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0064516129032258064,
"url": "https://www.optiprime.ch/blog/assurance-maladie",
"error": "",
"clicks": 1,
"position": 22.051612903225806,
"canonical": "https://www.optiprime.ch/assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/assurance-maladie",
"indexable": true,
"top_query": "guide assurance maladie suisse",
"redirected": false,
"impressions": 155,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"error": "",
"clicks": 0,
"position": 57.29059829059829,
"canonical": "https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"indexable": true,
"top_query": "comparaison caisses maladie suisse",
"redirected": false,
"impressions": 117,
"status_code": 200
}
],
"source": "gsc_pages_28d",
"checked": true,
"broken_urls": [],
"broken_count": 0,
"checked_count": 5,
"redirected_urls": [],
"redirected_count": 0,
"snapshot_saved_at": "2026-06-12T18:15:03.149498Z"
},
"blocking_issues": [],
"safe_to_optimize": true,
"sitemap_coverage": {
"checked": true,
"missing_urls": [],
"expected_urls": [
"https://www.optiprime.ch",
"https://www.optiprime.ch/blog"
],
"listed_url_sample_size": 20
},
"deployment_health": {
"checked": false
},
"technical_health_score": 90
},
"recorded_at": "2026-06-15 00:05:27.262580+00:00",
"payload": {
"gsc": {
"ok": true,
"checked": true,
"message": "Connexion GSC OK",
"payload": {
"sample_rows": 1,
"properties_count": 5,
"resolved_property": "https://www.optiprime.ch"
},
"sitemap_url": "https://www.optiprime.ch/sitemap.xml",
"sitemap_submission_ready": true
},
"pages": [
{
"ok": true,
"url": "https://www.optiprime.ch",
"error": "",
"noindex": false,
"canonical": "https://www.optiprime.ch",
"final_url": "https://www.optiprime.ch/",
"indexable": true,
"redirected": false,
"robots_meta": "index, follow",
"status_code": 200,
"x_robots_tag": "",
"redirect_chain": [],
"robots_allowed": true,
"canonical_present": true,
"canonical_matches_url": true
},
{
"ok": true,
"url": "https://www.optiprime.ch/blog",
"error": "",
"noindex": false,
"canonical": "https://www.optiprime.ch/blog",
"final_url": "https://www.optiprime.ch/blog",
"indexable": true,
"redirected": false,
"robots_meta": "index, follow",
"status_code": 200,
"x_robots_tag": "",
"redirect_chain": [],
"robots_allowed": true,
"canonical_present": true,
"canonical_matches_url": true
}
],
"robots": {
"ok": true,
"url": "https://www.optiprime.ch/robots.txt",
"error": "",
"sitemaps": [
"https://www.optiprime.ch/sitemap.xml"
],
"blocks_all": false,
"rules_text": "User-Agent: *\nAllow: /\n\nHost: https://www.optiprime.ch\nSitemap: https://www.optiprime.ch/sitemap.xml\n",
"status_code": 200
},
"status": "ok",
"checked": true,
"sitemap": {
"ok": true,
"checked": [
{
"ok": true,
"url": "https://www.optiprime.ch/sitemap.xml",
"error": "",
"root_tag": "urlset",
"url_count": 20,
"valid_xml": true,
"status_code": 200,
"child_checked": [],
"child_sitemaps": [],
"listed_sample_urls": [
"https://www.optiprime.ch/",
"https://www.optiprime.ch/comparateur",
"https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-pas-chere",
"https://www.optiprime.ch/caisse-maladie-suisse-pas-chere",
"https://www.optiprime.ch/prime-assurance-maladie-2026",
"https://www.optiprime.ch/blog",
"https://www.optiprime.ch/methodologie",
"https://www.optiprime.ch/confidentialite",
"https://www.optiprime.ch/blog/lamal-suisse-pas-chere",
"https://www.optiprime.ch/blog/classement-assurance-de-base",
"https://www.optiprime.ch/blog/guide-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"https://www.optiprime.ch/blog/assurance-maladie-suisse-comparee",
"https://www.optiprime.ch/blog/changer-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleure-lamal-suisse",
"https://www.optiprime.ch/blog/comparaison-assurance-de-base",
"https://www.optiprime.ch/blog/comment-choisir-assurance-sante-suisse",
"https://www.optiprime.ch/blog/comparis-assurance-maladie"
]
}
],
"selected": {
"ok": true,
"url": "https://www.optiprime.ch/sitemap.xml",
"error": "",
"root_tag": "urlset",
"url_count": 20,
"valid_xml": true,
"status_code": 200,
"child_checked": [],
"child_sitemaps": [],
"listed_sample_urls": [
"https://www.optiprime.ch/",
"https://www.optiprime.ch/comparateur",
"https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-pas-chere",
"https://www.optiprime.ch/caisse-maladie-suisse-pas-chere",
"https://www.optiprime.ch/prime-assurance-maladie-2026",
"https://www.optiprime.ch/blog",
"https://www.optiprime.ch/methodologie",
"https://www.optiprime.ch/confidentialite",
"https://www.optiprime.ch/blog/lamal-suisse-pas-chere",
"https://www.optiprime.ch/blog/classement-assurance-de-base",
"https://www.optiprime.ch/blog/guide-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"https://www.optiprime.ch/blog/assurance-maladie-suisse-comparee",
"https://www.optiprime.ch/blog/changer-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleure-lamal-suisse",
"https://www.optiprime.ch/blog/comparaison-assurance-de-base",
"https://www.optiprime.ch/blog/comment-choisir-assurance-sante-suisse",
"https://www.optiprime.ch/blog/comparis-assurance-maladie"
]
}
},
"site_key": "optiprime",
"warnings": [
"LCP mobile élevé (3837 ms)"
],
"pagespeed": {
"ok": true,
"cls": 0.002186,
"inp_ms": 80.0,
"lcp_ms": 3837.1312615649126,
"mobile": {
"ok": true,
"cls": 0.002186,
"inp_ms": 80.0,
"lcp_ms": 3837.1312615649126,
"source": "pagespeed_insights",
"strategy": "mobile",
"performance_score": 85.0
},
"source": "pagespeed_insights",
"desktop": {
"ok": true,
"cls": 0.0,
"inp_ms": 90.0,
"lcp_ms": 898.6987086546874,
"source": "pagespeed_insights",
"strategy": "desktop",
"performance_score": 98.0
},
"strategy": "mobile",
"performance_score": 85.0
},
"gsc_live_urls": {
"urls": [
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"error": "",
"clicks": 0,
"position": 28.569573283858997,
"canonical": "https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"indexable": true,
"top_query": "comparer assurance obligatoire",
"redirected": false,
"impressions": 539,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog",
"error": "",
"clicks": 0,
"position": 28.516666666666666,
"canonical": "https://www.optiprime.ch/blog",
"final_url": "https://www.optiprime.ch/blog",
"indexable": true,
"top_query": "classement assurance de base",
"redirected": false,
"impressions": 480,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"error": "",
"clicks": 0,
"position": 19.83404255319149,
"canonical": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"final_url": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"indexable": true,
"top_query": "classement assurance de base",
"redirected": false,
"impressions": 235,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0064516129032258064,
"url": "https://www.optiprime.ch/blog/assurance-maladie",
"error": "",
"clicks": 1,
"position": 22.051612903225806,
"canonical": "https://www.optiprime.ch/assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/assurance-maladie",
"indexable": true,
"top_query": "guide assurance maladie suisse",
"redirected": false,
"impressions": 155,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"error": "",
"clicks": 0,
"position": 57.29059829059829,
"canonical": "https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"indexable": true,
"top_query": "comparaison caisses maladie suisse",
"redirected": false,
"impressions": 117,
"status_code": 200
}
],
"source": "gsc_pages_28d",
"checked": true,
"broken_urls": [],
"broken_count": 0,
"checked_count": 5,
"redirected_urls": [],
"redirected_count": 0,
"snapshot_saved_at": "2026-06-12T18:15:03.149498Z"
},
"blocking_issues": [],
"safe_to_optimize": true,
"sitemap_coverage": {
"checked": true,
"missing_urls": [],
"expected_urls": [
"https://www.optiprime.ch",
"https://www.optiprime.ch/blog"
],
"listed_url_sample_size": 20
},
"deployment_health": {
"checked": false
},
"technical_health_score": 90
}
},
{
"id": 1523,
"site_key": "optiprime",
"source_type": "learningseo_weekly_review",
"subject_key": "optiprime",
"payload_json": {
"tests_next_week": [
"test one low-risk refresh on a visible low-CTR page and measure the delta"
],
"confirmed_by_practice": 0,
"contradicted_by_results": 0
},
"recorded_at": "2026-06-15 00:03:10.355135+00:00",
"payload": {
"tests_next_week": [
"test one low-risk refresh on a visible low-CTR page and measure the delta"
],
"confirmed_by_practice": 0,
"contradicted_by_results": 0
}
},
{
"id": 1515,
"site_key": "optiprime",
"source_type": "workflow_state",
"subject_key": "recent_events",
"payload_json": {
"events": [
{
"type": "gsc_sync",
"payload": {
"pages_7d": 4,
"pages_28d": 5,
"queries_7d": 60,
"queries_28d": 132,
"page_query_28d": 214
},
"recorded_at": "2026-06-11T12:15:04.098139Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 4,
"pages_28d": 5,
"queries_7d": 60,
"queries_28d": 132,
"page_query_28d": 214
},
"recorded_at": "2026-06-11T18:15:03.918940Z"
},
{
"type": "hermes_content_lifecycle",
"payload": {
"merge_count": 2,
"watch_count": 6,
"create_count": 0,
"deleted_count": 0,
"optimize_count": 6
},
"recorded_at": "2026-06-11T20:45:03.124977Z"
},
{
"type": "hermes_daily_feedback_learning",
"payload": {
"sop_name": "adaptive-feedback-playbook",
"lessons_created": 1
},
"recorded_at": "2026-06-12T00:00:16.533847Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 3,
"pages_28d": 5,
"queries_7d": 55,
"queries_28d": 129,
"page_query_28d": 207
},
"recorded_at": "2026-06-12T06:15:04.132078Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 3,
"pages_28d": 5,
"queries_7d": 71,
"queries_28d": 139,
"page_query_28d": 221
},
"recorded_at": "2026-06-12T12:15:04.031613Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 3,
"pages_28d": 5,
"queries_7d": 71,
"queries_28d": 139,
"page_query_28d": 221
},
"recorded_at": "2026-06-12T18:15:03.166980Z"
},
{
"type": "hermes_daily_feedback_learning",
"payload": {
"sop_name": "adaptive-feedback-playbook",
"lessons_created": 1
},
"recorded_at": "2026-06-13T00:00:17.283861Z"
},
{
"type": "hermes_daily_feedback_learning",
"payload": {
"sop_name": "adaptive-feedback-playbook",
"lessons_created": 1
},
"recorded_at": "2026-06-14T00:02:13.694130Z"
},
{
"type": "hermes_content_lifecycle",
"payload": {
"merge_count": 2,
"watch_count": 5,
"create_count": 2,
"deleted_count": 1,
"optimize_count": 6
},
"recorded_at": "2026-06-14T21:00:05.904105Z"
}
]
},
"recorded_at": "2026-06-15 00:00:11.331188+00:00",
"payload": {
"events": [
{
"type": "gsc_sync",
"payload": {
"pages_7d": 4,
"pages_28d": 5,
"queries_7d": 60,
"queries_28d": 132,
"page_query_28d": 214
},
"recorded_at": "2026-06-11T12:15:04.098139Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 4,
"pages_28d": 5,
"queries_7d": 60,
"queries_28d": 132,
"page_query_28d": 214
},
"recorded_at": "2026-06-11T18:15:03.918940Z"
},
{
"type": "hermes_content_lifecycle",
"payload": {
"merge_count": 2,
"watch_count": 6,
"create_count": 0,
"deleted_count": 0,
"optimize_count": 6
},
"recorded_at": "2026-06-11T20:45:03.124977Z"
},
{
"type": "hermes_daily_feedback_learning",
"payload": {
"sop_name": "adaptive-feedback-playbook",
"lessons_created": 1
},
"recorded_at": "2026-06-12T00:00:16.533847Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 3,
"pages_28d": 5,
"queries_7d": 55,
"queries_28d": 129,
"page_query_28d": 207
},
"recorded_at": "2026-06-12T06:15:04.132078Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 3,
"pages_28d": 5,
"queries_7d": 71,
"queries_28d": 139,
"page_query_28d": 221
},
"recorded_at": "2026-06-12T12:15:04.031613Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 3,
"pages_28d": 5,
"queries_7d": 71,
"queries_28d": 139,
"page_query_28d": 221
},
"recorded_at": "2026-06-12T18:15:03.166980Z"
},
{
"type": "hermes_daily_feedback_learning",
"payload": {
"sop_name": "adaptive-feedback-playbook",
"lessons_created": 1
},
"recorded_at": "2026-06-13T00:00:17.283861Z"
},
{
"type": "hermes_daily_feedback_learning",
"payload": {
"sop_name": "adaptive-feedback-playbook",
"lessons_created": 1
},
"recorded_at": "2026-06-14T00:02:13.694130Z"
},
{
"type": "hermes_content_lifecycle",
"payload": {
"merge_count": 2,
"watch_count": 5,
"create_count": 2,
"deleted_count": 1,
"optimize_count": 6
},
"recorded_at": "2026-06-14T21:00:05.904105Z"
}
]
}
},
{
"id": 1514,
"site_key": "optiprime",
"source_type": "queue_state",
"subject_key": "recent_queue",
"payload_json": {
"recent_rows": [
{
"id": 325,
"slug": "classement-assurance-de-base",
"error": "not present in local blog inventory",
"status": "scheduled",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": null,
"scheduled_at": "2026-06-17T07:00:00+00:00"
},
{
"id": 295,
"slug": "meilleures-caisses-maladie-suisse-2026",
"error": "not present in local blog inventory",
"status": "scheduled",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": null,
"scheduled_at": "2026-06-15T07:00:00+00:00"
},
{
"id": 294,
"slug": "lamal-suisse-pas-chere",
"error": "not present in local blog inventory",
"status": "draft",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": null,
"scheduled_at": null
},
{
"id": 293,
"slug": "guide-assurance-maladie-suisse",
"error": "not present in local blog inventory",
"status": "scheduled",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": null,
"scheduled_at": "2026-06-16T07:00:00+00:00"
},
{
"id": 108,
"slug": "prime-assurance-maladie-2026",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-08",
"scheduled_at": null
},
{
"id": 107,
"slug": "changer-assurance-maladie-suisse",
"error": "not present in local blog inventory",
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-15T09:00:38.440609+00:00",
"scheduled_at": "2026-05-15T07:00:00+00:00"
},
{
"id": 106,
"slug": "meilleure-lamal-suisse",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-06",
"scheduled_at": null
},
{
"id": 105,
"slug": "comparaison-assurance-de-base",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-05",
"scheduled_at": null
},
{
"id": 104,
"slug": "comment-choisir-assurance-sante-suisse",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-04",
"scheduled_at": null
},
{
"id": 98,
"slug": "groupe-mutuel",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 97,
"slug": "css-assurance",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 96,
"slug": "comparis-assurance-maladie",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 95,
"slug": "comparatif-assurance-maladie",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-28",
"scheduled_at": null
},
{
"id": 94,
"slug": "comparateur-assurance-maladie-suisse",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-29",
"scheduled_at": null
},
{
"id": 93,
"slug": "attenuer-l-assurance-maladie",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 92,
"slug": "assurance-maladie-neuchatel",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 91,
"slug": "assurance-comparative-maladie",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 90,
"slug": "ameli",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 13,
"slug": "franchise-assurance-maladie-suisse",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-06-01T07:00:00+00:00",
"scheduled_at": null
},
{
"id": 12,
"slug": "criteres-assurance-maladie-suisse",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-05-29T07:00:00+00:00",
"scheduled_at": null
}
]
},
"recorded_at": "2026-06-15 00:00:11.244950+00:00",
"payload": {
"recent_rows": [
{
"id": 325,
"slug": "classement-assurance-de-base",
"error": "not present in local blog inventory",
"status": "scheduled",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": null,
"scheduled_at": "2026-06-17T07:00:00+00:00"
},
{
"id": 295,
"slug": "meilleures-caisses-maladie-suisse-2026",
"error": "not present in local blog inventory",
"status": "scheduled",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": null,
"scheduled_at": "2026-06-15T07:00:00+00:00"
},
{
"id": 294,
"slug": "lamal-suisse-pas-chere",
"error": "not present in local blog inventory",
"status": "draft",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": null,
"scheduled_at": null
},
{
"id": 293,
"slug": "guide-assurance-maladie-suisse",
"error": "not present in local blog inventory",
"status": "scheduled",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": null,
"scheduled_at": "2026-06-16T07:00:00+00:00"
},
{
"id": 108,
"slug": "prime-assurance-maladie-2026",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-08",
"scheduled_at": null
},
{
"id": 107,
"slug": "changer-assurance-maladie-suisse",
"error": "not present in local blog inventory",
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-15T09:00:38.440609+00:00",
"scheduled_at": "2026-05-15T07:00:00+00:00"
},
{
"id": 106,
"slug": "meilleure-lamal-suisse",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-06",
"scheduled_at": null
},
{
"id": 105,
"slug": "comparaison-assurance-de-base",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-05",
"scheduled_at": null
},
{
"id": 104,
"slug": "comment-choisir-assurance-sante-suisse",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-04",
"scheduled_at": null
},
{
"id": 98,
"slug": "groupe-mutuel",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 97,
"slug": "css-assurance",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 96,
"slug": "comparis-assurance-maladie",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 95,
"slug": "comparatif-assurance-maladie",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-28",
"scheduled_at": null
},
{
"id": 94,
"slug": "comparateur-assurance-maladie-suisse",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-29",
"scheduled_at": null
},
{
"id": 93,
"slug": "attenuer-l-assurance-maladie",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 92,
"slug": "assurance-maladie-neuchatel",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 91,
"slug": "assurance-comparative-maladie",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 90,
"slug": "ameli",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 13,
"slug": "franchise-assurance-maladie-suisse",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-06-01T07:00:00+00:00",
"scheduled_at": null
},
{
"id": 12,
"slug": "criteres-assurance-maladie-suisse",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-05-29T07:00:00+00:00",
"scheduled_at": null
}
]
}
}
],
"live_state": {
"queue": {
"by_status": {
"deleted": 11,
"published": 10,
"scheduled": 3
},
"recent_items": [
{
"id": 325,
"slug": "classement-assurance-de-base",
"status": "scheduled",
"scheduled_at": "2026-06-17T07:00:00+00:00",
"published_at": null,
"error": "not present in local blog inventory",
"attempts": 0
},
{
"id": 295,
"slug": "meilleures-caisses-maladie-suisse-2026",
"status": "published",
"scheduled_at": "2026-06-15T07:00:00+00:00",
"published_at": "2026-06-15T09:00:49.440736+00:00",
"error": "not present in local blog inventory",
"attempts": 0
},
{
"id": 294,
"slug": "lamal-suisse-pas-chere",
"status": "scheduled",
"scheduled_at": "2026-06-18T07:00:00+00:00",
"published_at": null,
"error": "not present in local blog inventory",
"attempts": 0
},
{
"id": 293,
"slug": "guide-assurance-maladie-suisse",
"status": "scheduled",
"scheduled_at": "2026-06-16T07:00:00+00:00",
"published_at": null,
"error": "not present in local blog inventory",
"attempts": 0
},
{
"id": 108,
"slug": "prime-assurance-maladie-2026",
"status": "deleted",
"scheduled_at": null,
"published_at": "2026-05-08",
"error": null,
"attempts": 0
}
]
},
"gsc": {
"saved_at": "2026-06-15T12:15:04.207154Z",
"top_pages": [
{
"page": "https://www.optiprime.ch/blog",
"clicks": 0,
"impressions": 626,
"ctr": 0.0,
"position": 28.391373801916934,
"top_query": "classement assurance de base"
},
{
"page": "https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"clicks": 0,
"impressions": 409,
"ctr": 0.0,
"position": 29.792176039119806,
"top_query": "comparer assurance obligatoire"
},
{
"page": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"clicks": 0,
"impressions": 187,
"ctr": 0.0,
"position": 20.336898395721924,
"top_query": "classement assurance de base"
}
],
"top_queries": [
{
"query": "classement assurance de base",
"clicks": 0,
"impressions": 81,
"ctr": 0.0,
"position": 24.74074074074074
},
{
"query": "comparer assurance obligatoire",
"clicks": 0,
"impressions": 58,
"ctr": 0.0,
"position": 22.53448275862069
},
{
"query": "guide assurance maladie suisse",
"clicks": 0,
"impressions": 52,
"ctr": 0.0,
"position": 39.78846153846154
},
{
"query": "assurance obligatoire la moins chère",
"clicks": 0,
"impressions": 47,
"ctr": 0.0,
"position": 26.893617021276597
},
{
"query": "classement assurance maladie",
"clicks": 0,
"impressions": 42,
"ctr": 0.0,
"position": 19.0
}
]
},
"workflow": {
"updated_at": "2026-06-15T12:15:04.221042Z",
"recent_events": [
{
"type": "hermes_daily_feedback_learning",
"payload": {
"lessons_created": 1,
"sop_name": "adaptive-feedback-playbook"
},
"recorded_at": "2026-06-14T00:02:13.694130Z"
},
{
"type": "hermes_content_lifecycle",
"payload": {
"optimize_count": 6,
"create_count": 2,
"merge_count": 2,
"watch_count": 5,
"deleted_count": 1
},
"recorded_at": "2026-06-14T21:00:05.904105Z"
},
{
"type": "hermes_daily_feedback_learning",
"payload": {
"lessons_created": 1,
"sop_name": "adaptive-feedback-playbook"
},
"recorded_at": "2026-06-15T00:00:15.176913Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 1,
"pages_28d": 5,
"queries_7d": 91,
"queries_28d": 146,
"page_query_28d": 228
},
"recorded_at": "2026-06-15T06:15:04.171687Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 1,
"pages_28d": 5,
"queries_7d": 91,
"queries_28d": 146,
"page_query_28d": 228
},
"recorded_at": "2026-06-15T12:15:04.220906Z"
}
]
}
},
"site_context": {
"site_key": "optiprime",
"project_name": "Optiprime",
"project_type": "repo_files",
"site_url": "https://www.optiprime.ch",
"base_url": "https://www.optiprime.ch/blog",
"gsc_property": "https://www.optiprime.ch",
"gsc_blog_prefix": "https://www.optiprime.ch/blog",
"agent_mode": "full_autonomy",
"operator_policy": "agent_driven",
"primary_market": "ch",
"target_countries": [
"ch",
"fr"
],
"seo_scope": "national",
"competitors": [
{
"label": "Sante.app LAMal",
"url": "https://sante.app/lamal/",
"notes": ""
},
{
"label": "Komparator Assurance Maladie",
"url": "https://www.komparator.ch/comparateur-assurances-maladie/",
"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": "advisory_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": 211,
"site_key": "optiprime",
"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.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"clicks": 0,
"position": 28.569573283858997,
"top_query": "comparer assurance obligatoire",
"impressions": 539
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog",
"clicks": 0,
"position": 28.516666666666666,
"top_query": "classement assurance de base",
"impressions": 480
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"clicks": 0,
"position": 19.83404255319149,
"top_query": "classement assurance de base",
"impressions": 235
},
{
"ctr": 0.0064516129032258064,
"page": "https://www.optiprime.ch/blog/assurance-maladie",
"clicks": 1,
"position": 22.051612903225806,
"top_query": "guide assurance maladie suisse",
"impressions": 155
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"clicks": 0,
"position": 57.29059829059829,
"top_query": "comparaison caisses maladie suisse",
"impressions": 117
}
]
},
"created_at": "2026-06-15 00:00:14.164331+00:00",
"updated_at": "2026-06-15 00:00:15.607574+00:00",
"details": {
"pages": [
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"clicks": 0,
"position": 28.569573283858997,
"top_query": "comparer assurance obligatoire",
"impressions": 539
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog",
"clicks": 0,
"position": 28.516666666666666,
"top_query": "classement assurance de base",
"impressions": 480
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"clicks": 0,
"position": 19.83404255319149,
"top_query": "classement assurance de base",
"impressions": 235
},
{
"ctr": 0.0064516129032258064,
"page": "https://www.optiprime.ch/blog/assurance-maladie",
"clicks": 1,
"position": 22.051612903225806,
"top_query": "guide assurance maladie suisse",
"impressions": 155
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"clicks": 0,
"position": 57.29059829059829,
"top_query": "comparaison caisses maladie suisse",
"impressions": 117
}
]
}
},
{
"id": 124,
"site_key": "optiprime",
"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-16 00:00:12.014717+00:00",
"updated_at": "2026-05-16 00:00:12.496888+00:00",
"details": {
"failed_count": 0,
"queued_count": 5
}
},
{
"id": 18,
"site_key": "optiprime",
"category": "measurement",
"lesson": "Mesurer après publication améliore la qualité des SOP.",
"confidence": "high",
"source": "manual",
"status": "validated",
"details_json": {},
"created_at": "2026-04-24 13:35:15.566161+00:00",
"updated_at": "2026-04-24 13:35:15.566161+00:00",
"details": {}
},
{
"id": 17,
"site_key": "optiprime",
"category": "measurement",
"lesson": "Measured SEO actions are generating positive post-action deltas. Increase trust in SOPs that led to these actions.",
"confidence": "high",
"source": "measurement_loop",
"status": "validated",
"details_json": {
"delta": {
"ctr": 0.004975124378109453,
"clicks": 1.0,
"position": 0.5927624447594404,
"impressions": 22.0
},
"page_url": "https://www.optiprime.ch/blog/assurance-maladie",
"action_type": "content_refresh",
"subject_key": "content-refresh:assurance-maladie",
"impact_label": "positive",
"impact_score": 4.511987548292065,
"measurement_id": 34
},
"created_at": "2026-04-24 13:35:15.533922+00:00",
"updated_at": "2026-06-04 00:07:02.304529+00:00",
"details": {
"delta": {
"ctr": 0.004975124378109453,
"clicks": 1.0,
"position": 0.5927624447594404,
"impressions": 22.0
},
"page_url": "https://www.optiprime.ch/blog/assurance-maladie",
"action_type": "content_refresh",
"subject_key": "content-refresh:assurance-maladie",
"impact_label": "positive",
"impact_score": 4.511987548292065,
"measurement_id": 34
}
},
{
"id": 14,
"site_key": "optiprime",
"category": "measurement",
"lesson": "Toujours mesurer après action.",
"confidence": "high",
"source": "manual",
"status": "validated",
"details_json": {},
"created_at": "2026-04-24 13:35:15.426383+00:00",
"updated_at": "2026-04-24 13:35:15.426383+00:00",
"details": {}
}
],
"active_sops": [
{
"id": 216,
"site_key": "optiprime",
"scope": "site",
"name": "adaptive-feedback-playbook",
"version": 33,
"status": "validated",
"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-06-15 00:00:14.414644+00:00",
"updated_at": "2026-06-15 00:03:10.694310+00:00",
"confidence_score": 0,
"confidence_label": "low"
}
],
"recent_outcomes": [
{
"id": 391,
"site_key": "optiprime",
"outcome_type": "gsc_baseline",
"subject_key": "publish:meilleures-caisses-maladie-suisse-2026",
"metric_name": "position",
"metric_value": 0.0,
"payload_json": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026"
},
"recorded_at": "2026-06-15 09:00:04.063841+00:00",
"payload": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026"
}
},
{
"id": 390,
"site_key": "optiprime",
"outcome_type": "gsc_baseline",
"subject_key": "publish:meilleures-caisses-maladie-suisse-2026",
"metric_name": "ctr",
"metric_value": 0.0,
"payload_json": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026"
},
"recorded_at": "2026-06-15 09:00:04.036134+00:00",
"payload": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026"
}
},
{
"id": 389,
"site_key": "optiprime",
"outcome_type": "gsc_baseline",
"subject_key": "publish:meilleures-caisses-maladie-suisse-2026",
"metric_name": "impressions",
"metric_value": 0.0,
"payload_json": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026"
},
"recorded_at": "2026-06-15 09:00:03.998133+00:00",
"payload": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026"
}
},
{
"id": 388,
"site_key": "optiprime",
"outcome_type": "gsc_baseline",
"subject_key": "publish:meilleures-caisses-maladie-suisse-2026",
"metric_name": "clicks",
"metric_value": 0.0,
"payload_json": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026"
},
"recorded_at": "2026-06-15 09:00:03.971249+00:00",
"payload": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026"
}
},
{
"id": 387,
"site_key": "optiprime",
"outcome_type": "gsc_baseline",
"subject_key": "publish:lamal-suisse-pas-chere",
"metric_name": "position",
"metric_value": 0.0,
"payload_json": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/lamal-suisse-pas-chere"
},
"recorded_at": "2026-06-12 09:00:03.262460+00:00",
"payload": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/lamal-suisse-pas-chere"
}
},
{
"id": 386,
"site_key": "optiprime",
"outcome_type": "gsc_baseline",
"subject_key": "publish:lamal-suisse-pas-chere",
"metric_name": "ctr",
"metric_value": 0.0,
"payload_json": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/lamal-suisse-pas-chere"
},
"recorded_at": "2026-06-12 09:00:03.226649+00:00",
"payload": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/lamal-suisse-pas-chere"
}
},
{
"id": 385,
"site_key": "optiprime",
"outcome_type": "gsc_baseline",
"subject_key": "publish:lamal-suisse-pas-chere",
"metric_name": "impressions",
"metric_value": 0.0,
"payload_json": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/lamal-suisse-pas-chere"
},
"recorded_at": "2026-06-12 09:00:03.184677+00:00",
"payload": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/lamal-suisse-pas-chere"
}
},
{
"id": 384,
"site_key": "optiprime",
"outcome_type": "gsc_baseline",
"subject_key": "publish:lamal-suisse-pas-chere",
"metric_name": "clicks",
"metric_value": 0.0,
"payload_json": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/lamal-suisse-pas-chere"
},
"recorded_at": "2026-06-12 09:00:03.148482+00:00",
"payload": {
"row": {},
"page_url": "https://www.optiprime.ch/blog/lamal-suisse-pas-chere"
}
}
],
"recent_observations": [
{
"id": 1541,
"site_key": "optiprime",
"source_type": "measurement_scheduled",
"subject_key": "publish:meilleures-caisses-maladie-suisse-2026",
"payload_json": {
"due_at": "2026-06-29T09:00:04.072926Z",
"details": {
"slug": "meilleures-caisses-maladie-suisse-2026",
"queue_id": 295
},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"action_type": "publish",
"measurement_id": 53
},
"recorded_at": "2026-06-15 09:00:04.150416+00:00",
"payload": {
"due_at": "2026-06-29T09:00:04.072926Z",
"details": {
"slug": "meilleures-caisses-maladie-suisse-2026",
"queue_id": 295
},
"page_url": "https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"action_type": "publish",
"measurement_id": 53
}
},
{
"id": 1537,
"site_key": "optiprime",
"source_type": "technical_audit",
"subject_key": "optiprime",
"payload_json": {
"gsc": {
"checked": false
},
"pages": [
{
"ok": true,
"url": "https://www.optiprime.ch",
"error": "",
"noindex": false,
"canonical": "https://www.optiprime.ch",
"final_url": "https://www.optiprime.ch/",
"indexable": true,
"redirected": false,
"robots_meta": "index, follow",
"status_code": 200,
"x_robots_tag": "",
"redirect_chain": [],
"robots_allowed": true,
"canonical_present": true,
"canonical_matches_url": true
},
{
"ok": true,
"url": "https://www.optiprime.ch/blog",
"error": "",
"noindex": false,
"canonical": "https://www.optiprime.ch/blog",
"final_url": "https://www.optiprime.ch/blog",
"indexable": true,
"redirected": false,
"robots_meta": "index, follow",
"status_code": 200,
"x_robots_tag": "",
"redirect_chain": [],
"robots_allowed": true,
"canonical_present": true,
"canonical_matches_url": true
}
],
"robots": {
"ok": true,
"url": "https://www.optiprime.ch/robots.txt",
"error": "",
"sitemaps": [
"https://www.optiprime.ch/sitemap.xml"
],
"blocks_all": false,
"rules_text": "User-Agent: *\nAllow: /\n\nHost: https://www.optiprime.ch\nSitemap: https://www.optiprime.ch/sitemap.xml\n",
"status_code": 200
},
"status": "ok",
"checked": true,
"sitemap": {
"ok": true,
"checked": [
{
"ok": true,
"url": "https://www.optiprime.ch/sitemap.xml",
"error": "",
"root_tag": "urlset",
"url_count": 20,
"valid_xml": true,
"status_code": 200,
"child_checked": [],
"child_sitemaps": [],
"listed_sample_urls": [
"https://www.optiprime.ch/",
"https://www.optiprime.ch/comparateur",
"https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-pas-chere",
"https://www.optiprime.ch/caisse-maladie-suisse-pas-chere",
"https://www.optiprime.ch/prime-assurance-maladie-2026",
"https://www.optiprime.ch/blog",
"https://www.optiprime.ch/methodologie",
"https://www.optiprime.ch/confidentialite",
"https://www.optiprime.ch/blog/lamal-suisse-pas-chere",
"https://www.optiprime.ch/blog/classement-assurance-de-base",
"https://www.optiprime.ch/blog/guide-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"https://www.optiprime.ch/blog/assurance-maladie-suisse-comparee",
"https://www.optiprime.ch/blog/changer-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleure-lamal-suisse",
"https://www.optiprime.ch/blog/comparaison-assurance-de-base",
"https://www.optiprime.ch/blog/comment-choisir-assurance-sante-suisse",
"https://www.optiprime.ch/blog/comparis-assurance-maladie"
]
}
],
"selected": {
"ok": true,
"url": "https://www.optiprime.ch/sitemap.xml",
"error": "",
"root_tag": "urlset",
"url_count": 20,
"valid_xml": true,
"status_code": 200,
"child_checked": [],
"child_sitemaps": [],
"listed_sample_urls": [
"https://www.optiprime.ch/",
"https://www.optiprime.ch/comparateur",
"https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-pas-chere",
"https://www.optiprime.ch/caisse-maladie-suisse-pas-chere",
"https://www.optiprime.ch/prime-assurance-maladie-2026",
"https://www.optiprime.ch/blog",
"https://www.optiprime.ch/methodologie",
"https://www.optiprime.ch/confidentialite",
"https://www.optiprime.ch/blog/lamal-suisse-pas-chere",
"https://www.optiprime.ch/blog/classement-assurance-de-base",
"https://www.optiprime.ch/blog/guide-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"https://www.optiprime.ch/blog/assurance-maladie-suisse-comparee",
"https://www.optiprime.ch/blog/changer-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleure-lamal-suisse",
"https://www.optiprime.ch/blog/comparaison-assurance-de-base",
"https://www.optiprime.ch/blog/comment-choisir-assurance-sante-suisse",
"https://www.optiprime.ch/blog/comparis-assurance-maladie"
]
}
},
"site_key": "optiprime",
"warnings": [
"LCP mobile élevé (3017 ms)"
],
"pagespeed": {
"ok": true,
"cls": 0.0,
"inp_ms": 86.0,
"lcp_ms": 3017.1922508440193,
"mobile": {
"ok": true,
"cls": 0.0,
"inp_ms": 86.0,
"lcp_ms": 3017.1922508440193,
"source": "pagespeed_insights",
"strategy": "mobile",
"performance_score": 90.0
},
"source": "pagespeed_insights",
"desktop": {
"ok": true,
"cls": 0.036173,
"inp_ms": 68.0,
"lcp_ms": 892.6987086694655,
"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.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"error": "",
"clicks": 0,
"position": 28.569573283858997,
"canonical": "https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"indexable": true,
"top_query": "comparer assurance obligatoire",
"redirected": false,
"impressions": 539,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog",
"error": "",
"clicks": 0,
"position": 28.516666666666666,
"canonical": "https://www.optiprime.ch/blog",
"final_url": "https://www.optiprime.ch/blog",
"indexable": true,
"top_query": "classement assurance de base",
"redirected": false,
"impressions": 480,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"error": "",
"clicks": 0,
"position": 19.83404255319149,
"canonical": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"final_url": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"indexable": true,
"top_query": "classement assurance de base",
"redirected": false,
"impressions": 235,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0064516129032258064,
"url": "https://www.optiprime.ch/blog/assurance-maladie",
"error": "",
"clicks": 1,
"position": 22.051612903225806,
"canonical": "https://www.optiprime.ch/assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/assurance-maladie",
"indexable": true,
"top_query": "guide assurance maladie suisse",
"redirected": false,
"impressions": 155,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"error": "",
"clicks": 0,
"position": 57.29059829059829,
"canonical": "https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"indexable": true,
"top_query": "comparaison caisses maladie suisse",
"redirected": false,
"impressions": 117,
"status_code": 200
}
],
"source": "gsc_pages_28d",
"checked": true,
"broken_urls": [],
"broken_count": 0,
"checked_count": 5,
"redirected_urls": [],
"redirected_count": 0,
"snapshot_saved_at": "2026-06-12T18:15:03.149498Z"
},
"blocking_issues": [],
"safe_to_optimize": true,
"sitemap_coverage": {
"checked": true,
"missing_urls": [],
"expected_urls": [
"https://www.optiprime.ch",
"https://www.optiprime.ch/blog"
],
"listed_url_sample_size": 20
},
"deployment_health": {
"checked": false
},
"technical_health_score": 90
},
"recorded_at": "2026-06-15 00:08:06.060407+00:00",
"payload": {
"gsc": {
"checked": false
},
"pages": [
{
"ok": true,
"url": "https://www.optiprime.ch",
"error": "",
"noindex": false,
"canonical": "https://www.optiprime.ch",
"final_url": "https://www.optiprime.ch/",
"indexable": true,
"redirected": false,
"robots_meta": "index, follow",
"status_code": 200,
"x_robots_tag": "",
"redirect_chain": [],
"robots_allowed": true,
"canonical_present": true,
"canonical_matches_url": true
},
{
"ok": true,
"url": "https://www.optiprime.ch/blog",
"error": "",
"noindex": false,
"canonical": "https://www.optiprime.ch/blog",
"final_url": "https://www.optiprime.ch/blog",
"indexable": true,
"redirected": false,
"robots_meta": "index, follow",
"status_code": 200,
"x_robots_tag": "",
"redirect_chain": [],
"robots_allowed": true,
"canonical_present": true,
"canonical_matches_url": true
}
],
"robots": {
"ok": true,
"url": "https://www.optiprime.ch/robots.txt",
"error": "",
"sitemaps": [
"https://www.optiprime.ch/sitemap.xml"
],
"blocks_all": false,
"rules_text": "User-Agent: *\nAllow: /\n\nHost: https://www.optiprime.ch\nSitemap: https://www.optiprime.ch/sitemap.xml\n",
"status_code": 200
},
"status": "ok",
"checked": true,
"sitemap": {
"ok": true,
"checked": [
{
"ok": true,
"url": "https://www.optiprime.ch/sitemap.xml",
"error": "",
"root_tag": "urlset",
"url_count": 20,
"valid_xml": true,
"status_code": 200,
"child_checked": [],
"child_sitemaps": [],
"listed_sample_urls": [
"https://www.optiprime.ch/",
"https://www.optiprime.ch/comparateur",
"https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-pas-chere",
"https://www.optiprime.ch/caisse-maladie-suisse-pas-chere",
"https://www.optiprime.ch/prime-assurance-maladie-2026",
"https://www.optiprime.ch/blog",
"https://www.optiprime.ch/methodologie",
"https://www.optiprime.ch/confidentialite",
"https://www.optiprime.ch/blog/lamal-suisse-pas-chere",
"https://www.optiprime.ch/blog/classement-assurance-de-base",
"https://www.optiprime.ch/blog/guide-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"https://www.optiprime.ch/blog/assurance-maladie-suisse-comparee",
"https://www.optiprime.ch/blog/changer-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleure-lamal-suisse",
"https://www.optiprime.ch/blog/comparaison-assurance-de-base",
"https://www.optiprime.ch/blog/comment-choisir-assurance-sante-suisse",
"https://www.optiprime.ch/blog/comparis-assurance-maladie"
]
}
],
"selected": {
"ok": true,
"url": "https://www.optiprime.ch/sitemap.xml",
"error": "",
"root_tag": "urlset",
"url_count": 20,
"valid_xml": true,
"status_code": 200,
"child_checked": [],
"child_sitemaps": [],
"listed_sample_urls": [
"https://www.optiprime.ch/",
"https://www.optiprime.ch/comparateur",
"https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-pas-chere",
"https://www.optiprime.ch/caisse-maladie-suisse-pas-chere",
"https://www.optiprime.ch/prime-assurance-maladie-2026",
"https://www.optiprime.ch/blog",
"https://www.optiprime.ch/methodologie",
"https://www.optiprime.ch/confidentialite",
"https://www.optiprime.ch/blog/lamal-suisse-pas-chere",
"https://www.optiprime.ch/blog/classement-assurance-de-base",
"https://www.optiprime.ch/blog/guide-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"https://www.optiprime.ch/blog/assurance-maladie-suisse-comparee",
"https://www.optiprime.ch/blog/changer-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleure-lamal-suisse",
"https://www.optiprime.ch/blog/comparaison-assurance-de-base",
"https://www.optiprime.ch/blog/comment-choisir-assurance-sante-suisse",
"https://www.optiprime.ch/blog/comparis-assurance-maladie"
]
}
},
"site_key": "optiprime",
"warnings": [
"LCP mobile élevé (3017 ms)"
],
"pagespeed": {
"ok": true,
"cls": 0.0,
"inp_ms": 86.0,
"lcp_ms": 3017.1922508440193,
"mobile": {
"ok": true,
"cls": 0.0,
"inp_ms": 86.0,
"lcp_ms": 3017.1922508440193,
"source": "pagespeed_insights",
"strategy": "mobile",
"performance_score": 90.0
},
"source": "pagespeed_insights",
"desktop": {
"ok": true,
"cls": 0.036173,
"inp_ms": 68.0,
"lcp_ms": 892.6987086694655,
"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.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"error": "",
"clicks": 0,
"position": 28.569573283858997,
"canonical": "https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"indexable": true,
"top_query": "comparer assurance obligatoire",
"redirected": false,
"impressions": 539,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog",
"error": "",
"clicks": 0,
"position": 28.516666666666666,
"canonical": "https://www.optiprime.ch/blog",
"final_url": "https://www.optiprime.ch/blog",
"indexable": true,
"top_query": "classement assurance de base",
"redirected": false,
"impressions": 480,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"error": "",
"clicks": 0,
"position": 19.83404255319149,
"canonical": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"final_url": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"indexable": true,
"top_query": "classement assurance de base",
"redirected": false,
"impressions": 235,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0064516129032258064,
"url": "https://www.optiprime.ch/blog/assurance-maladie",
"error": "",
"clicks": 1,
"position": 22.051612903225806,
"canonical": "https://www.optiprime.ch/assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/assurance-maladie",
"indexable": true,
"top_query": "guide assurance maladie suisse",
"redirected": false,
"impressions": 155,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"error": "",
"clicks": 0,
"position": 57.29059829059829,
"canonical": "https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"indexable": true,
"top_query": "comparaison caisses maladie suisse",
"redirected": false,
"impressions": 117,
"status_code": 200
}
],
"source": "gsc_pages_28d",
"checked": true,
"broken_urls": [],
"broken_count": 0,
"checked_count": 5,
"redirected_urls": [],
"redirected_count": 0,
"snapshot_saved_at": "2026-06-12T18:15:03.149498Z"
},
"blocking_issues": [],
"safe_to_optimize": true,
"sitemap_coverage": {
"checked": true,
"missing_urls": [],
"expected_urls": [
"https://www.optiprime.ch",
"https://www.optiprime.ch/blog"
],
"listed_url_sample_size": 20
},
"deployment_health": {
"checked": false
},
"technical_health_score": 90
}
},
{
"id": 1530,
"site_key": "optiprime",
"source_type": "technical_remediation",
"subject_key": "optiprime",
"payload_json": {
"ok": true,
"errors": [],
"actions": [
{
"type": "optimize_lcp",
"value": 3837.1,
"metric": "lcp_ms",
"target": "https://www.optiprime.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-06-15 00:05:28.378334+00:00",
"payload": {
"ok": true,
"errors": [],
"actions": [
{
"type": "optimize_lcp",
"value": 3837.1,
"metric": "lcp_ms",
"target": "https://www.optiprime.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": 1529,
"site_key": "optiprime",
"source_type": "technical_audit",
"subject_key": "optiprime",
"payload_json": {
"gsc": {
"ok": true,
"checked": true,
"message": "Connexion GSC OK",
"payload": {
"sample_rows": 1,
"properties_count": 5,
"resolved_property": "https://www.optiprime.ch"
},
"sitemap_url": "https://www.optiprime.ch/sitemap.xml",
"sitemap_submission_ready": true
},
"pages": [
{
"ok": true,
"url": "https://www.optiprime.ch",
"error": "",
"noindex": false,
"canonical": "https://www.optiprime.ch",
"final_url": "https://www.optiprime.ch/",
"indexable": true,
"redirected": false,
"robots_meta": "index, follow",
"status_code": 200,
"x_robots_tag": "",
"redirect_chain": [],
"robots_allowed": true,
"canonical_present": true,
"canonical_matches_url": true
},
{
"ok": true,
"url": "https://www.optiprime.ch/blog",
"error": "",
"noindex": false,
"canonical": "https://www.optiprime.ch/blog",
"final_url": "https://www.optiprime.ch/blog",
"indexable": true,
"redirected": false,
"robots_meta": "index, follow",
"status_code": 200,
"x_robots_tag": "",
"redirect_chain": [],
"robots_allowed": true,
"canonical_present": true,
"canonical_matches_url": true
}
],
"robots": {
"ok": true,
"url": "https://www.optiprime.ch/robots.txt",
"error": "",
"sitemaps": [
"https://www.optiprime.ch/sitemap.xml"
],
"blocks_all": false,
"rules_text": "User-Agent: *\nAllow: /\n\nHost: https://www.optiprime.ch\nSitemap: https://www.optiprime.ch/sitemap.xml\n",
"status_code": 200
},
"status": "ok",
"checked": true,
"sitemap": {
"ok": true,
"checked": [
{
"ok": true,
"url": "https://www.optiprime.ch/sitemap.xml",
"error": "",
"root_tag": "urlset",
"url_count": 20,
"valid_xml": true,
"status_code": 200,
"child_checked": [],
"child_sitemaps": [],
"listed_sample_urls": [
"https://www.optiprime.ch/",
"https://www.optiprime.ch/comparateur",
"https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-pas-chere",
"https://www.optiprime.ch/caisse-maladie-suisse-pas-chere",
"https://www.optiprime.ch/prime-assurance-maladie-2026",
"https://www.optiprime.ch/blog",
"https://www.optiprime.ch/methodologie",
"https://www.optiprime.ch/confidentialite",
"https://www.optiprime.ch/blog/lamal-suisse-pas-chere",
"https://www.optiprime.ch/blog/classement-assurance-de-base",
"https://www.optiprime.ch/blog/guide-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"https://www.optiprime.ch/blog/assurance-maladie-suisse-comparee",
"https://www.optiprime.ch/blog/changer-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleure-lamal-suisse",
"https://www.optiprime.ch/blog/comparaison-assurance-de-base",
"https://www.optiprime.ch/blog/comment-choisir-assurance-sante-suisse",
"https://www.optiprime.ch/blog/comparis-assurance-maladie"
]
}
],
"selected": {
"ok": true,
"url": "https://www.optiprime.ch/sitemap.xml",
"error": "",
"root_tag": "urlset",
"url_count": 20,
"valid_xml": true,
"status_code": 200,
"child_checked": [],
"child_sitemaps": [],
"listed_sample_urls": [
"https://www.optiprime.ch/",
"https://www.optiprime.ch/comparateur",
"https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-pas-chere",
"https://www.optiprime.ch/caisse-maladie-suisse-pas-chere",
"https://www.optiprime.ch/prime-assurance-maladie-2026",
"https://www.optiprime.ch/blog",
"https://www.optiprime.ch/methodologie",
"https://www.optiprime.ch/confidentialite",
"https://www.optiprime.ch/blog/lamal-suisse-pas-chere",
"https://www.optiprime.ch/blog/classement-assurance-de-base",
"https://www.optiprime.ch/blog/guide-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"https://www.optiprime.ch/blog/assurance-maladie-suisse-comparee",
"https://www.optiprime.ch/blog/changer-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleure-lamal-suisse",
"https://www.optiprime.ch/blog/comparaison-assurance-de-base",
"https://www.optiprime.ch/blog/comment-choisir-assurance-sante-suisse",
"https://www.optiprime.ch/blog/comparis-assurance-maladie"
]
}
},
"site_key": "optiprime",
"warnings": [
"LCP mobile élevé (3837 ms)"
],
"pagespeed": {
"ok": true,
"cls": 0.002186,
"inp_ms": 80.0,
"lcp_ms": 3837.1312615649126,
"mobile": {
"ok": true,
"cls": 0.002186,
"inp_ms": 80.0,
"lcp_ms": 3837.1312615649126,
"source": "pagespeed_insights",
"strategy": "mobile",
"performance_score": 85.0
},
"source": "pagespeed_insights",
"desktop": {
"ok": true,
"cls": 0.0,
"inp_ms": 90.0,
"lcp_ms": 898.6987086546874,
"source": "pagespeed_insights",
"strategy": "desktop",
"performance_score": 98.0
},
"strategy": "mobile",
"performance_score": 85.0
},
"gsc_live_urls": {
"urls": [
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"error": "",
"clicks": 0,
"position": 28.569573283858997,
"canonical": "https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"indexable": true,
"top_query": "comparer assurance obligatoire",
"redirected": false,
"impressions": 539,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog",
"error": "",
"clicks": 0,
"position": 28.516666666666666,
"canonical": "https://www.optiprime.ch/blog",
"final_url": "https://www.optiprime.ch/blog",
"indexable": true,
"top_query": "classement assurance de base",
"redirected": false,
"impressions": 480,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"error": "",
"clicks": 0,
"position": 19.83404255319149,
"canonical": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"final_url": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"indexable": true,
"top_query": "classement assurance de base",
"redirected": false,
"impressions": 235,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0064516129032258064,
"url": "https://www.optiprime.ch/blog/assurance-maladie",
"error": "",
"clicks": 1,
"position": 22.051612903225806,
"canonical": "https://www.optiprime.ch/assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/assurance-maladie",
"indexable": true,
"top_query": "guide assurance maladie suisse",
"redirected": false,
"impressions": 155,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"error": "",
"clicks": 0,
"position": 57.29059829059829,
"canonical": "https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"indexable": true,
"top_query": "comparaison caisses maladie suisse",
"redirected": false,
"impressions": 117,
"status_code": 200
}
],
"source": "gsc_pages_28d",
"checked": true,
"broken_urls": [],
"broken_count": 0,
"checked_count": 5,
"redirected_urls": [],
"redirected_count": 0,
"snapshot_saved_at": "2026-06-12T18:15:03.149498Z"
},
"blocking_issues": [],
"safe_to_optimize": true,
"sitemap_coverage": {
"checked": true,
"missing_urls": [],
"expected_urls": [
"https://www.optiprime.ch",
"https://www.optiprime.ch/blog"
],
"listed_url_sample_size": 20
},
"deployment_health": {
"checked": false
},
"technical_health_score": 90
},
"recorded_at": "2026-06-15 00:05:27.262580+00:00",
"payload": {
"gsc": {
"ok": true,
"checked": true,
"message": "Connexion GSC OK",
"payload": {
"sample_rows": 1,
"properties_count": 5,
"resolved_property": "https://www.optiprime.ch"
},
"sitemap_url": "https://www.optiprime.ch/sitemap.xml",
"sitemap_submission_ready": true
},
"pages": [
{
"ok": true,
"url": "https://www.optiprime.ch",
"error": "",
"noindex": false,
"canonical": "https://www.optiprime.ch",
"final_url": "https://www.optiprime.ch/",
"indexable": true,
"redirected": false,
"robots_meta": "index, follow",
"status_code": 200,
"x_robots_tag": "",
"redirect_chain": [],
"robots_allowed": true,
"canonical_present": true,
"canonical_matches_url": true
},
{
"ok": true,
"url": "https://www.optiprime.ch/blog",
"error": "",
"noindex": false,
"canonical": "https://www.optiprime.ch/blog",
"final_url": "https://www.optiprime.ch/blog",
"indexable": true,
"redirected": false,
"robots_meta": "index, follow",
"status_code": 200,
"x_robots_tag": "",
"redirect_chain": [],
"robots_allowed": true,
"canonical_present": true,
"canonical_matches_url": true
}
],
"robots": {
"ok": true,
"url": "https://www.optiprime.ch/robots.txt",
"error": "",
"sitemaps": [
"https://www.optiprime.ch/sitemap.xml"
],
"blocks_all": false,
"rules_text": "User-Agent: *\nAllow: /\n\nHost: https://www.optiprime.ch\nSitemap: https://www.optiprime.ch/sitemap.xml\n",
"status_code": 200
},
"status": "ok",
"checked": true,
"sitemap": {
"ok": true,
"checked": [
{
"ok": true,
"url": "https://www.optiprime.ch/sitemap.xml",
"error": "",
"root_tag": "urlset",
"url_count": 20,
"valid_xml": true,
"status_code": 200,
"child_checked": [],
"child_sitemaps": [],
"listed_sample_urls": [
"https://www.optiprime.ch/",
"https://www.optiprime.ch/comparateur",
"https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-pas-chere",
"https://www.optiprime.ch/caisse-maladie-suisse-pas-chere",
"https://www.optiprime.ch/prime-assurance-maladie-2026",
"https://www.optiprime.ch/blog",
"https://www.optiprime.ch/methodologie",
"https://www.optiprime.ch/confidentialite",
"https://www.optiprime.ch/blog/lamal-suisse-pas-chere",
"https://www.optiprime.ch/blog/classement-assurance-de-base",
"https://www.optiprime.ch/blog/guide-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"https://www.optiprime.ch/blog/assurance-maladie-suisse-comparee",
"https://www.optiprime.ch/blog/changer-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleure-lamal-suisse",
"https://www.optiprime.ch/blog/comparaison-assurance-de-base",
"https://www.optiprime.ch/blog/comment-choisir-assurance-sante-suisse",
"https://www.optiprime.ch/blog/comparis-assurance-maladie"
]
}
],
"selected": {
"ok": true,
"url": "https://www.optiprime.ch/sitemap.xml",
"error": "",
"root_tag": "urlset",
"url_count": 20,
"valid_xml": true,
"status_code": 200,
"child_checked": [],
"child_sitemaps": [],
"listed_sample_urls": [
"https://www.optiprime.ch/",
"https://www.optiprime.ch/comparateur",
"https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-suisse",
"https://www.optiprime.ch/assurance-maladie-pas-chere",
"https://www.optiprime.ch/caisse-maladie-suisse-pas-chere",
"https://www.optiprime.ch/prime-assurance-maladie-2026",
"https://www.optiprime.ch/blog",
"https://www.optiprime.ch/methodologie",
"https://www.optiprime.ch/confidentialite",
"https://www.optiprime.ch/blog/lamal-suisse-pas-chere",
"https://www.optiprime.ch/blog/classement-assurance-de-base",
"https://www.optiprime.ch/blog/guide-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026",
"https://www.optiprime.ch/blog/assurance-maladie-suisse-comparee",
"https://www.optiprime.ch/blog/changer-assurance-maladie-suisse",
"https://www.optiprime.ch/blog/meilleure-lamal-suisse",
"https://www.optiprime.ch/blog/comparaison-assurance-de-base",
"https://www.optiprime.ch/blog/comment-choisir-assurance-sante-suisse",
"https://www.optiprime.ch/blog/comparis-assurance-maladie"
]
}
},
"site_key": "optiprime",
"warnings": [
"LCP mobile élevé (3837 ms)"
],
"pagespeed": {
"ok": true,
"cls": 0.002186,
"inp_ms": 80.0,
"lcp_ms": 3837.1312615649126,
"mobile": {
"ok": true,
"cls": 0.002186,
"inp_ms": 80.0,
"lcp_ms": 3837.1312615649126,
"source": "pagespeed_insights",
"strategy": "mobile",
"performance_score": 85.0
},
"source": "pagespeed_insights",
"desktop": {
"ok": true,
"cls": 0.0,
"inp_ms": 90.0,
"lcp_ms": 898.6987086546874,
"source": "pagespeed_insights",
"strategy": "desktop",
"performance_score": 98.0
},
"strategy": "mobile",
"performance_score": 85.0
},
"gsc_live_urls": {
"urls": [
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"error": "",
"clicks": 0,
"position": 28.569573283858997,
"canonical": "https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"indexable": true,
"top_query": "comparer assurance obligatoire",
"redirected": false,
"impressions": 539,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog",
"error": "",
"clicks": 0,
"position": 28.516666666666666,
"canonical": "https://www.optiprime.ch/blog",
"final_url": "https://www.optiprime.ch/blog",
"indexable": true,
"top_query": "classement assurance de base",
"redirected": false,
"impressions": 480,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"error": "",
"clicks": 0,
"position": 19.83404255319149,
"canonical": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"final_url": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"indexable": true,
"top_query": "classement assurance de base",
"redirected": false,
"impressions": 235,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0064516129032258064,
"url": "https://www.optiprime.ch/blog/assurance-maladie",
"error": "",
"clicks": 1,
"position": 22.051612903225806,
"canonical": "https://www.optiprime.ch/assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/assurance-maladie",
"indexable": true,
"top_query": "guide assurance maladie suisse",
"redirected": false,
"impressions": 155,
"status_code": 200
},
{
"ok": true,
"ctr": 0.0,
"url": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"error": "",
"clicks": 0,
"position": 57.29059829059829,
"canonical": "https://www.optiprime.ch/comparateur-assurance-maladie-suisse",
"final_url": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"indexable": true,
"top_query": "comparaison caisses maladie suisse",
"redirected": false,
"impressions": 117,
"status_code": 200
}
],
"source": "gsc_pages_28d",
"checked": true,
"broken_urls": [],
"broken_count": 0,
"checked_count": 5,
"redirected_urls": [],
"redirected_count": 0,
"snapshot_saved_at": "2026-06-12T18:15:03.149498Z"
},
"blocking_issues": [],
"safe_to_optimize": true,
"sitemap_coverage": {
"checked": true,
"missing_urls": [],
"expected_urls": [
"https://www.optiprime.ch",
"https://www.optiprime.ch/blog"
],
"listed_url_sample_size": 20
},
"deployment_health": {
"checked": false
},
"technical_health_score": 90
}
},
{
"id": 1523,
"site_key": "optiprime",
"source_type": "learningseo_weekly_review",
"subject_key": "optiprime",
"payload_json": {
"tests_next_week": [
"test one low-risk refresh on a visible low-CTR page and measure the delta"
],
"confirmed_by_practice": 0,
"contradicted_by_results": 0
},
"recorded_at": "2026-06-15 00:03:10.355135+00:00",
"payload": {
"tests_next_week": [
"test one low-risk refresh on a visible low-CTR page and measure the delta"
],
"confirmed_by_practice": 0,
"contradicted_by_results": 0
}
},
{
"id": 1515,
"site_key": "optiprime",
"source_type": "workflow_state",
"subject_key": "recent_events",
"payload_json": {
"events": [
{
"type": "gsc_sync",
"payload": {
"pages_7d": 4,
"pages_28d": 5,
"queries_7d": 60,
"queries_28d": 132,
"page_query_28d": 214
},
"recorded_at": "2026-06-11T12:15:04.098139Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 4,
"pages_28d": 5,
"queries_7d": 60,
"queries_28d": 132,
"page_query_28d": 214
},
"recorded_at": "2026-06-11T18:15:03.918940Z"
},
{
"type": "hermes_content_lifecycle",
"payload": {
"merge_count": 2,
"watch_count": 6,
"create_count": 0,
"deleted_count": 0,
"optimize_count": 6
},
"recorded_at": "2026-06-11T20:45:03.124977Z"
},
{
"type": "hermes_daily_feedback_learning",
"payload": {
"sop_name": "adaptive-feedback-playbook",
"lessons_created": 1
},
"recorded_at": "2026-06-12T00:00:16.533847Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 3,
"pages_28d": 5,
"queries_7d": 55,
"queries_28d": 129,
"page_query_28d": 207
},
"recorded_at": "2026-06-12T06:15:04.132078Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 3,
"pages_28d": 5,
"queries_7d": 71,
"queries_28d": 139,
"page_query_28d": 221
},
"recorded_at": "2026-06-12T12:15:04.031613Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 3,
"pages_28d": 5,
"queries_7d": 71,
"queries_28d": 139,
"page_query_28d": 221
},
"recorded_at": "2026-06-12T18:15:03.166980Z"
},
{
"type": "hermes_daily_feedback_learning",
"payload": {
"sop_name": "adaptive-feedback-playbook",
"lessons_created": 1
},
"recorded_at": "2026-06-13T00:00:17.283861Z"
},
{
"type": "hermes_daily_feedback_learning",
"payload": {
"sop_name": "adaptive-feedback-playbook",
"lessons_created": 1
},
"recorded_at": "2026-06-14T00:02:13.694130Z"
},
{
"type": "hermes_content_lifecycle",
"payload": {
"merge_count": 2,
"watch_count": 5,
"create_count": 2,
"deleted_count": 1,
"optimize_count": 6
},
"recorded_at": "2026-06-14T21:00:05.904105Z"
}
]
},
"recorded_at": "2026-06-15 00:00:11.331188+00:00",
"payload": {
"events": [
{
"type": "gsc_sync",
"payload": {
"pages_7d": 4,
"pages_28d": 5,
"queries_7d": 60,
"queries_28d": 132,
"page_query_28d": 214
},
"recorded_at": "2026-06-11T12:15:04.098139Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 4,
"pages_28d": 5,
"queries_7d": 60,
"queries_28d": 132,
"page_query_28d": 214
},
"recorded_at": "2026-06-11T18:15:03.918940Z"
},
{
"type": "hermes_content_lifecycle",
"payload": {
"merge_count": 2,
"watch_count": 6,
"create_count": 0,
"deleted_count": 0,
"optimize_count": 6
},
"recorded_at": "2026-06-11T20:45:03.124977Z"
},
{
"type": "hermes_daily_feedback_learning",
"payload": {
"sop_name": "adaptive-feedback-playbook",
"lessons_created": 1
},
"recorded_at": "2026-06-12T00:00:16.533847Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 3,
"pages_28d": 5,
"queries_7d": 55,
"queries_28d": 129,
"page_query_28d": 207
},
"recorded_at": "2026-06-12T06:15:04.132078Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 3,
"pages_28d": 5,
"queries_7d": 71,
"queries_28d": 139,
"page_query_28d": 221
},
"recorded_at": "2026-06-12T12:15:04.031613Z"
},
{
"type": "gsc_sync",
"payload": {
"pages_7d": 3,
"pages_28d": 5,
"queries_7d": 71,
"queries_28d": 139,
"page_query_28d": 221
},
"recorded_at": "2026-06-12T18:15:03.166980Z"
},
{
"type": "hermes_daily_feedback_learning",
"payload": {
"sop_name": "adaptive-feedback-playbook",
"lessons_created": 1
},
"recorded_at": "2026-06-13T00:00:17.283861Z"
},
{
"type": "hermes_daily_feedback_learning",
"payload": {
"sop_name": "adaptive-feedback-playbook",
"lessons_created": 1
},
"recorded_at": "2026-06-14T00:02:13.694130Z"
},
{
"type": "hermes_content_lifecycle",
"payload": {
"merge_count": 2,
"watch_count": 5,
"create_count": 2,
"deleted_count": 1,
"optimize_count": 6
},
"recorded_at": "2026-06-14T21:00:05.904105Z"
}
]
}
},
{
"id": 1514,
"site_key": "optiprime",
"source_type": "queue_state",
"subject_key": "recent_queue",
"payload_json": {
"recent_rows": [
{
"id": 325,
"slug": "classement-assurance-de-base",
"error": "not present in local blog inventory",
"status": "scheduled",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": null,
"scheduled_at": "2026-06-17T07:00:00+00:00"
},
{
"id": 295,
"slug": "meilleures-caisses-maladie-suisse-2026",
"error": "not present in local blog inventory",
"status": "scheduled",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": null,
"scheduled_at": "2026-06-15T07:00:00+00:00"
},
{
"id": 294,
"slug": "lamal-suisse-pas-chere",
"error": "not present in local blog inventory",
"status": "draft",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": null,
"scheduled_at": null
},
{
"id": 293,
"slug": "guide-assurance-maladie-suisse",
"error": "not present in local blog inventory",
"status": "scheduled",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": null,
"scheduled_at": "2026-06-16T07:00:00+00:00"
},
{
"id": 108,
"slug": "prime-assurance-maladie-2026",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-08",
"scheduled_at": null
},
{
"id": 107,
"slug": "changer-assurance-maladie-suisse",
"error": "not present in local blog inventory",
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-15T09:00:38.440609+00:00",
"scheduled_at": "2026-05-15T07:00:00+00:00"
},
{
"id": 106,
"slug": "meilleure-lamal-suisse",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-06",
"scheduled_at": null
},
{
"id": 105,
"slug": "comparaison-assurance-de-base",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-05",
"scheduled_at": null
},
{
"id": 104,
"slug": "comment-choisir-assurance-sante-suisse",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-04",
"scheduled_at": null
},
{
"id": 98,
"slug": "groupe-mutuel",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 97,
"slug": "css-assurance",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 96,
"slug": "comparis-assurance-maladie",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 95,
"slug": "comparatif-assurance-maladie",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-28",
"scheduled_at": null
},
{
"id": 94,
"slug": "comparateur-assurance-maladie-suisse",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-29",
"scheduled_at": null
},
{
"id": 93,
"slug": "attenuer-l-assurance-maladie",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 92,
"slug": "assurance-maladie-neuchatel",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 91,
"slug": "assurance-comparative-maladie",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 90,
"slug": "ameli",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 13,
"slug": "franchise-assurance-maladie-suisse",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-06-01T07:00:00+00:00",
"scheduled_at": null
},
{
"id": 12,
"slug": "criteres-assurance-maladie-suisse",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-05-29T07:00:00+00:00",
"scheduled_at": null
}
]
},
"recorded_at": "2026-06-15 00:00:11.244950+00:00",
"payload": {
"recent_rows": [
{
"id": 325,
"slug": "classement-assurance-de-base",
"error": "not present in local blog inventory",
"status": "scheduled",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": null,
"scheduled_at": "2026-06-17T07:00:00+00:00"
},
{
"id": 295,
"slug": "meilleures-caisses-maladie-suisse-2026",
"error": "not present in local blog inventory",
"status": "scheduled",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": null,
"scheduled_at": "2026-06-15T07:00:00+00:00"
},
{
"id": 294,
"slug": "lamal-suisse-pas-chere",
"error": "not present in local blog inventory",
"status": "draft",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": null,
"scheduled_at": null
},
{
"id": 293,
"slug": "guide-assurance-maladie-suisse",
"error": "not present in local blog inventory",
"status": "scheduled",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": null,
"scheduled_at": "2026-06-16T07:00:00+00:00"
},
{
"id": 108,
"slug": "prime-assurance-maladie-2026",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-08",
"scheduled_at": null
},
{
"id": 107,
"slug": "changer-assurance-maladie-suisse",
"error": "not present in local blog inventory",
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-15T09:00:38.440609+00:00",
"scheduled_at": "2026-05-15T07:00:00+00:00"
},
{
"id": 106,
"slug": "meilleure-lamal-suisse",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-06",
"scheduled_at": null
},
{
"id": 105,
"slug": "comparaison-assurance-de-base",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-05",
"scheduled_at": null
},
{
"id": 104,
"slug": "comment-choisir-assurance-sante-suisse",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 1,
"gsc_indexed": 0,
"published_at": "2026-05-04",
"scheduled_at": null
},
{
"id": 98,
"slug": "groupe-mutuel",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 97,
"slug": "css-assurance",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 96,
"slug": "comparis-assurance-maladie",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 95,
"slug": "comparatif-assurance-maladie",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-28",
"scheduled_at": null
},
{
"id": 94,
"slug": "comparateur-assurance-maladie-suisse",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-29",
"scheduled_at": null
},
{
"id": 93,
"slug": "attenuer-l-assurance-maladie",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 92,
"slug": "assurance-maladie-neuchatel",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 91,
"slug": "assurance-comparative-maladie",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 90,
"slug": "ameli",
"error": null,
"status": "deleted",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-03-31",
"scheduled_at": null
},
{
"id": 13,
"slug": "franchise-assurance-maladie-suisse",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-06-01T07:00:00+00:00",
"scheduled_at": null
},
{
"id": 12,
"slug": "criteres-assurance-maladie-suisse",
"error": null,
"status": "published",
"attempts": 0,
"vercel_ok": 0,
"gsc_indexed": 0,
"published_at": "2026-05-29T07:00:00+00:00",
"scheduled_at": null
}
]
}
},
{
"id": 1513,
"site_key": "optiprime",
"source_type": "gsc_snapshot",
"subject_key": "pages_28d",
"payload_json": {
"saved_at": "2026-06-12T18:15:03.149498Z",
"top_pages": [
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"clicks": 0,
"position": 28.569573283858997,
"top_query": "comparer assurance obligatoire",
"impressions": 539
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog",
"clicks": 0,
"position": 28.516666666666666,
"top_query": "classement assurance de base",
"impressions": 480
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"clicks": 0,
"position": 19.83404255319149,
"top_query": "classement assurance de base",
"impressions": 235
},
{
"ctr": 0.0064516129032258064,
"page": "https://www.optiprime.ch/blog/assurance-maladie",
"clicks": 1,
"position": 22.051612903225806,
"top_query": "guide assurance maladie suisse",
"impressions": 155
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"clicks": 0,
"position": 57.29059829059829,
"top_query": "comparaison caisses maladie suisse",
"impressions": 117
}
],
"top_queries": [
{
"ctr": 0.0,
"query": "classement assurance de base",
"clicks": 0,
"position": 25.518072289156628,
"impressions": 83
},
{
"ctr": 0.0,
"query": "comparer assurance obligatoire",
"clicks": 0,
"position": 22.5,
"impressions": 68
},
{
"ctr": 0.0,
"query": "guide assurance maladie suisse",
"clicks": 0,
"position": 38.40983606557377,
"impressions": 61
},
{
"ctr": 0.0,
"query": "assurance obligatoire la moins chère",
"clicks": 0,
"position": 25.29090909090909,
"impressions": 55
},
{
"ctr": 0.0,
"query": "choix caisse maladie",
"clicks": 0,
"position": 26.254901960784313,
"impressions": 51
},
{
"ctr": 0.0,
"query": "choix caisse-maladie",
"clicks": 0,
"position": 26.941176470588236,
"impressions": 51
},
{
"ctr": 0.0,
"query": "optimisation prime caisse maladie",
"clicks": 0,
"position": 43.02272727272727,
"impressions": 44
},
{
"ctr": 0.0,
"query": "comparaison caisses maladie suisse",
"clicks": 0,
"position": 73.36842105263158,
"impressions": 38
},
{
"ctr": 0.0,
"query": "assurance maladie suisse pas chère",
"clicks": 0,
"position": 26.54054054054054,
"impressions": 37
},
{
"ctr": 0.0,
"query": "classement assurance maladie",
"clicks": 0,
"position": 19.29032258064516,
"impressions": 31
}
]
},
"recorded_at": "2026-06-15 00:00:11.169750+00:00",
"payload": {
"saved_at": "2026-06-12T18:15:03.149498Z",
"top_pages": [
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse",
"clicks": 0,
"position": 28.569573283858997,
"top_query": "comparer assurance obligatoire",
"impressions": 539
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog",
"clicks": 0,
"position": 28.516666666666666,
"top_query": "classement assurance de base",
"impressions": 480
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog/comparis-assurance-maladie",
"clicks": 0,
"position": 19.83404255319149,
"top_query": "classement assurance de base",
"impressions": 235
},
{
"ctr": 0.0064516129032258064,
"page": "https://www.optiprime.ch/blog/assurance-maladie",
"clicks": 1,
"position": 22.051612903225806,
"top_query": "guide assurance maladie suisse",
"impressions": 155
},
{
"ctr": 0.0,
"page": "https://www.optiprime.ch/blog/comparatif-assurance-maladie",
"clicks": 0,
"position": 57.29059829059829,
"top_query": "comparaison caisses maladie suisse",
"impressions": 117
}
],
"top_queries": [
{
"ctr": 0.0,
"query": "classement assurance de base",
"clicks": 0,
"position": 25.518072289156628,
"impressions": 83
},
{
"ctr": 0.0,
"query": "comparer assurance obligatoire",
"clicks": 0,
"position": 22.5,
"impressions": 68
},
{
"ctr": 0.0,
"query": "guide assurance maladie suisse",
"clicks": 0,
"position": 38.40983606557377,
"impressions": 61
},
{
"ctr": 0.0,
"query": "assurance obligatoire la moins chère",
"clicks": 0,
"position": 25.29090909090909,
"impressions": 55
},
{
"ctr": 0.0,
"query": "choix caisse maladie",
"clicks": 0,
"position": 26.254901960784313,
"impressions": 51
},
{
"ctr": 0.0,
"query": "choix caisse-maladie",
"clicks": 0,
"position": 26.941176470588236,
"impressions": 51
},
{
"ctr": 0.0,
"query": "optimisation prime caisse maladie",
"clicks": 0,
"position": 43.02272727272727,
"impressions": 44
},
{
"ctr": 0.0,
"query": "comparaison caisses maladie suisse",
"clicks": 0,
"position": 73.36842105263158,
"impressions": 38
},
{
"ctr": 0.0,
"query": "assurance maladie suisse pas chère",
"clicks": 0,
"position": 26.54054054054054,
"impressions": 37
},
{
"ctr": 0.0,
"query": "classement assurance maladie",
"clicks": 0,
"position": 19.29032258064516,
"impressions": 31
}
]
}
}
]
}