How to run a funnel content gap analysis (with a template)
How to run a funnel content gap analysis (with a template)

A funnel content gap analysis is a spreadsheet exercise. You list every page on your site, tag each one with the funnel stage it serves and the money page it should feed, then look for the questions buyers ask at each stage that no page answers. The gaps are the missing rows, not the topics you happen to like.
The three stages are TOFU (top of funnel), where people learn what something is; MOFU (middle of funnel), where they compare options, approaches and costs; and BOFU (bottom of funnel), where they pick a provider and act. Most sites eSEOspace inventories skew heavily toward TOFU pages, with few MOFU and BOFU pages. This guide walks through the steps, gives you a template to copy, and shows what one real inventory looked like.
Key Takeaways
- Start from an inventory of every indexable page, not from a keyword list. You can't find gaps until you know what you already have.
- Tag each page with one stage (TOFU, MOFU or BOFU) and one money page, the service or product page it is meant to support.
- Search Console's Performance report can be filtered by URL, so you can see which queries each page already earns before you decide what is missing.
- In one inventory of an ABA therapy center's legacy blog, 21 posts split 14 TOFU, 5 MOFU and 2 BOFU. Most sites eSEOspace inventories lean the same way, and that lean is the gap.
- Look at what kinds of pages competitors publish for your service queries, but record page types, not their wording.
- Fill a gap with one useful page per real question. Google warns that pages built for every query variation can violate its scaled content abuse policy.
What you need before you start
You need three things: a list of your URLs, access to Google Search Console for the site, and a list of the pages that make you money. The URL list can come from your XML sitemap, a CMS export or a crawl. The money pages are usually your service, product, pricing, booking and contact pages.
It also helps to have the questions your sales or front-desk team hears every week. Those questions are often the best evidence of a missing MOFU or BOFU page, because they come from people who were close to buying. If your blog grew without a plan, the difference between scattered posts and a planned set is explained in content clusters vs standalone blogs.
Step 1: Inventory every page
Put every indexable page in one sheet: blog posts, guides, service pages, location pages, FAQs, pricing and case pages. Leave out admin pages, tag archives and anything set to noindex. For each row, record the URL, the title, the date it was last meaningfully updated and the single question the page answers.
Writing the question down is the most useful part of this step. If you can't state a page's question in one sentence, the page is probably trying to answer several, and that is worth noting before you plan anything new.
Step 2: Tag the stage and the money page
Give each page one stage. Use simple rules so two people would tag the same page the same way:
- TOFU (Learn): what is it, why does it happen, what are the signs.
- MOFU (Compare): options, approaches, costs, pros and cons, how to choose.
- BOFU (Decide): a specific provider, price, booking, process, what happens after you call.
Then assign each page to the money page it should hand readers to. A TOFU post about the signs of a leaking roof might feed a roof repair service page; a MOFU post on repair versus replacement feeds the same page from a later stage. If a page has no sensible money page, mark it. That is often a sign the page was written for traffic rather than for a reader you can serve. The wording clues for tagging borderline queries are covered in how to tell which funnel stage a search belongs to.
Step 3: Read Search Console data by page
Open the Performance report in Search Console. Its dimensions include Queries, Pages, Countries, Devices, Search appearance and Dates. To see what one page already earns, add a filter for that URL and look at the Queries dimension. Google's filter help page explains the "URLs containing" filter and the "Custom (regex)" option, which uses RE2 syntax and lets you group pages, for example everything under /blog/.
For each page, note three things in your sheet:
- The queries it gets impressions for, and whether those queries match the stage you tagged.
- Queries that show a later stage than the page serves. A TOFU explainer that shows up for "cost" or "near me" queries is a sign that a MOFU or BOFU page is missing.
- Queries that two of your pages both appear for. That points to overlap, which you handle when you map every article to a money page.
Search Console also offers a branded and non-branded filter, but Google says it "isn't available for sites with a low number of impressions." A small or new site may have little data at all. In that case, lean on the customer questions list and the competitor check in Step 5.
Step 4: Find the missing stages
Now pivot the sheet by money page. For each one, count the pages at each stage and list the questions buyers ask that have no page. A simple gap matrix makes this visible:
| Money page | TOFU pages | MOFU pages | BOFU pages | Questions with no page |
|---|---|---|---|---|
| Service A | 6 | 1 | 0 | Cost, how to choose a provider, what the first visit involves |
| Service B | 3 | 0 | 1 | Option X vs option Y, insurance coverage |
| Service C | 0 | 0 | 0 | Everything; only the service page exists |
Hypothetical gap matrix for illustration; the counts are not from a real site.
Before you add a row to the "new page" column, check the money page itself. If it already answers the question well, the gap is a missing link, not a missing article. If it answers badly, the fix may be a better money page.
Step 5: Check what competitors cover, without copying
Search your main service queries and the most common MOFU and BOFU questions. Look at the kinds of pages that appear: cost guides, comparison pages, process pages, checklists, location pages. Record the page types and the questions they answer. Don't record their wording, and don't build pages just because a competitor has one.
The useful output is a list like "three of the results for our main service query include a cost page and we have none." The decision to write one still depends on whether you can publish an honest, sourced answer. Google's people-first guidance warns against "mainly summarizing what others have to say without adding much value," so a gap you can only fill by paraphrasing a competitor is not a gap worth filling.
Step 6: Prioritize
Score each candidate page on a few plain criteria, then work from the top:
- Closeness to money. BOFU and MOFU gaps on your most important service usually come first, because they sit next to the decision.
- Evidence of demand. Search Console impressions on related queries, repeated customer questions or competitor coverage.
- Can you answer it honestly? Cost pages need real numbers or real ranges; comparison pages need fair facts. If you can't source it, park it.
- Review needs. Medical, legal and financial pages need expert review before they go live, which adds time.
- Fix before you add. Improving an existing page or merging two weak ones often beats a new URL.
How many pages to plan at each stage depends on your market; see how many articles per funnel stage for why there is no correct ratio.
A template you can copy
Use one row per existing page, plus one row per planned page. Keep it in a shared sheet so the plan can be re-checked before each batch of writing.
| Column | What goes in it | Example entry |
|---|---|---|
| URL | Live URL, or "planned" | /blog/signs-of-roof-leak/ |
| Question answered | One sentence | How do I know my roof is leaking? |
| Stage | TOFU, MOFU or BOFU | TOFU |
| Money page | The page it feeds | /roof-repair/ |
| Does the money page already answer it? | Yes, partly or no | No |
| Top queries | From Search Console, page filter | roof leak signs; ceiling stain after rain |
| Stage mismatch | Queries from a later stage | "roof leak repair cost" lands here |
| Overlap | Other URLs earning the same queries | /blog/roof-leak-repair/ |
| Action | Keep, improve, merge, new or retire | Improve; plan a MOFU cost page |
| Priority | 1 to 3 | 1 |
| Needs expert review? | Yes or no | No |
| Owner and date | Who, and when it was checked | Editor, Oct 20, 2026 |
Hypothetical example entries for a roofing company.
If you track pages in GA4, you can carry the stage tag into analytics with content groups. Google describes them this way: "Content groups let you categorize pages and screens into custom buckets." Using them for funnel stage is a house convention, not something Google prescribes; the content groups help page shows the setup.
What one real inventory looked like
When eSEOspace inventoried an ABA therapy center's legacy blog, its 21 posts split 14 TOFU, 5 MOFU and 2 BOFU. Most posts answered learn-stage questions. Only seven helped a parent compare options or take the next step with that center.
That is a structural observation, not a result. It shows the typical shape of the gap: a site that answers early questions well and then leaves the reader with nowhere to go. The reasons that shape produces traffic without inquiries are covered in why top-of-funnel content gets traffic but not leads. The fix in a plan like that is to add the missing compare and decide pages for each service and link the existing explainers to them, not to write more explainers.
Mistakes that make a gap analysis useless
- Treating every keyword as a gap. Google's AI optimization guide says creating separate content "for every possible variation of how people might search" primarily to manipulate rankings or AI answers "violates Google's scaled content abuse spam policy." One page per real question is the rule.
- Skipping the money page check. Planned articles often duplicate what a service page already says, and then compete with it.
- Running it once. Sites change between batches. A plan that was right in spring can be stale by fall.
- Ignoring weak pages you already have. An outdated post on the right question is often a faster fix than a new one; see how to update old blogs.
- Counting pages instead of questions. A gap is a question with no good answer on your site, not a stage with a low count.
Conclusion
A funnel content gap analysis turns "we should blog more" into a short list of specific pages, each tied to a stage, a question and a money page. Inventory first, tag honestly, read Search Console by page, check the money page before planning anything new, and prioritize the compare and decide pages closest to revenue. The TOFU, MOFU, BOFU content strategy pillar shows where this step sits in the full method. If you'd like help running the inventory or building the pages it points to, see our content marketing services. More guides are in our GEO and AEO Guide.
Frequently asked questions
How often should I run a funnel content gap analysis?
Run a full one before you plan a content program, then re-check the affected rows before each new batch of writing. Money pages change, and a planned article can become redundant if someone has since added the same answer to a service page.
Can I do this without paid SEO tools?
Yes. A sitemap or CMS export, Search Console and a spreadsheet cover the core steps. Paid crawlers and keyword tools can speed up the inventory and competitor check, but they don't make the stage and money-page decisions for you.
What if my site is new and Search Console has almost no data?
Base the analysis on customer questions, sales calls and the page types that appear for your main service queries. Revisit the Search Console step once the site has a few months of impressions.
Should a gap always become a new page?
No. Many gaps are better filled by improving the money page, adding a section to an existing article, or linking two pages that already exist. A new URL is the right answer only when the question is distinct and nothing on the site answers it.
How do I decide between two pages that cover the same question?
Keep the stronger one, fold the useful parts of the weaker one into it, and redirect the old URL. The options and Google's guidance on them are covered in the money-page mapping guide linked above.
Put this into action with eSEOspace
We help businesses grow with seo, geo & aeo that actually performs. Explore the services behind this guide:
Get a FREE Audit
We'll perform a comprehensive SEO, AEO, GEO & CRO audit of your website — completely free — and show you exactly how to outrank your competitors.
Don't have a site yet? Get in touch →
Get a FREE GEO/AEO/SEO Audit
We'll analyze your site's SEO, GEO, AEO & CRO — completely free — and show you exactly how to get found across Google and AI answers.
Don't have a site yet? Get in touch →
Great — your audit is on the way!
We'll send your free SEO/GEO/AEO/CRO audit within the next few hours. Where should we send it?
You're all set! ✓
Your free audit is being prepared — check your inbox in the next few hours. Talk soon!
On this page
- Key Takeaways
- What you need before you start
- Step 1: Inventory every page
- Step 2: Tag the stage and the money page
- Step 3: Read Search Console data by page
- Step 4: Find the missing stages
- Step 5: Check what competitors cover, without copying
- Step 6: Prioritize
- A template you can copy
- What one real inventory looked like
- Mistakes that make a gap analysis useless
- Conclusion
- Frequently asked questions





