Design Blast

#db-gbp-audit { --blue: #1769ff; --navy: #10213b; --ink: #172337; --muted: #69778b; --line: #e4eaf2; font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); width: 100%; max-width: 1080px; margin: 0 auto; } #db-gbp-audit * { box-sizing: border-box; } #db-gbp-audit .audit-shell { background: #fff; border: 1px solid var(--line); border-radius: 22px; overflow: hidden; box-shadow: 0 18px 55px rgba(18, 42, 78, .07); } #db-gbp-audit .audit-head { padding: 38px 40px 30px; background: linear-gradient(120deg, #f3f7ff, #fff 72%); border-bottom: 1px solid var(--line); } #db-gbp-audit .eyebrow { color: var(--blue); font-size: 12px; font-weight: 800; letter-spacing: 1.7px; text-transform: uppercase; margin-bottom: 12px; } #db-gbp-audit h2 { font-size: clamp(27px, 4vw, 39px); line-height: 1.15; letter-spacing: -1.3px; color: var(--navy); margin: 0 0 12px; } #db-gbp-audit p { line-height: 1.65; color: var(--muted); margin: 0; font-size: 15px; } #db-gbp-audit .audit-body { padding: 32px 40px 38px; } #db-gbp-audit .section-label { font-size: 17px; font-weight: 750; color: var(--navy); margin: 0 0 18px; } #db-gbp-audit .fields { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; margin-bottom: 32px; } #db-gbp-audit .field.full { grid-column: 1 / -1; } #db-gbp-audit label.field-label { display: block; color: #35445b; font-size: 13px; font-weight: 700; margin-bottom: 8px; } #db-gbp-audit input[type="text"], #db-gbp-audit input[type="url"], #db-gbp-audit select { display: block; width: 100%; min-height: 48px; border: 1px solid #dce4ef; border-radius: 10px; padding: 12px 14px; font-size: 14px; color: var(--ink); background: #fff; outline: none; box-shadow: none; } #db-gbp-audit input:focus, #db-gbp-audit select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(23,105,255,.1); } #db-gbp-audit .check-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } #db-gbp-audit .check-item { display: flex; align-items: flex-start; gap: 11px; border: 1px solid var(--line); border-radius: 12px; padding: 15px; min-height: 76px; cursor: pointer; transition: border-color .2s, background .2s; } #db-gbp-audit .check-item:has(input:checked) { border-color: #9abaff; background: #f4f8ff; } #db-gbp-audit .check-item input { accent-color: var(--blue); width: 17px; height: 17px; margin: 2px 0 0; flex-shrink: 0; } #db-gbp-audit .check-item strong { display: block; color: #26364d; font-size: 13px; line-height: 1.4; margin-bottom: 4px; } #db-gbp-audit .check-item small { display: block; color: var(--muted); font-size: 12px; line-height: 1.45; } #db-gbp-audit .audit-note { margin: 18px 0 22px; padding: 13px 15px; border-radius: 10px; background: #f6f8fb; color: #66758a; font-size: 12px; line-height: 1.6; } #db-gbp-audit .primary-btn { border: 0; border-radius: 10px; padding: 15px 23px; min-height: 50px; background: var(--blue); color: #fff; font-size: 14px; font-weight: 750; cursor: pointer; transition: background .2s, transform .2s; } #db-gbp-audit .primary-btn:hover { background: #0755df; transform: translateY(-1px); } #db-gbp-audit .button-row { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; } #db-gbp-audit .button-row .hint { color: var(--muted); font-size: 12px; } #db-gbp-audit .report { display: none; } #db-gbp-audit .report.visible { display: block; } #db-gbp-audit .report-top { display: grid; grid-template-columns: 190px 1fr; gap: 28px; align-items: center; padding: 25px; background: #f5f8ff; border: 1px solid #e1eaff; border-radius: 16px; margin-bottom: 26px; } #db-gbp-audit .score-circle { width: 154px; height: 154px; border-radius: 50%; margin: auto; display: grid; place-items: center; background: conic-gradient(var(--score-color, #1769ff) var(--score-angle, 0deg), #dfe7f2 0); position: relative; } #db-gbp-audit .score-circle:before { content: ""; position: absolute; inset: 10px; background: #fff; border-radius: 50%; } #db-gbp-audit .score-inner { position: relative; text-align: center; } #db-gbp-audit .score-number { font-size: 40px; font-weight: 800; color: var(--navy); line-height: 1.1; letter-spacing: -1.5px; } #db-gbp-audit .score-outof { font-size: 12px; color: var(--muted); margin-top: 4px; } #db-gbp-audit .report h3 { font-size: 20px; color: var(--navy); margin: 0 0 8px; } #db-gbp-audit .report .summary { font-size: 14px; line-height: 1.7; color: #627087; } #db-gbp-audit .stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 28px; } #db-gbp-audit .stat { border: 1px solid var(--line); border-radius: 12px; padding: 17px; } #db-gbp-audit .stat strong { display: block; color: var(--navy); font-size: 25px; margin-bottom: 5px; } #db-gbp-audit .stat span { font-size: 12px; color: var(--muted); line-height: 1.5; } #db-gbp-audit .recommendations { display: grid; gap: 12px; margin-bottom: 27px; } #db-gbp-audit .recommendation { display: grid; grid-template-columns: 36px 1fr; gap: 12px; padding: 17px; border: 1px solid var(--line); border-radius: 12px; } #db-gbp-audit .rec-icon { display: grid; place-items: center; width: 34px; height: 34px; background: #fff1dc; color: #a65d00; border-radius: 9px; font-size: 15px; font-weight: 800; } #db-gbp-audit .recommendation h4 { margin: 1px 0 5px; color: #24334a; font-size: 14px; } #db-gbp-audit .recommendation p { font-size: 13px; line-height: 1.6; } #db-gbp-audit .recommendation .priority { display: inline-block; margin-top: 8px; color: #b36a06; font-size: 10px; letter-spacing: .8px; font-weight: 800; text-transform: uppercase; } #db-gbp-audit .all-good { padding: 18px; border-radius: 12px; background: #eefaf3; color: #176b3b; font-size: 14px; line-height: 1.6; } #db-gbp-audit .report-cta { padding: 25px; background: var(--navy); border-radius: 15px; color: #fff; display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; } #db-gbp-audit .report-cta h3 { color: #fff; margin-bottom: 7px; } #db-gbp-audit .report-cta p { color: #c3cede; font-size: 13px; max-width: 500px; } #db-gbp-audit .report-cta a { display: inline-block; text-decoration: none; white-space: nowrap; padding: 13px 18px; border-radius: 9px; background: var(--blue); color: white; font-size: 13px; font-weight: 750; } #db-gbp-audit .secondary-btn { background: #fff; border: 1px solid #dce4ef; color: #24334a; padding: 13px 17px; border-radius: 9px; cursor: pointer; font-weight: 700; font-size: 13px; } #db-gbp-audit .form-error { display: none; color: #b42318; font-size: 13px; margin: 0 0 14px; } @media(max-width:650px) { #db-gbp-audit .audit-head { padding: 27px 22px 24px; } #db-gbp-audit .audit-body { padding: 24px 20px 28px; } #db-gbp-audit .fields, #db-gbp-audit .check-list { grid-template-columns: 1fr; } #db-gbp-audit .report-top { grid-template-columns: 1fr; text-align: center; padding: 22px 17px; } #db-gbp-audit .stats { grid-template-columns: 1fr; } #db-gbp-audit .stat { display: flex; align-items: center; justify-content: space-between; gap: 12px; } #db-gbp-audit .stat strong { margin: 0; } #db-gbp-audit .report-cta { align-items: flex-start; } #db-gbp-audit .report-cta a { white-space: normal; } }
Free Local SEO Tool

Google Business Profile Audit

Find gaps in your local business profile and discover practical ways to improve your visibility, credibility and potential to attract customers.

Select your business type Doctor / Clinic / Healthcare Professional services Retail / Store Restaurant / Food Home services Manufacturing / B2B Other

Select every item that is currently completed or regularly maintained on your Google Business Profile.

How this works: Your score is based on the items you confirm above. This tool does not access or independently verify your live Google listing. Select only the items you know are complete.
Instant results · No sign-up required
Your audit results

Your Local SEO Snapshot

0
out of 100

Your profile snapshot

0/12Items marked complete
0Potential improvement areas
—Priority level

Want a deeper Local SEO review?

Design Blast can help assess your local search strategy, website and opportunities to strengthen your online presence.

Request a Local SEO Consultation ↗

This is a self-assessment, not a live Google listing inspection or a ranking prediction. Results reflect the answers provided and do not guarantee local search performance.

(function () { const root = document.getElementById('db-gbp-audit'); if (!root || root.dataset.initialized === 'true') return; root.dataset.initialized = 'true';const checks = Array.from(root.querySelectorAll('input[data-points]')); const recommendations = [ { index: 0, title: 'Verify core business information', text: 'Review your business name, phone, address or service area. Keep details accurate and consistent with your real-world business.', priority: 'High priority' }, { index: 1, title: 'Review your primary business category', text: 'Choose the most accurate available primary category. Add relevant additional categories only when they genuinely describe your business.', priority: 'High priority' }, { index: 2, title: 'Complete your business hours', text: 'Add accurate opening hours and update special hours when needed so customers know when they can reach you.', priority: 'High priority' }, { index: 3, title: 'Improve your business description', text: 'Explain what you do, who you serve and your main services in clear, natural language. Avoid keyword stuffing and promotional claims.', priority: 'Medium priority' }, { index: 4, title: 'Add current, authentic photos', text: 'Use genuine, good-quality images of your premises, team, work or products. Keep them current and representative of the business.', priority: 'Medium priority' }, { index: 5, title: 'Review your services and products', text: 'Add relevant services or products using the features available for your business category. Use clear descriptions where supported.', priority: 'Medium priority' }, { index: 6, title: 'Build a consistent review process', text: 'Invite genuine customers to share honest feedback without incentives or selective review gating. Make it easy for satisfied and dissatisfied customers to respond.', priority: 'High priority' }, { index: 7, title: 'Respond to customer reviews', text: 'Reply professionally and specifically to feedback. Avoid sharing private customer information, especially for healthcare businesses.', priority: 'Medium priority' }, { index: 8, title: 'Check your website link', text: 'Make sure the profile points to the correct working page. Use a relevant landing page when appropriate and track visits with suitable analytics.', priority: 'High priority' }, { index: 9, title: 'Strengthen local website relevance', text: 'Ensure your website clearly explains your services and the areas you serve. Include accurate contact details and useful location-specific content where relevant.', priority: 'High priority' }, { index: 10, title: 'Share useful updates when relevant', text: 'Use profile posts or updates where available to communicate genuine news, offers or helpful information. Prioritize usefulness over posting frequency.', priority: 'Low priority' }, { index: 11, title: 'Schedule regular profile checks', text: 'Periodically check for outdated hours, incorrect contact details, unexpected edits and other information that may need attention.', priority: 'Medium priority' } ];const get = id => root.querySelector('#' + id);get('db-audit-submit').addEventListener('click', function () { const name = get('db-audit-name').value.trim(); const city = get('db-audit-city').value.trim(); const error = get('db-audit-error');if (!name || !city) { error.style.display = 'block'; (!name ? get('db-audit-name') : get('db-audit-city')).focus(); return; } error.style.display = 'none';let score = 0; let complete = 0; const missing = [];checks.forEach((input, index) => { if (input.checked) { score += Number(input.dataset.points); complete++; } else { missing.push(recommendations[index]); } });score = Math.min(100, score); const gaps = checks.length - complete; const color = score >= 80 ? '#16834a' : score >= 55 ? '#1769ff' : '#e59b23';let grade, summary; if (score >= 80) { grade = 'Strong self-assessment'; summary = 'You have marked most of the key profile practices as complete. Review the remaining opportunities and periodically check that your information stays accurate.'; } else if (score >= 55) { grade = 'Room to improve'; summary = 'Several important practices are in place, but some gaps remain in your self-assessment. Prioritize core business information, customer trust and your website connection.'; } else { grade = 'Start with the essentials'; summary = 'Your answers suggest several opportunities to strengthen your profile foundations. Work through the priority actions below, starting with accurate business details.'; }get('db-audit-score').textContent = score; get('db-audit-circle').style.setProperty('--score-angle', (score * 3.6) + 'deg'); get('db-audit-circle').style.setProperty('--score-color', color); get('db-audit-grade').textContent = grade; get('db-audit-summary').textContent = name + ' · ' + city + '. ' + summary; get('db-audit-report-title').textContent = 'Your Local SEO Snapshot'; get('db-audit-complete').textContent = complete + '/' + checks.length; get('db-audit-gaps').textContent = gaps; get('db-audit-priority').textContent = gaps >= 7 ? 'High' : gaps >= 3 ? 'Medium' : 'Low';const recBox = get('db-audit-recommendations'); recBox.innerHTML = '';if (missing.length === 0) { const allGood = document.createElement('div'); allGood.className = 'all-good'; allGood.textContent = 'You marked all checklist items as complete. Consider a deeper review of local competitors, relevant search queries, website performance and the quality of your customer journey.'; recBox.appendChild(allGood); } else { // Show the most important gaps first, up to five recommendations. const priorityOrder = { 'High priority': 0, 'Medium priority': 1, 'Low priority': 2 }; missing.sort((a, b) => priorityOrder[a.priority] - priorityOrder[b.priority]); missing.slice(0, 5).forEach((rec, i) => { const card = document.createElement('div'); card.className = 'recommendation';const icon = document.createElement('div'); icon.className = 'rec-icon'; icon.textContent = String(i + 1).padStart(2, '0');const content = document.createElement('div'); const title = document.createElement('h4'); title.textContent = rec.title; const desc = document.createElement('p'); desc.textContent = rec.text; const priority = document.createElement('span'); priority.className = 'priority'; priority.textContent = rec.priority;content.append(title, desc, priority); card.append(icon, content); recBox.appendChild(card); }); }const contact = get('db-audit-contact'); const params = new URLSearchParams({ audit: 'google-business-profile', business: name, city: city, score: String(score) }); contact.href = '/contact/?' + params.toString();get('db-audit-form').style.display = 'none'; get('db-audit-report').classList.add('visible'); get('db-gbp-audit').scrollIntoView({ behavior: 'smooth', block: 'start' }); });get('db-audit-back').addEventListener('click', function () { get('db-audit-report').classList.remove('visible'); get('db-audit-form').style.display = 'block'; get('db-gbp-audit').scrollIntoView({ behavior: 'smooth', block: 'start' }); });get('db-audit-print').addEventListener('click', function () { window.print(); }); })();