Skip to content
ChecklistGoogle SheetsFree

Knowledge Panel & Brand SERP Audit Checklist

ForEntity SEOAI search

By Lazarina Stoy· Updated 24 Oct 2026

A knowledge panel isn’t something you can apply for. Google generates one when its Knowledge Graph holds enough consistent, verifiable information about an entity, and the same signals shape how AI assistants describe you. This free Google Sheets checklist turns Beatrice Gamba’s article on earning a knowledge panel into a step-by-step audit: 36 checks covering your brand SERP, Knowledge Graph status, Wikidata, your own markup, cross-platform consistency, independent corroboration, claiming the panel and ongoing monitoring. It ends with a prioritised action plan.

Who it’s for

Brand managers, founders, consultants and SEOs working on brand entity presence, for a company or a person. It suits brands with no panel yet, brands with an incomplete or wrong one, and brands that share a name with something more famous and need disambiguation.

How to use it

  1. Make your own copy and fill in the Fact sheet tab first: the canonical version of your name, founding date, founders, website and description.
  2. Search your brand name and log page one in the Brand SERP log, marking each result as owned, official profile, third party or namesake.
  3. Look up your brand in the Knowledge Graph Search API and log the entity ID, type, description and resultScore in the KG lookup log.
  4. Work through the remaining checks: Wikidata, Organization markup with a stable @id and verified sameAs links, and every profile against your fact sheet. Mismatched cells turn red.
  5. Turn your findings into the Action plan tab, then repeat the quick checks monthly and the full audit quarterly.

What you get

  • 36 checks in eight areas, each with why it matters, how to check it, an evidence label and links to the MLforSEO article and the Google, Wikidata or schema.org documentation
  • A fact sheet that compares your canonical facts across nine platforms and counts the mismatches
  • Brand SERP and Knowledge Graph lookup logs, so every audit has a dated baseline
  • An eight-step action plan ordered from what you control to what you have to earn
  • A progress dashboard showing completion, your owned share of page one and open issues

Limits and honest caveats

Google doesn’t publish a threshold for showing a panel, and not every panel can be claimed yet. In MLforSEO’s experience it takes six to eighteen months of consistent signals for most brands. The Knowledge Graph Search API’s resultScore has no official thresholds, so the sheet treats it as a trend to watch over time. You’ll need a free Google Cloud API key for the lookups, or you can use the API Explorer on Google’s documentation page. If you or your agency edit Wikidata or Wikipedia, the checklist reminds you to declare the conflict of interest.

Read What it takes to earn a Google knowledge panel first, and go deeper in the AI Search & LLMs: Entity SEO and Knowledge Graph Strategies for Brands course.

What’s included

  • 36 checks from brand SERP baseline to claiming and monitoring your panel
  • Fact sheet that flags mismatched facts across nine platforms
  • Brand SERP and Knowledge Graph lookup logs for dated baselines
  • Eight-step action plan, ordered from what you control to what you earn
  • Works for organisations and for people
. Disclosure menus (APG pattern), hover intent, mobile dialog with focus trap, announcement dismiss, skip-link target, newsletter status message. No dependencies. */ (function () { 'use strict'; var d = document;/* ---------- skip link target: #main, else the page's
, else the first block after the header */ (function () { var mains = d.querySelectorAll('main'); if (mains.length > 1) { // Our post-content
plus another one: drop the landmark from ours. var ours = d.querySelector('main[data-mlfc-main]'); if (ours) { ours.setAttribute('role', 'none'); ours.removeAttribute('id'); } } var skip = d.querySelector('.mlfc-skip'); if (!skip) return; var t = d.getElementById('main'); if (!t || (t.getAttribute('role') === 'none')) { t = d.querySelector('main:not([role="none"]), [role="main"]'); if (!t) { var hd = skip.closest('.wp-block-template-part') || skip.closest('.mlfc-hdw'); t = hd && hd.nextElementSibling; } if (!t) return; if (!t.id) t.id = 'main'; skip.setAttribute('href', '#' + t.id); } if (!t.hasAttribute('tabindex')) t.setAttribute('tabindex', '-1'); skip.addEventListener('click', function () { setTimeout(function () { t.focus({ preventScroll: false }); }, 0); }); })();/* ---------- announcement dismiss */ d.querySelectorAll('[data-mlfc-ann]').forEach(function (bar) { var btn = bar.querySelector('[data-mlfc-ann-close]'); if (!btn) return; btn.addEventListener('click', function () { try { localStorage.setItem(bar.getAttribute('data-mlfc-ann'), '1'); } catch (e) {} var next = d.querySelector('.mlfc-logo'); bar.hidden = true; if (next) next.focus(); }); });/* ---------- disclosure dropdowns */ var items = [].slice.call(d.querySelectorAll('.mlfc-hdw [data-mlfc-dd]')); var fine = window.matchMedia && window.matchMedia('(hover: hover) and (pointer: fine)').matches; function btnOf(it) { return it.querySelector('button[aria-controls]'); } function panelOf(it) { return d.getElementById(btnOf(it).getAttribute('aria-controls')); } function isOpen(it) { return btnOf(it).getAttribute('aria-expanded') === 'true'; } function setOpen(it, open) { var b = btnOf(it), p = panelOf(it); if (!b || !p) return; b.setAttribute('aria-expanded', open ? 'true' : 'false'); p.hidden = !open; if (open) { // keep the panel inside the viewport p.style.left = ''; p.style.right = ''; var r = p.getBoundingClientRect(); if (r.right > window.innerWidth - 12) { p.style.left = 'auto'; p.style.right = '0'; } } } function closeAll(except) { items.forEach(function (it) { if (it !== except && isOpen(it)) setOpen(it, false); }); }items.forEach(function (it) { var b = btnOf(it), tIn, tOut; if (!b) return; b.addEventListener('click', function () { clearTimeout(tIn); clearTimeout(tOut); var open = !isOpen(it); closeAll(it); setOpen(it, open); }); if (fine) { // Hover intent: open after 300 ms, close 400 ms after the pointer leaves trigger + panel. it.addEventListener('mouseenter', function () { clearTimeout(tOut); tIn = setTimeout(function () { closeAll(it); setOpen(it, true); }, 300); }); it.addEventListener('mouseleave', function () { clearTimeout(tIn); tOut = setTimeout(function () { setOpen(it, false); }, 400); }); } it.addEventListener('focusout', function (e) { if (e.relatedTarget && !it.contains(e.relatedTarget)) setOpen(it, false); }); it.addEventListener('keydown', function (e) { if (e.key === 'Escape' && isOpen(it)) { e.stopPropagation(); setOpen(it, false); b.focus(); } }); }); d.addEventListener('click', function (e) { items.forEach(function (it) { if (isOpen(it) && !it.contains(e.target)) setOpen(it, false); }); }); d.addEventListener('keydown', function (e) { if (e.key !== 'Escape') return; items.forEach(function (it) { if (isOpen(it)) { setOpen(it, false); btnOf(it).focus(); } }); });/* ---------- mobile menu dialog */ var menuBtn = d.querySelector('.mlfc-menu-btn'); var dlg = d.getElementById('mlfc-mnav'); if (menuBtn && dlg) { var FOC = 'a[href],button:not([disabled]),input,select,textarea,[tabindex]:not([tabindex="-1"])'; var openMenu = function () { dlg.hidden = false; menuBtn.setAttribute('aria-expanded', 'true'); d.body.classList.add('mlfc-lock'); var c = dlg.querySelector('[data-mlfc-close]'); if (c) c.focus(); }; var closeMenu = function (restore) { if (dlg.hidden) return; dlg.hidden = true; menuBtn.setAttribute('aria-expanded', 'false'); d.body.classList.remove('mlfc-lock'); if (restore !== false) menuBtn.focus(); }; menuBtn.addEventListener('click', function () { dlg.hidden ? openMenu() : closeMenu(); }); dlg.querySelector('[data-mlfc-close]').addEventListener('click', function () { closeMenu(); }); dlg.addEventListener('keydown', function (e) { if (e.key === 'Escape') { e.preventDefault(); closeMenu(); return; } if (e.key !== 'Tab') return; var f = [].filter.call(dlg.querySelectorAll(FOC), function (el) { return el.offsetParent !== null || el === d.activeElement; }); if (!f.length) return; var first = f[0], last = f[f.length - 1]; if (e.shiftKey && d.activeElement === first) { e.preventDefault(); last.focus(); } else if (!e.shiftKey && d.activeElement === last) { e.preventDefault(); first.focus(); } }); // In-page links (e.g. #courses) close the menu first. dlg.addEventListener('click', function (e) { var a = e.target.closest && e.target.closest('a[href^="#"]'); if (a) closeMenu(false); }); var mq = window.matchMedia('(min-width: 1024px)'); var onMq = function () { if (mq.matches) closeMenu(false); }; if (mq.addEventListener) mq.addEventListener('change', onMq); else if (mq.addListener) mq.addListener(onMq); }/* ---------- newsletter: plain POST to Kit in a new tab (same pattern as mlfa2_newsletter()); say so in the live region */ d.querySelectorAll('form[data-mlfc-nl]').forEach(function (form) { var msg = form.querySelector('.mlfc-nl__msg'); form.addEventListener('submit', function () { if (msg) msg.textContent = 'Thanks. Kit opens in a new tab: confirm your subscription there and check your inbox.'; }); }); })();