Acme n-seo

Action queue

Data-derived rules (90-day window) + your curated queue (config/backlog.json). Click any item for the full spec. Impact numbers rank the queue — they are estimates for ordering, not forecasts.

Proposed by the opportunity scan · 2026-09-18 — rising queries no queue item covers, turned into candidate moves. Accepting copies a proposal into your queue; nothing self-modifies it.

Why (the data)

DEMO DATA — a rising query (pos 5.5) with no page that answers it directly; impressions quadrupled over 84 days

The move

Write an answer-formatted guide: the query as H1, a 40-60 word direct answer, then detail, FAQPage schema, internal links from the two closest pages.

Spec

  • URL: https://example.com/guides/widgets/
  • Outline: direct answer -> how it works -> examples -> FAQ
  • Schema: Article + FAQPage
  • Success: first-page ranking for the target query within 8 weeks

Why (the data)

DEMO DATA — the probe shows no llms.txt and 380 bytes of visible text on the homepage; AI crawlers see an empty shell

The move

Publish /llms.txt (markdown summary + key links) and move the homepage H1 + intro paragraph into the server-rendered HTML.

Spec

  • Serve /llms.txt and /llms-full.txt
  • Static H1 + 2 paragraphs in the HTML shell
  • Verify with probes/site_probe.py after deploy

Scan verdicts on watching items — review triggers, not auto-actions

Active (25 — ranked by clicks/month per unit of effort)

Why (the data)

942 impressions in 90d; issues: title misses ranking-query language: widgets, canvas rendering tutorial; CTR below position expectation (~38 clicks missed in 90d); meta description missing

The move

Rewrite the title to carry the ranking-query language and the description as a ~150-char direct answer; respect the ~60-char title budget.

Spec

  • Page: https://example.com/docs/
  • Current title: "Docs | Example"
  • Current description: (none)
  • Top queries: “widgets” (365 imps, pos 5.5, 1.5% CTR) · “canvas rendering tutorial” (254 imps, pos 5, 1.7% CTR) · “widgets for beginners” (155 imps, pos 2.7, 2.5% CTR) · “canvas rendering cheat sheet” (65 imps, pos 3.4, 3.5% CTR) · “example docs” (59 imps, pos 1.4, 31.0% CTR)
  • Issue: title misses ranking-query language: widgets, canvas rendering tutorial
  • Issue: CTR below position expectation (~38 clicks missed in 90d)
  • Issue: meta description missing
  • Success: CTR on the listed queries reaches ≥ half of position-expected within 28 days. Freeze the title for those 28 days.

Why (the data)

1,010 impressions in 90d; issues: title misses ranking-query language: example, what is webhooks; CTR below position expectation (~40 clicks missed in 90d); meta description missing

The move

Rewrite the title to carry the ranking-query language and the description as a ~150-char direct answer; respect the ~60-char title budget.

Spec

  • Page: https://docs.example.com/
  • Current title: "Docs.Example.Com | Docs"
  • Current description: (none)
  • Top queries: “example” (707 imps, pos 1.1, 42.0% CTR) · “what is webhooks” (149 imps, pos 7.4, 3.5% CTR) · “supply chain games guide” (83 imps, pos 10.2, 2.3% CTR) · “open source webhooks” (59 imps, pos 6.1, 4.7% CTR) · “static sites vs webhooks” (12 imps, pos 13.8, 1.5% CTR)
  • Issue: title misses ranking-query language: example, what is webhooks
  • Issue: CTR below position expectation (~40 clicks missed in 90d)
  • Issue: meta description missing
  • Success: CTR on the listed queries reaches ≥ half of position-expected within 28 days. Freeze the title for those 28 days.

Why (the data)

215 sessions/90d land here but only 18% engage — the page isn't delivering what the click promised

The move

Read the top queries landing here, rewrite the opening to deliver that answer immediately, move setup/context below.

Spec

  • Page: https://example.com/blog/canvas-rendering-explained
  • Evidence: 215 sessions/90d, 18% engagement (a healthy content page sits around 40–70%).
  • Check this site's queries for the ones landing on this path — the rewrite must answer THOSE in the first screenful.
  • Keep the URL; rewrite opening + structure, don't relocate.
  • Success: engagement above 35% within 28 days of shipping.

Why (the data)

Ranks but rarely clicked (90d) — “widgets vs dashboards” (54 imps, 11.1% CTR at pos 1.3); “what is dashboards” (105 imps, 3.8% CTR at pos 2.8); “canvas rendering explained” (117 imps, 1.7% CTR at pos 5.3)

The move

Make the <title> restate the query as its answer; description = 150-char direct answer. Then request reindexing in Search Console.

Spec

  • Page: https://example.com/examples/
  • Queries being lost: “widgets vs dashboards” (54 imps, 11.1% CTR, pos 1.3) · “what is dashboards” (105 imps, 3.8% CTR, pos 2.8) · “canvas rendering explained” (117 imps, 1.7% CTR, pos 5.3) · “open source dashboards” (43 imps, 2.3% CTR, pos 4.9)
  • Title formula: [query phrased as its answer] — [differentiator]. Keep under ~60 chars; front-load the query words.
  • Description: one ~150-char sentence that directly answers the query (this becomes the SERP snippet).
  • Ship: meta change only — no body-content edits needed. Then Search Console → URL Inspection → Request Indexing.
  • Success: CTR on these queries reaches ≥ half of position-expected within 28 days (watch on this dashboard). Then leave the title alone — title churn resets Google's evaluation.

Why (the data)

Ranks but rarely clicked (90d) — “open source static sites” (107 imps, 6.5% CTR at pos 1.8); “what is static sites” (114 imps, 0.9% CTR at pos 4.9); “webhooks explained” (138 imps, 0.7% CTR at pos 5.8)

The move

Make the <title> restate the query as its answer; description = 150-char direct answer. Then request reindexing in Search Console.

Spec

  • Page: https://docs.example.com/examples/
  • Queries being lost: “open source static sites” (107 imps, 6.5% CTR, pos 1.8) · “what is static sites” (114 imps, 0.9% CTR, pos 4.9) · “webhooks explained” (138 imps, 0.7% CTR, pos 5.8) · “supply chain games vs static sites” (51 imps, 2.0% CTR, pos 4.6)
  • Title formula: [query phrased as its answer] — [differentiator]. Keep under ~60 chars; front-load the query words.
  • Description: one ~150-char sentence that directly answers the query (this becomes the SERP snippet).
  • Ship: meta change only — no body-content edits needed. Then Search Console → URL Inspection → Request Indexing.
  • Success: CTR on these queries reaches ≥ half of position-expected within 28 days (watch on this dashboard). Then leave the title alone — title churn resets Google's evaluation.

Why (the data)

Live probe failing on this check

The move

AI crawlers don't run JS — add static H1 + intro text to the shell.

Spec

  • AI crawlers don't run JS — add static H1 + intro text to the shell.
  • Verify with: n-seo daily --only probe after deploy.

Why (the data)

132 sessions/90d land here but only 18% engage — the page isn't delivering what the click promised

The move

Read the top queries landing here, rewrite the opening to deliver that answer immediately, move setup/context below.

Spec

  • Page: https://docs.example.com/blog/supply-chain-games
  • Evidence: 132 sessions/90d, 18% engagement (a healthy content page sits around 40–70%).
  • Check this site's queries for the ones landing on this path — the rewrite must answer THOSE in the first screenful.
  • Keep the URL; rewrite opening + structure, don't relocate.
  • Success: engagement above 35% within 28 days of shipping.

Why (the data)

Live probe failing on this check

The move

A markdown site summary with links to the key pages — the surface AI crawlers read first.

Spec

  • A markdown site summary with links to the key pages — the surface AI crawlers read first.
  • Verify with: n-seo daily --only probe after deploy.

Why (the data)

Position 5–15 in the last 90d for “widgets tutorial” pos 11.1 (345 imps); “free dashboards” pos 14.3 (93 imps)

The move

Add a section that answers these queries verbatim (H2 phrased as the query + direct answer), add 2–3 internal links to this page from related pages, refresh dateModified.

Spec

  • Page: https://example.com/blog/widgets/
  • Target queries: “widgets tutorial” (pos 11.1, 345 imps) · “free dashboards” (pos 14.3, 93 imps)
  • Add one H2 per query cluster, phrased as the query, followed by a 40–60 word direct answer, then detail.
  • Internal links: 2–3 links to this page from the site's highest-authority related pages, using the query as anchor text.
  • Freshness: a real content change → dateModified updates → sitemap lastmod moves.
  • Success: these queries move from pos 5–15 into the top 5 within ~6 weeks.

Why (the data)

Position 5–15 in the last 90d for “static sites” pos 7.5 (218 imps); “how to use webhooks” pos 10.8 (107 imps); “best supply chain games tools” pos 11.2 (94 imps)

The move

Add a section that answers these queries verbatim (H2 phrased as the query + direct answer), add 2–3 internal links to this page from related pages, refresh dateModified.

Spec

  • Page: https://docs.example.com/pricing/
  • Target queries: “static sites” (pos 7.5, 218 imps) · “how to use webhooks” (pos 10.8, 107 imps) · “best supply chain games tools” (pos 11.2, 94 imps) · “static sites for beginners” (pos 8.5, 41 imps)
  • Add one H2 per query cluster, phrased as the query, followed by a 40–60 word direct answer, then detail.
  • Internal links: 2–3 links to this page from the site's highest-authority related pages, using the query as anchor text.
  • Freshness: a real content change → dateModified updates → sitemap lastmod moves.
  • Success: these queries move from pos 5–15 into the top 5 within ~6 weeks.

Why (the data)

Position 5–15 in the last 90d for “canvas rendering” pos 10.8 (256 imps); “canvas rendering for beginners” pos 10.3 (132 imps)

The move

Add a section that answers these queries verbatim (H2 phrased as the query + direct answer), add 2–3 internal links to this page from related pages, refresh dateModified.

Spec

  • Page: https://example.com/compare/widgets-vs-alternatives/
  • Target queries: “canvas rendering” (pos 10.8, 256 imps) · “canvas rendering for beginners” (pos 10.3, 132 imps)
  • Add one H2 per query cluster, phrased as the query, followed by a 40–60 word direct answer, then detail.
  • Internal links: 2–3 links to this page from the site's highest-authority related pages, using the query as anchor text.
  • Freshness: a real content change → dateModified updates → sitemap lastmod moves.
  • Success: these queries move from pos 5–15 into the top 5 within ~6 weeks.

Why (the data)

Position 5–15 in the last 90d for “widgets” pos 5.3 (365 imps)

The move

Add a section that answers these queries verbatim (H2 phrased as the query + direct answer), add 2–3 internal links to this page from related pages, refresh dateModified.

Spec

  • Page: https://example.com/docs/
  • Target queries: “widgets” (pos 5.3, 365 imps)
  • Add one H2 per query cluster, phrased as the query, followed by a 40–60 word direct answer, then detail.
  • Internal links: 2–3 links to this page from the site's highest-authority related pages, using the query as anchor text.
  • Freshness: a real content change → dateModified updates → sitemap lastmod moves.
  • Success: these queries move from pos 5–15 into the top 5 within ~6 weeks.

Why (the data)

Position 5–15 in the last 90d for “how to use canvas rendering” pos 10.7 (114 imps); “dashboards” pos 7.8 (108 imps); “best widgets tools” pos 12.9 (87 imps)

The move

Add a section that answers these queries verbatim (H2 phrased as the query + direct answer), add 2–3 internal links to this page from related pages, refresh dateModified.

Spec

  • Page: https://example.com/pricing/
  • Target queries: “how to use canvas rendering” (pos 10.7, 114 imps) · “dashboards” (pos 7.8, 108 imps) · “best widgets tools” (pos 12.9, 87 imps)
  • Add one H2 per query cluster, phrased as the query, followed by a 40–60 word direct answer, then detail.
  • Internal links: 2–3 links to this page from the site's highest-authority related pages, using the query as anchor text.
  • Freshness: a real content change → dateModified updates → sitemap lastmod moves.
  • Success: these queries move from pos 5–15 into the top 5 within ~6 weeks.

Why (the data)

Position 5–15 in the last 90d for “what is webhooks” pos 7.7 (149 imps); “supply chain games guide” pos 9.8 (83 imps); “open source webhooks” pos 6.4 (59 imps)

The move

Add a section that answers these queries verbatim (H2 phrased as the query + direct answer), add 2–3 internal links to this page from related pages, refresh dateModified.

Spec

  • Page: https://docs.example.com/
  • Target queries: “what is webhooks” (pos 7.7, 149 imps) · “supply chain games guide” (pos 9.8, 83 imps) · “open source webhooks” (pos 6.4, 59 imps) · “static sites vs webhooks” (pos 13.6, 12 imps)
  • Add one H2 per query cluster, phrased as the query, followed by a 40–60 word direct answer, then detail.
  • Internal links: 2–3 links to this page from the site's highest-authority related pages, using the query as anchor text.
  • Freshness: a real content change → dateModified updates → sitemap lastmod moves.
  • Success: these queries move from pos 5–15 into the top 5 within ~6 weeks.

Why (the data)

Position 5–15 in the last 90d for “open source canvas rendering” pos 7.5 (73 imps); “widgets guide” pos 10.8 (71 imps)

The move

Add a section that answers these queries verbatim (H2 phrased as the query + direct answer), add 2–3 internal links to this page from related pages, refresh dateModified.

Spec

  • Page: https://example.com/
  • Target queries: “open source canvas rendering” (pos 7.5, 73 imps) · “widgets guide” (pos 10.8, 71 imps)
  • Add one H2 per query cluster, phrased as the query, followed by a 40–60 word direct answer, then detail.
  • Internal links: 2–3 links to this page from the site's highest-authority related pages, using the query as anchor text.
  • Freshness: a real content change → dateModified updates → sitemap lastmod moves.
  • Success: these queries move from pos 5–15 into the top 5 within ~6 weeks.

Why (the data)

Position 5–15 in the last 90d for “free webhooks” pos 5.3 (140 imps); “static sites cheat sheet” pos 11.9 (32 imps)

The move

Add a section that answers these queries verbatim (H2 phrased as the query + direct answer), add 2–3 internal links to this page from related pages, refresh dateModified.

Spec

  • Page: https://docs.example.com/about/
  • Target queries: “free webhooks” (pos 5.3, 140 imps) · “static sites cheat sheet” (pos 11.9, 32 imps)
  • Add one H2 per query cluster, phrased as the query, followed by a 40–60 word direct answer, then detail.
  • Internal links: 2–3 links to this page from the site's highest-authority related pages, using the query as anchor text.
  • Freshness: a real content change → dateModified updates → sitemap lastmod moves.
  • Success: these queries move from pos 5–15 into the top 5 within ~6 weeks.

Why (the data)

Position 5–15 in the last 90d for “webhooks explained” pos 5.8 (138 imps)

The move

Add a section that answers these queries verbatim (H2 phrased as the query + direct answer), add 2–3 internal links to this page from related pages, refresh dateModified.

Spec

  • Page: https://docs.example.com/examples/
  • Target queries: “webhooks explained” (pos 5.8, 138 imps)
  • Add one H2 per query cluster, phrased as the query, followed by a 40–60 word direct answer, then detail.
  • Internal links: 2–3 links to this page from the site's highest-authority related pages, using the query as anchor text.
  • Freshness: a real content change → dateModified updates → sitemap lastmod moves.
  • Success: these queries move from pos 5–15 into the top 5 within ~6 weeks.

Why (the data)

666 impressions in 90d; issues: title misses ranking-query language: canvas rendering examples, what is widgets; title long (71 chars — SERP truncates ~60)

The move

Rewrite the title to carry the ranking-query language and the description as a ~150-char direct answer; respect the ~60-char title budget.

Spec

  • Page: https://example.com/docs/getting-started/
  • Current title: "Getting Started | Example — everything you need to know about it and more"
  • Current description: "Getting Started | Example. Learn more."
  • Top queries: “canvas rendering examples” (264 imps, pos 39.4, 0.4% CTR) · “what is widgets” (219 imps, pos 32.3, 0.4% CTR) · “open source widgets” (88 imps, pos 3.3, 7.7% CTR) · “canvas rendering pricing” (51 imps, pos 39.8, 0.5% CTR) · “dashboards explained” (44 imps, pos 25.8, 0.5% CTR)
  • Issue: title misses ranking-query language: canvas rendering examples, what is widgets
  • Issue: title long (71 chars — SERP truncates ~60)
  • Success: CTR on the listed queries reaches ≥ half of position-expected within 28 days. Freeze the title for those 28 days.

Why (the data)

630 impressions in 90d; issues: title misses ranking-query language: example, open source canvas rendering; meta description duplicates the title

The move

Rewrite the title to carry the ranking-query language and the description as a ~150-char direct answer; respect the ~60-char title budget.

Spec

  • Page: https://example.com/
  • Current title: "Example.Com | Example"
  • Current description: "Example.Com | Example. Learn more."
  • Top queries: “example” (412 imps, pos 1.1, 42.0% CTR) · “open source canvas rendering” (73 imps, pos 7.5, 3.2% CTR) · “widgets guide” (71 imps, pos 10.6, 1.7% CTR) · “what is canvas rendering” (42 imps, pos 5.5, 4.7% CTR) · “dashboards vs canvas rendering” (32 imps, pos 12.8, 1.1% CTR)
  • Issue: title misses ranking-query language: example, open source canvas rendering
  • Issue: meta description duplicates the title
  • Success: CTR on the listed queries reaches ≥ half of position-expected within 28 days. Freeze the title for those 28 days.

Why (the data)

764 impressions in 90d; issues: title misses ranking-query language: webhooks tutorial, supply chain games; title long (71 chars — SERP truncates ~60)

The move

Rewrite the title to carry the ranking-query language and the description as a ~150-char direct answer; respect the ~60-char title budget.

Spec

  • Page: https://docs.example.com/docs/
  • Current title: "Docs | Docs — everything you need to know about it and more"
  • Current description: "Docs | Docs. Learn more."
  • Top queries: “webhooks tutorial” (266 imps, pos 2.8, 4.0% CTR) · “supply chain games” (223 imps, pos 4.8, 1.9% CTR) · “how to use static sites” (80 imps, pos 2.5, 5.8% CTR) · “supply chain games for beginners” (71 imps, pos 2.8, 3.1% CTR) · “webhooks cheat sheet” (62 imps, pos 4, 2.2% CTR)
  • Issue: title misses ranking-query language: webhooks tutorial, supply chain games
  • Issue: title long (71 chars — SERP truncates ~60)
  • Success: CTR on the listed queries reaches ≥ half of position-expected within 28 days. Freeze the title for those 28 days.

Why (the data)

571 impressions in 90d; issues: title misses ranking-query language: how to use supply chain games, free webhooks; meta description duplicates the title

The move

Rewrite the title to carry the ranking-query language and the description as a ~150-char direct answer; respect the ~60-char title budget.

Spec

  • Page: https://docs.example.com/about/
  • Current title: "About | Docs"
  • Current description: "About | Docs. Learn more."
  • Top queries: “how to use supply chain games” (276 imps, pos 17.9, 0.8% CTR) · “free webhooks” (140 imps, pos 5.1, 6.9% CTR) · “static sites tutorial” (123 imps, pos 38, 0.3% CTR) · “static sites cheat sheet” (32 imps, pos 11.6, 1.2% CTR)
  • Issue: title misses ranking-query language: how to use supply chain games, free webhooks
  • Issue: meta description duplicates the title
  • Success: CTR on the listed queries reaches ≥ half of position-expected within 28 days. Freeze the title for those 28 days.

Why (the data)

Position 5–15 in the last 90d for “canvas rendering explained” pos 5.3 (117 imps)

The move

Add a section that answers these queries verbatim (H2 phrased as the query + direct answer), add 2–3 internal links to this page from related pages, refresh dateModified.

Spec

  • Page: https://example.com/examples/
  • Target queries: “canvas rendering explained” (pos 5.3, 117 imps)
  • Add one H2 per query cluster, phrased as the query, followed by a 40–60 word direct answer, then detail.
  • Internal links: 2–3 links to this page from the site's highest-authority related pages, using the query as anchor text.
  • Freshness: a real content change → dateModified updates → sitemap lastmod moves.
  • Success: these queries move from pos 5–15 into the top 5 within ~6 weeks.

Why (the data)

Position 5–15 in the last 90d for “webhooks examples” pos 10.4 (99 imps)

The move

Add a section that answers these queries verbatim (H2 phrased as the query + direct answer), add 2–3 internal links to this page from related pages, refresh dateModified.

Spec

  • Page: https://docs.example.com/docs/getting-started/
  • Target queries: “webhooks examples” (pos 10.4, 99 imps)
  • Add one H2 per query cluster, phrased as the query, followed by a 40–60 word direct answer, then detail.
  • Internal links: 2–3 links to this page from the site's highest-authority related pages, using the query as anchor text.
  • Freshness: a real content change → dateModified updates → sitemap lastmod moves.
  • Success: these queries move from pos 5–15 into the top 5 within ~6 weeks.

Why (the data)

Position 5–15 in the last 90d for “widgets examples” pos 11.0 (51 imps)

The move

Add a section that answers these queries verbatim (H2 phrased as the query + direct answer), add 2–3 internal links to this page from related pages, refresh dateModified.

Spec

  • Page: https://example.com/guides/dashboards/
  • Target queries: “widgets examples” (pos 11.0, 51 imps)
  • Add one H2 per query cluster, phrased as the query, followed by a 40–60 word direct answer, then detail.
  • Internal links: 2–3 links to this page from the site's highest-authority related pages, using the query as anchor text.
  • Freshness: a real content change → dateModified updates → sitemap lastmod moves.
  • Success: these queries move from pos 5–15 into the top 5 within ~6 weeks.

Why (the data)

Ranks but rarely clicked (90d) — “webhooks examples” (99 imps, 1.0% CTR at pos 10.4)

The move

Make the <title> restate the query as its answer; description = 150-char direct answer. Then request reindexing in Search Console.

Spec

  • Page: https://docs.example.com/docs/getting-started/
  • Queries being lost: “webhooks examples” (99 imps, 1.0% CTR, pos 10.4)
  • Title formula: [query phrased as its answer] — [differentiator]. Keep under ~60 chars; front-load the query words.
  • Description: one ~150-char sentence that directly answers the query (this becomes the SERP snippet).
  • Ship: meta change only — no body-content edits needed. Then Search Console → URL Inspection → Request Indexing.
  • Success: CTR on these queries reaches ≥ half of position-expected within 28 days (watch on this dashboard). Then leave the title alone — title churn resets Google's evaluation.