{"id":124,"date":"2026-10-18T03:37:47","date_gmt":"2026-10-18T03:37:47","guid":{"rendered":"https:\/\/nirohelp.com\/blog\/?p=124"},"modified":"2026-10-18T03:37:47","modified_gmt":"2026-10-18T03:37:47","slug":"knowledge-base-gap-analysis","status":"publish","type":"post","link":"https:\/\/nirohelp.com\/blog\/knowledge-base-gap-analysis\/","title":{"rendered":"Knowledge Base Gap Analysis: How to Find It From Support Tickets"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Every support team has a ticket it is tired of answering. How do I move my license to a new domain? Why will the Google Sheets connection not save? Someone writes a reply, pastes it into the next ticket, and the cycle starts again. A knowledge base gap analysis is how you break it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It turns that fatigue into a to-do list. Compare what customers keep asking in tickets with what your docs cover, then sort every mismatch into something you can fix.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Customers often cannot find what already exists. In a <strong><a href=\"https:\/\/www.gartner.com\/en\/newsroom\/press-releases\/2024-08-19-gartner-survey-finds-only-14-percent-of-customer-service-issues-are-fully-resolved-in-self-service\" target=\"_blank\" rel=\"noopener\">Gartner survey of 5,728 customers<\/a> <\/strong>(fieldwork December 2023, published August 2024), the top reason self-service failed, in 43% of cases, was that people could not find relevant content. That content may be missing or merely buried, and the two need different fixes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This guide covers a five-step knowledge base gap analysis you can run in an afternoon on a WordPress help desk, using ticket reasons, doc reads, helpfulness votes, and failed searches. We tested it on our own setup for almost a year and are now sharing it with you.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" style=\"font-size:28px\">What Is a Knowledge Base Gap Analysis?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A knowledge base gap analysis (also called a knowledge base audit or documentation gap analysis) is a review that compares the questions customers bring to support with the answers your documentation already gives.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It finds the topics with no doc, the docs nobody can reach, the docs that mislead, and the docs that have gone out of date. Support tickets are the best place to start, because every ticket is a customer who looked for an answer and did not get one.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:26px\">Four Kinds of Knowledge Base Gaps<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Not every gap is a missing article, and the difference matters because each kind has a different fix.<\/p>\n\n\n\n<div class=\"wp-block-group has-border-color has-vivid-purple-border-color has-black-color has-text-color has-background has-link-color wp-elements-1 is-layout-constrained wp-container-core-group-is-layout-275b42c8 wp-block-group-is-layout-constrained\" style=\"border-width:2px;border-top-left-radius:8px;border-top-right-radius:8px;border-bottom-left-radius:8px;border-bottom-right-radius:8px;background-color:#f8f2ff;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50);font-size:17px\">\n<ul class=\"wp-block-list\">\n<li><strong>Missing:<\/strong> no doc covers the question. Write one, titled the way customers phrase the problem.<\/li>\n\n\n\n<li><strong>Buried:<\/strong> a doc exists, but customers do not reach it. This is usually a title, topic or linking problem.<\/li>\n\n\n\n<li><strong>Wrong:<\/strong> customers read the doc and still write in. Helpfulness votes are the tell. The cause is often a doc written for a different reader than the one asking, such as a developer guide answering a beginner&#8217;s question. Rewrite it around the task.<\/li>\n\n\n\n<li><strong>Stale:<\/strong> the doc describes an old version of the product, or two docs give conflicting answers. Update it, merge the duplicates, and record a review date.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">A fifth case sits outside the docs entirely. A bug or a missing feature that no article can repair. <strong><a href=\"https:\/\/www.enterpret.com\/\" target=\"_blank\" rel=\"noopener\">Enterpret&#8217;s guide to help center content gaps<\/a><\/strong> draws the same line between missing, outdated, hard-to-find, and needs-a-product-fix content, and estimates that about a third of apparent doc gaps are really product problems.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:26px\">Why Support Tickets Beat Page Analytics?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Page analytics describe the docs you have. Tickets describe the docs you need.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A traffic report cannot show you an article that does not exist, and it cannot tell you which question sent a customer to your inbox instead. Tickets also carry the customer&#8217;s own wording, which is what future search queries will look like.<a href=\"https:\/\/www.gartner.com\/en\/newsroom\/press-releases\/2024-08-19-gartner-survey-finds-only-14-percent-of-customer-service-issues-are-fully-resolved-in-self-service\">&nbsp;<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/www.gartner.com\/en\/newsroom\/press-releases\/2024-08-19-gartner-survey-finds-only-14-percent-of-customer-service-issues-are-fully-resolved-in-self-service\" target=\"_blank\" rel=\"noopener\">Gartner&#8217;s 2024 self-service survey<\/a><\/strong> found that only 14% of customer service issues were fully resolved in self-service, and just 36% even for issues customers called very simple. Read that as context rather than a target. Your own tickets will show you faster where your docs sit on that scale.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" style=\"font-size:28px\">How to Run a Knowledge Base Gap Analysis From Support Tickets<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You can find your knowledge base gaps in five steps, using ticket reasons, doc reads, helpfulness votes, and failed searches.<\/p>\n\n\n\n<div class=\"wp-block-group has-border-color has-vivid-purple-border-color has-black-color has-text-color has-background has-link-color wp-elements-2 is-layout-constrained wp-container-core-group-is-layout-275b42c8 wp-block-group-is-layout-constrained\" style=\"border-width:2px;border-top-left-radius:8px;border-top-right-radius:8px;border-bottom-left-radius:8px;border-bottom-right-radius:8px;background-color:#f8f2ff;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50);font-size:17px\">\n<ol class=\"wp-block-list\">\n<li>Give every ticket a reason.<\/li>\n\n\n\n<li>Count tickets by reason.<\/li>\n\n\n\n<li>Check the docs behind each top reason.<\/li>\n\n\n\n<li>Add failed searches to the picture.<\/li>\n\n\n\n<li>Sort each finding into a gap type and choose the fix.<\/li>\n<\/ol>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The walkthrough uses NiroHelp, but the method works in any help desk that lets you tag tickets and see doc stats. The screenshots come from a demo desk for a fictional form plugin called Acme Forms, with 70 tickets and 14 docs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:26px\">Step 1: Give Every Ticket a Reason<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A reason is a short label that says why the customer wrote in. It is the field the rest of this analysis counts, so get it right before anything else.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"1096\" src=\"https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-tickets-reason-column.webp\" alt=\"Knowledge base gap analysis tickets reason column\" class=\"has-border-color has-vivid-purple-border-color wp-image-126\" style=\"border-width:2px;border-top-left-radius:8px;border-top-right-radius:8px;border-bottom-left-radius:8px;border-bottom-right-radius:8px\" srcset=\"https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-tickets-reason-column.webp 1600w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-tickets-reason-column-300x206.webp 300w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-tickets-reason-column-1024x701.webp 1024w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-tickets-reason-column-768x526.webp 768w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-tickets-reason-column-1536x1052.webp 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In NiroHelp, you create reasons under <strong>NiroHelp \u2192 Reasons<\/strong>. The customer picks one on the ticket form, where the dropdown is labelled &#8220;Topic&#8221; by default, and an agent can change it in the ticket editor when the customer picked the wrong one. The <strong><a href=\"https:\/\/nirohelp.com\/docs\/\" target=\"_blank\" rel=\"noopener\">ticket reasons documentation<\/a><\/strong> covers renaming the field and making it optional.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>One catch:<\/strong> the Topic dropdown is optional by default, so customers can skip it and those tickets count as nothing. Make it required under <strong>Settings \u2192 Tickets \u2192 Form fields<\/strong>, or your counts will undercount your busiest problems.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"1264\" height=\"1344\" src=\"https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-ticket-reasons-box.webp\" alt=\"Knowledge base gap analysis ticket reasons box. \" class=\"has-border-color has-vivid-purple-border-color wp-image-127\" style=\"border-width:2px;border-top-left-radius:8px;border-top-right-radius:8px;border-bottom-left-radius:8px;border-bottom-right-radius:8px\" srcset=\"https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-ticket-reasons-box.webp 1264w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-ticket-reasons-box-282x300.webp 282w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-ticket-reasons-box-963x1024.webp 963w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-ticket-reasons-box-768x817.webp 768w\" sizes=\"auto, (max-width: 1264px) 100vw, 1264px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Keep the list to six or eight reasons. A long list gets picked badly, and a reason nobody picks consistently counts for nothing. Describe the problem, not the product: &#8220;License activation&#8221; works, &#8220;Acme Forms Pro&#8221; does not. Because customers choose the reason themselves, treat your first counts as approximate and skim the ticket titles before you trust a number.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Starting with a backlog? Tag the last 50 to 100 tickets by hand. It takes about an hour and gives you a usable count today instead of in a month.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Reasons are part of the free plugin. You can <strong><a href=\"https:\/\/wordpress.org\/plugins\/nirohelp\/\" target=\"_blank\" rel=\"noopener\">install NiroHelp from WordPress.org<\/a><\/strong> on a staging site and add your first six reasons in a few minutes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:26px\">Step 2: Count Tickets by Reason<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Once tickets carry a reason, your biggest reasons are one screen away.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Reasons screen lists every reason with its ticket count. On the demo desk, License activation leads with 16 tickets, followed by How-to question with 14, then Billing and refunds and Bug report with 12 each.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"993\" src=\"https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-reasons-ticket-counts.webp\" alt=\"Knowledge base gap analysis reasons ticket counts \" class=\"has-border-color has-vivid-purple-border-color wp-image-128\" style=\"border-width:2px;border-top-left-radius:8px;border-top-right-radius:8px;border-bottom-left-radius:8px;border-bottom-right-radius:8px\" srcset=\"https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-reasons-ticket-counts.webp 1600w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-reasons-ticket-counts-300x186.webp 300w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-reasons-ticket-counts-1024x636.webp 1024w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-reasons-ticket-counts-768x477.webp 768w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-reasons-ticket-counts-1536x953.webp 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">To see what sits inside a reason, filter the agent queue. In NiroHelp, the queue built with the [nirohelp_all_tickets] shortcode can be filtered by agent, product, and time.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"1422\" src=\"https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-queue-filtered-by-reason.webp\" alt=\"Knowledge base gap analysis queue filtered by reason \" class=\"has-border-color has-vivid-purple-border-color wp-image-129\" style=\"border-width:2px;border-top-left-radius:8px;border-top-right-radius:8px;border-bottom-left-radius:8px;border-bottom-right-radius:8px\" srcset=\"https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-queue-filtered-by-reason.webp 1600w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-queue-filtered-by-reason-300x267.webp 300w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-queue-filtered-by-reason-1024x910.webp 1024w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-queue-filtered-by-reason-768x683.webp 768w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-queue-filtered-by-reason-1536x1365.webp 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Read the titles, not just the number. Sixteen license tickets is a signal, but sixteen tickets asking five different questions is five docs. On the demo desk, they cover moving a license to a new domain, staging sites using up a seat, and finding the license key.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:26px\">Step 3: Check What Your Docs Say About Each Top Reason<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For every top reason, ask three questions: is there a doc, do people read it, and does it help?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The NiroHelp Docs list shows reads, a helpfulness percentage with the vote count, and the last updated date for each doc.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"1096\" src=\"https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-docs-list-helpfulness.webp\" alt=\"Knowledge base gap analysis docs list helpfulness \" class=\"has-border-color has-vivid-purple-border-color wp-image-132\" style=\"border-width:2px;border-top-left-radius:8px;border-top-right-radius:8px;border-bottom-left-radius:8px;border-bottom-right-radius:8px\" srcset=\"https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-docs-list-helpfulness.webp 1600w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-docs-list-helpfulness-300x206.webp 300w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-docs-list-helpfulness-1024x701.webp 1024w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-docs-list-helpfulness-768x526.webp 768w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-docs-list-helpfulness-1536x1052.webp 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The dashboard&#8217;s Docs row adds four views:<\/p>\n\n\n\n<div class=\"wp-block-group has-border-color has-vivid-purple-border-color has-black-color has-text-color has-background has-link-color wp-elements-3 is-layout-constrained wp-container-core-group-is-layout-275b42c8 wp-block-group-is-layout-constrained\" style=\"border-width:2px;border-top-left-radius:8px;border-top-right-radius:8px;border-bottom-left-radius:8px;border-bottom-right-radius:8px;background-color:#f8f2ff;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50);font-size:17px\">\n<ul class=\"wp-block-list\">\n<li><strong>Unhelpful docs<\/strong> ranks docs by their share of negative votes rather than the raw count, so a doc with three downvotes out of four outranks one with ten out of a thousand.<\/li>\n\n\n\n<li><strong>Gaps<\/strong> lists failed searches (Step 4).<\/li>\n\n\n\n<li><strong>Most read<\/strong> notes how many docs were never read or read only once.<\/li>\n\n\n\n<li><strong>Volume<\/strong> shows docs per topic, and a topic with no docs shows a 0.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>dashboard<\/strong> lists each panel.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"1232\" src=\"https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-dashboard-docs-row.webp\" alt=\"Knowledge base gap analysis dashboard docs row\" class=\"has-border-color has-vivid-purple-border-color wp-image-131\" style=\"border-width:2px;border-top-left-radius:8px;border-top-right-radius:8px;border-bottom-left-radius:8px;border-bottom-right-radius:8px\" srcset=\"https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-dashboard-docs-row.webp 1600w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-dashboard-docs-row-300x231.webp 300w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-dashboard-docs-row-1024x788.webp 1024w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-dashboard-docs-row-768x591.webp 768w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-dashboard-docs-row-1536x1183.webp 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Here is what that picture showed on the demo desk:<\/p>\n\n\n\n<div class=\"wp-block-group has-border-color has-vivid-purple-border-color has-black-color has-text-color has-background has-link-color wp-elements-4 is-layout-constrained wp-container-core-group-is-layout-275b42c8 wp-block-group-is-layout-constrained\" style=\"border-width:2px;border-top-left-radius:8px;border-top-right-radius:8px;border-bottom-left-radius:8px;border-bottom-right-radius:8px;background-color:#f8f2ff;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50);font-size:17px\">\n<ul class=\"wp-block-list\">\n<li><strong>Licensing has 0 docs<\/strong>, while License activation is the biggest reason. That is a missing gap.<\/li>\n\n\n\n<li><strong>Conditional logic has 742 reads<\/strong> but only 41% helpful across 75 votes, and 7 of the 14 how-to tickets are about conditional logic. That is a wrong gap.<\/li>\n\n\n\n<li><strong>Connect Google Sheets has 0 reads<\/strong> and no votes, while 6 of the 10 integration tickets ask about Google Sheets. That is a buried gap.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Helpfulness votes tell you more than page views. A doc with 742 reads looks healthy until you see that 59% of the people who voted said no. Those votes come from the &#8220;Was this doc helpful?&#8221; buttons at the bottom of every doc. NiroHelp stores them as counts only, with no IP address or visitor identity. The flip side is that it does not block repeat votes either, so treat the percentage as a rough signal, especially on a doc with few votes. The <strong><a href=\"https:\/\/nirohelp.com\/docs\/knowledge-base\/doc-voting\" target=\"_blank\" rel=\"noopener\">doc voting documentation<\/a><\/strong> explains how votes are recorded.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:26px\">Step 4: Add the Signal Tickets Cannot Show<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A ticket only exists if the customer gave up and wrote in. Failed searches catch the people who are still trying.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NiroHelp records every docs search that returns nothing and lists the most frequent ones in the Gaps card on the dashboard, busiest first. The card needs no AI connection. On the demo desk, &#8220;transfer license to new domain&#8221; was searched 31 times with no result, followed by &#8220;refund policy&#8221; (24) and &#8220;vat invoice&#8221; (14).<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"1272\" src=\"https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-gaps-card.webp\" alt=\"Knowledge base gap analysis gaps card\" class=\"has-border-color has-vivid-purple-border-color wp-image-133\" style=\"border-width:2px;border-top-left-radius:8px;border-top-right-radius:8px;border-bottom-left-radius:8px;border-bottom-right-radius:8px\" srcset=\"https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-gaps-card.webp 1600w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-gaps-card-300x239.webp 300w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-gaps-card-1024x814.webp 1024w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-gaps-card-768x611.webp 768w, https:\/\/nirohelp.com\/blog\/wp-content\/uploads\/2026\/10\/knowledge-base-gap-analysis-gaps-card-1536x1221.webp 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">If your site is connected to the AI service, <strong><a href=\"https:\/\/nirohelp.com\/features\/dashboard\/\" target=\"_blank\" rel=\"noopener\">Ask NiroHelp<\/a><\/strong> can return the same list when you ask what docs you are missing. Check your plan on the features page first, since AI access depends on it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A cheap third signal costs your agents two seconds per ticket. Add a yes\/no field such as &#8220;Self-service possible?&#8221; and have agents set it as they reply. eesel describes teams doing this to build a list of tickets a doc could have prevented, which is the list you actually want to write from.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" style=\"font-size:24px\">Doing This With Other WordPress Tools<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">NiroHelp is not the only way to run this. Most docs plugins surface part of the picture, and the tier you are on decides how much.<\/p>\n\n\n\n<div class=\"wp-block-group has-border-color has-vivid-purple-border-color has-ast-global-color-6-color has-text-color has-background has-link-color wp-elements-5 is-layout-constrained wp-container-core-group-is-layout-275b42c8 wp-block-group-is-layout-constrained\" style=\"border-width:2px;border-top-left-radius:8px;border-top-right-radius:8px;border-bottom-left-radius:8px;border-bottom-right-radius:8px;background-color:#f8f2ff;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50);font-size:17px\">\n<ul class=\"wp-block-list\">\n<li><strong>BetterDocs<\/strong> has analytics with a &#8220;Keywords With No Result&#8221; view, reactions, and a feedback inbox with Reviewed and Resolved states and CSV export. Its ticketing is separate, so reasons live in whatever help desk you pair it with.<\/li>\n\n\n\n<li><strong>Heroic Knowledge Base<\/strong> tracks failed searches and feedback in its analytics.<\/li>\n\n\n\n<li><strong>Echo Knowledge Base<\/strong> reports no-result searches, with ratings and feedback in its PRO tier.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Check your tier before relying on any of these, because features move between plans. If you already run BetterDocs and want tickets and docs in one place, NiroHelp can <strong><a href=\"https:\/\/nirohelp.com\/migrate\/betterdocs\" target=\"_blank\" rel=\"noopener\">import your BetterDocs docs, categories, and votes<\/a> without touching the original data.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:26px\">Step 5: Sort Each Finding and Choose the Fix<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Now turn the findings into a short, ordered list. Each one gets a gap type and a matching fix.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\" style=\"font-size:17px\"><table class=\"has-black-color has-text-color has-link-color has-border-color has-vivid-purple-border-color has-fixed-layout\" style=\"border-width:1px\"><tbody><tr><td><strong>What you see<\/strong><\/td><td><strong>Gap type<\/strong><\/td><td><strong>Fix<\/strong><\/td><\/tr><tr><td>Many tickets on a reason, no doc in the topic, matching failed searches<\/td><td>Missing<\/td><td>Write the doc, titled in the customer&#8217;s words<\/td><\/tr><tr><td>A doc exists but has few or no reads, and tickets keep asking<\/td><td>Buried<\/td><td>Retitle it, move it to the right topic, link it from the ticket form<\/td><\/tr><tr><td>A doc is read but rated down, and tickets continue<\/td><td>Wrong<\/td><td>Rewrite it around the task; read the tickets that followed it<\/td><\/tr><tr><td>A doc untouched for 12 months or more, tickets mention a newer version<\/td><td>Stale<\/td><td>Update it and record the review date<\/td><\/tr><tr><td>Two docs answer the same question differently<\/td><td>Stale<\/td><td>Merge them into one and redirect the other<\/td><\/tr><tr><td>Tickets need account data or a code change<\/td><td>Not a doc problem<\/td><td>Fix it in a workflow or in the product<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The dashboard&#8217;s doc insights list docs untouched for a year, which gives you the stale list without extra work. Here is the output for the demo desk, in the order we would fix it:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\" style=\"font-size:17px\"><table class=\"has-black-color has-text-color has-link-color has-border-color has-vivid-purple-border-color has-fixed-layout\" style=\"border-width:1px\"><tbody><tr><td><strong>Priority<\/strong><\/td><td><strong>Gap<\/strong><\/td><td><strong>Type<\/strong><\/td><td><strong>Evidence<\/strong><\/td><\/tr><tr><td>1<\/td><td>License transfer to a new domain<\/td><td>Missing<\/td><td>16 License activation tickets, 31 failed searches, Licensing topic has 0 docs<\/td><\/tr><tr><td>2<\/td><td>Conditional logic<\/td><td>Wrong<\/td><td>742 reads, 41% helpful across 75 votes, 7 of 14 how-to tickets<\/td><\/tr><tr><td>3<\/td><td>Connect Google Sheets<\/td><td>Buried<\/td><td>0 reads, 6 of 10 integration tickets<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Next up are refund policy (24 failed searches, 12 billing tickets) and VAT invoice (14 failed searches).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" style=\"font-size:28px\">Which Knowledge Base Gaps Should You Fix First?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Fix the gaps with the highest ticket volume and a fixed answer first. A doc earns its keep when the same reply would otherwise be typed again and again. eesel&#8217;s guide frames the ranking as volume against whether the answer is fixed, and that is a sound rule for a small team.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\" style=\"font-size:17px\"><table class=\"has-black-color has-text-color has-link-color has-border-color has-vivid-purple-border-color has-fixed-layout\" style=\"border-width:1px\"><tbody><tr><td><strong>Signals agreeing<\/strong><\/td><td><strong>Same answer for everyone?<\/strong><\/td><td><strong>What to do<\/strong><\/td><\/tr><tr><td>High ticket volume, failed searches or low votes<\/td><td>Yes<\/td><td>Write or fix the doc now. On the demo desk, that is the license transfer question.<\/td><\/tr><tr><td>High ticket volume<\/td><td>No, it depends on the customer&#8217;s account<\/td><td>A doc only gets you partway. A ticket like &#8220;license shows 3 of 1 sites used&#8221; needs someone to look at the account, so consider a workflow or a product change.<\/td><\/tr><tr><td>Low volume<\/td><td>Yes<\/td><td>A short FAQ entry or a saved reply is enough.<\/td><\/tr><tr><td>Low volume<\/td><td>No, a one-off<\/td><td>Leave it to your agents. Not every question deserves a doc.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">What about the tickets no doc can fix?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Log them separately and hand them to whoever owns the product. A knowledge base cannot document its way out of a bug, and pretending otherwise fills the docs with workarounds that go stale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Start with three docs, not thirty. Three published fixes and a recheck beat a spreadsheet of thirty gaps nobody has time to close.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" style=\"font-size:28px\">What a Knowledge Base Gap Analysis Cannot Tell You?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A gap analysis shows where customers struggled, not why every answer failed. Five limits are worth knowing before you act on the numbers.<\/p>\n\n\n\n<div class=\"wp-block-group has-border-color has-vivid-purple-border-color has-black-color has-text-color has-background is-layout-constrained wp-container-core-group-is-layout-275b42c8 wp-block-group-is-layout-constrained\" style=\"border-width:2px;border-top-left-radius:8px;border-top-right-radius:8px;border-bottom-left-radius:8px;border-bottom-right-radius:8px;background-color:#f8f2ff;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50);font-size:17px\">\n<ol class=\"wp-block-list\">\n<li><strong>Silent customers are invisible.<\/strong> Someone who never searched and never wrote in leaves no trace in your tickets or your failed searches. They may simply have given up.<\/li>\n\n\n\n<li><strong>Reasons are only as good as the people picking them.<\/strong> When customers choose the reason, some will pick the first option. Making the field required and letting agents correct the label as they reply keeps the counts honest over time.<\/li>\n\n\n\n<li><strong>Votes can be repeated.<\/strong> NiroHelp stores helpfulness votes as anonymous counts, so one unhappy visitor can vote more than once. Treat a percentage on a handful of votes as a hint.<\/li>\n\n\n\n<li><strong>An AI can only answer from what you wrote.<\/strong> If you run an AI that answers from your docs, documentation gaps become answer gaps. The <a href=\"https:\/\/nirohelp.com\/blog\/wordpress-ai-chatbot\/\" target=\"_blank\" rel=\"noopener\"><strong>AI chatbot guide<\/strong><\/a> makes the same point: if the answer is not in your docs, the bot cannot find it. The <a href=\"https:\/\/nirohelp.com\/features\/ai-auto-responder\/\" target=\"_blank\" rel=\"noopener\"><strong>auto-responder<\/strong><\/a> stays silent below the confidence threshold you set (the default is 70), and withheld answers are logged with their score and the reason. A run of silent attempts on one topic tends to point at the same gap your reasons and failed searches already show.<\/li>\n\n\n\n<li><strong>A quiet queue is not proof of a fixed gap.<\/strong> A customer who read your new doc and still could not solve the problem may leave without writing in. That is the gap between deflection and resolution, and it is why the Gartner figure of 14% fully resolved in self-service is worth keeping in mind. After you publish a fix, look at helpfulness votes as well as ticket counts.<\/li>\n<\/ol>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" style=\"font-size:28px\">How to Measure Whether You Closed the Gap<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Re-check the same numbers about 30 days after you publish. If the fix worked, the reason&#8217;s ticket count falls, the doc&#8217;s helpfulness holds up, and the failed search stops climbing. The 30-day recheck is a common recommendation, including in Eesel&#8217;s guide.<\/p>\n\n\n\n<div class=\"wp-block-group has-border-color has-vivid-purple-border-color has-black-color has-text-color has-background has-link-color wp-elements-6 is-layout-constrained wp-container-core-group-is-layout-275b42c8 wp-block-group-is-layout-constrained\" style=\"border-width:2px;border-top-left-radius:8px;border-top-right-radius:8px;border-bottom-left-radius:8px;border-bottom-right-radius:8px;background-color:#f8f2ff;margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50);font-size:17px\">\n<ol class=\"wp-block-list\">\n<li><strong>Record a baseline on the day you publish.<\/strong> Note the ticket count for the reason on the Reasons screen, the doc&#8217;s reads and helpfulness, and the failed search&#8217;s count in the Gaps card.<\/li>\n\n\n\n<li><strong>Wait about 30 days.<\/strong> Compare the same reason over a period of the same length, so a busy month does not fool you.<\/li>\n\n\n\n<li><strong>Read the Gaps card with care.<\/strong> It may follow the dashboard&#8217;s 7, 30, or 90-day control, or it may behave as a running total, depending on your version. Check your install, and if it accumulates, rely on the baseline from step 1. If the number stops rising, customers are finding something.<\/li>\n\n\n\n<li><strong>Check votes once there are enough of them.<\/strong> A handful of votes is noise, and votes can be repeated. Give a new doc a few dozen before you judge it.<\/li>\n\n\n\n<li><strong>If the reason&#8217;s count has not moved, read the tickets that arrived after publishing.<\/strong> A few will tell you whether the doc is buried, wrong, or answering a slightly different question.<\/li>\n<\/ol>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" style=\"font-size:28px\">Final Words: Start With the Ticket You Are Tired Of<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Three things to take away. Tickets show the docs you need, so count them by reason before you look at page traffic. Sort every gap as missing, buried, wrong, or stale, because each has a different fix. And recheck after 30 days, since a quiet queue alone does not prove the problem is solved.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can run this on a staging site today. <a href=\"https:\/\/wordpress.org\/plugins\/nirohelp\/\" target=\"_blank\" rel=\"noopener\"><strong>Install NiroHelp free from WordPress.org<\/strong><\/a>: the knowledge base, ticket system, and dashboard are included, so you can add reasons to your tickets and see your own gap list within an afternoon.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" style=\"font-size:28px\">Frequently Asked Questions (FAQs)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:26px\">01. What Is a Knowledge Base Gap?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A knowledge base gap is a missing, outdated, unclear, or hard-to-find answer in your documentation. Common signs include repeated support tickets, failed searches, and negative article helpfulness votes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">02. Can I Run a Knowledge Base Gap Analysis in WordPress Without AI?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. You can perform a knowledge base gap analysis in WordPress by reviewing support tickets, failed searches, and documentation feedback without AI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NiroHelp offers documentation insights to help identify gaps. Check its <a href=\"https:\/\/nirohelp.com\/features\/\"><strong>features page<\/strong><\/a> for current capabilities and plan details.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">03. How Often Should I Run a Knowledge Base Gap Analysis?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Run a knowledge base gap analysis monthly to identify missing answers and outdated documentation. Review it more frequently after major product updates or increases in support tickets.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">04. How Do I Know Which Knowledge Base Articles to Write First?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Prioritize knowledge base articles based on recurring support tickets, failed searches, and missing documentation. Start with topics that could resolve the most customer questions and reduce support workload.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This guide covers a five-step knowledge base gap analysis you can run in an afternoon on a WordPress help desk, using ticket reasons, doc reads, helpfulness votes, and failed searches. We tested it on our own setup for almost a year and are now sharing it with you.<\/p>\n","protected":false},"author":2,"featured_media":125,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[7],"tags":[8],"class_list":["post-124","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-knowledge-base","tag-knowledge-base-optimization"],"_links":{"self":[{"href":"https:\/\/nirohelp.com\/blog\/wp-json\/wp\/v2\/posts\/124","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nirohelp.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nirohelp.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nirohelp.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nirohelp.com\/blog\/wp-json\/wp\/v2\/comments?post=124"}],"version-history":[{"count":1,"href":"https:\/\/nirohelp.com\/blog\/wp-json\/wp\/v2\/posts\/124\/revisions"}],"predecessor-version":[{"id":146,"href":"https:\/\/nirohelp.com\/blog\/wp-json\/wp\/v2\/posts\/124\/revisions\/146"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nirohelp.com\/blog\/wp-json\/wp\/v2\/media\/125"}],"wp:attachment":[{"href":"https:\/\/nirohelp.com\/blog\/wp-json\/wp\/v2\/media?parent=124"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nirohelp.com\/blog\/wp-json\/wp\/v2\/categories?post=124"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nirohelp.com\/blog\/wp-json\/wp\/v2\/tags?post=124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}