Author: admin

  • Scale Content Without Writers: 3 Rules That Protect Quality

    Scale Content Without Writers: 3 Rules That Protect Quality


    A content workflow is like a kitchen line. One cook who does everything, from prep to plating to dishwashing, can only serve so many tables a night. Add stations, give each one a clear job, and the same kitchen serves triple the covers without hiring triple the staff. Agencies scaling content face the identical problem: the bottleneck usually isn’t talent, it’s structure.

    By the end of this, you’ll have a working plan for producing client content at volume without adding a single writer to headcount: what to automate, what to keep human, and how to stop AI drafts from reading like AI drafts.

    Prerequisites:

    • At least one subject matter expert per client account (product, ops, or customer-facing staff willing to do short interviews)
    • A documented brand voice guide for each client, even a rough one
    • An AI writing or agent platform your team can configure without engineering support
    • A review process with a named owner, not “whoever’s free”

    1. Decide whether to scale without hiring at all

    Start with the uncomfortable number: 71% of marketers already use AI for content ideas, but 68% say return on investment only improves when expert insight gets folded into the process, according to data reported by Eyeful Media. Read that twice. The tool alone isn’t the lift. The lift comes from pairing it with someone who actually knows the client’s business.

    This matters for the decision you’re about to make. An agency that swaps writers for software and stops there usually sees output go up and quality flatten out. An agency that swaps writers for software And builds in a structured way to capture expert knowledge tends to see both go up together.

    The trade-off is real, though. Removing writers removes a layer of people who used to catch inconsistency, chase down facts, and push back when a brief didn’t make sense. Software doesn’t do that unprompted. Eyeful Media’s research also notes that content with deeper analysis or expert commentary tends to hold attention longer than generic copy, which is the whole argument for not treating AI as a replacement for expertise, only as a replacement for typing.

    So the real question isn’t “AI or writers.” It’s whether your agency can build a system where the AI does the drafting and someone with client knowledge still touches every piece before it ships. If you can build that, cutting the writer roster makes sense. If you can’t, you’re just trading slow, expensive content for fast, forgettable content.

    A woman takes notes at a desk in front of a computer monitor

    One thing to flag early: this isn’t a one-time setup. Client businesses change, products get updated, and a workflow that worked at launch needs revisiting every few months. Treat it as a system you maintain, not a project you finish.

    2. Turn client knowledge into automated drafting playbooks

    Here’s the contrast that should shape your next six months: a generic AI prompt produces a page that looks like every other page on that keyword. A page built from a structured SME interview produces something competitors can’t easily copy, because it contains facts only that client’s team knows.

    This isn’t a small difference. Flying Cat Marketing’s analysis found that product marketers, solutions engineers, and customer success leads hold exactly the positioning and product detail that bottom-funnel comparison pages need, and that primarily AI-generated articles now make up roughly half of all new web content. When everyone’s drawing from the same public sources, a page built on a client’s internal experts stands out by default, not by effort.

    The agency D2L worked with took this approach for competitive and comparison pages, pulling verified positioning directly from internal product experts rather than guessing at it from public competitor sites. The result, per Flying Cat’s case study, was a 73% increase in organic search and LLM demo requests in the first year. That’s not a claim about AI writing faster. It’s a claim about what happens when the input to the AI is better.

    What changes for your operation? Writer’s agent Skills creator and Playbook builder are built around exactly this idea: a non-technical team member describes a workflow, the specialized expertise involved, and the outcome they want, in plain language, and the system turns that into a reusable capability other accounts can use too. You’re not writing prompts from scratch for every client every time. You’re building a library.

    That library is the actual asset here, more than any single article. The interview process stays roughly the same: find the person who talks to customers or builds the product, ask them what competitors get wrong, ask for specific numbers or examples, and feed the transcript into the playbook rather than a blank prompt box.

    It’s slower by a day, maybe two. But a draft built on nothing produces exactly what Flying Cat describes as the forgettable, 10%-citation version. A draft built on a 20-minute call with someone who actually knows the product produces the 76% version, the one more likely to rank and get cited. Don’t cut the step that creates the differentiation.

    If you’re mapping out how this fits into a broader production pipeline, it helps to look at a 5-phase content workflow structure before you build your own, so the interview step has a defined place rather than getting bolted on as an afterthought.

    3. Review drafts to prevent scaled content abuse and voice drift

    Google’s own standards for human search quality raters give agencies a useful warning label here, even though these raters don’t directly set rankings. The guidelines Google publishes cover two specific failure modes: section 4.6.5 addresses scaled content abuse, and section 4.6.6 covers main content built with little effort, little originality, and little added value. Neither section is about AI specifically. Both are about output that reads like it was produced to fill a quota rather than answer a question.

    That’s the actual risk of removing writers without replacing their function. A writer, even a mediocre one, tends to notice when a paragraph says nothing. An unreviewed AI draft doesn’t notice anything. It just finishes.

    The fix isn’t “hire an editor” in the old sense. It’s building review into the same system that does the drafting, with someone checking specifically for the things Google’s raters are trained to flag: does this page add anything a reader couldn’t get from the next ten results, and does it sound like it was written for a human reader or generated to occupy a URL.

    A woman sits at a desk reviewing printed papers with a pencil

    There’s a second failure mode that’s quieter but just as damaging to client relationships: voice drift. Glean’s research on this is blunt. Citing the Content Marketing Institute’s 2024 B2B report, 64% of the most successful content marketers have documented brand voice guidelines.

    Only 23% actually feed those guidelines into their AI tools when prompting or reviewing. That gap is where client complaints come from. The guide exists in a shared drive somewhere, nobody references it when generating drafts, and three months in, the client notices their content doesn’t sound like them anymore.

    McKinsey’s 2024 research on generative AI adoption backs this up from a different angle: most organizations use AI for content now, but fewer than a third report consistent quality in the output. Speed was never the hard part. Consistency is.

    What should an agency actually do with this? Treat the brand voice document as an input to every single draft, not a reference that lives in onboarding materials and gets ignored after week one. If a client has documented tone guidelines, a reviewer, human or system-assisted, checks every draft against them before it ships. If a client doesn’t have documented guidelines, that’s a gap worth closing in month one, because you can’t automate consistency you’ve never written down.

    The agencies managing this well treat review as a gate, not a formality. A draft doesn’t go out because it was generated. It goes out because someone confirmed it adds something a reader couldn’t already find and sounds like the client, not like a tool. Skip that gate and you’re not scaling content, you’re scaling the exact failure mode Google’s raters are trained to spot. For a fuller breakdown of where review fits across the production pipeline, the AI content writing workflow for 2026 lays out best practices by stage.

    Troubleshooting

    Drafts sound generic even after SME interviews. The interview probably stayed too high-level. Ask for specific numbers, named objections customers raise, or a product detail competitors often get wrong. Vague interviews produce vague drafts regardless of the writing tool behind them.

    Voice guidelines exist but drafts still sound off. Check whether the guidelines are actually loaded into the prompt or playbook, not just stored in a shared doc. Glean’s research found this exact gap between documentation and use is where most drift starts.

    Review is becoming the new bottleneck. This usually means review has no clear owner or no clear checklist. One named reviewer per account, checking against the brand guide and against Google’s originality standard, moves faster than a rotating group with no defined criteria.

    Frequently Asked Questions

    Can an agency really replace a full writing team with AI?

    Not entirely, and that’s not really the goal. The agencies seeing ROI gains are the ones pairing AI drafting with expert input and a review step, not removing the human element altogether. What goes away is the writer role as a dedicated full-time hire; what stays is expert interviews and editorial judgment, applied by fewer people across more accounts.

    How much does subject matter expert input actually matter if the AI is good?

    It matters more as the AI gets better, not less. Flying Cat’s research found pages built on verified SME positioning reached far higher AI citation rates than generic pages targeting the same keywords. The tool can write fluent sentences from nothing; it can’t invent facts specific to a client’s product or customers.

    Will Google penalize agencies for publishing AI-assisted content at scale?

    Google’s own documentation on gen AI content doesn’t set a penalty for using AI itself. Its quality raters are trained to flag scaled abuse and low-effort, low-originality output, which is a different standard: volume isn’t the problem, lack of added value is. Content built on real expert input and reviewed for originality fits comfortably inside that standard.

    What’s the single biggest mistake agencies make when cutting writers from the workflow?

    Skipping the interview step to save time. It feels like the slow part of the process, but it’s the part that produces the differentiation a reader or an AI assistant has a reason to cite. Cutting it doesn’t speed up good content, it just speeds up forgettable content.

    Do agencies need documented brand voice guidelines for every client before automating drafts?

    Yes, and most don’t have them. CMI’s 2024 research found 64% of top-performing content marketers have these documented, but only 23% actually feed them into AI tools. Building the guide and connecting it to the drafting process closes a gap most agencies haven’t noticed yet.


    A system that drafts fast but never checks for added value or voice match isn’t a leaner version of your old process, it’s a faster way to publish content that quietly damages client trust and search performance at the same time. Build the review gate before you build the volume.

    If you want help setting up a workflow that pairs automated drafting with the editorial checks that actually protect rankings and client relationships, get in touch with our team at Keyworth and we’ll walk you through how it fits your accounts.

    About the author

    Abayomi Adenekan

    Abayomi Adenekan

    SEO Specialist, 10+ years

    Abayomi “Yomi” Adenekan built Keyworth. He has spent over ten years in growth marketing, SEO, and product. He began as a web developer and email marketing specialist, moved into paid media managing $13M a year in ad spend, and now leads growth at a podcast incubator with 1,300+ creators. He also runs Dynareach, his own SEO, web development, and branding agency. He holds an M.Sc. in Data-Driven Marketing from Universidade NOVA de Lisboa and lives in Lisbon.

  • Can You Auto Publish to Squarespace Blog Posts?

    Can You Auto Publish to Squarespace Blog Posts?


    Squarespace scheduling works the way a vending machine works: you load the product, set the slot, and walk away. No one stands there pushing the button at the exact second you want the snack to drop. The machine handles timing on its own, every time.

    That’s the honest answer to whether Squarespace can publish content automatically. It can schedule a finished post to go live at a future date and time without anyone touching it again. What it can’t do is write, format, or create that post on its own.

    Squarespace has no public API for blog creation, a limitation confirmed repeatedly on its own community forum, where a Squarespace forum member stated flatly in April 2024 that programmatic post creation is “not possible.” So scheduling is real. Hands-free content generation from an outside tool straight into Squarespace, without a human pasting it in first, isn’t.

    That distinction matters for anyone running a content calendar on a hosted platform. Here’s what the scheduling workflow actually involves, step by step.

    Access your blog posts

    Open the Pages panel and click into your blog to see every post and its current status, whether that’s Published, Scheduled, Draft, or Needs Review. There’s no post count or limit here worth worrying about. This is just the inventory view.

    The mistake people make at this stage is assuming the list reflects what’s live on the site in real time. It doesn’t necessarily match intuition, especially if a teammate changed a status an hour ago and nobody mentioned it. Check the status column itself, not just whether the post exists in the list.

    A tablet screen displays a grid of colorful image and text tiles

    If you’re managing more than one blog on the platform, get in the habit of scanning this view before you start any bulk scheduling session. It’s the cheapest sanity check available, and it takes ten seconds.

    Open the blog post settings

    Click the three dots next to the post you want to change. That small icon, easy to miss if you’re scanning for a bigger button, is the only way into that individual post’s settings from the list view.

    This matters because Squarespace doesn’t give you a global scheduling panel where you set dates for multiple posts at once. Every post’s timing lives inside its own settings menu, which means batch-scheduling a week’s worth of content means repeating this exact click for every single post. If you’re used to a dashboard where you can bulk-edit publish dates across dozens of articles, this will feel slow. It’s slow. Plan your production calendar with that friction in mind rather than discovering it the day you’re trying to queue up a month of posts in one sitting.

    Navigate to the Options tab

    Inside the settings menu, you’ll see several tabs: General, Options, SEO, and a few others depending on your plan. The date and status controls aren’t under General, where most people instinctively look first. They’re under Options.

    That’s the whole fix: click Settings, then click Options. It’s a small navigation detail, but it’s the one step that trips up people who’ve used WordPress before, since WordPress keeps its publish-date control right in the main editing sidebar. Squarespace buries it one tab deeper. Worth noting in passing: editing content in the wrong tab and then forgetting to check Options before closing the panel is a common way scheduled dates get left unset.

    Set the status to Scheduled

    Before touching anything, check what the post’s status dropdown currently says. Inside the Options tab, you’ll see Draft, Scheduled, Needs Review, or Published listed as options. If it’s sitting on Draft, nothing you do elsewhere in the settings will make it go live on its own.

    It’s finished, approved, and ready for Monday. Click the status label, and choose Scheduled from the dropdown. That single click converts the post from something that just sits there to something with a publishing commitment attached, once you pair it with a date.

    Skip this step, and the date picker you set later effectively does nothing. Squarespace’s own help documentation lays out the three outcomes clearly: save a draft, publish now, or publish later, and “publish later” only works if you’ve actually selected Schedule from that status label first. A lot of people set the date, close the tab, and assume they’re done. The post stays a draft forever because the status was never flipped.

    Select a future publish date

    Here’s where people get stuck more often than you’d think: they go looking for the date field before they’ve set the status to Scheduled, and it either isn’t visible or doesn’t behave the way they expect. The date picker only becomes meaningful once Scheduled is selected as the status.

    Once it’s, the fix is simple. Click the date field inside that same status dropdown area, and pick a day ahead of today. Past dates are grayed out and can’t be selected, which is Squarespace’s built-in guardrail against someone fat-fingering a date that’s already gone.

    Back to the retention strategy post. Today’s date is a Tuesday. You open the calendar picker, scroll to the following Monday, and click it. The grayed-out days behind you confirm there’s no way to accidentally schedule something for a date that’s already passed.

    Set the automatic publishing time

    Set a specific time alongside the date, not just the date alone. Squarespace lets you type the time directly into the field now instead of dragging a slider, which is a small but real improvement for anyone who wants precision down to the minute.

    The mistake worth watching for here: people leave the time field on whatever default value Squarespace suggests, without checking it against their own time zone or their audience’s. A post scheduled for “9:00 AM” means nothing useful if you haven’t confirmed which time zone your site account is set to. Agencies managing clients across regions run into this constantly, publishing a post at 9 AM Pacific when the client’s audience and content calendar were built around Eastern time. Type the time in deliberately, and double check the zone your Squarespace account uses before you trust the number you typed.

    Save your scheduling changes

    Click Save after you’ve set the status and the date and time. That’s the entire mechanism. Nothing you’ve done up to this point, the status change, the date selection, the time entry, actually takes effect until this click happens.

    This matters more than it sounds like it should, because it’s an easy step to lose in the shuffle. You’ve navigated three menus deep, made several selections, and the natural instinct is to close the panel once everything “looks right” on screen. Squarespace doesn’t auto-save these changes as you go. According to Squarespace’s own documentation, clicking Save after adjusting the status is what makes the change take effect, not the act of selecting a date or flipping a dropdown.

    An open laptop showing a calendar sits beside a vase of dried flowers

    Treat Save as a non-negotiable last click, every time, on every post. If you’re training a junior team member or a client on this workflow, make that the one instruction you repeat until it’s automatic. It’s the single point of failure in an otherwise reliable system.

    Frequently Asked Questions

    Can Squarespace automatically create and publish blog posts without a person involved?

    No. Squarespace has no public API for creating blog posts, a point confirmed directly by Squarespace staff on the company’s community forum in 2024. You can schedule a finished, already-written post to go live at a future date, but generating and uploading that post without human involvement isn’t something the platform supports natively.

    Does Squarespace support auto-posting from tools like Make.com or Zapier?

    Not directly into the blog itself. Forum discussion on this topic notes that teams relying on automation platforms to push content from sources like WordPress, Airtable, or Notion into Squarespace run into the same wall: no blog-creation API to connect to. Automation tools can move data between many apps, but Squarespace’s blog isn’t one of the endpoints they can write to.

    What happens if I forget to set the status to Scheduled?

    The post stays a draft indefinitely, even if you’ve picked a future date in the date field. The date picker only functions as a publishing trigger once the status dropdown is set to Scheduled. Setting the date without changing the status is the single most common reason a “scheduled” post never actually goes live.

    Can I schedule multiple blog posts at once on Squarespace?

    No bulk-scheduling tool exists in the native interface. Each post’s settings, including its Scheduled status, date, and time, live inside that individual post’s own Options tab. Queuing a week or month of content means repeating the same steps post by post.

    Is there a way to schedule a post for a time in the past?

    No. Past dates are grayed out in the date picker and can’t be selected, which prevents a post from being accidentally scheduled for a date that’s already gone.


    Scheduling solves timing. It doesn’t solve the much bigger bottleneck most content teams actually have, which is getting a finished, formatted, SEO-ready article into Squarespace in the first place without someone manually copying and pasting it from a doc or another tool. Book a call with us to see how it fits your workflow.

    About the author

    Abayomi Adenekan

    Abayomi Adenekan

    SEO Specialist, 10+ years

    Abayomi “Yomi” Adenekan built Keyworth. He has spent over ten years in growth marketing, SEO, and product. He began as a web developer and email marketing specialist, moved into paid media managing $13M a year in ad spend, and now leads growth at a podcast incubator with 1,300+ creators. He also runs Dynareach, his own SEO, web development, and branding agency. He holds an M.Sc. in Data-Driven Marketing from Universidade NOVA de Lisboa and lives in Lisbon.

  • What Are Prompt-Like Queries in Search Console?

    What Are Prompt-Like Queries in Search Console?


    A query string that reads like a sentence spoken to a chatbot, not typed into a search box, is a prompt-like query. Search Console records them as plain text strings in the Performance report, the same as any other search term.

    Both sit in the same Queries column. Only the second one gives away where it came from.

    Recognizing and Filtering Conversational Search Prompts

    Google Search Console logs every search string that triggered an impression or click on a property, whether that string came from a person typing three words into the search box or an AI assistant passing along a full question on a user’s behalf. A prompt-like query is one of the second kind: long, grammatically complete, often first-person, and structured like a request rather than a label.

    This isn’t theoretical. A Search Engine Land analysis of leaked data found that searches originating in ChatGPT were showing up inside ordinary Search Console performance reports, and some of those strings contained personally identifiable information the person never meant to expose. That’s a strange thing to sit with: a tool built to show you how people find your site was quietly showing you how people talk to someone else’s chatbot, and that chatbot happened to reference your pages.

    The practical fallout is that anyone exporting queries and eyeballing the top 50 rows will likely miss these strings entirely, because they sort low by volume and look like noise. The fix Search Engine Land recommends is mechanical, not conceptual: write a regular expression that filters the Queries field down to entries of 10 or more words.

    That threshold isolates the conversational tail without requiring any guesswork about which rows are “real” searches and which are AI-relayed ones. There’s no official word count that defines a prompt versus a query; the 10-word regex approach is a filter convention, not a Google-defined boundary.

    A person types on a white keyboard in front of a computer monitor

    Conversational prompts mirror extreme long-tail search behavior

    The volume math here should calm some nerves and raise others. Ahrefs reports that keywords getting fewer than 10 searches per month make up almost 93% of its U.S. keyword database, and separately notes that roughly 15% of daily Google searches have never been typed before in that exact form. Most of what shows up in a Performance report was always going to be low-volume and one-off. Prompt-like queries just push that pattern further out.

    The option this opens up is treating these strings as directional evidence of intent rather than individual keyword targets. Nobody should build a content calendar around ranking for one 22-word question that appeared twice last month. But fifty variations of that question, all asking some version of the same thing, tell you what the underlying topic cluster needs to cover. Conversational AI traffic didn’t invent the long tail. It stretched it.

    The judgment call most teams get wrong: they either ignore these rows completely because no single one hits a meaningful volume, or they panic and try to write a page targeting each exact phrasing. Neither works. Group them by theme, write to the theme.

    Search Console omits anonymized queries from filtered reports

    Filter by query, and the totals you see won’t always match the totals on the unfiltered chart. Google’s own documentation on the Performance report explains that table data aggregates differently depending on what you group by: data grouped by Queries, Countries, Devices, or Dates aggregates by property, while data grouped by Pages or Search appearance aggregates by page. That distinction alone accounts for some of the gap between chart and table.

    A separate factor matters more for prompt-hunting specifically. Google’s help documentation on filtering performance data states plainly that filtering by query or URL can affect report totals because of data truncation and the omission of anonymized queries. Some of the rarest, most specific prompt-like strings, the ones most likely to contain a full sentence or a named detail, are exactly the kind Google anonymizes before they ever reach your export.

    So the regex filter for 10+ word queries will always undercount. It can’t show you every conversational search that touched your site, only the subset Google chose not to suppress. Treat exported totals as a sample of prompt behavior, not a census of it.

    Dedicated generative AI reports track visibility across AI surfaces

    Up to now, every prompt-like string sat mixed into the same undifferentiated Queries list as every other search term, which is why the regex workaround existed at all. Google has since built a more direct path. New Search Generative AI performance reports give a dedicated view of impressions inside generative features on Search, including AI Overviews and AI Mode, plus generative AI features in Discover. That data still feeds into the main performance report too, but now there’s a separate lens built specifically for it.

    Paired with that, a branded queries filter inside the standard Performance report now splits query data into branded and non-branded views automatically, without a custom regex.

    What changes for the reader is where to start. Instead of building a 10-word regex from scratch every time, check the dedicated generative AI view first to see what’s already separated out, then layer the branded/non-branded split on top to see whether AI-surfaced traffic skews toward people who already knew your name or people encountering it for the first time.

    The regex method from Search Engine Land still has a place for digging into the raw query text itself. Once you’ve narrowed a report with the regex filter guidance from Search Console’s own help pages, exporting and reviewing the actual phrasing is still the only way to read what people actually asked, not just how many impressions resulted.

    Reading what an SEO strategist does with a Search Console performance report once these numbers are visible matters more than the export itself. Numbers without a next action are just a spreadsheet.

    What it is not

    A prompt-like query isn’t a new metric, a new report type Google invented for this purpose, or proof that a page is ranking inside an AI Overview. It’s an observation about the shape of a text string sitting in a column that already existed.

    It’s also not the same thing as a branded or non-branded query, though the two can overlap; a long conversational prompt can mention a brand name or leave it out entirely. And it isn’t automatically evidence of bot traffic or scraping. Most of these strings represent a real person who asked a chatbot a full question and got your page referenced in the answer.

    When it matters

    Anyone running content strategy off Search Console exports should care, because treating a 20-word conversational string the same as a two-word head term means misjudging both its intent and its realistic ceiling for rank tracking. Teams managing FAQ content, comparison pages, or anything likely to get summarized by an AI assistant have the most to gain from separating this signal out early, before it skews a content brief toward chasing phrasing nobody will type verbatim twice.

    Frequently Asked Questions

    How do I filter Search Console for prompt-like queries?

    Open the Performance report, go to Search Results, add a query filter, and switch it to custom regex. From there, apply a pattern that isolates queries of 10 or more words, which is the threshold Search Engine Land uses to separate conversational strings from typical keyword searches. There’s no official word-count rule from Google defining this boundary, so the 10-word cutoff is a practical convention, not a platform standard.

    Are prompt-like queries the same as AI Overview traffic?

    No. A prompt-like query describes the shape of the search string itself: long, conversational, question-like. AI Overview visibility is a separate thing Google now tracks through its dedicated generative AI performance reports, which show impressions specifically within AI Overviews, AI Mode, and Discover’s generative features. A query can be prompt-like without ever touching an AI Overview, and vice versa.

    Can I target prompt-like queries with individual content pages?

    Not one by one. Any single 20-plus word phrasing will have too little volume to justify a dedicated page. Group recurring prompt-like queries by theme and build content that answers the underlying question across its likely phrasings, rather than chasing the exact string that showed up once.

    Does a high volume of prompt-like queries mean my content strategy is outdated?

    It depends on whether the queries cluster around topics you already cover. If they repeat themes absent from your content, that’s a gap worth closing. If they’re variations on questions you already answer, it means AI assistants are already finding and using your pages, which is a different problem than a gap.


    Prompt-like queries aren’t a passing anomaly in the data; they’re a sign that the gap between how someone types and how someone talks to a machine is closing fast, and reports built for the old gap will keep underselling what’s actually happening on your site. Ignore this shift for another year and the content briefs built on stale keyword lists will keep missing an entire category of real search behavior that’s already showing up, unfiltered, in your own exports. Contact Keyworth to talk through your next step.

    About the author

    Abayomi Adenekan

    Abayomi Adenekan

    SEO Specialist, 10+ years

    Abayomi “Yomi” Adenekan built Keyworth. He has spent over ten years in growth marketing, SEO, and product. He began as a web developer and email marketing specialist, moved into paid media managing $13M a year in ad spend, and now leads growth at a podcast incubator with 1,300+ creators. He also runs Dynareach, his own SEO, web development, and branding agency. He holds an M.Sc. in Data-Driven Marketing from Universidade NOVA de Lisboa and lives in Lisbon.

  • How to Find Keyword Cannibalisation in Search Console

    How to Find Keyword Cannibalisation in Search Console

    Two recipe pages on the same site can rank for “banana bread recipe” on the same afternoon, and Google Search Console will show you both rows without ever telling you they’re fighting each other. That’s the quirk that trips up most audits: the Performance report gives you raw numbers, not a verdict. Finding cannibalisation means reading between those rows yourself.

    By the end of this, you’ll be able to pull the query and page data that exposes competing URLs, tell genuine cannibalisation apart from harmless overlap, and know when to bring in a tracking tool instead of doing it by hand every month.

    Prerequisites:

    • Verified access to Google Search Console for the property you’re auditing
    • At least 3 months of performance history (12 months gives a cleaner picture)
    • A spreadsheet tool or a way to export and pivot Search Console data
    • Basic familiarity with the Performance report’s query and page dimensions

    1. Discover the Current Search Analytics Action

    Before you build anything, check what’s actually available to query Search Console data right now. The Performance reports show how often people saw or clicked your pages in Search, News, or Discover, and the underlying Search Analytics data lets you filter by query and page as separate dimensions, which is what makes cannibalisation visible in the first place, according to Google’s own documentation.

    If you’re automating this with a workflow tool or an AI agent, don’t hardcode a specific action or integration name into a permanent script. Catalogs change, accepted inputs change, and a brittle reference breaks your automation six months from now for no reason you’ll remember. Search for whatever current action returns clicks, impressions, CTR, and position at the point you’re building it, rather than trusting a name you copied from an old tutorial.

    Outcome: You have a working method, manual or automated, to pull query-and-page-level Search Console data without depending on a reference that might stop working.

    2. Pull Query and Page Data Together

    This is the step that actually surfaces cannibalisation. On its own, the Performance report’s default view lumps pages together under “Site Impression,” counting a query once per property even if three of your URLs show up for it, as one explanation of Search Console’s impression counting lays out. That default view hides the problem. You need query and page as separate dimensions, exported together, so each row tells you which specific URL earned which impressions for which search term.

    Export query and page data over a consistent period, ideally the last 12 months, which is the default scope used by automated extraction workflows built for this exact job, pulling up to 10,000 rows per run, according to one Search Console automation template. Then group by query. Any query with more than one distinct page attached is a candidate.

    A person types on a laptop displaying a spreadsheet at a wooden desk

    Here’s the part that separates a real audit from a shallow one. Counting pages per query tells you where overlap exists, but it doesn’t tell you whether that overlap matters. A query showing up against five URLs could mean five competing articles, or it could mean one dominant page and four stragglers picking up scraps. That’s why the next move is to weigh each page’s share of the total.

    Calculate what one cannibalisation framework calls leading-page share: take the highest single page’s impressions for that query and divide by the total impressions across every page ranking for it, a method described in this breakdown of Search Console cannibalisation signals. A query where one page owns almost all the impressions isn’t really contested, whatever the page count says. A query where impressions split closer to evenly across two or three URLs is where you have a genuine fight for the same real estate.

    Outcome: A list of queries ranked by how evenly their impressions split across multiple pages, not just how many pages happen to rank.

    3. Remove Benign Shared Visibility

    Not every multi-page query is a problem, and treating all of them as one is how audits waste weeks chasing nothing. Open the pages involved and ask whether they’re genuinely trying to do the same job, a check recommended in Aident’s cannibalisation guide.

    Branded and navigational queries are the easiest false positive. If someone searches your company name plus “pricing,” your pricing page and your homepage both showing up isn’t cannibalisation, it’s just how brand queries behave. Localised pages are another: a “plumber near me” style query returning your London page and your Manchester page for different searchers isn’t two pages fighting, it’s geographic targeting doing its job.

    Product and educational content aimed at different funnel stages deserves the same scrutiny. A comparison page and a “what is X” explainer might both rank for a broad term while serving completely different intents, one for someone ready to buy, one for someone still learning. And a page published last week that’s temporarily outranking your established page while Google figures out where it belongs isn’t a stable conflict, it’s noise that settles on its own.

    For each case, look at the current search results directly, not just your own data. Would a real searcher be served by either page equally well, or does one clearly deserve to be the only answer? Decide whether a single canonical page should own that query, or whether the overlap is doing something useful. Skipping this step is the single biggest reason cannibalisation fixes backfire: merging two pages that were actually serving different intents just deletes a page that was earning its own clicks.

    Outcome: A shortlist of queries where the overlap is a real problem, with branded, local, and funnel-stage false positives filtered out.

    4. Check Clicks Alongside Impressions

    Impressions tell you where pages are competing for visibility. Clicks tell you whether that competition is actually costing you traffic. The two don’t always move together, and conflating them is a common mistake.

    Click-through rate is clicks divided by impressions, and a high CTR signals your content matches what the searcher wanted, while a low one suggests a mismatch, per Google’s own metric definitions. When two pages split impressions for the same query, watch what happens to CTR on each. If your leading page holds a strong CTR and the second page’s CTR is near zero, that second page is dead weight competing for a slot without converting any of it into clicks.

    But if the second page is pulling in real clicks of its own, that’s a different situation entirely. One filtering method used in automated cannibalisation detection keeps only multi-page queries where the second-ranking page actually records clicks greater than zero, treating that as higher-confidence evidence of true cannibalisation rather than a page that’s merely indexed and ignored, as described in this Search Console workflow template. A page with zero clicks isn’t stealing traffic from your main page. It’s just sitting there. A page earning a meaningful share of clicks is actively splitting the audience your best page should be capturing alone.

    This matters because searchers themselves react badly to the redundancy. Multiple similar-looking results in the same search can drag down overall organic click-through rate, since users faced with redundant options sometimes click neither, according to SEO Sherpa’s analysis of cannibalisation effects. You’re not just losing ranking stability. You’re potentially losing clicks that would have gone to either page if only one had shown up.

    A person types on a laptop displaying data charts at an office desk

    So the real question for each flagged query isn’t “do multiple pages rank.” It’s “is a second page pulling clicks away from the page that should own this, or is it just noise Google hasn’t cleaned up yet.” One practical illustration of this: a site had two posts ranking back to back in positions 11 and 12 for the same term, and checking the CTR on both in Search Console was the recommended way to work out which post should stay and which should be consolidated or rewritten, as one case study on fixing cannibalisation describes. Neither post was beating the other. Both were stuck below page one, likely because Google couldn’t decide which one deserved the spot.

    Outcome: Queries sorted into two buckets: genuine click-splitting cannibalisation worth fixing, and harmless secondary visibility you can leave alone.

    5. Compare the Same Query Across Time

    A single snapshot tells you what’s happening now. It doesn’t tell you whether the problem is getting worse, staying flat, or already resolving itself.

    Take the exact query-and-page group you flagged and compare it against an equal prior period, matching the same length of time so the comparison is fair, a method outlined in Aident’s cannibalisation framework. Watch for combined impressions falling across the group while ownership fragments further across more pages. That pattern, shrinking total visibility paired with more pages splitting what’s left, is the clearest sign that competing pages are actively hurting the query rather than just coexisting.

    If combined impressions are holding steady or growing even as two pages share them, the overlap might be stable rather than actively damaging. That’s a judgement call, not an automatic fix. Worth noting: a query that looked like a two-way split last quarter and is now a three-way split this quarter is worsening, even if total clicks haven’t dropped yet. Fragmentation tends to precede the traffic drop, not follow it. Catching it at the fragmentation stage, before total impressions fall, is cheaper than catching it after rankings have already slipped.

    Once you’ve confirmed the trend, your next decision is consolidation or differentiation. Merge the weaker page into the stronger one if they’re answering the same question, or rewrite one to target a genuinely different angle if both deserve to exist.

    Outcome: A trend view for each flagged query group showing whether the cannibalisation is worsening, stable, or self-correcting, which tells you how urgently to act.

    6. Monitor Cannibalisation With External Tracking Tools

    Doing this by hand works for a quarterly audit. It doesn’t work if you’re running thousands of pages and need to catch new cannibalisation as it forms, which is where Search Console’s manual export starts to show its limits.

    Ahrefs’ Site Explorer has a built-in shortcut for this: enter your domain, open the Organic Keywords report, and switch on the “Multiple URLs only” toggle, which filters the list down to keywords where more than one of your pages ranks, according to Ahrefs’ own glossary entry on keyword cannibalization. It won’t tell you which overlaps are benign the way the leading-page-share calculation does, but it’s a fast way to generate the candidate list without exporting and pivoting Search Console data yourself.

    Semrush offers two tiers depending on the scale of the site. Position Tracking covers up to 5,000 keywords depending on your plan, which suits a mid-sized site keeping an eye on its core terms, per Semrush’s cannibalisation guide. If you’re managing a property large enough to outgrow that, Semrush Enterprise SEO runs a dedicated Cannibalization Report that tracks rankings and flags cannibalisation across up to 25,000 keywords, according to the same guide. That’s the difference that matters here: a growing blog can get by on Position Tracking, but a large ecommerce catalog or publisher with tens of thousands of indexed pages needs the enterprise tier or it’ll miss overlaps forming outside its tracked keyword set.

    The catch with any automated setup, free or paid, is the same one from step one: don’t bake a hardcoded reference into a script you plan to run unattended for a year. Check it still points to something live before you trust its output blindly.

    Outcome: A recurring, lower-effort way to catch new cannibalisation as your site grows, matched to the scale of your keyword set rather than a one-size-fits-all export.

    Troubleshooting

    The “Multiple URLs only” toggle or equivalent filter shows nothing, but you know pages overlap. Check the date range first. A filter looking at the last 28 days will miss overlap that only shows up over a longer stretch, especially for seasonal or lower-volume queries.
    Two pages show up for a query but neither has meaningful clicks. This usually isn’t cannibalisation worth fixing yet. Low impressions and low clicks on both pages means the query itself isn’t earning much attention, so consolidating won’t move the needle much. Prioritise queries with real impression volume first.
    Leading-page share looks fine, but rankings are still unstable. Position volatility without an impression split can mean something else entirely, like thin content, a technical issue, or Google testing which page to trust after a recent change. Don’t assume every ranking swing is cannibalisation.
    Rank tracking numbers from a third-party tool don’t match what you see in Search Console. Third-party rank trackers scrape search results pages, and Google has changed how it serves those results to scraping tools, which Search Engine Journal reported affects tracking accuracy but has no effect on Search Console’s own numbers. Treat Search Console as the source of truth for your actual performance, and third-party trackers as directional.

    Frequently Asked Questions

    Does Google penalise sites for keyword cannibalisation?

    No, cannibalisation isn’t a penalty in the sense of a manual action or algorithmic punishment. It’s a self-inflicted problem where your own pages compete against each other, which confuses Google about which page deserves to rank and often results in both ranking worse than a single consolidated page would.

    How many pages ranking for one query counts as cannibalisation?

    There’s no fixed number. Two pages splitting impressions close to evenly for a commercially important query is worth investigating. Five pages ranking for a query where one page holds nearly all the impressions usually isn’t a problem at all, since the leading-page share shows one URL already owns the query.

    Can I check for cannibalisation without exporting data at all?

    You can spot obvious cases just by scanning the default Performance report for a query and noting if it looks like it’s never fully attributed to one URL, but the report’s default counting treats impressions at the property level, not the page level, which hides partial overlap. Exporting query and page together is the only way to see the full split.

    Should I merge every cannibalising page into one?

    Not automatically. Merge pages that are genuinely answering the same question for the same intent. Keep pages separate if they’re serving a different stage of the buying journey or a different geography, even if they happen to overlap on one shared query.

    Cannibalisation rarely announces itself. It just quietly caps how high your best page can climb while a weaker sibling sits a few spots below it, both of you assuming the other is the problem. Leave that audit too long and you won’t just lose rankings, you’ll lose the data history that would have told you which page deserved to win.

    Keyworth builds the kind of structured, single-purpose content that avoids this fight before it starts, publishing pages against a keyword map rather than letting overlapping drafts pile up unchecked. If your site’s growth has outpaced your ability to track who’s competing with whom, talk to us about how we plan content to avoid it.

    About the author

    Abayomi Adenekan

    Abayomi Adenekan

    SEO Specialist, 10+ years

    Abayomi “Yomi” Adenekan built Keyworth. He has spent over ten years in growth marketing, SEO, and product. He began as a web developer and email marketing specialist, moved into paid media managing $13M a year in ad spend, and now leads growth at a podcast incubator with 1,300+ creators. He also runs Dynareach, his own SEO, web development, and branding agency. He holds an M.Sc. in Data-Driven Marketing from Universidade NOVA de Lisboa and lives in Lisbon.

  • 4 Cheap Ways to Get Website Traffic for a Small Business

    4 Cheap Ways to Get Website Traffic for a Small Business


    A mechanic who overhauls an engine without checking the fuel line first will chase the wrong problem for weeks. Cheap website traffic works the same way: most small business owners fix the visible part (more ads, more posts) while ignoring the parts that actually control cost per visitor. The cheapest ways to get traffic are long-tail keyword targeting, competitor backlink outreach, pre-recorded video paired with behavior-triggered email, and tighter Google Ads budgets built around Quality Score. None of these need a big spend. All of them need patience most people don’t budget for.

    This list is ranked by setup cost and time-to-first-result, based on documented methods from SEO and ad-platform sources rather than opinion. Items that need no ad spend and can be built with free or near-free tools rank above items that still involve paid spend, even reduced spend. Each entry below explains the mechanism, who it suits, and where it tends to go wrong.

    Long-tail keywords bring fewer visitors but more ready buyers

    Chasing a broad term like “digital marketing” puts a small business against sites with budgets fifty times larger. That’s a fight nobody wins by accident. The alternative is picking a phrase four or five words long, something like “how to automate marketing for small businesses,” which pulls in far fewer searches but attracts people who already know what they want, according to JP Design Theory’s guide to Ahrefs’ free tools.

    The trade-off is volume. A long-tail phrase might bring ten visitors a month instead of a thousand. But those ten are closer to a decision, and ten visitors who convert beat a thousand who bounce.

    The mistake most owners make here’s writing one article around a long-tail phrase and expecting it to carry the business. It won’t. The method only pays off as a volume game: dozens of narrow pages, each answering one specific question a buyer types into Google at 11pm trying to solve a problem right now.

    Best for:

    • Businesses with a narrow, well-defined service or product
    • Owners willing to write many small pages instead of a few big ones

    Watch out for: treating one long-tail page as a traffic strategy instead of one brick in a larger structure.

    Supported statistic: long-tail phrases of four to five words “might not bring massive traffic, but they attract highly targeted visitors who are ready to engage,” per JP Design Theory.

    Competitor backlink outreach turns someone else’s homework into your traffic

    Here’s a shortcut that costs nothing but time. Find a competitor’s popular post, say a “5 SEO Tips for Small Businesses” piece that’s earned backlinks, and build something that goes further: “10 Proven SEO Strategies to Double Your Website Traffic,” with more depth and better examples. Then contact the sites already linking to the competitor’s thinner version and offer your piece as a stronger resource, a method laid out by JP Design Theory.

    A man in a blue shirt touches his chin beside an open laptop

    The logic is simple: those site owners already decided the topic was worth linking to once. You’re not asking them to take a risk on a new subject, just to swap in a better version of something they already trust. The part that trips people up is skipping the “more detailed” requirement and sending a thin rewrite. Editors can tell. If your version isn’t genuinely more useful, the outreach email gets ignored, and rightly so.

    Best for:

    • Businesses with the writing capacity to genuinely out-produce a competitor’s content
    • Owners comfortable sending cold outreach emails

    Watch out for: sending outreach before the replacement content is actually better, not just longer.

    Pre-recorded training videos paired with triggered emails beat one-off blasts

    A five-to-thirty minute training video that solves a real problem for your audience does two jobs at once: it drives traffic when embedded in a blog post, and it builds an email list when access requires an email address, according to GoSquared. That second part is where the real use sits, because the list you build from it can be worked far harder than a list from a generic newsletter signup.

    Here’s the contrast that matters: a batch email sent to everyone on a list performs worse than a message triggered by something a subscriber actually did, whether that’s watching half the video, clicking a specific link, or visiting a pricing page. Behavior-based email triggers deliver 74% higher open rates and 152% better click-through rates than traditional batch emails, according to Emercury.

    What does that change for a solo operator deciding where to spend an afternoon? It shifts the payoff from one newsletter blast a month to a system that keeps working after you’ve stopped thinking about it. Record the video once, embed it once, set the trigger once. After that, every new subscriber who watches gets the follow-up without anyone lifting a finger.

    The catch is production quality has a floor. Script the five problems your audience actually asks about before you hit record.

    Best for:

    • Businesses whose buyers need education before they’ll purchase (services, software, anything technical)
    • Owners who already have basic video recording tools and an email platform that supports automation

    Watch out for: building the trigger before confirming the video is good enough that people actually finish it.

    A smiling woman holds spools of thread in front of a video camera

    Lower cost per click by improving Quality Score, not by bidding less

    Most people assume the only lever on ad cost is the bid itself. It isn’t. Google ties a chunk of your cost per click to how relevant your ads, keywords, and landing pages are to each other: tighten that match and the Quality Score goes up, which helps lower your average cost per click, according to Google’s own guide to stretching an Ads budget.

    The implication for a bootstrapped budget is straightforward. Instead of panic-cutting bids when cost per click climbs, check whether the landing page actually matches what the ad promised, and whether the keywords in the ad group are too broad to be relevant to any one page. Split that into a dedicated page and the match tightens.

    Google also addresses a related worry: daily cost swinging as much as 20% day to day. That’s not a budget leak, it’s Google adjusting ad frequency to daily search volume, then averaging the daily limit across the month so the campaign doesn’t overspend, per Google. The guidance here’s direct: set a monthly budget, stick with it, and resist tinkering with the daily limit every time the number looks off. Change the campaign on a schedule, not on a mood.

    Best for:

    • Businesses already running Google Ads who haven’t audited keyword-to-landing-page match in months
    • Owners tempted to adjust budgets daily based on short-term fluctuation

    Watch out for: confusing a Quality Score problem with a budget problem, and cutting spend when the real fix is a better landing page.

    How these four compare

    Method Upfront cost Time to first result Ongoing effort
    Long-tail keywords Free (writing time only) Slow, builds over months Needs many pages, not one
    Competitor backlink outreach Free (research and outreach time) Moderate, depends on reply rate One-time per piece, repeatable
    Video + triggered email Low (recording/email tool) Moderate, list grows gradually Set up once, runs automatically
    Google Ads with Quality Score focus Ongoing ad spend Fast once optimized Needs periodic landing page review

    Frequently Asked Questions

    What’s the cheapest way to get traffic to a small business site?

    Long-tail keyword content and competitor backlink outreach cost nothing beyond time, which makes them the cheapest entry point. Both rely on writing and research rather than paid spend, though they take longer to show results than paid traffic does.

    Is Google Ads ever a cheap option?

    It depends on whether your Quality Score is already high. A more relevant landing page or appropriate keywords can raise your ad’s Quality Score and help lower your average cost per click, per Google. If the match is poor, Ads stays expensive no matter how low you set the daily budget.

    How long does organic traffic take to build?

    There’s no official timeline, and sources vary on how quickly this happens. What’s consistent is that it builds gradually through consistent content and backlink work rather than appearing after one blog post or outreach email.

    Do pre-recorded videos really need an email gate?

    Not always. A video can be embedded directly into a blog post for traffic without gating it, or it can require an email address to build a list, per GoSquared. Gate it when list-building matters more than raw traffic; leave it open when the goal is just visibility.

    None of these four methods work if you treat them as a single afternoon’s task and move on. Long-tail content needs a steady drip of new pages, outreach needs follow-up emails when the first one gets ignored, and Quality Score needs rechecking every time you launch a new landing page. Skip the maintenance and the cheap channel quietly turns expensive again, just in time wasted instead of cash spent.


    If stretching a marketing budget without stretching yourself sounds useful, book a call with us.


    The cheapest traffic isn’t free of cost, it’s free of cash and paid in attention over time, which is exactly the trade most small businesses avoid because the payoff doesn’t show up on day one.

    If stretching a marketing budget without stretching yourself sounds useful, book a call with Keyworth.

    About the author

    Abayomi Adenekan

    Abayomi Adenekan

    SEO Specialist, 10+ years

    Abayomi “Yomi” Adenekan built Keyworth. He has spent over ten years in growth marketing, SEO, and product. He began as a web developer and email marketing specialist, moved into paid media managing $13M a year in ad spend, and now leads growth at a podcast incubator with 1,300+ creators. He also runs Dynareach, his own SEO, web development, and branding agency. He holds an M.Sc. in Data-Driven Marketing from Universidade NOVA de Lisboa and lives in Lisbon.

  • Why an Agency Article Costs $150 in a Batch and $650 Alone

    Why an Agency Article Costs $150 in a Batch and $650 Alone


    A single article can cost $150 or it can cost $2,500, and both prices are correct. The gap is the same as the gap between a rental car and a chauffeured one: same basic job (get from A to B), completely different bundle of labor, liability, and oversight wrapped around it. Most content costs between $300 and $1,500 per piece for standard production, climbing past $2,500 when SEO strategy and subject-matter expertise get folded in, and landing near $650-$950 as a fair standalone rate once you strip out the volume discount agencies give for ongoing work.

    If you’re pricing retainers off a single number, you’re going to underquote the complex work and overquote the simple stuff. Here’s how the pieces actually break down.

    How much does an article cost across different agency pricing tiers?

    A standard SEO blog post, the 1,000 to 1,500 word kind most agencies produce weekly, runs $150 to $600 per piece, according to Feedbird’s content cost breakdown. Push into long-form territory, 2,500 to 3,500 words built for competitive keywords, and the range jumps to $500 to $1,500. NewMedia’s pricing analysis lands in a similar band for general blog production: $300 to $1,500+ per article, with the top end driven by research depth and writer expertise rather than word count alone.

    Here’s the detail that trips up agencies pricing their first few retainers: standalone per-piece rates run higher than production costs inside an ongoing program. Zmist & Copy lists a fixed rate of €650 per article when it’s sold outside a retainer, and says plainly that this is higher than what the same piece costs to produce as part of a continuous content engine. A one-off client pays a premium because there’s no recurring relationship absorbing onboarding, brand research, and style-guide development across multiple deliverables.

    That’s the implication worth sitting with if you’re building a pricing sheet. A client who wants six articles a month should pay less per piece than a client who wants one, not because the writing is worse, but because the fixed costs of ramping up on their brand get spread across more units.

    Two people stand talking before a whiteboard filled with red marker diagrams

    How do specialized SEO and thought leadership requirements change article rates?

    Here’s the risk nobody puts in the proposal: quoting a thought leadership piece at blog-post rates. SEO content creation, the kind that includes keyword research, SERP analysis, a written brief, on-page optimization, and internal linking, runs $500 to $2,500+ per page according to NewMedia’s service breakdown. That’s not padding. Each of those line items is a separate task with its own labor cost, and skipping any of them is how agencies end up with content that reads fine but never ranks.

    Thought leadership sits even higher, at $1,000 to $5,000+ per piece by the same source. The reason isn’t the word count. It’s who’s writing it and what they know. Discovered Labs’ analysis of subject-matter expertise points to a shift that makes this more than a nice-to-have: generic content is becoming a liability in AI-driven buyer research, because models like ChatGPT and Perplexity filter for grounded, specific information and tend to cite subject-matter-expert content over generic copy. A 2025 Semrush analysis cited in that piece found AI search visitors convert at 4.4 times the rate of average organic visitors, which is the kind of number that justifies paying a writer who actually knows the industry instead of a generalist working from a brief.

    Zmist & Copy’s broader survey of published agency rates backs this spread up: individual piece rates across agencies range from $150 to $2,500+, with the position in that range determined almost entirely by strategic scope, not length.

    The option this points to is simple to state and harder to execute: price the brief, not the word count. A 1,200-word piece built on original research and written by someone who knows the vertical costs more to produce than a 2,000-word piece assembled from a template, and your rate card should say so.

    What does content production cost when bundled into monthly agency retainers?

    A client comparing two proposals, one at $1,800 a month and one at $5,500, isn’t comparing two prices for the same thing. Sproutbox’s pricing guide makes this point directly: the deliverable lists can look nearly identical, blog posts, keyword research, a content calendar, and the price gap still reflects real structural differences in what’s actually included.

    Feedbird puts typical monthly retainers at $1,500 to $8,000 for ongoing growth and publishing work. That’s the range most small-to-mid agencies and their clients live in. Full-service retainers at larger agencies run considerably higher: NewMedia cites $5,000 to $20,000 a month for full campaign management, and Omniscient Digital’s public pricing starts strategy work at $15,000 before moving into full-service execution at $10,000 a month.

    The trade-off is straightforward once you see it laid out. A $1,800 retainer buys you article production and maybe a content calendar. A $10,000+ retainer buys strategy, execution, and the editorial oversight to keep both aligned as the program runs. Neither is wrong. The mistake is pricing a $1,800 scope of work and trying to deliver the $10,000 version of attention, because that’s how margins quietly disappear over a six-month engagement.

    Three men sit at a wooden conference table reading printed paper documents

    Agency markups reflect raw writer fees plus editorial overhead

    A freelance writer charging $250 to $399 for a 1,500-word blog post, the most common rate according to Peak Freelance’s 2026 survey of 213 writers, isn’t the same cost as an agency delivering that same word count for $600. The gap is the markup, and it’s not padding, it’s the price of everything that happens between a raw draft and a published, optimized piece.

    Writers on open marketplaces charge even less on an hourly basis, $15 to $80 an hour according to Zmist & Copy’s pricing research, and that rate comes with no strategic oversight, no editing pass, and no backup if the writer disappears mid-project. That last part matters more than agencies give it credit for. A freelancer who goes quiet two days before a client deadline is a staffing problem you inherit the moment you build a retainer around a single contractor.

    This changes what the reader should actually compare when shopping for writing talent. Don’t compare an agency’s per-article rate to a freelancer’s per-article rate and conclude you’re being overcharged. Compare what’s wrapped around the writing: editing, fact-checking, a second set of eyes on the brief, someone who answers the phone when a writer drops off the project. That bundle is what the markup buys, and it’s the same reason a $650 standalone article from an established shop and a $250 freelance draft aren’t, in any useful sense, the same product.

    Frequently Asked Questions

    How much should an agency charge per blog post?

    Most agencies charge $150 to $600 for a standard 1,000 to 1,500-word blog post, per Feedbird’s cost breakdown. Price toward the top of that range when the brief requires original research, interviews, or SEO work beyond basic keyword placement; price toward the bottom for templated, low-competition topics.

    Why do two agencies quote wildly different prices for the same article?

    The deliverable looks the same on paper, but the scope underneath it isn’t. Sproutbox’s pricing analysis found this gap reflects real differences in strategy, reporting, and editorial oversight, not inconsistent pricing or a negotiating trick. Ask what’s included before comparing numbers.

    Is it cheaper to hire a freelancer directly instead of going through an agency?

    Per word or per hour, yes. Freelancers charge $15 to $80 an hour on open marketplaces, according to Zmist & Copy, well below agency rates. What you lose is the backup, editing, and strategic oversight an agency team provides, so the cheaper hourly rate can cost more in management time and inconsistent quality.

    What’s included in a monthly content retainer and why does the price range so much?

    Retainers typically include article production, keyword research, and a content calendar, running $1,500 to $8,000 a month at the standard tier according to Feedbird, and up to $20,000 a month at full-service agencies per NewMedia. The range depends on whether strategy, reporting, and senior editorial time are bundled in or sold separately.

    Does paying more for content actually mean better SEO results?

    Not automatically. A higher price buys more research, better writers, and tighter editorial oversight, which improves the odds of content performing, but no price point guarantees rankings. Treat the quote as a description of inputs, not a promise of outcomes.

    Price your rate card wrong in either direction and the damage compounds fast. Quote too low and you’re subsidizing every client out of your own margin until the agency can’t staff up for the next proposal. Quote too high on commodity work and you lose it to a competitor who scoped it correctly. Before you lock in a number, map out exactly which of these tiers, standard production, SEO-specialized, or full retainer, your client’s brief actually requires, because pricing the wrong tier is the fastest way to turn a profitable retainer into a write-off.


    Book a demo with our team and see what a predictable per-article cost looks like when the research and drafting are automated.

  • Turning One Podcast Episode into 20 Searchable Assets

    Turning One Podcast Episode into 20 Searchable Assets

    A podcast transcript is a recording’s sunk cost until someone turns it into words a search engine can read. Think of raw audio like crude oil sitting in a tank: valuable, but useless to a car engine until something refines it into fuel. That refining step is what separates episodes that quietly accumulate downloads from episodes that keep pulling in new listeners from Google for years.

    AI transcription tools generate searchable transcripts and show notes

    Start here, because nothing downstream works without it: get the audio into text first. ElevenLabs Scribe v2 transcribes audio and video in more than 90 languages and bills by the hour of audio processed, which makes it a reasonable default for a team producing episodes on a weekly cadence. The alternative is human transcription, and the trade-off is blunt: a person checking every line catches dense jargon and guarantees exact quotes, but you pay more per minute and wait longer for the file back.

    That trade-off matters more than it looks on paper. A technical podcast full of product names, acronyms and guest surnames will trip up any automated model occasionally. If a quote is going into a press release or a legal-adjacent claim, a human pass before publishing is worth the delay. If the transcript’s job is to seed an SEO blog post and searchable show notes, automated transcription is fast enough and accurate enough for the job.

    Once the text exists, the next problem is turning a wall of dialogue into something a reader or a search crawler can actually use. Castmagic automates show note creation, flags keywords and phrases that help with search visibility, and pulls out takeaways that feed directly into blog posts, social updates and newsletters. That’s the real value: not just a transcript, but a structured extraction of what the episode actually said, tagged and ready to drop into other formats.

    Here’s the part teams skip: a raw transcript dumped onto a blog page isn’t the same as SEO-optimized show notes. A crawler can read both, but only one has headers, keyword placement and a structure built for skimming. If your current process stops at “transcribe and publish,” you’re leaving half the value on the table.

    A person wearing headphones faces a laptop displaying audio waveforms beside a microphone

    Automated pipelines extract short-form clips and derivative copy

    Compare two teams covering the same hour-long interview. One assigns an editor to scrub through the recording hunting for a punchy 45-second moment, cut it, caption it and format it for three different vertical platforms, a process that eats an afternoon. The other runs the video through a pipeline that reads energy levels, topic changes and speaker transitions to flag the likely clips automatically. HypeNest does this kind of analysis to automate trimming, captions and metadata for Shorts, Reels and TikTok, turning one long recording into a repeatable output system rather than a one-off editing project.

    That shift changes what “consistent publishing” actually means for a team. A workflow built around automated clip detection can support a steady output, somewhere in the range of several posts a week, without requiring an editor to rebuild the process from zero every time a new episode drops.

    The written side works the same way. AirOps automates turning long-form source material into social posts, email copy, short video scripts and blog derivatives, with structured review steps built in so the output doesn’t drift from the show’s voice and messaging. The review step matters more than it sounds. Automation without a check is how you end up with five social posts that all say roughly the same bland thing in slightly different words.

    What does this change for a team deciding how to build the pipeline? It means the decision isn’t “manual or automated.” It’s which parts of the chain need a human eye before publishing. Clip selection and first-draft captions can run on autopilot. Final review, brand voice and anything quote-sensitive still needs someone reading it before it goes live.

    How it works

    Take a one-hour recorded interview as a worked scenario. The audio gets transcribed first, producing a full text version of the conversation. From that transcript, a show-notes tool pulls out five or six key quotes and a summary of the main topics discussed. Those quotes and summary points become the skeleton of a blog post built around the episode’s core argument.

    Separately, the video file runs through a clip-detection pass that flags three or four moments, usually where the speaker’s energy rises or the topic visibly shifts, as candidates for short-form cuts. Those candidate clips get trimmed, captioned and formatted for vertical platforms. Finally, the blog post gets published with the episode embedded directly in it, a step as simple as grabbing the podcast’s embed link and pasting it into the website’s editor, the same way you’d place any embedded media on a page.

    What it is not

    This isn’t the same as simply uploading an audio file to a podcast host and calling it done. A host distributes the episode; it does nothing to make the spoken content searchable on its own.

    It’s also not identical to manual show notes written from memory after listening back. Those take longer, miss quotable lines, and don’t scale past a handful of episodes a month.

    And it isn’t a replacement for an actual content strategy. Pulling clips and blog posts out of an episode doesn’t matter much if the underlying conversation never addressed a topic anyone searches for.

    When it matters

    A podcast producer sitting on a backlog of 40 unpublished episodes needs this more than someone who just recorded their first show. Digital media managers running multiple shows across a brand’s content calendar need it to keep output consistent without hiring a transcription and editing team for every title. A single hobbyist podcast with no search ambitions can skip most of this and just publish audio. Anyone treating episodes as a long-term source of organic traffic, rather than a one-time distribution event, needs the pipeline.

    Frequently Asked Questions

    Do I need both transcription and show notes, or just one?

    You need both if search visibility is the goal. A transcript alone is searchable but unstructured; show notes extracted from it give you the summary, keywords and quotes that actually read well as a blog post.

    How long does AI transcription take compared to human transcription?

    AI transcription turns audio into text in a fraction of the time a human reviewer needs, though the exact turnaround depends on the tool and file length. Human transcription takes longer because someone is checking every line, which is worth it mainly for dense technical content or exact-quote requirements.

    Can one podcast episode really produce more than 20 pieces of content?

    Yes, when the workflow extracts quotes, a blog post, social captions, short video clips and an email newsletter segment from a single recording, the asset count adds up fast, since each output format counts separately.

    Do short-form video clips need a human editor to review them before publishing?

    Yes, for brand voice and accuracy. Automated tools are reliable at flagging candidate moments based on energy and topic shifts, but a quick human pass before publishing catches context errors an algorithm won’t notice.

    Is a transcript enough for SEO, or does it need to be turned into a blog post?

    A transcript helps, but a structured blog post built from it performs better for search, because it has headers, a clear topic focus and internal links that a raw transcript dump doesn’t have.

    Skip the review step in any of this and you’ll find out the hard way: a mislabeled clip, a quote pulled out of context, or a blog post that reads like a transcript nobody edited will cost you more credibility than the time you saved automating it. Treat automation as the first draft machine, not the final word.


    Talk to us about turning your backlog into a working pipeline instead of a pile of audio files.


    Twenty searchable assets from one episode isn’t a software trick, it’s what happens when transcription, extraction and clipping get chained into a pipeline with a human still reading the output before it ships; skip the chain and you’re back to crude oil sitting in a tank.

    Talk to Keyworth about turning your backlog into a working pipeline instead of a pile of audio files.

  • Why Plain Permalinks Break the WordPress REST API

    Why Plain Permalinks Break the WordPress REST API


    A single server installation toggle breaks thousands of mobile connections and automated publishing pipelines every day. Leaving the default URL setting unchanged disables the standard JSON routes most external tools expect. When you run into the WordPress REST API not working on plain permalinks, you’re hitting a routing conflict. The core software defaults to using URL parameters instead of clean directory paths. Fixing this requires changing one setting to restore the expected route structure or writing custom parsing logic to handle the fallback paths.

    An orange ethernet cable connects to a server rack beside a faint eye

    How Plain Permalinks Change the WordPress REST API Route Structure

    When a web server processes a request, it looks for an actual file path on the hard drive. WordPress intercepts these requests before the server returns an error. The system uses plain permalinks by default.

    This configuration uses a simple query string like index.php?p=123 to fetch specific posts from the database. The REST API relies on this exact same mechanism when plain permalinks remain active. Instead of the familiar /wp-json/wp/v2/posts directory path, the system forces all API traffic through the rest_route parameter.

    Your endpoints suddenly look like index.php?rest_route=/wp/v2/posts. This fallback query parameter prevents the server from returning a 404 error when it can’t find a physical directory. The core software defaults to using URL parameters instead of clean directory paths. External tools attempting to access the standard directory structure will fail entirely. The server simply doesn’t know what /wp-json/ means without internal rewrite rules active.

    Server-side web server rewrites often map the standard path to the fallback parameter. NGINX administrators frequently manually route /wp-json/ traffic to index.php?rest_route= to maintain API compatibility without turning on pretty permalinks globally. This approach requires specific location blocks in the server configuration. The administrator must add a try_files directive that explicitly catches the JSON path and passes it as an argument to the main PHP script.

    Developers testing WordPress SEO content publishing pipelines often miss this server-level requirement. They build their scripts expecting standard paths and watch their automated requests fail with immediate 404 Not Found responses. You must ensure your server either runs the correct internal rewrite rules or handles the fallback parameter explicitly at the proxy level.

    Authentication Failures and Site Detail Loading in Mobile Clients

    Mobile applications struggle significantly with query-based API routes. Specific files in the official iOS application are designed to handle server connections, but these fail when parsing non-standard endpoint structures. The SelfHostedSiteAuthenticator.swift file produces a user-facing failure in the WordPress iOS client due to plain permalink routing mismatches. The client attempts to resolve relative paths against a base URL, which causes it to drop the necessary query parameters entirely.

    When an application uses standard URL resolution libraries like URLSession in Swift, appending a path like /wp/v2/users/me to a base URL of index.php?rest_route= results in a malformed request string. The library strips the query portion before appending the new path. The server receives a request for /wp/v2/users/me directly, which it rejects. This client-side relative path resolution bug is the primary reason external API clients break on plain permalinks.

    A smartphone displaying the word error lies on a surface under red lighting

    Troubleshooting Application Passwords and OAuth endpoints specifically under ?rest_route= query structures requires manual header inspection. OAuth 1.0a authentication relies on generating a cryptographic signature based on the exact URL string. When the client and the server disagree on how the URL should be formatted, the signature generation fails. The server denies the request with an authentication error even when the provided credentials are correct.

    Application Passwords suffer from similar string parsing issues. The authentication header must map exactly to the requested route. External publishing tools trying to post articles via the API will receive unauthorized errors because the server can’t validate the encoded path against the query string format. You fix this by aligning the client request logic strictly with the fallback parameter structure, or by changing the server settings.

    Editor Publishing Failures Caused by Blocked REST Communication

    The Gutenberg block editor operates as a separate React application running inside your browser. It relies entirely on the REST API to save content, autosave drafts, and load media attachments. When this communication channel breaks, the editor displays the “Updating failed” and “Publishing failed” errors. This error occurs when the block editor can’t establish communication with the backend endpoints.

    Plugin and security firewall conflicts frequently block these REST routes. Security solutions like Wordfence or Cloudflare inspect every incoming query string for malicious payloads. A request containing ?rest_route=/wp/v2/posts includes directory slashes inside a parameter value. Many strict firewall rules interpret this as a directory traversal attack or a SQL injection attempt. The firewall drops the connection before it ever reaches the PHP application, leaving the editor waiting indefinitely for a response.

    You can use the built-in Site Health tool to diagnose REST API availability. The tool sends a background request to the system endpoints and measures the response. If the Site Health dashboard reports an unexpected result or a timeout, your editor won’t function. The diagnostic tool explicitly checks whether the system can process JSON payloads and whether security plugins are interfering with the required headers.

    Server administrators often misconfigure caching layers, which exacerbates this problem. If a reverse proxy caches a failed API response, the block editor will continue to show the updating failed error even after you fix the underlying routing issue. You must clear all server-side object caches and reverse proxy buffers when troubleshooting editor connectivity problems.

    Configuring Permalinks to Restore REST API Functionality

    The most effective way to eliminate these routing conflicts is to change the system URL configuration. The WordPress permalink settings menu requires selecting any structure other than Plain to restore expected REST API response behaviors. Selecting the “Post name” option builds a clean URL structure and activates the internal rewrite mechanisms.

    Lines of colored programming code displayed on a dark computer screen

    Saving this settings page triggers a database update that rebuilds the rewrite_rules option array. The system generates a new set of regular expressions that map clean directory paths to internal query variables. This process automatically maps requests for /wp-json/ directly to the correct internal API handler without requiring the visible rest_route parameter.

    Flushing WordPress rewrite rules updates your .htaccess and NGINX configurations. On Apache servers, the system attempts to write the new mod_rewrite rules directly to the hidden file in your root directory. If the file lacks the correct write permissions, the system displays the required code block on the screen. You must copy and paste this code into the file manually to activate the new routes.

    NGINX servers require manual configuration updates because WordPress can’t write to NGINX configuration files directly. You have to edit the server block to include a primary location directive that processes the permalinks. Once you restart the NGINX service, the server will correctly parse the JSON directory requests and route them to the active PHP process. This single change eliminates the updating failed errors and restores mobile application connectivity.

    How to Discover REST API URLs Using Headers and Code

    External clients and scripts should never guess the correct API path. The system provides multiple discovery mechanisms that reveal the active route structure regardless of the permalink settings. REST API URL discovery happens via Link rel="https://api.w.org/" HTTP headers. When a client requests any front-end page, the server includes this header in the response, pointing directly to the root API endpoint.

    If the server uses plain permalinks, the header output will explicitly show the ?rest_route=/ format. If the server uses pretty permalinks, the header shows the /wp-json/ format. Well-written external applications parse this header before making their first payload request.

    Developers writing custom plugins or themes must handle this programmatically. Plugin developers should use the core functions get_rest_url() and rest_url() instead of hardcoding /wp-json/ paths into JavaScript files. These PHP functions check the current permalink configuration dynamically. If they detect an empty permalink structure, they automatically format the output string to use the fallback query parameter.

    You pass this dynamic URL to your front-end scripts using wp_localize_script(). Your JavaScript code then references the correct variable instead of guessing the path.

    Passing Query Parameters Without Path Collisions

    Fetching specific data sets requires passing arguments to the API. Doing this under plain permalinks requires careful formatting to prevent URL path collisions. A complete query string parameter guide shows how to pass arguments like per_page or _embed alongside the primary routing variable. You must append these secondary arguments using standard ampersand separators.

    A person types on a keyboard with code displayed on the monitor

    The final URL string will look like index.php?rest_route=/wp/v2/posts&per_page=10&_embed=1. The PHP application parses the $_GET variable array, extracts the route parameter to determine the destination, and passes the remaining arguments to the endpoint callback function. If you malform the ampersands or fail to URL-encode special characters, the server will drop the entire request.

    Feature Plain Permalinks Pretty Permalinks
    Default API Path index.php?rest_route=/ /wp-json/
    Query Structure Relies on $_GET parameters Relies on URI path segments
    Application Password Support Frequently fails client-side validation Fully supported by core core mechanisms
    Webhook Compatibility Requires custom parsing scripts Works with standard payload targets
    Server Configuration Dependency Works without rewrite rules Requires mod_rewrite or NGINX map

    You can verify your string construction by testing the endpoints manually. How to test endpoints safely without modifying live traffic:

    1. Open your browser developer tools and navigate to the network tab.
    2. Enter the fallback route path directly into your address bar.
    3. Observe the JSON payload response for syntax errors.
    4. Review the HTTP status code returned by the server.
    5. Verify the route structure matches the expected query string format.
    6. Check your security firewall logs for dropped parameter requests.

    Testing the routes this way exposes URL encoding issues before you deploy your client code. If the browser receives a valid JSON response but your external script receives a 404, you know your script is dropping the query parameters during the request build phase. You adjust the client logic to preserve the entire parameter string.

    FAQ

    Can I use a REST API with permalink setting, “plain”?

    Yes, you can use the API with plain settings by formatting your requests using the ?rest_route=/ query parameter. You must ensure all client applications and scripts support this fallback routing structure instead of relying on the standard directory paths.

    What causes the updating failed error in WordPress?

    The error happens when the block editor can’t establish communication with the backend API. Security firewalls blocking query string parameters, incorrect SSL configurations, or missing server rewrite rules prevent the editor from saving your content.

    Why does the updating failed error keep coming back?

    The error repeats if a reverse proxy or content delivery network caches a previous failed API response. It also persists if strict firewall rules continuously intercept requests containing directory slashes inside the URL parameters.


    Fixing routing conflicts requires aligning your server configuration with the expectations of your external clients. Selecting a clean URL structure eliminates the fallback parameter entirely and restores standard JSON directory paths. Keyworth automates SEO content creation from keyword research to publishing, handling API connections smoothly so you can grow organic traffic without managing technical server settings.

  • Audio Locked in an MP3 File Gives Search Engines Nothing to Index

    Audio Locked in an MP3 File Gives Search Engines Nothing to Index

    Audio locked in an MP3 file gives search engines nothing to index. To learn how to make podcast episodes searchable, you must extract the spoken words into text and wrap that text in code that directories and search algorithms understand. Search engines cannot listen to your show. They rely on structured metadata, specific XML tags in your RSS feed, and text summaries published on your website to understand the context of your audio.

    Getting a podcast to rank requires treating each episode like a comprehensive web page. You have to build a technical bridge between the media file and the search crawlers. This process involves adding transcript tags to your feed, applying precise schema markup to your show notes, and organizing your content for modern answer engines.

    Podcasting 2.0 Transcript Tags Connect Audio to Text

    Search algorithms need a direct link between your audio file and its written text. The Podcasting 2.0 namespace introduced a specific tag to solve this exact problem. By embedding the correct XML tags in your RSS feed, you tell directories exactly where to find the full written record of your episode.

    The podcast:transcript Tag Explained

    The podcast:transcript tag sits inside each individual episode’s item block in your RSS feed. It points to a transcript file hosted on a stable HTTPS URL. When directories fetch your episode data, they read this tag and automatically associate the written text with the audio file. This allows podcast apps to display closed captions and helps internal search engines index the exact words spoken during your show.

    Adding this tag requires access to your podcast hosting platform’s advanced settings or manual editing of your XML feed. The tag must include the URL of the transcript file, the file type, and the language code. If you host your own feed, you insert a line of code specifying these details. Most modern hosting providers offer a dedicated field where you can paste the link to your transcript, and the software generates the correct tag for you.

    Choosing Between VTT and SRT Formats

    When you link a transcript to your RSS feed, you must use a file format that podcast players and browsers understand. The two standard options are WebVTT (VTT) and SubRip Subtitle (SRT). While both formats provide timestamps and text, they handle complex metadata very differently.

    SRT files contain sequential numbers, start and end timecodes, and the spoken text. They are simple to edit in any text application. However, they lack support for advanced formatting. If your show has multiple guests, an SRT file cannot natively assign specific text to a specific speaker.

    VTT (text/vtt) is the native transcript format for web browsers and supports detailed speaker labels through cue identifiers. This allows you to tag the host and the guest separately. When a podcast app reads a VTT file, it can display the name of the person speaking alongside the text. This extra layer of data helps search engines understand the flow of an interview and attribute quotes to the correct entity.

    Feature WebVTT (VTT) SubRip Subtitle (SRT)
    Standard MIME Type text/vtt application/x-subrip
    Speaker Labels Supported via cue identifiers Not natively supported
    Text Styling Supports bold, italic, and color Basic text only
    Browser Support Natively supported by HTML5 video/audio Requires conversion or third-party players
    Best Use Case Multi-speaker interviews on web and RSS Basic closed captioning on legacy platforms
    A person sits at a desk viewing audio waveforms on a computer monitor

    Steps for Embedding Transcript Tags

    Implementing the tag correctly ensures that directories accept your file without throwing validation errors.

    1. Generate a complete transcript of your audio file using your preferred transcription software.
    2. Export the final text as a VTT file, ensuring speaker labels are correctly formatted.
    3. Upload the VTT file to your web server or a secure cloud storage bucket to generate a permanent HTTPS link.
    4. Open your podcast hosting dashboard and locate the episode settings.
    5. Paste the HTTPS link into the designated transcript URL field.
    6. Save the episode and validate your RSS feed to confirm the new tag appears in the XML structure.

    JSON-LD Schema Markup Defines Your Episode Metadata

    Publishing a transcript provides raw text, but search engines prefer data organized into clear categories. JSON-LD structured data acts as a direct translation layer for Google. It takes the information on your episode page and labels it precisely, telling the search crawler exactly what each element represents.

    Search engines read structured JSON-LD code much faster than they process raw audio files or large unstructured text blocks.

    Implementing PodcastEpisode and PodcastSeries Schema

    To map out your show properly, you must use the PodcastEpisode schema markup. This structured data type is paired with PodcastSeries and Person entries to label show episodes, hosts, and guests for search engines. The parent schema is the PodcastSeries, which defines the overall show title, description, and primary author. Inside that parent object, you define the individual PodcastEpisode.

    The episode markup requires specific properties to be valid. You must include the episode name, a detailed description, the date published, and the time duration. You also nest an AudioObject inside the episode schema. The AudioObject tells Google exactly where the MP3 file lives and provides the standard media player parameters. When you structure your self-hosted episode web pages this way, you remove all guesswork for the search algorithms.

    Linking Guest Entities with Person Schema

    Audio interviews often feature industry experts, authors, or business leaders. Search engines track these individuals as distinct entities within their Knowledge Graph. When you mention a guest in your show notes without structured data, Google has to guess which person you mean based on the surrounding text.

    You eliminate this ambiguity by using the Person schema markup for your hosts and guests. Inside the PodcastEpisode code, you add a guest property that defines the Person object. To lock in the exact identity, you use the sameAs property. This property links the guest’s name directly to their authoritative profiles, such as their Wikidata entry, Wikipedia page, or LinkedIn profile.

    Entity linking via sameAs schema markup connects the text on your page to the established global database. If a user searches for that specific guest, Google knows immediately that your podcast episode features them, increasing the chances your page appears in the results for that person’s name.

    A laptop on a desk displays computer terminal text on a dark screen

    VideoObject Markup Enables Google Search Video Features

    Many creators record video while recording their audio. Uploading this video to your website introduces a new set of ranking requirements. Google treats video content differently than text or audio. If you want your video episodes to appear in the dedicated video search tab or feature a timeline scrubber in the main results, you have to write specific code.

    According to Kris Reid at Ardor SEO, “If your real estate show is recorded on video, VideoObject matters more than everything else here combined.” VideoObject schema markup is the required structured data on video podcast episode pages that qualifies your content for these display features.

    Adding VideoObject Structured Data

    The VideoObject schema must wrap around the video player embedded on your episode page. This code requires a thumbnail URL, a title, a description, an upload date, and the content URL pointing to the actual media file. Providing these exact parameters allows Google to index the video file directly rather than just indexing the webpage surrounding it.

    If you omit this markup, Google might still index the page, but it will likely ignore the video player itself. The search engine needs the structured parameters to generate the rich snippet display. Providing a high-resolution thumbnail in the schema ensures that the search result looks professional and invites clicks.

    Defining Key Moments with SeekToAction

    Long podcast episodes cover many different topics. A user searching for a specific answer rarely wants to watch a full hour-long interview. Google solved this by displaying video key moments on the search results page, allowing users to jump directly to the relevant part of the video.

    You enable this feature by adding Clip or SeekToAction properties to your VideoObject schema. The Clip property allows you to manually define the start time, end time, and title of specific segments. If you prefer an automated approach, the SeekToAction property tells Google where your video player’s URL parameter for timestamps lives. Google then uses its own AI to analyze the video text and automatically generate the key moments for the search display.

    Search engines read structured JSON-LD code much faster than they process raw audio files or large unstructured text blocks. Providing these timestamps ensures your long-form content can satisfy narrow, specific search queries.

    Text Summaries Dictate How to Make Podcast Episodes Searchable

    A full raw transcript is excellent for accessibility, but it is often terrible for reading. People speak in long, fragmented sentences filled with filler words. Pasting an unedited transcript on a page gives search engines the words, but it fails to provide a good user experience. To optimize for organic traffic, you must structure the written content carefully.

    Structuring Episode Show Notes

    Episode show notes act as the primary editorial content for your web page. These are written episode documents combined with specific titles and structured data to make episodes searchable. A strong show notes page reads like a well-formatted article rather than a brief audio summary.

    You should structure the page using a clear header hierarchy. Use an H2 for the main themes discussed, and use bullet points for quick takeaways. Place the embedded audio player near the top of the page, followed by the editorial summary, and place the full raw transcript in a collapsible accordion at the bottom. This layout gives search engines the dense keyword data of the transcript while keeping the user interface clean and readable.

    Extracting Interview Key Points for Search

    Search algorithms prioritize content that quickly answers a user’s intent. When you publish a one-hour interview, the core insights are buried deep in the recording. You must pull these insights out and place them front and center on the page.

    Publishers use key takeaways extracted from lengthy audio interviews alongside transcripts to improve online search visibility. Write out the three or four most important lessons learned during the episode. Format these as a distinct section titled “Key Takeaways” near the top of your show notes. This gives both human readers and search crawlers an immediate understanding of the episode’s value without forcing them to hunt through thousands of words of dialogue.

    Turning Audio Episodes into Topic-Clustered SEO Articles

    To get maximum value from your audio, stop treating the episode page as a simple media player repository. Instead, treat it as a foundational piece of written content. You achieve this by turning audio episodes into topic-clustered SEO articles complete with internal links, header hierarchies, and clear calls to action.

    If an episode covers digital marketing tactics, write a comprehensive article based on the audio discussion. Integrate the insights seamlessly into the text. Use the opportunity to link to your internal SEO guides and other relevant pages on your site. This strategy transforms a single audio file into a robust pillar page that ranks for competitive industry terms. The audio player becomes an added bonus for visitors who prefer listening over reading.

    A microphone and headphones stand in front of a monitor showing audio waveforms

    Native Directory Search Relies on Specific Feed Fields

    Ranking on Google brings external traffic, but you also need to rank inside the native podcast apps. Users search for topics directly inside Apple Podcasts and Spotify every day. These internal search engines use completely different algorithms than web search engines. They rely heavily on the metadata tags embedded in your RSS feed and local files.

    Navigating Apple Podcasts Internal Search Mechanics

    The Apple Podcasts search engine is notoriously strict. Unlike Google, which reads the entire page of show notes, Apple limits its search index to very specific fields in your feed. The algorithm places massive weight on the title and author fields. The episode description field has almost no impact on your ranking for a specific keyword in Apple’s internal search.

    To optimize for this environment, you must place your primary topic directly in the episode title. If you interview an expert on real estate, the phrase “real estate” needs to be in the title tag. Stuffing keywords into the author tag can result in a directory ban, so use that field only for legitimate host or network names. Keep your titles descriptive, clear, and focused on the exact terms a user would type into the Apple search bar.

    Managing Spotify Automated Transcripts and Chapters

    Spotify handles metadata using a slightly different approach. The platform heavily utilizes automated transcripts, chapters, and topic tagging to index content. Spotify uses its own internal speech-to-text engines to transcribe episodes automatically, which it then uses to fuel its search algorithm and recommendation engine.

    While Spotify does this automatically, you still maintain control. You can provide your own chapter markers by inserting timestamps directly into your episode description. Format these clearly, such as “(04:15) – Topic Name”, and Spotify will parse them into clickable chapters on their mobile app. This manual tagging ensures the algorithm categorizes your audio segments accurately, rather than relying entirely on automated transcription accuracy.

    Tagging Local Media with ID3 Audio Metadata

    Not all podcast consumption happens through web players or streaming apps. Many users download MP3 files to local desktops, offline media players, or car audio systems. When the file leaves the internet, all your RSS feed data and JSON-LD markup get left behind. The only data that travels with the file is the ID3 metadata tagged directly into the MP3 file itself.

    ID3 tags allow you to embed text data into the audio file. Before you upload your finished episode to your host, use audio editing software to fill out the ID3v2 tags. Enter the episode name in the Title field, your show name in the Album field, and your name in the Artist field. Use the Comment field to paste a short summary of the episode. This practice ensures your local media file remains searchable and clearly identified no matter where the user stores it.

    Answer Engine Optimization Requires Structured Text

    Search behavior is shifting away from lists of blue links toward AI-generated summaries. Answer engines read your pages, synthesize the information, and deliver a direct answer to the user. Optimizing for these engines requires formatting your content so AI models can easily parse and extract the facts.

    Formatting Answers for Google AI Overviews

    Google AI Overviews compile information from multiple sources to answer complex queries. These systems do not listen to your podcast MP3s, nor do they read complex XML feeds. They rely on the well-structured text published on your self-hosted episode web pages. To secure visibility in these AI summaries, you must organize your content logically.

    Use direct question-and-answer formats in your show notes. If an episode answers a specific industry question, write that question as an H2 heading and provide a concise, factual answer in the paragraph immediately below it. Answer engines favor pages that provide definitive statements without fluff. By extracting the core facts from your audio and formatting them plainly on the page, you increase the likelihood that the AI model will pull your text into its overview display.

    Using YouTube Podcast Indexing Tactics

    YouTube is functioning increasingly as an answer engine and a podcast directory simultaneously. The platform requires its own specific indexing tactics. You cannot just upload a static image with audio and expect it to rank. You must optimize video titles, write dense descriptions, and use native chapter markers.

    To establish a show on YouTube, you must categorize your content using the native podcast playlist feature. By setting a playlist as a podcast, you unlock specific podcast badges and ensure your videos appear in the YouTube Music app. You must also supply timecodes in the video description. These timecodes generate native video chapters, allowing YouTube’s search algorithm to surface specific segments of your episode when users search for hyper-specific answers on the platform.

    Frequently Asked Questions

    Does podcast schema markup get rich results in Google?

    Yes, applying valid schema markup qualifies your episode pages for rich results on Google search. Pages properly marked up with PodcastEpisode and AudioObject can appear with a playable embedded audio link directly in the search results. Video podcasts using VideoObject schema can trigger the video timeline scrubber and key moments display.

    Why add podcast schema if Google shows no rich result?

    Adding structured data defines the page’s exact context for search crawlers even when a rich snippet does not trigger. It builds entity connections in the Knowledge Graph by linking guests via the sameAs property, ensuring the search engine understands the relationships between the people, the topics, and your brand. This underlying clarity improves overall page ranking and relevance.

    What does PodcastEpisode JSON-LD look like?

    The code is a structured script block placed in the page header containing specific key-value pairs. It starts with the @type defined as “PodcastEpisode”, followed by properties for “name”, “description”, “datePublished”, and “timeRequired”. It must also contain an “associatedMedia” property that nests the “AudioObject” type, which provides the direct URL to the MP3 file.

    How do you mark up a video podcast episode?

    You wrap the embedded video player on your episode page in VideoObject structured data. This requires supplying the video title, a detailed description, the upload date, a high-resolution thumbnail URL, and the direct content URL of the media file. You must also include Clip or SeekToAction properties to define the start and end times for key segments.

    Does Spotify read the podcast:transcript tag from my RSS feed?

    Spotify primarily relies on its own internal systems to generate automated transcripts and chapters for the episodes on its platform. While the Podcasting 2.0 transcript tag is an open standard used by many directories, Spotify prioritizes its proprietary speech-to-text generation tools to fuel its internal search and accessibility features.

    Publishing successful audio requires breaking the spoken word out of the media file and putting it onto the open web. You secure organic traffic by embedding the correct transcript tags, applying structured schema markup, and turning raw audio into organized, readable text articles.

    Building out episode pages with detailed show notes and precise JSON-LD code takes significant time for every release. Our platform streamlines this entirely, taking your raw inputs and automatically generating structured, search-ready content that helps your pages rank faster.

  • 6 Ways to Run a Content Gap Analysis Without Paid Tools

    6 Ways to Run a Content Gap Analysis Without Paid Tools

    Conducting a content gap analysis without paid tools means ignoring expensive subscription software and digging directly into the raw data your audience already leaves behind. Many teams assume they need premium platforms to uncover missing topics. You can find exactly what your website lacks by combining free performance metrics, internal site search logs, and direct conversations with your buyers. These accessible data sources reveal the exact questions your readers ask and highlight where your current pages fail to answer them completely.

    We ranked these six methods by prioritizing the data sources that offer the highest volume of verifiable user intent without requiring a paid license, weighted heavily toward platforms that expose direct search queries and crawl data for free. The evaluation focuses entirely on workflows you can execute with standard spreadsheet software, free platform tiers, and manual search engine result page evaluations.

    A person types on a laptop displaying Marketing Strategy on the screen

    Audit Buyer Intent Across Lifecycle Stages

    Reviewing buyer questions across each sales stage reveals what your website fails to answer well enough. As Rick Whittington explains, this audit uncovers missing topics, outdated details, and pages that no longer match buyer intent. Buyers need clear answers. You begin by listing the three stages buyers pass through before they purchase. At each stage, write down the main questions a prospect asks before buying.

    Check sales objections first before reviewing competitor sites, because real buyers reveal immediate friction. According to HubSpot, gap analysis identifies the topics, questions, and information your audience searches for that remain overlooked or unaddressed. Support tickets show exact user problems. You can collect those unaddressed topics by interviewing your customer support staff.

    Moz defines gap analysis as reviewing competitor content to find weak points in your own catalog. Open a blank spreadsheet and list rival brands in the first column. Check their resource libraries. Record whether those sites offer public pricing, setup guides, or product comparisons. This manual audit shows where rival sites leave buyers without clear answers.

    To expand your question log, search public discussion boards where users discuss your niche. Forums such as Reddit or industry message boards contain thousands of direct user inquiries. Look for threads with high reply counts. Prioritise threads that appear repeatedly across multiple forums, but ignore rare edge cases that only one user mentioned.

    Best for: Finding specific technical questions your sales team answers every week that your website overlooks.

    Watch out for: Logging dozens of rival URLs without publishing the pages needed to answer those missing questions.

    Mine On-Site Search Queries for Unmet Audience Demand

    Using internal site search logs surfaces direct search queries from current website visitors to find what they want to discover. This offers a powerful alternative to standard competitor research because it uses your own audience data. Visitors who use your search bar have a specific need they expect your site to fulfill. When they search for a term and receive zero results, or click away immediately after seeing the results page, they have identified a literal content gap for you. You can pull this data directly from Google Analytics 4 (GA4) or your content management system.

    In GA4, navigate to your events report and look for the view_search_results event. Add the search_term custom dimension to see exactly what words visitors type into your site search box. If you use WordPress, Shopify, or other major platforms, their native internal site search analytics dashboards provide similar query logs.

    Export these terms to a spreadsheet and group them by topic. You will quickly spot clusters of searches for products you do not carry, tutorials you have not written, or policies you buried too deep in your navigation menus. Prioritize the terms with the highest search volume that currently yield thin or irrelevant results on your domain.

    Best for: Capturing high-intent requests from users who are already browsing your website and ready to consume specific information.
    Watch out for: Misinterpreting misspelled navigation queries as entirely new content topics; always review the context of the search.

    Diagnose Organic Search Performance in Google Search Console

    Google Search Console tracks how often your site appears in Google Search results. To find gaps, look for queries with high impressions but low click-through rates. Export the data into a spreadsheet. Sort the table by impressions in descending order. Then show only rows where the click-through rate sits below two percent.

    These rows show where searchers skip your link. Before writing anything new, check the queries with the largest impression numbers to see what searchers expected. A page often ranks for a subtopic it barely covers. Build a dedicated page for that query.

    To find questions your audience asks, apply a custom regular expression directly within the Search Console filter. Choose the custom regex option and enter ^(how|what|why|when|where). This rule pulls out question queries. Compare these phrases against your existing articles to spot missing explanations.

    If your page ranks on page two for a how-to search but provides only a brief definition, readers need more detail. Ahrefs reported in April 2025 that 46.77% of queries are anonymized across Search Console properties. Visible terms still reveal clear content gaps.

    Best for: Finding queries where your domain has search visibility but lacks a targeted page.
    Watch out for: Changing an existing URL so heavily that you lose its current rankings.
    Statistic: 46.77%

    A person writes in a notebook beside a laptop on a white desk

    Evaluate SERP Click Distributions Across Lower Positions

    Understanding how clicks distribute across search results helps you prioritize content updates versus net-new content creation. When you audit a search engine results page (SERP), analyzing competitor content and SERP intent manually reveals why certain pages dominate. You need to look at what formats Google rewards.

    If the top five results are all comprehensive listicles and you only have a short product page, the gap is structural. FirstPageSage, 2026 found position 1 organic CTR hits 39.8% on clean SERPs when a query has no distracting ad blocks. Mbadv measured position 2 capturing 18.7% of clicks, showing a massive drop-off.

    To capture those top positions, you must evaluate the SERP features manually. Type your target topics into Google and study the autocomplete suggestions, related searches at the bottom of the page, and the People Also Ask boxes. Expand three or four People Also Ask toggles to generate even more specific questions.

    Copy these questions into your tracking document. These features represent verified, real-time demand. If the current ranking pages give weak, vague, or outdated answers to those specific questions, you can update your existing pages to address them directly. Tracking performance and search visibility post-update will confirm if closing these specific gaps improves your CTR.

    Best for: Deciding whether to build an entirely new page or simply add a new section to an existing article to capture long-tail traffic.
    Watch out for: Chasing low-volume autocomplete suggestions that stray completely away from your core business offerings and target audience.
    Statistic: 39.8%

    Identify Duplicate and Low-Content Pages with Screaming Frog

    The desktop crawler flags partially duplicated page titles, meta descriptions, and headings, helping you locate thin or low content pages that require immediate structural updates.

    Best for: Finding technical content cannibalization where two identical pages compete against each other and dilute your ranking potential.
    Watch out for: Hitting the 500-URL crawl limit on the free tier before you finish analyzing your entire website directory.

    Close Answer Engine Gaps Using Information Gain

    Satisfying modern search engines requires applying an information gain framework to supply unique first-hand expertise and proprietary data. Moving beyond basic keyword coverage resolves perspective gaps that simple text generation cannot fix. When you evaluate competitive SERPs, you must identify missing original data, firsthand experience, and detailed case studies. If every ranking page simply repeats the same general advice, your gap analysis should flag a need for primary research.

    As Amit Bachbut of Yotpo states:

    “The reality in 2026 is that “more content” isn’t always the answer when AI tools can generate summaries in milliseconds. Today, the most valuable gap often isn’t a missing keyword; it’s a missing perspective.”

    Finding these perspective gaps requires reading the top ten results and asking what they failed to mention. Did they test the product? Did they interview an expert? If the competing articles lack deep, practical examples, your content strategy should focus on providing those missing elements.

    Use essential SEO content performance tracking tools to monitor how your newly enriched pages perform over time. Adding a quote from your lead engineer or publishing a proprietary data table satisfies the demand for information gain and forces search engines to recognize your page as a distinct, valuable resource.

    Best for: Standing out in highly saturated industries where competitors rely heavily on generic, top-level summaries to fill their blogs.
    Watch out for: Publishing personal opinions without backing them up with verifiable data, case studies, or clear demonstrations of expertise.
    Statistic: 1.6%

    A person uses a laptop displaying charts beside an espresso cup

    Summary Comparison

    Method Best For Key Tool
    Buyer Journey Audit Finding missing lifecycle topics Google Sheets
    On-Site Search Logs Capturing direct user intent GA4 / CMS Analytics
    Search Console Regex Finding low CTR opportunities Google Search Console
    SERP Click Distributions Evaluating content formats Manual Search
    Crawling for Duplicates Identifying thin pages Screaming Frog SEO Spider
    Information Gain Providing missing perspectives Subject Matter Experts

    FAQ

    What Is a Content Gap?

    A content gap represents a specific piece of information, a topic, or a perspective that your target audience actively searches for, but which your website currently fails to provide. It occurs when a prospect has a question at a crucial stage of their buying journey and must leave your site to find the answer elsewhere. Identifying these missing pieces helps you capture lost traffic.

    What Is Content Gap Analysis?

    Content gap analysis involves auditing your existing pages, evaluating competitor websites, and reviewing search demand to find topics you have missed. The process systematically compares what your audience wants to read against the inventory you currently publish. The goal is to build a strategic roadmap for creating new articles or updating old ones to serve your readers better.

    Content Gap Analysis vs. Keyword Gap Analysis

    Keyword gap analysis focuses purely on identifying specific search terms and phrases that competitors rank for but you do not. Content gap analysis looks at the broader picture, examining missing formats, unanswered user questions, and neglected stages of the buyer journey. While keyword research relies heavily on search volume metrics, a content evaluation prioritizes user intent and the depth of the information provided.

    Why Bother With a Content Gap Analysis?

    Performing this analysis prevents you from guessing what your audience wants to read. It highlights exactly where your current pages lose visitors to competing websites. By relying on tools like automated SEO content generation tools or manual audits, you ensure every new page you publish directly answers a verified user need, which improves your overall site authority.

    How Do You Conduct a Content Audit of Your Existing Blog?

    You begin by exporting a complete list of your published URLs using a free crawler or your sitemap. You map each URL to its primary topic and the specific stage of the buyer journey it serves. Finally, you review this inventory against your customer profiles to spot topics you have barely covered or content decay analysis tools metrics that indicate outdated material needing immediate refreshment.

    Conducting a content gap analysis without paid tools relies entirely on your willingness to manually inspect SERPs, filter Google Search Console data, and listen to your audience through site search logs. You use Screaming Frog to find thin pages, Google Sheets to map the buyer journey, and native analytics to track internal queries. Mastering these free methods gives you a permanent advantage over competitors who only write what expensive subscription platforms tell them to write.