Changelog

Everything we've shipped — features, improvements, and fixes.

FeatureIntegrations

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.

FeatureAnalytics

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.

FeatureImprovement

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
OnboardingGenerationEmail

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.

BillingOnboardingTracking

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.

MarketingPaid-adsConversion

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.

ConversionBillingTracking

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.

MarketingAutomationTracking

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.

MarketingAutomationTracking

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.

MarketingAutomationTracking

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.

MarketingAutomationTracking

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.

MarketingTrackingAutomation

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.

MarketingCompetitive-intelAutomation

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.

MarketingPlanningMonetization

$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.

ImprovementMarketingTracking

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.

ImprovementMarketingTracking

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.

ImprovementTrackingBilling

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.

FixTrackingActivation

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.

FixTracking

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.

ImprovementTracking

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.

FixImprovement

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.

Fix

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.

Improvement

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.

FixImprovement

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.

Improvement

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.

Improvement

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.

Improvement

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.

Improvement

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.

Feature

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.

Improvement

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.

Improvement

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.

Improvement

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.

Feature

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.

Improvement

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

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.

Feature

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.

Improvement

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.

Feature

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.

Feature

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.

Improvement

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.

Improvement

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.

Fix

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.

Feature

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.

Improvement

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.

Feature

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.

Fix

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.

Feature

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.

Fix

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.

Feature

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.

Improvement

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.

Improvement

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.

Improvement

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.

Fix

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.

Feature

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.

Feature

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.

Improvement

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.

Improvement

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.

Fix

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.

Improvement

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.

Improvement

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.

Feature

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.

Feature

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.

Feature

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.

Fix

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.

Fix

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.

Feature

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.

Improvement

Analytics: Export, date presets, and loading polish

Export your analytics data as CSV or PDF. Quick-select date ranges. Smoother loading experience throughout.

Feature

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.

Feature

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.

Improvement

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.

Fix

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.

Feature

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.

Announcement

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.

v1.4.0
Feature

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.

Improvement

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
Improvement

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.

Feature

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.

Feature

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.

Improvement

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.

Improvement

Faster headline generation

Headline generation now runs in parallel batches, cutting wait time significantly on larger keyword clusters.

Feature

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.

v1.3.0
Improvement

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.

Feature

Delete articles

You can now delete articles from the article editor. All related records (keywords, queue entries, revision history) are cleaned up automatically.

v1.2.0
Feature

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.

Improvement

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.

Improvement

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.

Improvement

Light/dark mode toggle

Added a theme toggle to the app header. Defaults to your system preference.

Announcement

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.

Feature

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
Improvement

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
Improvement

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.

Announcement

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.

Feature

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.

Improvement

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.

v1.1.0
Feature

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.

v1.0.0
Announcement

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.