- title:: LLM Pack optiprime
- payload
- {
“site”: “optiprime”,
“context_pack”: {
“site_key”: “optiprime”,
“task”: “logseq export”,
“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”: 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”: 16,
“category”: “postmortem”,
“lesson”: “A publish failed during repository update. Add a preflight verification for repository access and target file state before production publish.”,
“confidence”: “high”,
“status”: “draft”
},
{
“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”: 226,
“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”,
“clicks”: 0,
“position”: 29.400713436385256,
“top_query”: “classement assurance maladie”,
“impressions”: 841
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse”,
“clicks”: 0,
“position”: 29.550488599348533,
“top_query”: “comparer assurance obligatoire”,
“impressions”: 307
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparis-assurance-maladie”,
“clicks”: 0,
“position”: 20.58992805755396,
“top_query”: “classement assurance de base”,
“impressions”: 139
},
{
“ctr”: 0.011627906976744186,
“page”: “https://www.optiprime.ch/blog/assurance-maladie”,
“clicks”: 1,
“position”: 22.988372093023255,
“top_query”: “guide assurance maladie suisse”,
“impressions”: 86
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparatif-assurance-maladie”,
“clicks”: 0,
“position”: 58.128571428571426,
“top_query”: “comparaison caisses maladie suisse”,
“impressions”: 70
}
]
},
“created_at”: “2026-06-20 00:00:15.308384+00:00”,
“updated_at”: “2026-06-20 00:00:16.216748+00:00”,
“details”: {
“pages”: [
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog”,
“clicks”: 0,
“position”: 29.400713436385256,
“top_query”: “classement assurance maladie”,
“impressions”: 841
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse”,
“clicks”: 0,
“position”: 29.550488599348533,
“top_query”: “comparer assurance obligatoire”,
“impressions”: 307
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparis-assurance-maladie”,
“clicks”: 0,
“position”: 20.58992805755396,
“top_query”: “classement assurance de base”,
“impressions”: 139
},
{
“ctr”: 0.011627906976744186,
“page”: “https://www.optiprime.ch/blog/assurance-maladie”,
“clicks”: 1,
“position”: 22.988372093023255,
“top_query”: “guide assurance maladie suisse”,
“impressions”: 86
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparatif-assurance-maladie”,
“clicks”: 0,
“position”: 58.128571428571426,
“top_query”: “comparaison caisses maladie suisse”,
“impressions”: 70
}
]
}
}
],
“sops”: [
{
“id”: 8,
“name”: “adaptive-feedback-playbook”,
“scope”: “site”,
“status”: “deprecated”,
“content”: “Toujours mesurer après action.”
}
],
“recent_memory”: [
{
“id”: 404,
“site_key”: “optiprime”,
“category”: “routine”,
“action”: “daily_feedback_learning”,
“target”: “optiprime”,
“outcome”: “1 lessons derived”,
“quality”: “good”,
“details_json”: {
“sop”: {
“sop”: {
“id”: 239,
“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”: 36,
“site_key”: “optiprime”,
“created_at”: “2026-06-20 00:00:15.484231+00:00”,
“updated_at”: “2026-06-20 00:00:15.484231+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”: 156,
“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 0x75f1ba5ba0f0>: 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 0x75f1ba5b8470>: 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-20 00:00:16.145809+00:00”,
“details”: {
“sop”: {
“sop”: {
“id”: 239,
“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”: 36,
“site_key”: “optiprime”,
“created_at”: “2026-06-20 00:00:15.484231+00:00”,
“updated_at”: “2026-06-20 00:00:15.484231+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”: 156,
“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 0x75f1ba5ba0f0>: 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 0x75f1ba5b8470>: Failed to establish a new connection: [Errno 111] Connection refused’))”,
“alerts_ok”: false,
“overview_ok”: false,
“health_score”: null
},
“project_name”: “Optiprime”
}
}
},
{
“id”: 397,
“site_key”: “optiprime”,
“category”: “routine”,
“action”: “daily_feedback_learning”,
“target”: “optiprime”,
“outcome”: “1 lessons derived”,
“quality”: “good”,
“details_json”: {
“sop”: {
“sop”: {
“id”: 230,
“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”: 35,
“site_key”: “optiprime”,
“created_at”: “2026-06-18 00:00:15.983788+00:00”,
“updated_at”: “2026-06-19 00:00:18.516239+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”: 152,
“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 0x753593799f40>: 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 0x7535937982c0>: 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-19 00:00:18.922464+00:00”,
“details”: {
“sop”: {
“sop”: {
“id”: 230,
“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”: 35,
“site_key”: “optiprime”,
“created_at”: “2026-06-18 00:00:15.983788+00:00”,
“updated_at”: “2026-06-19 00:00:18.516239+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”: 152,
“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 0x753593799f40>: 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 0x7535937982c0>: Failed to establish a new connection: [Errno 111] Connection refused’))”,
“alerts_ok”: false,
“overview_ok”: false,
“health_score”: null
},
“project_name”: “Optiprime”
}
}
},
{
“id”: 390,
“site_key”: “optiprime”,
“category”: “routine”,
“action”: “daily_feedback_learning”,
“target”: “optiprime”,
“outcome”: “1 lessons derived”,
“quality”: “good”,
“details_json”: {
“sop”: {
“sop”: {
“id”: 230,
“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”: 35,
“site_key”: “optiprime”,
“created_at”: “2026-06-18 00:00:15.983788+00:00”,
“updated_at”: “2026-06-18 00:00:15.983788+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”: 145,
“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 0x7c3c9f28e510>: 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 0x7c3c9f28c890>: 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-18 00:00:16.391447+00:00”,
“details”: {
“sop”: {
“sop”: {
“id”: 230,
“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”: 35,
“site_key”: “optiprime”,
“created_at”: “2026-06-18 00:00:15.983788+00:00”,
“updated_at”: “2026-06-18 00:00:15.983788+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”: 145,
“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 0x7c3c9f28e510>: 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 0x7c3c9f28c890>: Failed to establish a new connection: [Errno 111] Connection refused’))”,
“alerts_ok”: false,
“overview_ok”: false,
“health_score”: null
},
“project_name”: “Optiprime”
}
}
},
{
“id”: 383,
“site_key”: “optiprime”,
“category”: “routine”,
“action”: “daily_feedback_learning”,
“target”: “optiprime”,
“outcome”: “1 lessons derived”,
“quality”: “good”,
“details_json”: {
“sop”: {
“sop”: {
“id”: 221,
“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”: 34,
“site_key”: “optiprime”,
“created_at”: “2026-06-16 00:00:21.463617+00:00”,
“updated_at”: “2026-06-17 00:00:17.449047+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”: 144,
“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 0x7e4303faa5d0>: 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 0x7e4303fa8950>: 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-17 00:00:18.531283+00:00”,
“details”: {
“sop”: {
“sop”: {
“id”: 221,
“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”: 34,
“site_key”: “optiprime”,
“created_at”: “2026-06-16 00:00:21.463617+00:00”,
“updated_at”: “2026-06-17 00:00:17.449047+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”: 144,
“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 0x7e4303faa5d0>: 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 0x7e4303fa8950>: Failed to establish a new connection: [Errno 111] Connection refused’))”,
“alerts_ok”: false,
“overview_ok”: false,
“health_score”: null
},
“project_name”: “Optiprime”
}
}
},
{
“id”: 376,
“site_key”: “optiprime”,
“category”: “routine”,
“action”: “daily_feedback_learning”,
“target”: “optiprime”,
“outcome”: “1 lessons derived”,
“quality”: “good”,
“details_json”: {
“sop”: {
“sop”: {
“id”: 221,
“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”: 34,
“site_key”: “optiprime”,
“created_at”: “2026-06-16 00:00:21.463617+00:00”,
“updated_at”: “2026-06-16 00:00:21.463617+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”: 146,
“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 0x7e2fbd576630>: 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 0x7e2fbd5749b0>: 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-16 00:00:22.518918+00:00”,
“details”: {
“sop”: {
“sop”: {
“id”: 221,
“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”: 34,
“site_key”: “optiprime”,
“created_at”: “2026-06-16 00:00:21.463617+00:00”,
“updated_at”: “2026-06-16 00:00:21.463617+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”: 146,
“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 0x7e2fbd576630>: 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 0x7e2fbd5749b0>: Failed to establish a new connection: [Errno 111] Connection refused’))”,
“alerts_ok”: false,
“overview_ok”: false,
“health_score”: null
},
“project_name”: “Optiprime”
}
}
},
{
“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”
}
}
}
],
“recent_outcomes”: [
{
“id”: 427,
“site_key”: “optiprime”,
“outcome_type”: “measurement_result”,
“subject_key”: “publish:classement-assurance-de-base”,
“metric_name”: “impact_score”,
“metric_value”: 0.0,
“payload_json”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”,
“action_type”: “publish”,
“impact_label”: “neutral”,
“measurement_id”: 45
},
“recorded_at”: “2026-06-19 09:07:02.389072+00:00”,
“payload”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”,
“action_type”: “publish”,
“impact_label”: “neutral”,
“measurement_id”: 45
}
},
{
“id”: 426,
“site_key”: “optiprime”,
“outcome_type”: “gsc_delta”,
“subject_key”: “publish:classement-assurance-de-base”,
“metric_name”: “position”,
“metric_value”: 0.0,
“payload_json”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“current”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“baseline”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”
},
“recorded_at”: “2026-06-19 09:07:02.375238+00:00”,
“payload”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“current”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“baseline”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”
}
},
{
“id”: 425,
“site_key”: “optiprime”,
“outcome_type”: “gsc_delta”,
“subject_key”: “publish:classement-assurance-de-base”,
“metric_name”: “ctr”,
“metric_value”: 0.0,
“payload_json”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“current”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“baseline”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”
},
“recorded_at”: “2026-06-19 09:07:02.355818+00:00”,
“payload”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“current”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“baseline”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”
}
},
{
“id”: 424,
“site_key”: “optiprime”,
“outcome_type”: “gsc_delta”,
“subject_key”: “publish:classement-assurance-de-base”,
“metric_name”: “impressions”,
“metric_value”: 0.0,
“payload_json”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“current”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“baseline”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”
},
“recorded_at”: “2026-06-19 09:07:02.345094+00:00”,
“payload”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“current”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“baseline”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”
}
},
{
“id”: 423,
“site_key”: “optiprime”,
“outcome_type”: “gsc_delta”,
“subject_key”: “publish:classement-assurance-de-base”,
“metric_name”: “clicks”,
“metric_value”: 0.0,
“payload_json”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“current”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“baseline”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”
},
“recorded_at”: “2026-06-19 09:07:02.330707+00:00”,
“payload”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“current”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“baseline”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”
}
}
],
“recent_observations”: [
{
“id”: 1652,
“site_key”: “optiprime”,
“source_type”: “workflow_state”,
“subject_key”: “recent_events”,
“payload_json”: {
“events”: [
{
“type”: “gsc_sync”,
“payload”: {
“pages_7d”: 1,
“pages_28d”: 5,
“queries_7d”: 77,
“queries_28d”: 145,
“page_query_28d”: 227
},
“recorded_at”: “2026-06-17T18:15:04.126897Z”
},
{
“type”: “hermes_content_lifecycle”,
“payload”: {
“merge_count”: 2,
“watch_count”: 4,
“create_count”: 5,
“deleted_count”: 1,
“optimize_count”: 4
},
“recorded_at”: “2026-06-17T21:15:05.767750Z”
},
{
“type”: “hermes_daily_feedback_learning”,
“payload”: {
“sop_name”: “adaptive-feedback-playbook”,
“lessons_created”: 1
},
“recorded_at”: “2026-06-18T00:00:16.329814Z”
},
{
“type”: “gsc_sync”,
“payload”: {
“pages_7d”: 1,
“pages_28d”: 5,
“queries_7d”: 98,
“queries_28d”: 152,
“page_query_28d”: 230
},
“recorded_at”: “2026-06-18T06:15:04.075408Z”
},
{
“type”: “gsc_sync”,
“payload”: {
“pages_7d”: 1,
“pages_28d”: 5,
“queries_7d”: 98,
“queries_28d”: 152,
“page_query_28d”: 230
},
“recorded_at”: “2026-06-18T12:15:04.139409Z”
},
{
“type”: “gsc_sync”,
“payload”: {
“pages_7d”: 1,
“pages_28d”: 5,
“queries_7d”: 98,
“queries_28d”: 152,
“page_query_28d”: 230
},
“recorded_at”: “2026-06-18T18:15:04.178339Z”
},
{
“type”: “hermes_daily_feedback_learning”,
“payload”: {
“sop_name”: “adaptive-feedback-playbook”,
“lessons_created”: 1
},
“recorded_at”: “2026-06-19T00:00:18.880226Z”
},
{
“type”: “gsc_sync”,
“payload”: {
“pages_7d”: 1,
“pages_28d”: 5,
“queries_7d”: 82,
“queries_28d”: 149,
“page_query_28d”: 225
},
“recorded_at”: “2026-06-19T06:15:03.836778Z”
},
{
“type”: “gsc_sync”,
“payload”: {
“pages_7d”: 1,
“pages_28d”: 5,
“queries_7d”: 97,
“queries_28d”: 156,
“page_query_28d”: 233
},
“recorded_at”: “2026-06-19T12:15:04.442675Z”
},
{
“type”: “gsc_sync”,
“payload”: {
“pages_7d”: 1,
“pages_28d”: 5,
“queries_7d”: 97,
“queries_28d”: 156,
“page_query_28d”: 233
},
“recorded_at”: “2026-06-19T18:15:03.871817Z”
}
]
},
“recorded_at”: “2026-06-20 00:00:12.607961+00:00”,
“payload”: {
“events”: [
{
“type”: “gsc_sync”,
“payload”: {
“pages_7d”: 1,
“pages_28d”: 5,
“queries_7d”: 77,
“queries_28d”: 145,
“page_query_28d”: 227
},
“recorded_at”: “2026-06-17T18:15:04.126897Z”
},
{
“type”: “hermes_content_lifecycle”,
“payload”: {
“merge_count”: 2,
“watch_count”: 4,
“create_count”: 5,
“deleted_count”: 1,
“optimize_count”: 4
},
“recorded_at”: “2026-06-17T21:15:05.767750Z”
},
{
“type”: “hermes_daily_feedback_learning”,
“payload”: {
“sop_name”: “adaptive-feedback-playbook”,
“lessons_created”: 1
},
“recorded_at”: “2026-06-18T00:00:16.329814Z”
},
{
“type”: “gsc_sync”,
“payload”: {
“pages_7d”: 1,
“pages_28d”: 5,
“queries_7d”: 98,
“queries_28d”: 152,
“page_query_28d”: 230
},
“recorded_at”: “2026-06-18T06:15:04.075408Z”
},
{
“type”: “gsc_sync”,
“payload”: {
“pages_7d”: 1,
“pages_28d”: 5,
“queries_7d”: 98,
“queries_28d”: 152,
“page_query_28d”: 230
},
“recorded_at”: “2026-06-18T12:15:04.139409Z”
},
{
“type”: “gsc_sync”,
“payload”: {
“pages_7d”: 1,
“pages_28d”: 5,
“queries_7d”: 98,
“queries_28d”: 152,
“page_query_28d”: 230
},
“recorded_at”: “2026-06-18T18:15:04.178339Z”
},
{
“type”: “hermes_daily_feedback_learning”,
“payload”: {
“sop_name”: “adaptive-feedback-playbook”,
“lessons_created”: 1
},
“recorded_at”: “2026-06-19T00:00:18.880226Z”
},
{
“type”: “gsc_sync”,
“payload”: {
“pages_7d”: 1,
“pages_28d”: 5,
“queries_7d”: 82,
“queries_28d”: 149,
“page_query_28d”: 225
},
“recorded_at”: “2026-06-19T06:15:03.836778Z”
},
{
“type”: “gsc_sync”,
“payload”: {
“pages_7d”: 1,
“pages_28d”: 5,
“queries_7d”: 97,
“queries_28d”: 156,
“page_query_28d”: 233
},
“recorded_at”: “2026-06-19T12:15:04.442675Z”
},
{
“type”: “gsc_sync”,
“payload”: {
“pages_7d”: 1,
“pages_28d”: 5,
“queries_7d”: 97,
“queries_28d”: 156,
“page_query_28d”: 233
},
“recorded_at”: “2026-06-19T18:15:03.871817Z”
}
]
}
},
{
“id”: 1651,
“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-23T07:00:00+00:00”
},
{
“id”: 295,
“slug”: “meilleures-caisses-maladie-suisse-2026”,
“error”: “not present in local blog inventory”,
“status”: “published”,
“attempts”: 0,
“vercel_ok”: 1,
“gsc_indexed”: 0,
“published_at”: “2026-06-19T09:00:49.859842+00:00”,
“scheduled_at”: “2026-06-19T07:00:00+00:00”
},
{
“id”: 294,
“slug”: “lamal-suisse-pas-chere”,
“error”: “not present in local blog inventory”,
“status”: “scheduled”,
“attempts”: 0,
“vercel_ok”: 1,
“gsc_indexed”: 0,
“published_at”: null,
“scheduled_at”: “2026-06-24T07:00:00+00:00”
},
{
“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-22T07: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-20 00:00:12.568830+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-23T07:00:00+00:00”
},
{
“id”: 295,
“slug”: “meilleures-caisses-maladie-suisse-2026”,
“error”: “not present in local blog inventory”,
“status”: “published”,
“attempts”: 0,
“vercel_ok”: 1,
“gsc_indexed”: 0,
“published_at”: “2026-06-19T09:00:49.859842+00:00”,
“scheduled_at”: “2026-06-19T07:00:00+00:00”
},
{
“id”: 294,
“slug”: “lamal-suisse-pas-chere”,
“error”: “not present in local blog inventory”,
“status”: “scheduled”,
“attempts”: 0,
“vercel_ok”: 1,
“gsc_indexed”: 0,
“published_at”: null,
“scheduled_at”: “2026-06-24T07:00:00+00:00”
},
{
“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-22T07: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”: 1650,
“site_key”: “optiprime”,
“source_type”: “gsc_snapshot”,
“subject_key”: “pages_28d”,
“payload_json”: {
“saved_at”: “2026-06-19T18:15:03.860599Z”,
“top_pages”: [
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog”,
“clicks”: 0,
“position”: 29.400713436385256,
“top_query”: “classement assurance maladie”,
“impressions”: 841
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse”,
“clicks”: 0,
“position”: 29.550488599348533,
“top_query”: “comparer assurance obligatoire”,
“impressions”: 307
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparis-assurance-maladie”,
“clicks”: 0,
“position”: 20.58992805755396,
“top_query”: “classement assurance de base”,
“impressions”: 139
},
{
“ctr”: 0.011627906976744186,
“page”: “https://www.optiprime.ch/blog/assurance-maladie”,
“clicks”: 1,
“position”: 22.988372093023255,
“top_query”: “guide assurance maladie suisse”,
“impressions”: 86
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparatif-assurance-maladie”,
“clicks”: 0,
“position”: 58.128571428571426,
“top_query”: “comparaison caisses maladie suisse”,
“impressions”: 70
}
],
“top_queries”: [
{
“ctr”: 0.0,
“query”: “classement assurance de base”,
“clicks”: 0,
“position”: 22.911392405063292,
“impressions”: 79
},
{
“ctr”: 0.0,
“query”: “classement assurance maladie”,
“clicks”: 0,
“position”: 18.45762711864407,
“impressions”: 59
},
{
“ctr”: 0.0,
“query”: “classement assurance-maladie”,
“clicks”: 0,
“position”: 18.566037735849058,
“impressions”: 53
},
{
“ctr”: 0.0,
“query”: “guide assurance maladie suisse”,
“clicks”: 0,
“position”: 43.14,
“impressions”: 50
},
{
“ctr”: 0.0,
“query”: “comparer assurance obligatoire”,
“clicks”: 0,
“position”: 22.545454545454547,
“impressions”: 44
},
{
“ctr”: 0.0,
“query”: “assurance maladie suisse pas chère”,
“clicks”: 0,
“position”: 26.275,
“impressions”: 40
},
{
“ctr”: 0.0,
“query”: “choix caisse maladie”,
“clicks”: 0,
“position”: 27.685714285714287,
“impressions”: 35
},
{
“ctr”: 0.0,
“query”: “meilleure lamal suisse”,
“clicks”: 0,
“position”: 17.02857142857143,
“impressions”: 35
},
{
“ctr”: 0.0,
“query”: “choix caisse-maladie”,
“clicks”: 0,
“position”: 29.941176470588236,
“impressions”: 34
},
{
“ctr”: 0.0,
“query”: “assurance obligatoire la moins chère”,
“clicks”: 0,
“position”: 27.65625,
“impressions”: 32
}
]
},
“recorded_at”: “2026-06-20 00:00:12.528615+00:00”,
“payload”: {
“saved_at”: “2026-06-19T18:15:03.860599Z”,
“top_pages”: [
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog”,
“clicks”: 0,
“position”: 29.400713436385256,
“top_query”: “classement assurance maladie”,
“impressions”: 841
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse”,
“clicks”: 0,
“position”: 29.550488599348533,
“top_query”: “comparer assurance obligatoire”,
“impressions”: 307
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparis-assurance-maladie”,
“clicks”: 0,
“position”: 20.58992805755396,
“top_query”: “classement assurance de base”,
“impressions”: 139
},
{
“ctr”: 0.011627906976744186,
“page”: “https://www.optiprime.ch/blog/assurance-maladie”,
“clicks”: 1,
“position”: 22.988372093023255,
“top_query”: “guide assurance maladie suisse”,
“impressions”: 86
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparatif-assurance-maladie”,
“clicks”: 0,
“position”: 58.128571428571426,
“top_query”: “comparaison caisses maladie suisse”,
“impressions”: 70
}
],
“top_queries”: [
{
“ctr”: 0.0,
“query”: “classement assurance de base”,
“clicks”: 0,
“position”: 22.911392405063292,
“impressions”: 79
},
{
“ctr”: 0.0,
“query”: “classement assurance maladie”,
“clicks”: 0,
“position”: 18.45762711864407,
“impressions”: 59
},
{
“ctr”: 0.0,
“query”: “classement assurance-maladie”,
“clicks”: 0,
“position”: 18.566037735849058,
“impressions”: 53
},
{
“ctr”: 0.0,
“query”: “guide assurance maladie suisse”,
“clicks”: 0,
“position”: 43.14,
“impressions”: 50
},
{
“ctr”: 0.0,
“query”: “comparer assurance obligatoire”,
“clicks”: 0,
“position”: 22.545454545454547,
“impressions”: 44
},
{
“ctr”: 0.0,
“query”: “assurance maladie suisse pas chère”,
“clicks”: 0,
“position”: 26.275,
“impressions”: 40
},
{
“ctr”: 0.0,
“query”: “choix caisse maladie”,
“clicks”: 0,
“position”: 27.685714285714287,
“impressions”: 35
},
{
“ctr”: 0.0,
“query”: “meilleure lamal suisse”,
“clicks”: 0,
“position”: 17.02857142857143,
“impressions”: 35
},
{
“ctr”: 0.0,
“query”: “choix caisse-maladie”,
“clicks”: 0,
“position”: 29.941176470588236,
“impressions”: 34
},
{
“ctr”: 0.0,
“query”: “assurance obligatoire la moins chère”,
“clicks”: 0,
“position”: 27.65625,
“impressions”: 32
}
]
}
},
{
“id”: 1646,
“site_key”: “optiprime”,
“source_type”: “learningseo_site_feedback”,
“subject_key”: “optiprime”,
“payload_json”: {
“site_key”: “optiprime”,
“project_name”: “Optiprime”,
“applied_topics”: [
“fundamentals”,
“execution”,
“technical”,
“content”,
“links”,
“automation”
],
“contradictions”: [
“Average ranking remains weak. Content coverage and intent fit need to improve before scaling output volume.”
],
“sop_candidates”: [
“Before new draft creation, verify that the target intent is not already partially served by an existing URL.”,
“Treat crawlability, indexation, and internal-link architecture as preconditions before content-scale actions.”,
“Prioritize title/H1/intent refreshes on visible pages before creating new pages for adjacent intents.”,
“Every new or refreshed priority page should receive a deliberate internal-link plan from existing related pages.”,
“Automated actions must emit events, measurements, and postmortems by default.”
],
“lessons_created”: 7
},
“recorded_at”: “2026-06-20 00:00:10.418772+00:00”,
“payload”: {
“site_key”: “optiprime”,
“project_name”: “Optiprime”,
“applied_topics”: [
“fundamentals”,
“execution”,
“technical”,
“content”,
“links”,
“automation”
],
“contradictions”: [
“Average ranking remains weak. Content coverage and intent fit need to improve before scaling output volume.”
],
“sop_candidates”: [
“Before new draft creation, verify that the target intent is not already partially served by an existing URL.”,
“Treat crawlability, indexation, and internal-link architecture as preconditions before content-scale actions.”,
“Prioritize title/H1/intent refreshes on visible pages before creating new pages for adjacent intents.”,
“Every new or refreshed priority page should receive a deliberate internal-link plan from existing related pages.”,
“Automated actions must emit events, measurements, and postmortems by default.”
],
“lessons_created”: 7
}
},
{
“id”: 1645,
“site_key”: “optiprime”,
“source_type”: “measurement_scheduled”,
“subject_key”: “publish:meilleures-caisses-maladie-suisse-2026”,
“payload_json”: {
“due_at”: “2026-07-03T09:00:04.362310Z”,
“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”: 57
},
“recorded_at”: “2026-06-19 09:00:04.495112+00:00”,
“payload”: {
“due_at”: “2026-07-03T09:00:04.362310Z”,
“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”: 57
}
},
{
“id”: 1642,
“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”: 19,
“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/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”: 19,
“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/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é (4543 ms)”
],
“pagespeed”: {
“ok”: true,
“cls”: 0.025831999999999997,
“inp_ms”: 59.0,
“lcp_ms”: 4543.978608898807,
“mobile”: {
“ok”: true,
“cls”: 0.025831999999999997,
“inp_ms”: 59.0,
“lcp_ms”: 4543.978608898807,
“source”: “pagespeed_insights”,
“strategy”: “mobile”,
“performance_score”: 80.0
},
“source”: “pagespeed_insights”,
“desktop”: {
“ok”: true,
“cls”: 0.035987,
“inp_ms”: 39.0,
“lcp_ms”: 717.4006636561528,
“source”: “pagespeed_insights”,
“strategy”: “desktop”,
“performance_score”: 99.0
},
“strategy”: “mobile”,
“performance_score”: 80.0
},
“gsc_live_urls”: {
“urls”: [
{
“ok”: true,
“ctr”: 0.0,
“url”: “https://www.optiprime.ch/blog”,
“error”: "",
“clicks”: 0,
“position”: 29.13032581453634,
“canonical”: “https://www.optiprime.ch/blog”,
“final_url”: “https://www.optiprime.ch/blog”,
“indexable”: true,
“top_query”: “classement assurance de base”,
“redirected”: false,
“impressions”: 798,
“status_code”: 200
},
{
“ok”: true,
“ctr”: 0.0,
“url”: “https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse”,
“error”: "",
“clicks”: 0,
“position”: 29.818181818181817,
“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”: 330,
“status_code”: 200
},
{
“ok”: true,
“ctr”: 0.0,
“url”: “https://www.optiprime.ch/blog/comparis-assurance-maladie”,
“error”: "",
“clicks”: 0,
“position”: 19.830065359477125,
“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”: 153,
“status_code”: 200
},
{
“ok”: true,
“ctr”: 0.01098901098901099,
“url”: “https://www.optiprime.ch/blog/assurance-maladie”,
“error”: "",
“clicks”: 1,
“position”: 23.439560439560438,
“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”: 91,
“status_code”: 200
},
{
“ok”: true,
“ctr”: 0.0,
“url”: “https://www.optiprime.ch/blog/comparatif-assurance-maladie”,
“error”: "",
“clicks”: 0,
“position”: 59.41095890410959,
“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”: 73,
“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-18T18:15:04.163354Z”
},
“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”: 19
},
“deployment_health”: {
“checked”: false
},
“technical_health_score”: 90
},
“recorded_at”: “2026-06-19 00:06:11.408842+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”: 19,
“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/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”: 19,
“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/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é (4543 ms)”
],
“pagespeed”: {
“ok”: true,
“cls”: 0.025831999999999997,
“inp_ms”: 59.0,
“lcp_ms”: 4543.978608898807,
“mobile”: {
“ok”: true,
“cls”: 0.025831999999999997,
“inp_ms”: 59.0,
“lcp_ms”: 4543.978608898807,
“source”: “pagespeed_insights”,
“strategy”: “mobile”,
“performance_score”: 80.0
},
“source”: “pagespeed_insights”,
“desktop”: {
“ok”: true,
“cls”: 0.035987,
“inp_ms”: 39.0,
“lcp_ms”: 717.4006636561528,
“source”: “pagespeed_insights”,
“strategy”: “desktop”,
“performance_score”: 99.0
},
“strategy”: “mobile”,
“performance_score”: 80.0
},
“gsc_live_urls”: {
“urls”: [
{
“ok”: true,
“ctr”: 0.0,
“url”: “https://www.optiprime.ch/blog”,
“error”: "",
“clicks”: 0,
“position”: 29.13032581453634,
“canonical”: “https://www.optiprime.ch/blog”,
“final_url”: “https://www.optiprime.ch/blog”,
“indexable”: true,
“top_query”: “classement assurance de base”,
“redirected”: false,
“impressions”: 798,
“status_code”: 200
},
{
“ok”: true,
“ctr”: 0.0,
“url”: “https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse”,
“error”: "",
“clicks”: 0,
“position”: 29.818181818181817,
“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”: 330,
“status_code”: 200
},
{
“ok”: true,
“ctr”: 0.0,
“url”: “https://www.optiprime.ch/blog/comparis-assurance-maladie”,
“error”: "",
“clicks”: 0,
“position”: 19.830065359477125,
“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”: 153,
“status_code”: 200
},
{
“ok”: true,
“ctr”: 0.01098901098901099,
“url”: “https://www.optiprime.ch/blog/assurance-maladie”,
“error”: "",
“clicks”: 1,
“position”: 23.439560439560438,
“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”: 91,
“status_code”: 200
},
{
“ok”: true,
“ctr”: 0.0,
“url”: “https://www.optiprime.ch/blog/comparatif-assurance-maladie”,
“error”: "",
“clicks”: 0,
“position”: 59.41095890410959,
“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”: 73,
“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-18T18:15:04.163354Z”
},
“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”: 19
},
“deployment_health”: {
“checked”: false
},
“technical_health_score”: 90
}
},
{
“id”: 1636,
“site_key”: “optiprime”,
“source_type”: “technical_remediation”,
“subject_key”: “optiprime”,
“payload_json”: {
“ok”: true,
“errors”: [],
“actions”: [
{
“type”: “optimize_lcp”,
“value”: 3752.3,
“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-19 00:03:31.003335+00:00”,
“payload”: {
“ok”: true,
“errors”: [],
“actions”: [
{
“type”: “optimize_lcp”,
“value”: 3752.3,
“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
}
}
}
],
“live_state”: {
“queue”: {
“by_status”: {
“deleted”: 12,
“draft”: 1,
“published”: 8,
“scheduled”: 3
},
“recent_items”: [
{
“id”: 325,
“slug”: “classement-assurance-de-base”,
“status”: “scheduled”,
“scheduled_at”: “2026-06-23T07: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”: “draft”,
“scheduled_at”: null,
“published_at”: null,
“error”: “not present in local blog inventory”,
“attempts”: 0
},
{
“id”: 294,
“slug”: “lamal-suisse-pas-chere”,
“status”: “scheduled”,
“scheduled_at”: “2026-06-24T07: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-22T07: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-19T18:15:03.860599Z”,
“top_pages”: [
{
“page”: “https://www.optiprime.ch/blog”,
“clicks”: 0,
“impressions”: 841,
“ctr”: 0.0,
“position”: 29.400713436385256,
“top_query”: “classement assurance maladie”
},
{
“page”: “https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse”,
“clicks”: 0,
“impressions”: 307,
“ctr”: 0.0,
“position”: 29.550488599348533,
“top_query”: “comparer assurance obligatoire”
},
{
“page”: “https://www.optiprime.ch/blog/comparis-assurance-maladie”,
“clicks”: 0,
“impressions”: 139,
“ctr”: 0.0,
“position”: 20.58992805755396,
“top_query”: “classement assurance de base”
}
],
“top_queries”: [
{
“query”: “classement assurance de base”,
“clicks”: 0,
“impressions”: 79,
“ctr”: 0.0,
“position”: 22.911392405063292
},
{
“query”: “classement assurance maladie”,
“clicks”: 0,
“impressions”: 59,
“ctr”: 0.0,
“position”: 18.45762711864407
},
{
“query”: “classement assurance-maladie”,
“clicks”: 0,
“impressions”: 53,
“ctr”: 0.0,
“position”: 18.566037735849058
},
{
“query”: “guide assurance maladie suisse”,
“clicks”: 0,
“impressions”: 50,
“ctr”: 0.0,
“position”: 43.14
},
{
“query”: “comparer assurance obligatoire”,
“clicks”: 0,
“impressions”: 44,
“ctr”: 0.0,
“position”: 22.545454545454547
}
]
},
“workflow”: {
“updated_at”: “2026-06-20T00:00:16.087133Z”,
“recent_events”: [
{
“type”: “hermes_daily_feedback_learning”,
“payload”: {
“lessons_created”: 1,
“sop_name”: “adaptive-feedback-playbook”
},
“recorded_at”: “2026-06-19T00:00:18.880226Z”
},
{
“type”: “gsc_sync”,
“payload”: {
“pages_7d”: 1,
“pages_28d”: 5,
“queries_7d”: 82,
“queries_28d”: 149,
“page_query_28d”: 225
},
“recorded_at”: “2026-06-19T06:15:03.836778Z”
},
{
“type”: “gsc_sync”,
“payload”: {
“pages_7d”: 1,
“pages_28d”: 5,
“queries_7d”: 97,
“queries_28d”: 156,
“page_query_28d”: 233
},
“recorded_at”: “2026-06-19T12:15:04.442675Z”
},
{
“type”: “gsc_sync”,
“payload”: {
“pages_7d”: 1,
“pages_28d”: 5,
“queries_7d”: 97,
“queries_28d”: 156,
“page_query_28d”: 233
},
“recorded_at”: “2026-06-19T18:15:03.871817Z”
},
{
“type”: “hermes_daily_feedback_learning”,
“payload”: {
“lessons_created”: 1,
“sop_name”: “adaptive-feedback-playbook”
},
“recorded_at”: “2026-06-20T00:00:16.082331Z”
}
]
}
},
“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”: 226,
“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”,
“clicks”: 0,
“position”: 29.400713436385256,
“top_query”: “classement assurance maladie”,
“impressions”: 841
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse”,
“clicks”: 0,
“position”: 29.550488599348533,
“top_query”: “comparer assurance obligatoire”,
“impressions”: 307
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparis-assurance-maladie”,
“clicks”: 0,
“position”: 20.58992805755396,
“top_query”: “classement assurance de base”,
“impressions”: 139
},
{
“ctr”: 0.011627906976744186,
“page”: “https://www.optiprime.ch/blog/assurance-maladie”,
“clicks”: 1,
“position”: 22.988372093023255,
“top_query”: “guide assurance maladie suisse”,
“impressions”: 86
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparatif-assurance-maladie”,
“clicks”: 0,
“position”: 58.128571428571426,
“top_query”: “comparaison caisses maladie suisse”,
“impressions”: 70
}
]
},
“created_at”: “2026-06-20 00:00:15.308384+00:00”,
“updated_at”: “2026-06-20 00:00:16.216748+00:00”,
“details”: {
“pages”: [
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog”,
“clicks”: 0,
“position”: 29.400713436385256,
“top_query”: “classement assurance maladie”,
“impressions”: 841
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparateur-assurance-maladie-suisse”,
“clicks”: 0,
“position”: 29.550488599348533,
“top_query”: “comparer assurance obligatoire”,
“impressions”: 307
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparis-assurance-maladie”,
“clicks”: 0,
“position”: 20.58992805755396,
“top_query”: “classement assurance de base”,
“impressions”: 139
},
{
“ctr”: 0.011627906976744186,
“page”: “https://www.optiprime.ch/blog/assurance-maladie”,
“clicks”: 1,
“position”: 22.988372093023255,
“top_query”: “guide assurance maladie suisse”,
“impressions”: 86
},
{
“ctr”: 0.0,
“page”: “https://www.optiprime.ch/blog/comparatif-assurance-maladie”,
“clicks”: 0,
“position”: 58.128571428571426,
“top_query”: “comparaison caisses maladie suisse”,
“impressions”: 70
}
]
}
},
{
“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
}
}
],
“active_sops”: [],
“recent_outcomes”: [
{
“id”: 427,
“site_key”: “optiprime”,
“outcome_type”: “measurement_result”,
“subject_key”: “publish:classement-assurance-de-base”,
“metric_name”: “impact_score”,
“metric_value”: 0.0,
“payload_json”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”,
“action_type”: “publish”,
“impact_label”: “neutral”,
“measurement_id”: 45
},
“recorded_at”: “2026-06-19 09:07:02.389072+00:00”,
“payload”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”,
“action_type”: “publish”,
“impact_label”: “neutral”,
“measurement_id”: 45
}
},
{
“id”: 426,
“site_key”: “optiprime”,
“outcome_type”: “gsc_delta”,
“subject_key”: “publish:classement-assurance-de-base”,
“metric_name”: “position”,
“metric_value”: 0.0,
“payload_json”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“current”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“baseline”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”
},
“recorded_at”: “2026-06-19 09:07:02.375238+00:00”,
“payload”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“current”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“baseline”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”
}
},
{
“id”: 425,
“site_key”: “optiprime”,
“outcome_type”: “gsc_delta”,
“subject_key”: “publish:classement-assurance-de-base”,
“metric_name”: “ctr”,
“metric_value”: 0.0,
“payload_json”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“current”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“baseline”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”
},
“recorded_at”: “2026-06-19 09:07:02.355818+00:00”,
“payload”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“current”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“baseline”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”
}
},
{
“id”: 424,
“site_key”: “optiprime”,
“outcome_type”: “gsc_delta”,
“subject_key”: “publish:classement-assurance-de-base”,
“metric_name”: “impressions”,
“metric_value”: 0.0,
“payload_json”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“current”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“baseline”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”
},
“recorded_at”: “2026-06-19 09:07:02.345094+00:00”,
“payload”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“current”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“baseline”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”
}
},
{
“id”: 423,
“site_key”: “optiprime”,
“outcome_type”: “gsc_delta”,
“subject_key”: “publish:classement-assurance-de-base”,
“metric_name”: “clicks”,
“metric_value”: 0.0,
“payload_json”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“current”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“baseline”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”
},
“recorded_at”: “2026-06-19 09:07:02.330707+00:00”,
“payload”: {
“delta”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“current”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“baseline”: {
“ctr”: 0.0,
“clicks”: 0.0,
“position”: 0.0,
“impressions”: 0.0
},
“page_url”: “https://www.optiprime.ch/blog/classement-assurance-de-base”
}
},
{
“id”: 422,
“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-19 09:00:04.352319+00:00”,
“payload”: {
“row”: {},
“page_url”: “https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026”
}
},
{
“id”: 421,
“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-19 09:00:04.260131+00:00”,
“payload”: {
“row”: {},
“page_url”: “https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026”
}
},
{
“id”: 420,
“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-19 09:00:04.204194+00:00”,
“payload”: {
“row”: {},
“page_url”: “https://www.optiprime.ch/blog/meilleures-caisses-maladie-suisse-2026”
}
}
]
}