Site Audit now scores three things, not one
A domain campaign used to come back with a single health number. It now returns three, each on its own tick-ring gauge, and each one opens to the pages behind it.
- Site Health is the technical state of the pages that were crawled, as a share of checks that passed.
- AI Search Health is new. It checks whether the crawlers behind the answer engines can reach your pages: Googlebot, Google-Extended, OAI-SearchBot, ChatGPT-User, PerplexityBot, Perplexity-User, Claude-SearchBot and Claude-User. Each comes back Healthy, Have issues, or Blocked.
- Site Speed Score is measured as part of the campaign rather than on demand, so it always comes from the same run as the issues beside it. The campaign progress pill shows the speed step while it runs.
AI Search Health is the first thing to check when your AI visibility is flat. A blocked crawler cannot cite you no matter what you publish, and Google-Extended in particular is blocked on a lot of sites by accident: it governs whether Gemini may use your pages, and has no effect on your Google ranking.
Rerun audit
The rerun button now resets the job and runs the campaign again, rather than returning the previous result. Reruns reserve their quota before the reset, so a failed rerun gives the allowance back instead of eating it.
A weekly content calendar that actually schedules
Automations gained a kanban board for the coming weeks, backed by a real scheduler rather than a list you keep by hand.
Schedule by keyword and Ranksmile places the work across a four-day window, drawing from the content ideas already shared with the rest of the workspace. The draft is created and linked to its calendar entry in one transaction, so a scheduled slot always has something behind it. Time zones are handled per workspace, and publish bookkeeping only refunds charges that were actually recorded.
A rebuilt dashboard, and one analysis per domain
The dashboard and the Content view are rebuilt around article cards, with a header that matches the rest of the app and a card meta row that stays on one line instead of wrapping.
Domain analysis is now limited to one run per domain at a time, with a setup pill on every page so you can see the run in progress from wherever you happen to be.
Billing
- Subscription expiry is enforced on stale projections and on background jobs, not only on the request path.
- Stale billing is re-checked against Stripe outside the surrounding transaction, so a slow Stripe call no longer holds a database lock.
- In-flight refreshes are shared rather than duplicated, unpaid rows are paged through rather than truncated, and customers are matched by customer id first.
Fixes
- Workspaces recover from a URL pointing at a workspace you cannot access, and redirect only after a successful bootstrap refetch.
- Five countries that had dropped out of the rank tracking location list are back.
- Relative timestamps refresh while the page is open instead of freezing at their first render.









