Content Agents

How to reverse-engineer a competitor's content strategy in 90 minutes

By Ari Ber · September 14, 2026

Category: growth-playbooks

How to reverse-engineer a competitor's content strategy in 90 minutes

Your competitor's best page is a brief they already wrote and published. Here is the 90-minute loop that turns one URL into a ranked list of the pieces only you can write.

Key takeaways

  1. The problem Teams admire a competitor's content and then guess at the strategy behind it, so their own plan is built on an impression rather than evidence.

  2. Core insight A published page carries most of its own brief - intent, outline, entities and register are all recoverable from the page itself with free tools.

  3. Practical outcome One competitor URL becomes a ranked gap list, and the pieces only you can write get published before the contested ones.

Most teams treat a competitor's content as something to admire and then guess at. It isn't. Their best-performing page is a brief someone already wrote and then published in full — the topic, the intent, the entities, the shape, all sitting in public where you can read it.

In the next 90 minutes you can turn one competitor URL into a voice contrast, thirty titles, a ranked gap list, and one scored, ready-to-write brief.

This is written for a founder or a one-person content team. It costs 90 minutes and nothing else — every tool below runs at contentagents.dev/tools with no account and no card. Skip step 3 if your voice guidelines are already written down somewhere real, and skip step 7 if you have no interest in AI search yet, though it takes two minutes.

Step 1: Read your own brand back to yourself first

You cannot find a gap without a fixed point. Most gap analyses fail because the gap is measured against a fuzzy idea of what you do, so everything looks like an opportunity.

Open the Content Plan Generator and paste your own homepage URL. Not the competitor's — yours.

What you get back

  • brandName and industry — how one page reads to a machine that has never heard of you.

  • audience — who your site says it is for.

  • voiceCard — two or three sentences describing how you write.

  • ideas — three article ideas, each with a title, an angle, and a target keyword.

What to do with it

  • If audience is wrong, the problem is your homepage, not the tool. Fix the page before you write anything else.

  • Copy voiceCard into a doc. It is the control you compare the competitor against in step 3.

  • Keep the three keyword values. That is your starting position, not your plan.

  • If the three ideas are things you would genuinely publish, your positioning is legible to a stranger. If they are generic, so is your site.

What this will not tell you: it reads one page. It knows nothing about the product you have not shipped or the segment you are pivoting into.

Step 2: Pull the brief out of your competitor's best page

Wooden step with a bold yellow number painted on its surface.
Photo by Erik Mclean on Unsplash

This is the step that does the heavy lifting. Their strongest page is a brief someone wrote before writing the article, and you can recover most of it without touching their analytics.

Open the SEO Content Brief Builder, paste the competitor URL into the URL field, and leave the keyword field blank — the tool infers the target keyword from their page title.

What you get back

  • keyword and intent — the target term, classified as informational, navigational, commercial, or transactional.

  • outline — six to ten H2 and H3 sections for the piece that would answer this query properly.

  • faqs — five to eight questions readers actually ask around it.

  • entities — eight to twelve brands, concepts and tools a search engine expects to see on a page about this.

  • angle and wordCount — one sentence on the way to win the topic, and how much room it needs.

What to do with it

  • Read intent first. Writing an informational post against a commercial query is the most common way to lose a page you could otherwise beat.

  • entities is the most valuable field here. It is what the topic is made of. Anything on that list missing from your page is a concrete reason you are not competitive on it.

  • Compare their outline to yours section by section. Where they have a section you do not, that is a question you leave unanswered.

  • Treat wordCount as a floor for how much the topic needs, never as a target to pad toward.

  • Run this on their three best pages, not one. Three briefs is a pattern. One is an anecdote.

What this will not tell you: it reads the page they published, not the traffic it earns. It can describe what their page is trying to do. It cannot tell you whether it works.

Step 3: Extract their voice so you can deliberately not match it

Everybody reverse-engineers keywords. Almost nobody reverse-engineers register. If you take their topics and their tone, you have built a slower, smaller version of them.

Open the Brand Voice Extractor and paste up to five of their URLs — homepage, about page, and their two strongest posts. You can paste sample copy directly instead.

What you get back

  • voiceGuidelines — three to six bullets on tone, style, vocabulary, and what they avoid.

  • voiceCard — the same read compressed to two or three sentences.

  • socialIdentity — a one-sentence persona for their twitter, linkedin, and instagram presence.

What to do with it

  • Put their voiceCard next to yours from step 1 and name the difference in one sentence. That sentence is your angle, and it is worth more than the keyword list.

  • Read their "what to avoid" list literally. It is a map of the words they have decided belong to them.

  • If the two voice cards are close to identical, you have a positioning problem that no volume of content will fix.

What this will not tell you: it describes how they write, not whether their writing converts anyone.

Step 4: Turn their one topic into your whole territory

One competitor page gives you one topic. You need the map around it, or you will spend a quarter writing rebuttals to a single article.

Open the Content Pillar Mapper. Product: one sentence on what you sell. Ideal customer: who buys it. URL: your site.

What you get back

  • pillars — three to five, each with a name, a description, and four to six topic clusters.

  • titles — around thirty, spread across the pillars.

What to do with it

  • Delete any pillar you cannot credibly own. Three real pillars beat five aspirational ones.

  • Mark every title that overlaps the competitor's outline or entities from step 2. That overlap is contested ground.

  • Everything that does not overlap is open ground. Nobody is defending it.

  • Publish two open-ground pieces before your first contested one. Depth on the topic first, then the fight.

What this will not tell you: thirty titles is a backlog, not a plan. Half will not survive contact with your actual calendar, and that is fine.

Step 5: Diff the two lists and name the gap out loud

Two open notebooks side by side on a wooden desk, one dense with blue handwritten notes, the other nearly blank, forearm rest
Two open notebooks side by side on a worn wooden desk, one filled with dense handwritten notes in blue ink, the other nearly blank except for a single underlined sentence, a person's forearm resting beside them mid-thought, morning window light cutting across the pages at a low angle, in Editorial Photographic

You now have their brief and your territory. This is the one step with no tool behind it — it is a prompt, and the constraints in it are doing most of the work.

You are a content strategist. I am going to give you two lists.

LIST A - what my competitor's best page covers:
Outline: [PASTE THE OUTLINE FROM STEP 2]
Entities: [PASTE THE ENTITIES FROM STEP 2]
Intent: [PASTE THE INTENT FROM STEP 2]

LIST B - my content pillars and titles:
[PASTE THE PILLARS AND TITLES FROM STEP 4]

Return exactly three groups:

1. COVERED - topics in List A that List B already handles. One line each.

2. CONTESTED - topics in both lists where I would be the second-best
   answer today. For each, one sentence on what I would have to say
   that they do not.

3. OPEN - entities or subtopics in List A that List B ignores entirely,
   plus anything in List B they have never touched.

Rank OPEN by how much of each item I could answer from first-hand
experience rather than desk research.

Be specific. Do not invent topics that appear in neither list.

That last line matters more than it looks. Without it, the model pads the OPEN group with plausible-sounding topics you have no particular reason to write.

What to do with it

  • OPEN, filtered by "can I answer this from experience", is your next four articles. Start at the top.

  • CONTESTED is the flattering list. Park it until you have published the open-ground pieces.

  • COVERED is for your own reassurance. Read it once, then close it.

What this will not tell you: the model is diffing two lists you handed it and has no search data behind it. Treat the ranking as a starting order, not a verdict.

Step 6: Score the title before you write the post

The title decides whether the work gets read, and it is the cheapest thing in the piece to change — right up until you publish, at which point it costs you the URL.

Open the Headline & Subject-Line Scorer, paste the title, and pick blog, email, or LinkedIn. This one is a heuristic rather than an AI call, so it returns instantly and gives the same answer every time.

What you get back

  • overall — a 0 to 100 score, averaged across five dimensions.

  • scores — Length, Power Words, Format Signal, Spam Score, and Clarity, each with its own note explaining the number.

  • variants — five rewrites of your title in different shapes.

What to do with it

  • Run the same title through all three channels before you write the social posts. The ideal length window is 40 to 70 characters for a blog title, 30 to 55 for an email subject, and 60 to 120 for LinkedIn — one headline, three verdicts.

  • Treat a low Power Words score as information, not an instruction. Stuffing "proven" and "ultimate" into a B2B title raises the score and lowers the click.

  • Watch Spam Score. It penalises capitals ratio and exclamation marks, which is exactly what an over-edited title accumulates.

  • Use the five variants as prompts for your own thinking, not as a menu to pick from.

What this will not tell you: it scores the shape of a title, not whether the claim in it is true or interesting. Nothing automatic can do that part.

Step 7: Make the page quotable by an answer engine

Being cited inside an AI answer is a different job from ranking, and one small file does a surprising amount of the groundwork.

Open the llms.txt Generator and paste your domain.

What you get back

  • llmsTxt — a formatted file with your brand name, a one-line summary, an Overview section, up to six documentation links found on the page, contact details, and a usage note.

  • robotsSnippets — ready-to-paste rules for GPTBot, ClaudeBot, and Google-Extended, each given in both allow and disallow form.

  • rationale — the short version you can forward to whoever owns the domain.

What to do with it

  • Replace the [email protected] placeholder. It ships that way deliberately so you notice it.

  • Rewrite the summary line by hand. It is the sentence most likely to be repeated back verbatim in an answer, so it should be the sentence you would want repeated.

  • Publish the file at yourdomain.com/llms.txt, then paste the robots rules into robots.txt. Choose allow or disallow per crawler — the tool hands you both and deliberately does not decide for you.

What this will not tell you: llms.txt is an emerging convention, not a standard every model honours. It can help an assistant describe you accurately. It is not a guarantee of a citation.

Step 8: Check the link renders before you ship it

The first impression of a post is usually not the post. It is a card in a Slack channel or a LinkedIn feed, rendered from tags nobody checked.

Publish, then open the Social Preview Scanner and paste the live URL.

What you get back

  • Side-by-side renders for Facebook, X, LinkedIn, WhatsApp, and Discord.

  • A tag audit covering title, description, og:title, og:description, og:image, og:url, og:type, og:site_name, twitter:card, twitter:title, twitter:description, twitter:image, and canonical — each flagged as pass, warning, or error.

What to do with it

  • Clear every error before you look at a single warning. A missing og:image means no card at all on most platforms, which is the whole point of the exercise.

  • Aim for 1200 by 630 pixels on the image. The scan flags a wrong ratio and an undersized image as two separate findings.

  • Re-scan after any title or excerpt edit. The Open Graph tags and the visible headline drift apart faster than anyone expects.

What this will not tell you: it reads the tags in your HTML today. Platforms cache aggressively, so a fixed tag can take a while to appear on a link that has already been shared.

The whole loop on one page

Once you have run it, the sequence compresses to something you can do from memory:

  • Your homepage into the Content Plan Generator. Keep the voice card and the keywords.

  • Their three best URLs into the SEO Brief Builder. Keep intent, outline, entities.

  • Their five best URLs into the Brand Voice Extractor. Name the register difference in one sentence.

  • Your product sentence into the Content Pillar Mapper. Keep pillars and titles.

  • Both lists into the diff prompt. Keep the OPEN group.

  • Each title into the Headline Scorer, once per channel.

  • Your domain into the llms.txt Generator, once.

  • Each published URL into the Social Preview Scanner.

The cadence matters more than the first pass. Steps 7 is one-time and revisited when your positioning changes. Steps 2 and 3 are per competitor, roughly quarterly. Steps 4 and 5 refresh the backlog each quarter. Steps 6 and 8 run per article, and take about five minutes together.

Where this breaks

  • You run it once. A single pass is a snapshot. Nearly all the value is in the diff between this quarter's pass and last quarter's, which means the outputs have to live somewhere you will actually find them again.

  • You start with CONTESTED. It is the flattering list and the expensive one. A small site wins on open ground and then earns the right to fight.

  • You have nothing first-hand to say. This play converts research into a plan. It cannot manufacture a point of view, and a competitor's outline written in a competitor's register with none of your own evidence is a slower way to come second.

  • Your competitor may not be winning. Everyone has one they assume is crushing it. None of these tools measure anyone's traffic. Before you spend a quarter reverse-engineering a strategy, it is worth checking that it works.

The gap list is the only output that matters

Seven of these eight steps exist to produce one ranked list of things only you can write. If you finish the morning with a voice card, thirty titles, and no ranked gap list, you have done research instead of planning — and research is the part that feels productive while changing nothing.

That is the loop: one competitor URL in, a short list of pieces only you can write out. It takes a morning by hand, and the honest catch is that by-hand is the part that decays — most teams run it once and never diff it against the next quarter. Content Agents runs these passes on a schedule and keeps the outputs sitting next to the drafts they produce, which is the only reason a second pass ever happens. If you run this and get stuck deciding which gap to write first, tell us what came out of step 5.

Frequently Asked Questions

Is reverse-engineering a competitor's content strategy legal?

Reading a public page and analysing what it targets is ordinary competitive research. What you cannot do is reproduce their text, their proprietary frameworks or their assets. Every step in this playbook works from what a page reveals about its own targeting, and the output is a list of things to write yourself.

How many competitors should I run this on?

Start with one and run it across their three strongest pages, which is enough to see a pattern rather than an anecdote. Two or three competitors per quarter is a realistic cadence for a one-person team. More than that and the gap list stops being something you can act on.

What if my competitor ranks for keywords I cannot compete on?

That is the normal case and it is why the open-ground list matters more than the contested one. Publish two or three pieces on topics nobody is defending first, so the site has depth on the subject, then take on a contested term with something first-hand to say.

Do I need an account or a paid tool to run this?

No. Every tool referenced here runs at contentagents.dev/tools without an account, and step 5 is a prompt you can paste into any assistant you already use. Paid keyword tools add search volume data, which this loop deliberately does without.

How is this different from just reading their blog?

Reading tells you what they wrote about. This tells you what the page targets: the search intent behind it, the entities a search engine expects on the topic, the shape of the answer, and the register they write in. Those are the four things you can act on, and none of them are visible from a casual read.