Author: onetwothreeadmin

  • Social media schedulers charge per account—here’s the math

    Social media schedulers charge per account—here’s the math

    Social media scheduling tools advertise starter plans at $10–$15 per month. That number holds only if you post to a single platform. Add Twitter, LinkedIn, Instagram, and a Facebook page, and the same tool bills you $40–$60 monthly—or forces you into a higher tier.

    The pricing structure isn’t hidden, but it’s rarely surfaced until you hit the connect-account screen. For solo operators running content-driven businesses across multiple channels, per-account billing turns an affordable utility into a recurring line item that rivals your hosting or email costs.

    How per-account pricing works across platforms

    Most scheduling tools define an “account” or “channel” as a single social profile. One Twitter account, one LinkedIn personal profile, one Instagram business account, one Facebook page—each counts separately.

    Buffer’s free tier allows three channels. The $6/month Essentials plan gives you one channel. To schedule across four platforms, you need the Team plan at $12/month per channel—$48 monthly for four accounts.

    Hootsuite’s Professional plan starts at $99/month for ten social accounts. If you manage fewer profiles, you’re still paying the base rate; there’s no cheaper tier that scales down.

    Later (focused on visual platforms) offers one social set per user on the Starter plan at $25/month. A “set” includes one profile per platform—Instagram, Facebook, Twitter, LinkedIn, TikTok, Pinterest, and YouTube. That’s better for multi-platform operators, but you’re locked into the bundle even if you only use three.

    Publer breaks the pattern slightly: the free tier supports one account per platform (up to three total), and paid plans at $12/month allow multiple accounts per platform for up to ten total social profiles. For an operator running personal and business accounts across Twitter, LinkedIn, and Instagram, that’s six profiles under one plan.

    When per-account pricing costs more than the tool’s value

    If your business generates revenue directly from social traffic—affiliate clicks, newsletter signups, course sales—the $50/month cost is defensible. But many solo operators schedule content as brand presence, not primary acquisition. In that case, you’re paying $600 annually to post three times per week across four channels.

    Compare that to native scheduling: Twitter, LinkedIn, Facebook, and Instagram all offer free post-scheduling inside their apps. The trade-off is context-switching and no unified calendar view, but the cost difference is $600 per year.

    For operators running a single content pillar across platforms—republishing the same blog post summary or newsletter link—per-account billing penalises efficiency. You’re doing less work (one piece of content, four destinations), but paying more than someone who writes custom posts for a single channel.

    How to audit whether you’re overpaying

    Pull up your scheduling tool’s billing page and count connected accounts. Then check your analytics for the last 90 days. For each social profile, calculate:

    • Monthly cost allocated to that profile (total bill divided by number of accounts)
    • Clicks or conversions attributed to that profile
    • Cost per click or cost per conversion

    If a profile costs $12/month and sends 30 clicks, you’re paying $0.40 per click before counting the time to create and schedule the post. If those clicks convert at 2%, you’re paying $20 per conversion from that channel.

    That math doesn’t mean the channel is bad—it means you should compare the cost to other acquisition channels (SEO content, paid ads, email) to decide whether the scheduling tool is worth keeping for that profile.

    Cheaper alternatives and when to switch

    If you’re overpaying for profiles that generate little return, three paths cut costs:

    Consolidate platforms. Drop the social profile with the weakest return. If Facebook sends five clicks per month and costs $12 in allocated scheduler fees, disconnect it and reallocate that budget.

    Switch to a per-user tool. Platforms like Publer or Buffer’s higher tiers charge per user, not per account, up to a cap. If you’re a solo operator, one seat with ten account slots costs less than per-account billing for four profiles.

    Use native scheduling. For low-frequency posting (once or twice per week), native tools cost nothing and require only a few extra minutes per session. Save the unified dashboard for high-volume operations where time savings justify the expense.

    She posted to six accounts before; now she posts to five and saves $87 monthly. The profile she dropped—Pinterest—had sent 12 clicks in six months.

    Want more breakdowns like this? Reply with the tool or pricing structure you’d like examined next. We’ll pull the numbers and show you where the cost hides.

    Heads up — some links in this article are affiliate links. If you sign up through them, we may earn a small commission at no extra cost to you. We only recommend tools we use ourselves.

  • WordPress object caching: what it fixes and when to skip it

    WordPress object caching: what it fixes and when to skip it

    Object caching is one of those WordPress optimizations everyone talks about but few operators actually understand. The idea is simple: instead of hitting the database every time someone loads a page, WordPress stores frequently accessed data—posts, user info, theme settings—in memory. When the same data is requested again, it’s served from RAM instead of MySQL.

    That sounds like a win. And for many sites, it is. But object caching introduces moving parts—another service to monitor, another thing that can fail—and if your traffic or query load doesn’t justify it, you’re adding complexity for marginal gain.

    What object caching actually does

    Out of the box, WordPress uses a non-persistent object cache. That means data is stored in PHP memory for the duration of a single page load, then discarded. If the next visitor requests the same page, WordPress queries the database all over again.

    A persistent object cache—typically Redis or Memcached—stores that data in memory across page loads. When WordPress asks for a post’s metadata or a list of recent comments, the cache serves it instantly. No database round trip.

    This makes the biggest difference on sites with:

    • High concurrent traffic (50+ visitors at once)
    • Complex database queries (custom post types, meta fields, WooCommerce)
    • Plugins that query the database on every page load (membership tools, dynamic content widgets)

    If your site doesn’t fit those profiles, object caching won’t do much. A static homepage with 20 posts and light traffic won’t see a speed boost—you’re already fast enough.

    When to skip it

    Object caching adds a dependency. If Redis goes down, your site slows to a crawl—or breaks entirely, depending on how your host configured the fallback. Managed WordPress hosts like BigScoots typically handle this gracefully, but if you’re self-managing a VPS, you need monitoring in place.

    You also need to flush the cache deliberately when you update content. Most caching plugins handle this automatically, but edge cases exist: custom fields updated via WP-CLI, direct database edits, or theme changes can leave stale data in Redis for hours.

    Skip object caching if:

    • Your traffic is under 10,000 page views per month
    • Your average page load is already under 1 second (check your server response time in Google Search Console or Pingdom)
    • You’re running a static site generator or headless setup (the database isn’t the bottleneck)

    In those scenarios, you’ll get more value from a CDN, image optimization, or trimming down plugins. Object caching is overkill.

    How to set it up (if you need it)

    Most managed WordPress hosts offer Redis or Memcached as a one-click add-on. If you’re on a VPS, you’ll need to install Redis via SSH, then add a PHP extension and a WordPress plugin to connect the two.

    The most common plugin is Redis Object Cache by Till Krüss. It’s free, actively maintained, and shows you cache hits versus misses in the WordPress admin. If your hit rate is below 80%, something’s misconfigured—either the cache isn’t being populated correctly, or your queries aren’t cacheable.

    After enabling object caching, test these scenarios:

    • Load your homepage twice in quick succession. The second load should be faster.
    • Publish a new post and confirm it appears immediately (not after a manual cache flush).
    • Check your server’s memory usage. Redis should sit around 50–100 MB for a typical site. If it’s ballooning past 500 MB, your cache isn’t expiring old data.

    One non-obvious tip

    Not all database queries should be cached. User-specific data—cart contents, login states, personalized recommendations—needs to stay dynamic. If you cache those, you’ll serve the wrong content to the wrong people.

    Most caching plugins exclude these by default, but custom plugins don’t always play nice. If you’re seeing logged-in users get logged-out views, or vice versa, check your cache exclusions. You may need to add specific query keys or user roles to a denylist.

    The other gotcha: WordPress transients. These are temporary database entries that plugins use to store short-lived data—API responses, rate-limit counters, import progress. If your object cache is working, transients get stored in Redis instead of MySQL. That’s faster, but it also means transients disappear when you flush the cache. If a plugin relies on a transient sticking around, flushing can break it mid-operation.

    Check your transient usage with a plugin like Transients Manager. If you see hundreds of expired transients piling up, something’s writing to the cache inefficiently.

    Want more infrastructure breakdowns like this? Reply and tell us what hosting or performance topic to tackle next—or subscribe to catch every Tuesday tutorial.

  • Analytics tool sampling: when free plans skip your best traffic

    Analytics tool sampling: when free plans skip your best traffic

    Most analytics platforms don’t show you every visitor. On free and starter plans, tools like Google Analytics 4, Fathom, and Plausible apply data sampling once you cross certain thresholds—sometimes without telling you clearly in the dashboard.

    Sampling means the platform processes a subset of your traffic and extrapolates the rest. For solo operators running content sites or newsletters, this can distort the metrics you’re optimizing for: which posts drive signups, which UTM sources convert, and how long readers stay.

    Here’s what sampling looks like in practice, when it kicks in, and how to tell if your numbers are directionally wrong.

    What gets sampled and what doesn’t

    Sampling typically applies to custom reports, segments, and date-range queries—not the default real-time or overview dashboards. If you filter traffic by UTM campaign, landing page, or device type over a trailing 90-day window, you’re more likely to hit sampling.

    Google Analytics 4 samples when a query touches more than 10 million events in the selected property and date range. For a site logging 50,000 monthly sessions with typical event instrumentation (page views, scrolls, clicks), you’ll cross that threshold in about six months of retained data.

    Plausible and Fathom don’t sample on their paid plans, but their free tiers and trials cap total event volume. Plausible’s free plan allows 10,000 monthly page views before sampling or blocking; Fathom’s trial is capped at 30 days and 100,000 page views, after which data stops flowing entirely unless you convert.

    The metrics most affected: conversion funnels, cohort retention, and multi-touch attribution. Sampling drops edge-case paths—your highest-intent visitors often behave differently from the median, so a 10% sample may miss the behavior that matters most.

    How to spot sampling in your reports

    Google Analytics 4 shows a green checkmark or yellow warning icon at the top of exploration reports. The yellow icon means your query was sampled; the percentage shown (e.g., “based on 8.3% of sessions”) tells you how much data was used.

    If you’re running a custom segment—say, traffic from a specific referrer with a conversion event—and the icon shows sampling, your funnel metrics are modeled estimates, not raw counts.

    Plausible and Fathom don’t display sampling warnings because they don’t sample on paid plans. If you’re on a free or trial tier and your traffic exceeds the cap, you’ll see a hard cutoff: events stop logging, or the dashboard shows partial days.

    Other platforms—Mixpanel, Heap, Amplitude—offer generous free tiers but throttle or sample retroactively once you exceed event limits. Mixpanel’s free plan caps at 20 million monthly events; past that, older data gets archived and queries slow down or return incomplete results.

    When sampling breaks your decisions

    Sampling matters most when you’re optimizing for conversion rate, attribution, or cohort behavior. If you’re A/B testing two landing pages and your analytics tool samples the traffic, a 2% lift in conversions might be noise, not signal.

    Example: You’re tracking newsletter signups from three UTM sources—organic search, Twitter, and a paid Facebook campaign. GA4 samples your 90-day report at 12%. The dashboard shows Twitter driving 40 signups and Facebook driving 38. In reality, Facebook drove 52 and Twitter drove 29—but the sample skewed toward a few high-traffic Twitter days.

    You reallocate budget based on bad data. Two weeks later, your cost per signup doubles.

    Sampling also hides outlier sessions: your longest time-on-page visits, your highest scroll depths, and your multi-page readers. These are your most engaged users, and they’re statistically rare. A 10% sample has a lower chance of capturing them.

    How to avoid or reduce sampling

    The simplest fix: narrow your date range and segment size. Instead of querying 90 days of traffic with five filters, query 30 days with two. If GA4 still samples, break the report into weekly chunks and aggregate manually in a spreadsheet.

    If you’re on Google Analytics 4 and sampling is chronic, consider exporting raw event data to BigQuery. GA4’s BigQuery export is free for up to 1 million events per day on the free tier, and queries run on unsampled data. The learning curve is steep—you’ll need SQL and a basic understanding of GA4’s event schema—but it’s the only way to guarantee complete data at scale.

    For operators who don’t want to manage SQL, switching to a paid analytics plan eliminates sampling. Plausible starts at $9/month for 10,000 monthly page views with no sampling. Fathom starts at $14/month for 100,000 page views, also unsampled. Both platforms count page views, not events, so instrumentation is simpler.

    If you’re running a high-traffic site (500,000+ monthly page views), expect to pay $50–$100/month for unsampled analytics. That’s the floor for tools that process every session.

    One more thing: sampling isn’t always disclosed

    Not every platform tells you when data is modeled or incomplete. If your dashboard shows a suspiciously round conversion rate—exactly 5.0%, not 4.87%—or if your funnel drop-off percentages don’t add up to 100%, you’re probably looking at sampled or aggregated data.

    Test this by exporting a raw event log (if your tool supports it) and comparing totals to the dashboard. If the counts don’t match, ask support whether sampling is applied and at what threshold.

    For newsletter operators and solo founders, unsampled data isn’t perfectionism—it’s the difference between knowing which traffic source pays for itself and guessing based on a model that drops your best readers.

    Want more breakdowns like this? Subscribe to One Two Three Send for weekly deep-dives on the tools and tactics that run online businesses.

  • Google’s Helpful Content Update Changed How Internal Links Count

    Google’s Helpful Content Update Changed How Internal Links Count

    Google’s Helpful Content Update in August 2023 didn’t just penalise AI slop and affiliate farms. It also changed how the algorithm weighs internal link structure when determining which pages deserve to rank.

    Most coverage focused on the content-quality signals—understandably. But buried in the technical SEO weeds was a shift in how PageRank flows through site architecture, and it’s been quietly reshaping traffic distribution for sites that rely on pillar content and hub pages.

    If you run a content site and noticed certain cornerstone posts losing traffic while thinner, newer pages climbed, this is probably why.

    What changed: context over volume

    Before August 2023, internal linking operated on a fairly predictable model: the more internal links a page received, the stronger its ranking potential. Hub pages with dozens of inbound links from across your site carried the most authority.

    The update introduced a contextual weighting layer. Now, Google evaluates not just how many internal links point to a page, but where those links come from and how topically related the linking page is to the target.

    A link from a closely related article on the same subtopic carries significantly more weight than a boilerplate footer link or a sidebar widget linking to your “Best Of” archive. Volume still matters, but relevance matters more.

    This explains why some sites saw their sprawling hub pages—previously propped up by sitewide navigation links—lose rankings, while deep, narrowly focused articles with fewer but more contextually relevant inbound links gained ground.

    How to audit your internal link structure now

    Pull a Screaming Frog or Sitebulb crawl of your site and export the internal link report. You’re looking for two patterns:

    Pattern one: High-value pages that receive most of their inbound links from unrelated posts or sitewide elements (header, footer, sidebar). These pages are vulnerable. Their authority is inflated by low-context links that no longer carry the weight they used to.

    Pattern two: Deep posts with strong topical relevance to your most important pages, but zero or one internal link pointing to those hubs. These are missed opportunities. A single contextual link from a related deep-dive post now moves the needle more than five generic sidebar links.

    Run a topic-cluster map. Group your posts by semantic similarity—use a spreadsheet, Airtag clusters in Ahrefs, or even a manual pass. Then cross-reference: do your most important pages have internal links from at least three to five posts within the same cluster?

    If not, add them. But don’t force it. A link from a post about WordPress caching to a post about email deliverability doesn’t help either page. Relevance is the gate.

    What breaks when you over-optimise

    The temptation is to stuff every related post with links to your cornerstone content. Resist it.

    Google’s algorithm now appears to discount internal links that appear in identical boilerplate text across multiple pages. If you’re using the same call-out box or inline CTA in twenty posts, all linking to the same hub page, those links are being treated as low-signal.

    Variation matters. Each internal link should be contextually integrated into unique sentences. Yes, that takes more time. But the alternative is a bunch of links that register as noise.

    Also: don’t orphan your older content. If you’ve been publishing for years and your early posts don’t link to anything else on your site, they’re functionally invisible to the new weighting model. A quarterly audit to add a few contextual internal links to older posts will lift their discoverability and stabilise traffic.

    Practical next step

    Pick your three highest-value pages—the ones that drive email signups, affiliate clicks, or product sales. Export every page on your site that ranks for a related keyword or covers a related subtopic. Go through that list and add one or two contextual internal links from those related posts to your high-value pages.

    Track organic traffic to those three pages over the next 30 days. If you’ve been relying on sitewide navigation or footer links to prop them up, you’ll likely see a lift once the relevance signal kicks in.

    This isn’t a one-time fix. Internal link structure is now a living part of your content strategy, not a set-it-and-forget-it SEO checkbox. Treat it like ongoing editorial work, and it’ll pay dividends in stabilised rankings and more predictable traffic.

    Got a question about your own site’s internal link structure? Hit reply—I read every response and often turn reader questions into future deep-dives.

  • AI assistants hallucinate pricing data—here’s how to verify

    AI assistants hallucinate pricing data—here’s how to verify

    You ask Claude or ChatGPT for a quick comparison: “Which newsletter platform costs less for 10,000 subscribers?” The model replies with confident numbers—$79/month here, $99/month there—and you make a purchasing decision based on that data.

    Then you click through to the actual pricing page and discover the real number is $129, or that the plan it recommended doesn’t exist anymore, or that the feature you need is only available on enterprise.

    AI assistants hallucinate pricing information more often than almost any other category of data. They blend outdated documentation, conflated product tiers, and invented numbers into answers that sound authoritative but cost you real money when you act on them.

    Why pricing data breaks LLMs

    Large language models train on static snapshots of the web. SaaS companies change their pricing every six to eighteen months—new tiers, revised limits, seasonal promotions, regional variations. The model’s training cutoff means it’s often working from information that’s twelve months stale or older.

    Worse, many pricing pages live behind JavaScript paywalls or login gates, so the training corpus captures incomplete or misleading fragments. The model fills gaps by interpolating from similar tools, which works tolerably well for feature descriptions but fails catastrophically for hard numbers.

    You’ll also see blended answers: the AI might pull a base price from one tier, a subscriber limit from another, and a feature list from a third, then present them as a single coherent package that doesn’t exist on any real plan.

    How to verify AI-generated pricing claims

    Treat every pricing figure, plan name, or feature-limit claim from an AI assistant as a research starting point, not a fact. Here’s the verification checklist:

    • Go directly to the vendor’s pricing page. Don’t rely on third-party review sites or affiliate comparison tables—those go stale even faster than the AI’s training data.
    • Check the date on any cited source. If the AI links to a blog post or help doc, look at the publish date. Anything older than six months is suspect for pricing.
    • Open the plan details or feature matrix. Don’t assume the headline price includes what you need. Verify the specific limits—sends per month, team seats, API access—that matter to your use case.
    • Test with a pricing calculator if available. Tools like Mailchimp, ConvertKit, and Brevo offer interactive calculators that show exactly what you’ll pay at your subscriber count. Use them.
    • Email sales for enterprise or custom plans. If the AI mentions an enterprise tier, assume the pricing it provides is invented. Those numbers rarely appear on public pages.

    For high-stakes decisions—annual contracts, multi-tool migrations, anything over $500/year—don’t verify once. Check again the week before you commit. SaaS companies announce pricing changes with as little as thirty days’ notice, and your six-week evaluation window can span a price hike.

    Where AI pricing answers do work

    AI assistants handle relative comparisons better than absolute numbers. If you ask, “Which is generally cheaper for small lists, Substack or Beehiiv?” the model can give you a directionally accurate answer because the relationship holds even when the exact figures drift.

    They’re also useful for surfacing lesser-known tools in a category. You might not have heard of a newer platform, and the AI can introduce you to it—but you’ll still need to verify the details yourself.

    Use AI to draft your shortlist and identify decision criteria. Then do the pricing research manually, in a spreadsheet, with current numbers from each vendor’s site.

    What to do if you’ve already bought based on AI output

    If you signed up for a service and the price or features don’t match what the AI told you, most SaaS companies offer refunds within seven to thirty days. Contact support immediately, explain the discrepancy, and ask for a prorated refund or a plan adjustment.

    For annual contracts, you have less flexibility, but it’s still worth asking. Some vendors will let you switch tiers or pause the subscription if you catch the issue within the first billing cycle.

    Document what the AI told you—screenshot the conversation—so you have a record of the claim. It won’t obligate the vendor to honor a hallucinated price, but it helps frame the conversation as a misunderstanding rather than buyer’s remorse.

    Have you caught an AI assistant inventing pricing data? Reply with the tool and the claim—I’m tracking which categories hallucinate most often, and I’ll share the patterns in a future issue.

    Heads up — some links in this article are affiliate links. If you sign up through them, we may earn a small commission at no extra cost to you. We only recommend tools we use ourselves.

  • How ConvertKit’s ‘Incentive Email’ Field Works and When to Use It

    How ConvertKit’s ‘Incentive Email’ Field Works and When to Use It

    ConvertKit includes a feature called the Incentive Email that most solo operators either overlook or misunderstand. It’s designed to deliver your lead magnet or opt-in bribe automatically—without building a separate automation sequence. But the way it fires, when it doesn’t fire, and how it interacts with existing automations can trip you up if you don’t know the rules.

    Here’s what the Incentive Email actually does, when to use it, and one non-obvious gotcha that can double-send your lead magnet if you’re not careful.

    What the Incentive Email Does

    When you create a form in ConvertKit, you’ll see a checkbox labeled “Send incentive email.” Toggle it on, and you can draft a single email that fires immediately after someone confirms their subscription (if you’re using double opt-in) or submits the form (if you’re using single opt-in).

    The email includes merge tags for the subscriber’s name and a custom download link. You write it once, and ConvertKit sends it to every new subscriber who joins via that specific form. No automation, no sequence, no visual canvas required.

    It’s a faster setup than building a full automation if you’re just delivering a PDF, checklist, or Notion template. You don’t need to tag subscribers, filter them into a sequence, or manage conditional logic. The form handles everything.

    When to Use It vs. When to Skip It

    The Incentive Email makes sense when your funnel is simple: one form, one lead magnet, one confirmation email. If you’re running a single opt-in offer and you don’t plan to segment subscribers or trigger follow-up emails based on behavior, it’s the cleanest option.

    Skip it if you’re doing any of the following:

    • Segmenting subscribers by interest, source, or product intent at the point of opt-in
    • Running A/B tests on lead-magnet delivery timing or copy
    • Tracking open or click behavior in your automation reporting (Incentive Emails don’t appear in sequence stats)
    • Delivering multiple resources in a welcome series

    The Incentive Email doesn’t play well with complex funnels. It’s a one-and-done trigger. If you need to branch logic, delay delivery, or send a second email 24 hours later, you’re better off using a visual automation with tags and conditions.

    The Double-Send Trap

    Here’s the non-obvious problem: if you enable the Incentive Email and have an automation that triggers on the same form submission, both will fire. ConvertKit doesn’t suppress one in favor of the other. Your subscriber gets two emails—one from the Incentive Email, one from the automation—within minutes of each other.

    This happens most often when you’re migrating from an old automation setup to the Incentive Email (or vice versa) and forget to disable the other. The form doesn’t warn you. The automation builder doesn’t flag the conflict. You only notice when a subscriber replies asking why they got the same PDF link twice.

    The fix: audit your forms and automations before enabling the Incentive Email. Search for any automation that uses the form as a trigger. If you find one, decide which delivery method you want to keep, then disable the other. Don’t run both at once unless you’re intentionally sending different content in each email.

    Editing and Timing Notes

    Once you enable the Incentive Email, you can edit the subject line, body copy, and sender name at any time. Changes apply to all future sends, but they won’t retroactively update emails already delivered. If you need to fix a broken link or update the lead magnet, you’ll need to manually email past subscribers or rely on an automation to catch them.

    Timing is immediate: ConvertKit sends the Incentive Email as soon as the subscriber confirms (double opt-in) or submits (single opt-in). There’s no built-in delay. If you want to wait 10 minutes or 24 hours, you need an automation instead.

    The Incentive Email also doesn’t respect sending windows or time-zone adjustments. If someone opts in at 2 a.m., they get the email at 2 a.m. This usually doesn’t matter for lead magnets—people expect instant delivery—but it’s worth noting if you’re used to sequence-based sends that respect subscriber time zones.

    When It’s Worth the Simplicity

    If you’re launching a single opt-in offer and you don’t plan to iterate on delivery timing or segmentation, the Incentive Email is the fastest path to a working funnel. You skip the automation builder entirely. The trade-off: less flexibility, no reporting granularity, and no conditional logic.

    For most solo operators, that trade-off is fine—until it isn’t. If you find yourself wanting to A/B test subject lines, track open rates in a dedicated sequence, or send a follow-up email two days later, you’ll outgrow the Incentive Email quickly. At that point, migrate to a visual automation and disable the Incentive Email on the form.

    Just make sure you turn off one before you turn on the other. Your subscribers don’t need two copies of the same PDF.

    One Two Three Send helps online operators make smarter tooling decisions. If you want sharp breakdowns like this in your inbox every week, subscribe below—or reply with a question you’d like answered next.

  • Workflow automation breaks when you automate the wrong tasks

    Workflow automation breaks when you automate the wrong tasks

    Automation promises leverage: build once, run forever. But most operators automate the wrong parts of their workflow and end up maintaining complex systems that create more work than they save.

    The pattern shows up everywhere. You build a Zapier chain to auto-tag newsletter subscribers based on link clicks, but the logic requires weekly updates as your content strategy shifts. You set up auto-posting for social media, but you spend thirty minutes each morning reviewing the queue to make sure nothing looks tone-deaf. You create templated email responses, but every message still needs five minutes of customization.

    You’ve automated tasks that require judgment, and now you’re babysitting robots.

    Repetition vs. decision-making

    The clearest line in workflow automation separates repetitive execution from decision-making. Repetitive tasks have fixed inputs and predictable outputs. Decision-making tasks require context, comparison, or subjective evaluation.

    Good automation candidates: sending a welcome email when someone subscribes, posting a blog link to Twitter fifteen minutes after publish, copying form submissions into a spreadsheet, generating weekly traffic reports, resizing images to specific dimensions.

    Bad automation candidates: deciding which blog post to write next, choosing whether a subscriber should receive the advanced or beginner nurture sequence, determining if a social post needs a content warning, writing personalized outreach emails, selecting which analytics metrics matter this month.

    The bad candidates aren’t impossible to automate—tools exist for all of them—but the automation requires constant tuning. You end up spending more time adjusting the system than you would just doing the task manually.

    Volume thresholds matter

    A task doesn’t need automation just because it’s repetitive. It needs automation when the repetition happens frequently enough that manual execution creates meaningful friction.

    Posting your newsletter link to three social channels once a week takes ninety seconds. Building and maintaining a Zapier workflow to do it automatically saves you six minutes per month and costs $20 on the starter plan if you’re already at your task limit. The math doesn’t work unless you’re publishing daily or managing multiple publications.

    Real automation wins happen at volume. If you’re processing fifty Typeform submissions per week, auto-copying them to Airtable makes sense. If you’re getting five, open the form and copy-paste. If you’re sending three sponsor invoices per month, write them manually. If you’re sending thirty, template the hell out of them and connect Stripe to your CRM.

    The break-even point sits somewhere between five and twenty repetitions per week, depending on task complexity and your comfort with automation tools. Below that threshold, you’re optimizing for elegance, not efficiency.

    Maintenance cost is invisible until it isn’t

    Every automation you build accumulates technical debt. APIs change. Platforms deprecate endpoints. Your own business model shifts and the workflow that made sense six months ago now routes leads to a landing page you deleted.

    I’ve seen operators running Zapier accounts with forty active Zaps, half of which haven’t triggered in sixty days. They’re paying for automation insurance—workflows built for edge cases that never scaled—but they can’t delete them because they’re not sure what will break.

    The maintenance cost shows up in three places: debugging time when something stops working, cognitive overhead remembering what each workflow does, and opportunity cost from paths you didn’t explore because the current system was “good enough.”

    A working rule: if you haven’t touched an automation in ninety days and it’s not mission-critical (welcome emails, payment receipts, backup jobs), delete it. You’ll rebuild it faster than you think if you actually need it again, and you’ll rebuild it better because you’ll know more about what you actually need.

    What to automate right now

    Start with pure data movement: form to spreadsheet, spreadsheet to email, email to task manager, new post to social channel. These workflows have no decision layer. They take structured input and copy it somewhere else without transformation.

    Then move to scheduled reporting: weekly traffic summaries, monthly revenue roll-ups, daily backup confirmations. Anything that pulls existing data into a readable format on a fixed calendar.

    Stop before you automate anything that requires you to review output before it goes live. The review step is the real task. The automation is just a draft generator, and draft generators are only valuable if they’re faster than doing it yourself.

    If you’re spending more than ten minutes per week adjusting an automation, you’ve automated a decision, not a task. Turn it off and do the work manually until the decision becomes repetitive enough to codify.

    One Two Three Send runs on a mix of automatic and manual workflows. Some things—like this newsletter hitting your inbox—are fully automated. Others, like choosing what to write about, will never be. If you want more breakdowns of what works and what doesn’t in small-scale online operations, subscribe here.

  • Memberful vs. Patreon vs. Ghost: which membership platform to pick

    If you’re building a paid membership or subscription offering, you’ve probably narrowed your shortlist to Memberful, Patreon, or Ghost. All three can collect recurring payments and gate content. All three integrate with Stripe. But the differences in control, pricing structure, and long-term flexibility matter more than the feature checklists suggest.

    Here’s what each platform does well, where it falls short, and who should pick which.

    Memberful: WordPress integration and full subscriber ownership

    Memberful positions itself as the membership layer for WordPress sites. You install a plugin, connect your Stripe account, and sell access to posts, pages, or downloadable resources. Subscribers log in via your domain. You own the customer relationship and the email list outright.

    Pricing: Memberful takes 4.9% of gross revenue after Stripe’s cut, with no flat monthly fee until you cross $10,000/month in revenue—then it’s a negotiated enterprise plan. If you’re earning $500/month, you’re paying roughly $25 to Memberful plus Stripe’s 2.9% + $0.30 per transaction.

    Pros: Full design control if you’re comfortable with WordPress themes. No platform lock-in—your subscriber data lives in your own database. You can export and migrate without losing payment history. Memberful also integrates with ConvertKit, Mailchimp, and other ESPs, so your membership list can feed your newsletter automation.

    Cons: You’re responsible for hosting, SSL certificates, plugin conflicts, and WordPress updates. If your site goes down, signups stop. There’s no built-in community forum or mobile app. Memberful is a checkout system, not a content platform.

    Best for: Operators who already run a WordPress site, want to retain full subscriber ownership, and don’t mind managing infrastructure. If you’re selling premium articles, courses, or downloadable resources alongside free content, Memberful fits cleanly.

    Patreon: built-in audience and discovery, but steep fees

    Patreon offers a hosted membership page, payment processing, and access to its internal discovery feed. Creators publish posts in tiers, offer perks like early access or behind-the-scenes content, and optionally run Discord communities or live streams.

    Pricing: Patreon’s Lite plan takes 5% of monthly income. The Pro plan (8%) adds analytics, custom member tiers, and promotional tools. The Premium plan (12%) includes priority support and team accounts. Stripe fees stack on top, so you’re paying 7.9% to 14.9% total on every transaction.

    Pros: Zero setup friction. You don’t host anything. Patreon’s algorithm surfaces your page to potential members browsing categories, which can drive cold discovery if you’re in a popular niche like podcasting, gaming, or comics. The mobile app keeps members engaged. Patreon also handles VAT/sales tax compliance automatically.

    Cons: Patreon owns the subscriber relationship. You can’t export payment history or migrate members to another platform without asking them to re-subscribe. The 12% fee on the Premium tier becomes expensive fast—if you’re earning $5,000/month, you’re handing Patreon $600 plus Stripe’s cut. The platform also tilts heavily toward creative communities; if you’re running a business newsletter or SaaS content site, the branding feels off.

    Best for: Creators who prioritize ease of launch over ownership, operate in visual or entertainment niches, and want access to Patreon’s built-in audience. If you’re starting from zero followers and need discovery, the trade-off makes sense early on.

    Ghost: publishing platform with membership baked in

    Ghost is an open-source CMS designed for publishers. It includes newsletter delivery, membership tiers, and native Stripe integration. You can self-host or pay for Ghost’s managed hosting, which starts at $9/month for up to 500 members.

    Pricing: Ghost’s managed hosting scales with member count. The Starter plan ($9/month) covers 500 members and 1,000 emails. The Creator plan ($31/month) handles 1,000 members and 10,000 emails. The Team plan ($63/month) supports 2,500 members and 25,000 emails. Beyond that, you’re on custom enterprise pricing. Ghost takes no percentage of your revenue—you pay only Stripe’s standard fees.

    Pros: Flat monthly pricing with no revenue cut. You own your member data and can self-host if you want full control. Ghost’s editor is fast, its newsletter delivery is solid, and you can run free and paid tiers from a single install. The platform ships with built-in SEO tools, analytics, and member segmentation.

    Cons: Ghost is a full CMS, not a plugin. If you’re already running WordPress, switching to Ghost means migrating your entire site or running two separate properties. The theming system is less flexible than WordPress—customization requires Handlebars templates and some JavaScript. Ghost also lacks community features like forums or comments without third-party integrations.

    Best for: Publishers and newsletter operators who want a clean, opinionated platform and don’t need WordPress’s plugin ecosystem. If you’re launching a new paid publication from scratch or consolidating a blog and newsletter into one system, Ghost makes sense. If you already have 10,000 WordPress posts, migration pain outweighs the benefits.

    Which one to pick

    If you already run WordPress and want to add membership without changing infrastructure, use Memberful. If you’re a creator in a visual niche and need discovery more than ownership, start with Patreon and plan to migrate later. If you’re building a subscription publication from the ground up and want predictable costs, Ghost wins.

    None of these platforms locks you in forever, but switching costs time and risks churn. Pick based on where you are now and where you’ll be in twelve months, not just the feature grid.

    Running a membership or paid newsletter? Reply and tell us which platform you picked—and what you wish you’d known before launching.

  • ConvertKit subscriber scoring: what it tracks and when to ignore it

    ConvertKit assigns every subscriber an engagement score between 0 and 100. The platform updates it automatically based on opens, clicks, and reply activity. The idea: surface your most engaged readers so you can treat them differently—early product access, exclusive content, or tighter segmentation.

    Most operators never look at it. Those who do often misread what the number actually represents.

    How the scoring algorithm works

    ConvertKit’s engagement score weighs three behaviors:

    • Email opens — tracked via pixel load; weighted heaviest in the first 48 hours after send
    • Link clicks — any tracked link in any broadcast or sequence; weighted more than opens
    • Replies — direct email replies to your sends; highest weight, but rare for most lists

    The score decays over time. A subscriber who opened every email in January but none in February will drop from 95 to the mid-60s by March. ConvertKit doesn’t publish the exact decay curve, but testing suggests it’s roughly 5–8 points per month of inactivity.

    Scores update within 24 hours of each tracked action. You can’t adjust the weighting, turn off specific signals, or reset a score manually.

    What the score misses

    Engagement scoring sounds useful until you realize what it ignores:

    Forwarded opens. If a subscriber forwards your email to a colleague who opens it, ConvertKit counts that as the original subscriber’s engagement—even though they didn’t read it themselves. High score, zero intent.

    RSS-to-email and read-later apps. Subscribers using Feedbin, Instapaper, or similar aggregators trigger opens without clicking through. Their scores stay artificially high even if they never visit your site.

    Purchase behavior. A subscriber who buys your course but never opens marketing emails will score low. ConvertKit doesn’t integrate Stripe or payment data into the engagement algorithm, so your best customers often rank in the bottom quartile.

    Time on site. If someone clicks your link, spends eleven minutes reading, and shares it on Twitter, ConvertKit logs one click. Same score as someone who clicked by accident and bounced in two seconds.

    When to use scoring—and when to build your own segments

    Engagement scoring works well for one thing: suppressing low-intent subscribers before a product launch. If you’re announcing a paid offering and want to avoid spam complaints, excluding everyone below a score of 40 cuts deadweight without manual list pruning.

    It’s also decent for identifying who to re-engage. Subscribers in the 20–50 range aren’t completely cold; a targeted win-back sequence often pulls them back up.

    Where it fails: prioritizing high-value actions. If you run a paid newsletter, a sponsorship-driven site, or sell products, engagement score won’t tell you who actually pays. You need custom segments:

    • Tag subscribers on purchase (via Zapier or ConvertKit’s Stripe integration)
    • Tag clicks on specific high-intent links—pricing pages, checkout, affiliate offers
    • Tag manual replies or survey completions

    Then filter by tags, not score. A subscriber tagged “Paid 2026” with a score of 30 is worth infinitely more than someone scored 95 who’s never clicked a buy button.

    The non-obvious tip: use scoring to find accidental unsubscribes

    Here’s the move most operators miss: filter for unsubscribed contacts with scores above 70.

    ConvertKit lets you view engagement scores even after someone unsubscribes. If a highly engaged reader opts out, there’s a decent chance it was accidental—they meant to unsubscribe from a different list, or clicked the wrong link on mobile.

    Export that segment monthly. Email them directly (outside ConvertKit, one-to-one) with a plain-text note: “Noticed you unsubscribed but were opening every email—just checking that was intentional. If not, here’s the re-subscribe link.”

    Conversion rate on that outreach runs around 15–20%. You’re not spamming; you’re catching UI mistakes before the reader forgets your site exists.

    Want sharper segmentation strategies that actually tie to revenue? Subscribe to One Two Three Send for weekly breakdowns of the tools, tactics, and pricing details that matter when you’re running a content business solo.

    Engagement scoring isn’t useless—it’s just not the complete picture ConvertKit’s UI implies. Treat it as one signal among many, and build your own segments around the actions that actually predict revenue.

  • SEO content briefs bloat into project-management theatre

    SEO content briefs bloat into project-management theatre

    The average SEO content brief now runs twelve pages. It includes competitor analysis tables, semantic keyword clusters, readability targets, word-count ranges, internal linking maps, and a mood board no writer asked for.

    Most of it gets ignored. The rest slows down production without improving rankings.

    If you’re running a content operation—whether you’re writing yourself or managing freelancers—the brief has become a bottleneck dressed up as rigour. It’s time to strip it back.

    What actually belongs in a content brief

    A useful brief answers three questions: what’s the searcher trying to do, what format wins the SERP right now, and what angle are we taking that the top five results aren’t?

    That’s it. You don’t need a target word count—Google doesn’t rank by length. You don’t need a list of twenty secondary keywords—writers stuff them awkwardly or ignore them entirely. You don’t need competitor content scored on eight dimensions—your writer isn’t going to read all that before they start drafting.

    Here’s what works:

    • Search intent in one sentence. “Someone searching this wants to compare hosting providers by uptime and support quality, not price.”
    • Current SERP format. “Top five results are all comparison tables with pro/con lists. No listicles, no ultimate guides.”
    • Our unique angle. “We’re focusing on support response times during outages—none of the ranking pages mention that.”
    • Must-include points. Three to five bullet points. Not twenty.
    • Internal link targets. Two or three related posts to link to, with anchor text suggestions.

    If your brief is longer than one page, you’re writing documentation, not direction.

    Why bloated briefs survive

    The twelve-page brief exists because it looks like strategy. It reassures stakeholders. It justifies billable hours. It makes the content process feel scientific.

    But search engines don’t reward process—they reward usefulness. A 3,000-word article built from a one-page brief can outrank a 5,000-word piece that took three days to brief and another two to write.

    Bloated briefs also create a false sense of control. If you specify readability scores, heading density, and keyword placement down to the paragraph, you think you’re de-risking the content. In practice, you’re just making writers slower and less confident.

    Good writers need context and constraints, not instructions. If you’re hiring someone who needs a twelve-page brief to write a comparison post, you’ve hired the wrong person.

    What to do instead

    Start with a keyword and a one-sentence intent statement. Open an incognito window, search the term, and note the format of the top five organic results. Write down what they all cover, then write down what none of them cover.

    That gap is your angle. That’s the brief.

    If you’re working with freelancers, send them the keyword, the intent sentence, the SERP format, your angle, and three to five must-cover points. If they come back with questions, answer them in Slack or email—don’t pre-emptively document every edge case.

    Track what works. After thirty pieces, you’ll know whether your writers need more direction on structure, internal linking, or research depth. Adjust the template based on actual patterns, not imagined risk.

    When detail matters

    There are cases where a longer brief makes sense. If you’re writing a technical guide that requires SME input—say, a comparison of WordPress caching plugins with benchmark data—you’ll need more scaffolding. If you’re briefing a writer in a field they don’t know well, you might include definitions or background links.

    But even then, the brief should be a resource, not a script. The writer should be able to ignore half of it and still produce something that ranks.

    If your content operation is producing fewer than two pieces per writer per week, look at your briefs first. Chances are you’re spending more time on planning theatre than on publishing.

    What’s in your content briefs right now? Reply and let me know what you’ve cut—or what you’re still hanging onto that probably doesn’t need to be there.