Changelog
Everything we've shipped — features, improvements, and fixes.
Publish to Shopify and Wix
Two of the most-requested CMS integrations are live. Connect your Shopify store with a custom-app token (about 3 minutes of setup — SEOTakeoff verifies your token and lists your blogs to pick from), or your Wix site with an API key. Both support drafts, SEO fields, featured images, and tags, and Wix articles are converted to Wix's native rich-content format automatically — headings, lists, links, images, and embedded videos all carry over.
Content Audit for your existing blog + a Progress card for your firsts
SEOTakeoff now works with the content you already have. The new Content Audit (Strategy → Content Audit) imports your existing blog posts and scores every one against the same quality checklist we use for generated articles — structure, linking, AI-visibility readiness, freshness, and more — so you can see exactly where your existing content stands. And on the Dashboard, a new Progress card celebrates your SEO firsts as they happen: first Google impression, first click, first page-1 ranking.
A faster, safer app: command palette, undo, and editor guardrails
A big usability pass across the whole app — faster to move around, harder to lose work.
- Command palette: press ⌘K (Ctrl+K) anywhere — or click the Search button in the header — to find articles by title, jump to any page, switch themes, or start a new article
- Keyboard shortcuts: ⌘S saves in the editor; press ? for the full shortcut list
- Unsaved-changes protection: leaving the editor with unsaved edits now asks first, with a Save & leave option
- Undo: deleting a queued headline shows an Undo button that restores it — keyword, cluster, schedule, language, and content type intact
- Copy as Markdown / HTML from the editor's Export menu — paste your article into any CMS, including unsaved edits
- Previous/next arrows in the editor to page through articles without returning to the list
- Article titles are now real links (cmd-click to open in a new tab), shift-click selects a range for bulk actions, and dates read naturally (“2 days ago”)
- Faster everywhere: skeleton loading, instant headline edits, smarter prefetching on navigation
- Light/Dark/System theme switcher in the header; Strategy search and sort now persist in the URL
A smoother path to your first article
Getting from signup to your first generated article is now more reliable and more transparent: the Strategy page always offers a way forward (even if strategy building hit a snag), you can swap the recommended first topic before generating, and the 2-3 minute generation wait now shows real progress — your article's actual section headings and images as they're created.
Post-onboarding $9 first-month offer front-and-center
New activated users now see the founder setup offer reframed as "$60 off your first month" ($9 today, then $69/mo) right when they finish onboarding, and again in a one-time modal on the Articles page after they open their first article — the two highest-intent moments in the activation funnel.
Buyer-intent challenger ad batch generated locally
Created a local-only Batch 012 challenger set to test whether Meta's free-calendar angle is selecting free-resource downloaders instead of content-led buyers with stronger product intent.
Founder bridge reframed around first-month discount and post-value modal
The Founder Setup bridge now sells the honest $60 first-month discount with founder setup included, adds a secondary onboarding-completion offer, and shows a one-time front-and-center modal after the first article is viewed.
Paid-lead follow-up automation refreshed with current site angles
Added concrete founder follow-up angles for the latest SEOTakeoff paid leads, allowed manually verified SITE_ANGLES contexts to avoid generic fallback copy on typo/redirect domains, and verified the recent no-touch queue is clear after sending the current clean T0 follow-ups.
Paid-lead follow-up system hardened for no-touch operation
SEOTakeoff's paid-lead system now separates guarded attempts from truly due work, blocks low-quality founder drafts with a hard copy validator, classifies paid-lead replies with SLA flags, runs a weekly cohort report, and has an approved live guarded founder autosend wrapper for clean known-site T0/T+3/T+7 follow-ups.
Founder follow-ups now ask a clear qualification question
SEOTakeoff founder T0, T+3, and T+7 follow-up templates now end with a buyer-vs-resource-download question and a concrete next step to turn the prospect's sketch into a working SEOTakeoff calendar. The CRM now also marks replied threads as handled/waiting once a later founder reply is sent.
Paid-lead founder outreach recovered after Gmail reauth
Restored Google Workspace auth, caught up missed clean SEOTakeoff founder follow-ups with Gmail duplicate guards, added a quiet pre-expiry auth watchdog, corrected a Dreamcave Studio site-personalization mismatch in the paid-lead CRM, and hardened outbound founder outreach against unresolved domains.
Internal ad library now compares competitor patterns against our experiment history
SEOTakeoff now has a generated internal ad library and competitor comparison layer that joins local creative specs, draft manifests, live experiment-ledger metrics, and the latest competitor sweep into tested/drafted/untested hook intelligence.
Competitor ad sweeps now produce a structured swipe file
The weekly SEOTakeoff Meta competitor sweep now turns Ad Library intake into repo-backed markdown and JSONL artifacts with observed hooks, hook families, offers, formats, landing URLs, longevity proxy, tested-by-us inference, and suggested SEOTakeoff tests.
$9 first month + Founder Setup conversion test plan
Documented the next SEOTakeoff paid-conversion experiment: a proof-backed $9 first-month subscription bridge with a founder setup call at the post-first-article / activated-user moment, including the existing activated backlog, renewal disclosure, matched founder follow-up, lifecycle support, spend guardrails, and measurement criteria.
Paid-lead CRM and founder outreach approval queue
SEOTakeoff now has a local paid-lead CRM that consolidates founder email state, product nurture state, reply review, LinkedIn/manual status, and site-aware founder outreach drafts behind an approval gate.
Paid-lead follow-up system now coordinates product and founder touches
Acquisition nurture now extends beyond the initial three-email lead-magnet flow with proof, urgency, and a $9 intro-offer bridge, while founder-led sends have a shared state ledger for quiet-window guards.
Sharper Starter upgrade path inside billing
Activated trial users now see a clearer $9 Starter upgrade path, and SEOTakeoff records billing-tab intent separately from Stripe checkout intent for the next paid-funnel diagnosis.
Post-signup activation reliability fixes
SEOTakeoff now gives new users a clearer first-article action and records more reliable diagnostics across generation, upgrade, auth, and keyword persistence failures.
Checkout-start tracking now waits for Stripe session creation
Checkout-start conversion tracking now fires only after SEOTakeoff successfully creates a Stripe Checkout session, keeping Google Ads and marketing events tied to the real checkout-start action instead of signup or CTA intent.
Google Ads tracking prep for BOFU search
The paid funnel now preserves Google click IDs and can fire Google Ads conversion events for the first paid-search test once account IDs and labels are configured.
Paid lead site context now carries through signup
Calendar-offer lead captures now preserve website and capture context through auth and onboarding so paid-lead follow-up and funnel debugging can distinguish signup, redirect, onboarding, and tenant creation states.
Cleaner tracking for calendar-offer leads
Calendar-page lead captures now use a calendar-specific lead-magnet label instead of inheriting the SEO Agent Playbook label.
Conversion bridge for paid calendar leads
The paid calendar landing page now captures a website URL alongside email so warm Meta visitors can request a site-specific 30-day SEO calendar before account creation.
Nurture emails for calendar-offer leads
Paid calendar-page captures now enter a calendar-specific acquisition email path instead of being skipped by the older playbook-only delivery logic.
Sharper mobile proof for the calendar landing page
The paid calendar landing hero now uses a lower-friction lead CTA and first-screen Search Console proof instead of cooling the page with disclaimer copy.
30-day SEO content calendar landing path
Paid campaign traffic can now land on a content-calendar offer that matches the new creative direction and routes captured leads toward the signup calendar flow.
More reliable featured images for generated articles
Article generation now repairs missing featured images automatically before publishing, so generated posts do not ship with placeholder images.
Monthly caps for automatic cross-linking
Automatic cross-linking now has a tenant-level monthly throttle so the agent can build authority steadily without over-linking.
Cross-linking activity and health visibility
Cross-linking now has customer and admin visibility, so automatic authority-building links are visible after the agent inserts them.
Opt-in cross-linking foundation
Backlinks now includes an opt-in cross-linking network foundation. When enabled, SEOTakeoff can automatically add conservative, relevant links between opted-in customer articles as new content is generated.
Clearer CMS draft and live article badges
Article badges now make it clear when an article is only saved here, already in your CMS as a draft, or live on your site.
Cleaner roundup articles and safer internal links
Article generation now produces more consistent roundup and comparison pages, with cleaner Pros and Cons sections, fewer duplicate links, safer same-cluster recommendations, and more consistent brand/entity casing in body copy.
Migration sync drift guard restored
CI migration checks are back in sync after aligning the tenant topic blocklist migration filename with the version already recorded in production.
Choose when (and which way) to auto-translate
Two new controls in Settings → Language give you finer-grained control over when language variants get queued. Pick whether translations fire at generation or at publish, and turn on bidirectional fan-out so native French (or other secondary-language) articles also get an English counterpart.
Production smoke test reliability hardening
CI now gives production deploys a short grace window before failing route smoke checks, reducing false alarms from Vercel deploy/cache lag while still catching persistent 404s and server errors.
Fix Sentry error on Settings page for new users
Users without a tenant (pre-onboarding) no longer trigger a 404 error when visiting Settings. The API Keys tab now guards both rendering and data fetching until tenant data exists.
Dark mode opt-in in Settings
Dark mode is back — opt in from Settings → Appearance. Public and marketing pages stay in a polished light palette so first impressions are consistent, while authed pages (Articles, Strategy, Analytics, Settings, Docs, Changelog, and more) honor your preference.
Onboarding email and first-article polish
A pass through the first-run experience after watching early signups. Welcome emails now wait for your initial clusters to be ready, first-article progress is visible on the Strategy page even after a reload, and the Articles page points you to the right next step (read → publish → second article) depending on your state.
Lifecycle email sequence
Seven lifecycle emails now nudge you through the first article experience: welcome, nudge to generate, first-article-ready, nudge to publish, first-publish celebration, nudge to second article, and a heads-up when free articles run out. All sends are signed with unsubscribe tokens and respect your preferences.
Bulk actions + filters on Articles
Manage large article lists in-line. New URL-synced filter bar (search + status + cluster), multi-select checkboxes, bulk delete (cascade), bulk publish in the background, and CSV export.
Smarter hero image validation
New two-layer validation pipeline catches bad hero images before they ship: heuristic checks first, then a GPT-4o vision pass (shadow mode) to flag irrelevant or off-brand images. Clear skip reasons logged for every validation so regressions are observable.
Friendlier transient error handling
Transient backend hiccups (pool saturation, upstream timeouts) now surface as 503s instead of 500s so the frontend can retry with exponential backoff. React Query retries only on 502/503/504 (never on mutations), so you don't get the same failed action repeated.
Automatic link integrity monitoring
New post-publication link auditor keeps your article links healthy. Tracks external, internal, and YouTube links with a three-state health model (healthy → suspect → broken) and auto-repairs broken links via SERP replacements or on-site title search.
Fix headline generation timeout
Fixed request timeout errors when generating article headlines. The initial POST request now has a 60s timeout (up from 30s default) with automatic retry logic to handle Railway cold starts.
Programmatic content enhancement framework
New SSR-safe component framework for automatic content quality upgrades on alternatives, comparison, and guide pages. All new sections render in initial HTML for crawler visibility.
Tool template SEO polish
Fixed remaining SEO gaps in tool page templates: removed animate-pulse skeleton markers from HydrateFallback (crawlers now see static content), added twitter:card meta tags for consistent social sharing.
Internal linking architecture overhaul
Comprehensive fix for all SEO-related link issues across templates. Tool pages now have data-driven related tools sections. Compare pages show dynamic comparisons from CMS. Alternatives pages include contextual cross-links. Blog pages have robust fallback logic for related posts.
SEO route hardening for /signup and blog articles
Hardened two SEO-critical routes to reduce intermittent crawler failures: /signup is now eagerly loaded, blog article pages gracefully return a noindex fallback when CMS data is missing/unavailable, and /api/health?seo=1 adds bot-style checks for /signup and /blog/ai-seo-vs-chatgpt.
Real keyword metrics powered by DataForSEO
Keywords now show real search volume and difficulty data instead of estimates. Enrichment happens automatically during onboarding and cluster generation, with cost controls and graceful fallbacks.
Critical bug fixes
Fixed cluster generation crashes, improved tenant loading speed (now checks for keywords efficiently instead of loading all of them), and added automatic redirect to login when your session expires.
Articles calendar view
See your entire publishing schedule on a monthly calendar. Color-coded density shows busy days at a glance. Click any day to see articles with their status and generate button.
Collapsible article sections
Long article lists (Upcoming, Completed) now collapse to show 10 items by default. Click the header or 'Show all' to expand. No more scrolling past 700 articles.
Better onboarding experience
After setup completes, you now see a completion screen with your cluster stats and a clear 'Generate Your First Article' button — instead of being silently redirected to the strategy page.
Free tools now use real data
LSI Keyword Generator, Related Keywords Finder, and Long-Tail Keyword Generator now pull real suggestions from Google instead of static patterns. External Link Checker now actually verifies URLs server-side.
Better article hero images
Image generation now produces more creative, editorial-quality visuals instead of literal stock-photo depictions. No more random animals or vehicles in unrelated articles.
Brand Voice tab in Settings
All your voice settings — tone, writing guidelines, product features, key URLs, and Style DNA — are now consolidated in a single Brand Voice tab in Settings. No more hunting across pages.
AI Citations: see if AI assistants mention you
New AI Citations tab in Analytics (visible when GSC is connected). Auto-suggests queries from your top GSC keywords, then checks ChatGPT, Perplexity, and Claude to see if they cite your site.
Smarter content gap detection
Content gaps now adapt to your site's traffic profile. Instead of fixed thresholds, we use your median impressions and average CTR to find the real opportunities — works for sites of any size.
Faster page loads
Lazy-loaded monitoring scripts (saves ~86KB upfront), compressed API responses with GZip, added browser caching on analytics endpoints, and lazy-loaded landing page images.
Article performance data now works
Fixed a bug where article performance cards showed 'No GSC data yet' for all articles. The query was only fetching 10 pages from Google Search Console — now fetches up to 5,000.
Free trial is now front and center
3 free articles, no credit card required — now prominently shown in the hero, pricing section, and bottom CTA. No more guessing whether there's a free tier.
Question Keyword Finder uses real Google data
The Question Keyword Finder now pulls real suggestions from Google Autocomplete instead of generating patterns. Results reflect what people actually search for.
Instant search engine notification on publish
When you publish an article, SEOTakeoff now automatically notifies search engines (Google, Bing, Yandex) via IndexNow. Your content gets discovered in hours instead of days.
Per-article performance stats
Each article card now shows impressions, clicks, and average position pulled directly from Google Search Console. See at a glance which articles are performing and which need attention.
Brand context: product features & key URLs
New fields in Settings let you list your product's key features and important URLs. These get injected into article generation prompts so your content naturally references what you actually offer.
Sitemap analysis now reads nested sitemaps
Site analysis previously only read the top-level sitemap index. It now recursively fetches sub-sitemaps, so all your URLs are discovered during onboarding.
Better link formatting in articles
Fixed an issue where AI-generated articles sometimes included bare URLs instead of properly formatted markdown links. Links are now wrapped with descriptive anchor text.
Analytics: Content Gaps, AI Citations, device/country breakdown
See which pages have high impressions but low click-through rates. Track AI citation appearances. View traffic breakdown by device type and country.
Analytics: Export, date presets, and loading polish
Export your analytics data as CSV or PDF. Quick-select date ranges. Smoother loading experience throughout.
Writing Sample Ingestion — teach AI your voice
Paste URLs to your existing articles and SEOTakeoff analyzes your writing style. Future articles automatically match your voice, tone, and patterns.
Sign in with Google
You can now sign in with your Google account — one click, no password needed. Works alongside email/password for anyone who prefers it.
Analytics: Quick Wins, Declining Pages, and trend indicators
Three upgrades to the analytics dashboard shipped today:
- Quick Wins — pages with high impressions but low clicks. Low-hanging fruit to fix with a title or meta description tweak.
- Declining Pages — content that's losing traffic month-over-month, so you can intervene before it tanks further.
- Trend indicators — every KPI card now shows a delta vs. the previous period so you can see momentum at a glance.
Impression and CTR columns also added to the Top Queries and Top Pages tables.
Google Search Console connection no longer expires
Previously, your GSC connection would silently expire every week and require manual reconnection. That's fixed — your connection now persists indefinitely.
Article feedback
You can now rate and leave comments on individual sections of any article, as well as give overall article-level feedback. This helps us track what's working in generated content and improve quality over time.
This changelog
We've been shipping a lot and not saying much about it. That changes today. This page is a running record of everything we ship — features, improvements, and fixes — going back to launch.
Articles now match your brand voice
SEOTakeoff can now read your brand's tone, writing style, and target audience and bake that into every article it generates.
Set your brand context in Settings — or if you went through onboarding recently, your notes from that step are already saved. Articles generated after this will sound like you wrote them, not like generic AI content.
CSV import: auto-create clusters and skip duplicates
When importing headlines via CSV, SEOTakeoff now:
- Automatically creates any keyword clusters that don't exist yet
- Skips headlines you've already added (no more duplicate errors)
- Enriches cluster keywords with real volume and difficulty data on import
Autopilot: 50 and 100 articles/week options
Added higher-frequency autopilot options for high-volume plans — 50/week and 100/week. Articles are distributed evenly across your publishing schedule.
116 free SEO tools
A full suite of free, client-side SEO tools is now live at seotakeoff.com/tools — no login required.
Includes meta description generators, schema markup builders, keyword analyzers, content scorers, alt text generators, and a lot more. Everything runs in your browser, nothing is sent to a server.
Multi-language article generation
Generate articles in French, Spanish, German, Chinese (Simplified), and more. Each language uses natively-researched keywords and titles — not just translations of the English version.
Language selection is available in the Add Headline and Add Cluster dialogs. Translated articles get their own slugs and auto-publish when ready.
Errors now tell you what actually went wrong
Error messages across headlines, clusters, settings, and publishing now show the actual reason something failed (e.g., "Duplicate headline detected") instead of a generic "Failed" toast.
Faster headline generation
Headline generation now runs in parallel batches, cutting wait time significantly on larger keyword clusters.
Manage billing from the app
Added a Manage Billing button in Settings that opens your Stripe billing portal directly — update your payment method, download invoices, or cancel from there.
Multi-language support: full UI integration
Translation jobs now appear in the Articles list with progress indicators. Translated articles auto-publish when complete and get native-language titles and slugs (not translated English ones).
Also added a keyword research preview before translation kicks off, so you can see what keywords will be targeted in the target language.
Delete articles
You can now delete articles from the article editor. All related records (keywords, queue entries, revision history) are cleaned up automatically.
API access and Zapier integration
Full API access is now available — generate an API key in Settings under the API Keys tab.
Use it with Zapier to:
- Queue articles from external triggers
- Kick off article generation
- Auto-publish finished articles to your CMS
- Get notified when articles are ready
Public API docs are available at /docs/api. API access is enabled on all plans including free, with usage limits based on your plan.
Smarter competitor discovery during onboarding
The onboarding flow now searches the web to find your actual competitors instead of relying on guesses. Competitors are validated before being shown to you, so you only see relevant results.
Publish as draft or live
When publishing to your CMS, you can now choose whether articles go out as drafts (for review) or are published immediately. Unified across all supported CMS platforms.
Light/dark mode toggle
Added a theme toggle to the app header. Defaults to your system preference.
Self-serve signups now open
SEOTakeoff is now open for self-serve signups — no waitlist, no invite needed. Cloudflare Turnstile bot protection is in place to keep spam accounts out. Password auth also added as an alternative to magic links.
Quick Wins on the Strategy page
New Quick Wins section on the Strategy page highlights the easiest fixes for a traffic boost:
- Articles with outdated years in the title (auto-update available)
- Keyword cannibalization — multiple articles competing for the same keyword
- Dynamic competitor tracking updates as your landscape changes
Autopilot scheduling improvements
Several improvements to how autopilot schedules articles:
- Skip weekends toggle — keeps your publishing cadence to business days
- 14 articles/week frequency option added
- Randomized publish times — articles no longer always go out at midnight
- Auto-rescheduling — when you change your frequency, future articles are redistributed automatically
Real keyword data: search volume and difficulty
Keyword cards now show real monthly search volume and keyword difficulty scores powered by DataForSEO — replacing the placeholder estimates that were there before. You can also manually refresh metrics on any cluster.
SEOTakeoff blog launched
The SEOTakeoff blog is now live with articles on SEO strategy, content marketing, AI content, and how to use the platform effectively.
Autopilot auto-publishing
Autopilot can now automatically publish completed articles to your connected CMS — no manual intervention needed. Articles move from generated → published on their scheduled date without you touching anything.
Article editor: floating formatting toolbar
A floating toolbar now appears when you select text in the article editor, with quick access to bold, italic, heading levels, and link insertion. Keyboard shortcuts also supported.
CMS integrations: WordPress, Webflow, Ghost, HubSpot, Notion, Sanity
Direct publishing integrations for six CMS platforms are now live. Connect your CMS in Settings and articles will publish directly with proper formatting, images, and SEO fields included.
All integrations support draft and published status. Webflow auto-detects your field mappings. Sanity includes full SEO fields and author support.
Core platform: keyword strategy, AI articles, and autopilot
The core SEOTakeoff platform launched with three integrated systems:
- Topic clusters — organize your keyword strategy into thematic content pillars
- Headline planning — generate and manage article ideas mapped to your clusters
- AI article generation — full articles with research, internal links, images, and structured content
- Autopilot — set a publishing frequency and let the platform handle the rest
Built for founders and small teams who want consistent SEO output without hiring a content team.