Cron syntax, notification destinations, regression-only mode, and per-site schedules.
A scheduled audit runs automatically on a cadence and notifies you when something changes. This is how you catch regressions before they cost you traffic.
Five-field standard cron, no seconds. Examples:
text0 9 * * 1 Every Monday at 9am 0 9 * * 1,4 Every Monday and Thursday at 9am 0 */6 * * * Every 6 hours 0 9 1 * * The 1st of every month at 9am
Cron parsing uses standard Unix semantics. We don't support seconds, year fields, or @reboot-style aliases.
| One or more email addresses. HTML + plain-text summary. | |
| Slack | Posts to a channel (requires Slack integration). Threaded summary. |
| Webhook | POSTs JSON to your URL with audit_id, score deltas, issue counts. See Webhooks doc. |
When enabled, you only get notified when the SEO score drops by more than 3 points OR a new critical issue appears. Cuts noise to near-zero on stable sites.
You can stack schedules on one site. Common pattern:
bashcurl -X POST https://api.semoptimiser.com/v1/audit-schedules \ -H "Authorization: Bearer sk_live_..." \ -H "Content-Type: application/json" \ -d '{ "site_id": "site_1", "cron": "0 9 * * 1", "depth": 5, "notify": ["email:you@example.com", "slack:#seo"], "regression_only": true }'
Audits → Scheduled → toggle pause. Paused schedules keep their config and history but don't fire new audits. Resume from the same screen.
One platform. Five fewer subscriptions.
Join 1,200+ agencies and in-house teams using SEMOptimiser to replace Semrush, Ahrefs, GA4 add-ons and rank trackers – with one workflow that actually ships fixes.