![]()
![]()
/* ============ SHARED BASE ============ */
.crpr-blog,
.crpr-blog *,
.crpr-blog *::before,
.crpr-blog *::after{ box-sizing:border-box; }
.crpr-blog{ width:100%; font-family:inherit; -webkit-font-smoothing:antialiased; }
.fl-module-html .fl-module-content:has(.crpr-blog){ margin:0 !important; }
.crpr-wrap{
position:relative;
width:100%;
max-width:1180px;
margin:0 auto;
padding-left:24px;
padding-right:24px;
}
.crpr-accent{ color:#1FA97A; }
/* ===================== POST HERO ===================== */
.crpr-post-hero{
position:relative;
overflow:hidden;
padding:clamp(30px,4vw,54px) 0 clamp(26px,3.5vw,42px);
background:#F7FAF8;
}
.crpr-post-hero::before{
content:””;
position:absolute;
top:-190px; right:-130px;
width:430px; height:430px;
border-radius:50%;
background:radial-gradient(circle,rgba(112,250,188,.24) 0%,rgba(112,250,188,0) 70%);
pointer-events:none;
}
/* Everything in the hero sits on a narrower measure than the grid */
.crpr-post-hero .crpr-wrap{ max-width:820px; }
/* ———- Back link ———- */
.crpr-back{
display:inline-flex;
align-items:center;
gap:7px;
margin:0 0 22px;
color:#54646E !important;
font-size:13.5px;
font-weight:600;
text-decoration:none !important;
transition:color .18s ease;
}
.crpr-back svg{ width:15px; height:15px; flex:0 0 auto; transition:transform .18s ease; }
.crpr-back:hover{ color:#0B1F3A !important; }
.crpr-back:hover svg{ transform:translateX(-3px); }
.crpr-back:focus-visible{ outline:2px solid #0B1F3A; outline-offset:3px; border-radius:3px; }
/* ———- Category chips ———- */
.crpr-post-cats{
display:flex;
flex-wrap:wrap;
gap:7px;
margin:0 0 16px;
}
.crpr-post-cats a{
display:inline-block;
padding:5px 12px;
border:1px solid rgba(11,31,58,.10);
border-radius:999px;
background:#fff;
color:#1FA97A !important;
font-size:11.5px;
font-weight:700;
letter-spacing:.02em;
line-height:1.4;
text-decoration:none !important;
transition:border-color .18s ease, background .18s ease;
}
.crpr-post-cats a:hover{ border-color:#70FABC; background:#EEFCF5; }
/* ———- Title ———- */
.crpr-post-title{
margin:0 0 16px !important;
color:#0B1F3A !important;
font-size:clamp(27px,4vw,45px) !important;
font-weight:800 !important;
line-height:1.12 !important;
letter-spacing:-.025em;
}
/* ———- Meta ———- */
.crpr-post-meta{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:2px;
color:#6B7B85;
font-size:13.5px;
font-weight:600;
line-height:1.5;
}
.crpr-post-meta a{ color:#1FA97A !important; text-decoration:none !important; }
.crpr-post-meta a:hover{ text-decoration:underline !important; }
.crpr-meta-sep{ margin:0 8px; color:rgba(11,31,58,.25); }
/* ———- Featured image ———- */
.crpr-post-figure{
margin:clamp(26px,3.5vw,40px) 0 0 !important;
padding:0 !important;
overflow:hidden;
border:1px solid rgba(11,31,58,.08);
border-radius:16px;
background:#0B1F3A;
aspect-ratio:16 / 9;
box-shadow:0 8px 28px rgba(11,31,58,.08);
}
.crpr-post-figure img{
width:100% !important;
height:100% !important;
max-width:none !important;
display:block;
object-fit:cover;
border-radius:0 !important;
}
@media (max-width:767px){
.crpr-wrap{ padding-left:20px; padding-right:20px; }
.crpr-post-figure{ border-radius:13px; aspect-ratio:4 / 3; }
.crpr-back{ margin-bottom:18px; }
}
/* ============================================================
POST BODY TYPOGRAPHY
Give the ROW holding your Content module the class:
crpr-post-body (Advanced tab → Class)
============================================================ */
.crpr-post-body{
background:#F7FAF8;
padding-top:clamp(28px,3.5vw,44px) !important;
padding-bottom:clamp(36px,4.5vw,60px) !important;
}
.crpr-post-body .fl-row-content{
max-width:820px !important;
margin:0 auto;
}
.crpr-post-body .fl-rich-text,
.crpr-post-body .fl-module-content{
color:#3E4E58;
font-size:17px;
line-height:1.78;
}
.crpr-post-body p{
margin:0 0 22px;
color:#3E4E58;
font-size:17px;
line-height:1.78;
}
.crpr-post-body h2{
margin:42px 0 14px;
color:#0B1F3A;
font-size:clamp(22px,2.6vw,29px);
font-weight:800;
line-height:1.25;
letter-spacing:-.02em;
}
.crpr-post-body h3{
margin:32px 0 12px;
color:#0B1F3A;
font-size:clamp(18px,2vw,22px);
font-weight:700;
line-height:1.3;
}
.crpr-post-body h4{
margin:26px 0 10px;
color:#0B1F3A;
font-size:17px;
font-weight:700;
}
.crpr-post-body a{
color:#1FA97A;
text-decoration:none;
border-bottom:1px solid rgba(31,169,122,.35);
transition:border-color .18s ease;
}
.crpr-post-body a:hover{ border-bottom-color:#1FA97A; }
.crpr-post-body ul,
.crpr-post-body ol{
margin:0 0 22px;
padding-left:22px;
}
.crpr-post-body li{
margin:0 0 9px;
color:#3E4E58;
font-size:17px;
line-height:1.72;
}
.crpr-post-body li::marker{ color:#1FA97A; }
.crpr-post-body blockquote{
margin:30px 0;
padding:20px 24px;
border:0;
border-left:3px solid #70FABC;
border-radius:0 12px 12px 0;
background:#fff;
color:#0B1F3A;
font-size:18px;
font-style:normal;
line-height:1.65;
}
.crpr-post-body blockquote p:last-child{ margin-bottom:0; }
.crpr-post-body img{
max-width:100%;
height:auto;
border-radius:12px;
}
.crpr-post-body figcaption{
margin-top:9px;
color:#6B7B85;
font-size:13px;
text-align:center;
}
.crpr-post-body hr{
margin:36px 0;
border:0;
border-top:1px solid rgba(11,31,58,.10);
}
.crpr-post-body table{
width:100%;
margin:0 0 24px;
border-collapse:collapse;
font-size:15px;
}
.crpr-post-body th,
.crpr-post-body td{
padding:11px 14px;
border:1px solid rgba(11,31,58,.10);
text-align:left;
}
.crpr-post-body th{ background:#fff; color:#0B1F3A; font-weight:700; }
@media (max-width:767px){
.crpr-post-body p,
.crpr-post-body li{ font-size:16px; }
.crpr-post-body blockquote{ font-size:16.5px; padding:17px 19px; }
}
@media (prefers-reduced-motion:reduce){
.crpr-back svg{ transition:none; }
.crpr-back:hover svg{ transform:none; }
}
/* Credible PR article tables */
.crpr-article-content table,
.fl-module-rich-text table {
width: 100%;
border-collapse: separate;
border-spacing: 0;
border: 1px solid #D9D9D9;
border-radius: 16px;
overflow: hidden;
background: #fff;
margin: 30px 0;
}
.crpr-article-content th,
.crpr-article-content td,
.fl-module-rich-text th,
.fl-module-rich-text td {
padding: 18px 20px;
border-right: 1px solid #D9D9D9;
border-bottom: 1px solid #D9D9D9;
text-align: left;
vertical-align: top;
line-height: 1.6;
}
.crpr-article-content th,
.fl-module-rich-text th {
font-weight: 600;
background: #F7F7F7;
}
.crpr-article-content th:last-child,
.crpr-article-content td:last-child,
.fl-module-rich-text th:last-child,
.fl-module-rich-text td:last-child {
border-right: 0;
}
.crpr-article-content tr:last-child td,
.fl-module-rich-text tr:last-child td {
border-bottom: 0;
}
/* Mobile */
@media (max-width: 768px) {
.crpr-article-content table,
.fl-module-rich-text table {
display: block;
overflow-x: auto;
white-space: normal;
}
}
Quick answer: Google Maps SEO is the practice of optimizing a business’s Google Business Profile, citations, and review signals to rank higher in the local map pack — the three business listings shown with a map when someone searches with local intent. Google names three ranking factors directly: relevance, distance, and prominence. Relevance and prominence are largely controllable; distance is mostly fixed by where the business is actually located.
Search “dentist near me” or “marketing agency [city],” and the first thing that shows up isn’t a list of blue links — it’s a map with three businesses on it. That’s the local map pack, and for any business that serves customers in a specific area, ranking in it matters more than almost any other single piece of search visibility.
Google Maps SEO is the work of getting into that box, and staying there. This guide breaks down how Google actually decides who shows up, what’s realistic to influence, and why local visibility is starting to matter for AI search too — not just traditional Google results.
What Google Maps SEO Actually Is
Google Maps SEO is the process of optimizing a business’s Google Business Profile, local citations, and review signals so it ranks higher in the local map pack and in Google Maps search results directly. It sits alongside traditional SEO but has its own distinct set of factors — a business can have a well-optimized website and still be invisible in local results if its Business Profile and local signals aren’t in order.
The Three Ranking Factors Google Names Directly
-
Google’s own documentation states plainly that local results are based on three factors:
Factor What It Measures How Much You Control It Relevance How well the business profile matches what was searched — category, services, description, website content High — this is the most directly controllable factor Distance How close the business is to the searcher or the location named in the search Low — largely fixed by where the business actually operates Prominence How well-known and trusted the business is — reviews, citations, backlinks, and how well it ranks in normal web search High — builds over time through consistent work Distance is the factor most businesses can’t meaningfully change short of opening another location. That’s exactly why relevance and prominence deserve the bulk of the effort — they’re the two levers that are actually within reach.
Practical Steps to Improve Local Rankings
- Choose the correct primary category. A business categorized incorrectly will struggle to rank even for searches it’s a strong match for — this is one of the most common and easily fixed mistakes.
- Fill out the Google Business Profile completely. Services, business description, hours, and attributes all feed relevance. An incomplete profile is leaving ranking signal on the table for free.
- Keep business information consistent everywhere. Name, address, and phone number (NAP) should match exactly across the website, the Business Profile, and every directory listing. Inconsistency undermines both relevance and prominence.
- Build genuine local citations. Listings on relevant directories, and mentions from real local organizations — chambers of commerce, industry associations, local press — carry more weight than large volumes of low-quality directory submissions.
- Generate reviews consistently, not in bursts. A steady stream of recent reviews signals an active, trustworthy business more than a large one-time batch.
- Respond to every review. This reinforces prominence and shows the business is actively engaged, not just collecting ratings passively.
- Publish Google Posts and keep photos current. These are smaller signals individually, but they contribute to both relevance and the sense that a profile is actively maintained.
Why Reviews Carry So Much Weight
Reviews sit at the center of prominence, and the data backs up why: research on local consumer behavior has found that a large share of people specifically care about how recent reviews are, not just the overall rating, and a meaningful share of consumers won’t consider a business with fewer than roughly 20 reviews at all. Recency and volume both matter — a business with strong ratings from three years ago reads very differently to both Google and a prospective customer than one with strong, recent, detailed reviews.
This is also where Google Maps SEO and online reputation management overlap directly. The same review signals that move local rankings are the ones shaping what a prospect concludes about a business before they ever make contact — see our full breakdown in Online Reputation Management: How PR, SEO, and AI Search Fit Together.
Why Local SEO Is Becoming an AI Search Signal Too
-
Local queries are increasingly answered by AI systems directly — “best [service] near me” is exactly the kind of question AI Overviews and AI assistants now attempt to answer directly, not just route to a map. The same structured, consistent information that helps Google’s local algorithm understand a business — clear categories, accurate services, consistent NAP data — is what helps an AI system describe that business accurately and confidently when asked for a local recommendation.
In practice, that means local SEO and AI Search Optimization are converging rather than staying separate disciplines. A business with a strong, consistent local footprint is better positioned for both. For the deeper mechanics of how AI systems generate those answers, see our AI Search Optimization guide.
Common Mistakes That Hold Businesses Back
- Wrong or overly broad primary category. Choosing “General Contractor” when “Bathroom Remodeler” is more accurate costs relevance for the searches that actually matter.
- Inconsistent NAP information across the website, Business Profile, and directories, which undermines trust signals Google is specifically trying to verify.
- Keyword-stuffing the business name (e.g., adding a service or city into the official name field) — this violates Google’s guidelines and risks profile suspension rather than helping rankings.
- Ignoring reviews rather than actively generating and responding to them, leaving prominence signal unclaimed.
- Treating the Business Profile as a one-time setup instead of something that needs ongoing posts, photo updates, and review responses.
Key Takeaways
- Google names three local ranking factors directly: relevance, distance, and prominence.
- Distance is mostly fixed; relevance and prominence are where the real, controllable work happens.
- Review recency and volume matter specifically — a large share of consumers won’t consider a business with too few or too old reviews.
- NAP consistency across the web is a foundational trust signal for both relevance and prominence.
- Local SEO and AI Search Optimization are converging — the same structured, consistent business information supports both.
- Keyword-stuffed business names and other guideline violations risk suspension, not just lower rankings.
FAQs
Ranking in the local map pack isn’t about gaming an algorithm — it’s about giving Google (and increasingly, AI systems) a clear, consistent, well-supported reason to trust that a business is the right, legitimate answer to a nearby search. Relevance and prominence are both buildable with consistent work; distance is the one factor most businesses simply have to work around.
How Credible PR Can Help
Google Maps SEO is one of Credible PR’s core services, built around the same factors covered in this guide:
- Google Maps SEO — Google Business Profile optimization, local citation building, and review-signal strengthening, aimed at ranking in the top local results where nearby buying decisions happen.
- AI Search Optimization — the same structured business data that strengthens local rankings is engineered to help AI assistants represent the business accurately in local recommendations too.
- Top-Tier Media Placements — guaranteed features in Forbes or USA Today within 30 days, adding the kind of local and national prominence signal that supports map pack rankings as well as broader credibility.
Because local SEO, AI search optimization, and media placements all run through one strategy, the signals reinforce each other instead of sitting in separate, disconnected efforts. See how it works.
The 30-Day Guarantee
Reading about it is one thing. Ranking is another.
Book a free strategy call and we’ll map out exactly where your brand is invisible —
across search, AI assistants, Maps, and media — and what it takes to fix it.
- Featured in Forbes or USA Today within 30 days — or we keep working at no extra cost.
- One partner for PR, AI search, Maps, and ads instead of four separate vendors.
- Market exclusivity: one practice per market, so competitors can’t hire us.
/* —- shared base (safe to repeat) —- */
.crpr-blog,
.crpr-blog *,
.crpr-blog *::before,
.crpr-blog *::after{ box-sizing:border-box; }
.crpr-blog{ width:100%; }
.crpr-wrap{
position:relative;
width:100%;
max-width:1180px;
margin:0 auto;
padding-left:24px;
padding-right:24px;
}
.crpr-narrow{ max-width:820px; }
.crpr-post-end{
padding:0 0 clamp(44px,5.5vw,70px);
background:#F7FAF8;
}
/* ===================== AUTHOR BOX ===================== */
.crpr-author{
display:flex;
align-items:flex-start;
gap:18px;
padding:22px;
border:1px solid rgba(11,31,58,.08);
border-radius:14px;
background:#fff;
box-shadow:0 2px 12px rgba(11,31,58,.05);
}
.crpr-author-avatar{
flex:0 0 auto;
width:56px;
height:56px;
overflow:hidden;
border-radius:50%;
background:#EEFCF5;
}
.crpr-author-avatar img{
width:100% !important;
height:100% !important;
display:block;
object-fit:cover;
border-radius:50% !important;
}
.crpr-author-label{
margin:0 0 3px !important;
color:#1FA97A !important;
font-size:11.5px !important;
font-weight:700 !important;
letter-spacing:.04em;
line-height:1.3 !important;
}
.crpr-author-name{
margin:0 0 7px !important;
color:#0B1F3A !important;
font-size:17px !important;
font-weight:700 !important;
line-height:1.3 !important;
}
.crpr-author-name a{ color:#0B1F3A !important; text-decoration:none !important; }
.crpr-author-name a:hover{ color:#1FA97A !important; }
.crpr-author-bio{
margin:0 !important;
color:#54646E !important;
font-size:14.5px !important;
line-height:1.65 !important;
}
/* ===================== SHARE ROW ===================== */
.crpr-share{
display:flex;
flex-wrap:wrap;
align-items:center;
justify-content:space-between;
gap:14px;
margin-top:18px;
padding:16px 22px;
border:1px solid rgba(11,31,58,.08);
border-radius:14px;
background:#fff;
}
.crpr-share-label{
color:#0B1F3A;
font-size:13.5px;
font-weight:700;
}
.crpr-share-links{ display:flex; gap:8px; }
.crpr-share-btn{
display:inline-flex;
align-items:center;
justify-content:center;
width:36px;
height:36px;
border:1px solid rgba(11,31,58,.12);
border-radius:9px;
background:#fff;
color:#0B1F3A !important;
text-decoration:none !important;
transition:background .18s ease, border-color .18s ease, color .18s ease;
}
.crpr-share-btn svg{ width:16px; height:16px; }
.crpr-share-btn:hover{
border-color:#70FABC;
background:#EEFCF5;
color:#1FA97A !important;
}
.crpr-share-btn:focus-visible{ outline:2px solid #0B1F3A; outline-offset:2px; }
/* ===================== CTA ===================== */
.crpr-cta-card{
position:relative;
overflow:hidden;
display:grid;
grid-template-columns:1.15fr .85fr;
gap:38px;
align-items:center;
margin-top:clamp(30px,4vw,48px);
padding:clamp(24px,3.2vw,42px) clamp(20px,3.2vw,40px);
border-radius:18px;
background:#0B1F3A;
}
.crpr-cta-card::after{
content:””;
position:absolute;
right:-120px; bottom:-150px;
width:380px; height:380px;
border-radius:50%;
background:radial-gradient(circle,rgba(112,250,188,.20) 0%,rgba(112,250,188,0) 70%);
pointer-events:none;
}
.crpr-cta-left,
.crpr-cta-points{ position:relative; z-index:1; }
.crpr-cta-badge{
display:inline-flex;
align-items:center;
gap:8px;
margin:0 0 17px;
padding:7px 14px;
border:1px solid rgba(112,250,188,.32);
border-radius:999px;
background:rgba(112,250,188,.08);
color:#70FABC;
font-size:12.5px;
font-weight:700;
line-height:1.2;
}
.crpr-cta-badge svg{ width:15px; height:15px; flex:0 0 auto; }
.crpr-cta-title{
margin:0 0 13px !important;
color:#ffffff !important;
font-size:clamp(21px,2.6vw,31px) !important;
font-weight:800 !important;
line-height:1.2 !important;
letter-spacing:-.02em;
}
.crpr-cta-body{
margin:0 !important;
max-width:54ch;
color:#C6D3DE !important;
font-size:clamp(14.5px,1.1vw,16px) !important;
line-height:1.7 !important;
}
.crpr-cta-actions{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:20px;
margin-top:25px;
}
.crpr-cta-btn{
display:inline-flex;
align-items:center;
gap:9px;
padding:13px 23px;
border-radius:9px;
background:#70FABC;
color:#0B1F3A !important;
font-size:14.5px;
font-weight:700;
line-height:1.2;
text-decoration:none !important;
transition:background .18s ease, transform .18s ease;
}
.crpr-cta-btn svg{ width:15px; height:15px; flex:0 0 auto; }
.crpr-cta-btn:hover{ background:#8FFFCE; transform:translateY(-2px); }
.crpr-cta-btn:focus-visible{ outline:2px solid #fff; outline-offset:3px; }
.crpr-cta-mail{
color:#70FABC !important;
font-size:14.5px;
font-weight:600;
text-decoration:none !important;
border-bottom:1px solid rgba(112,250,188,.35);
padding-bottom:2px;
}
.crpr-cta-mail:hover{ border-bottom-color:#70FABC; }
.crpr-cta-points{
margin:0 !important;
padding:0 !important;
list-style:none !important;
}
.crpr-cta-points li{
display:flex;
gap:12px;
margin:0 !important;
padding:14px 0;
color:#D7E2EA;
font-size:14.5px;
line-height:1.6;
list-style:none !important;
border-top:1px solid rgba(255,255,255,.10);
}
.crpr-cta-points li:first-child{ border-top:0; padding-top:0; }
.crpr-cta-points li:last-child{ padding-bottom:0; }
.crpr-cta-dot{
flex:0 0 auto;
width:7px; height:7px;
margin-top:8px;
border-radius:50%;
background:#70FABC;
}
/* ===================== RESPONSIVE ===================== */
@media (max-width:1023px){
.crpr-cta-card{ grid-template-columns:1fr; gap:26px; }
}
@media (max-width:767px){
.crpr-wrap{ padding-left:20px; padding-right:20px; }
.crpr-author{ flex-direction:column; gap:14px; padding:19px; }
.crpr-share{ justify-content:flex-start; padding:15px 19px; }
.crpr-cta-card{ border-radius:15px; }
.crpr-cta-actions{ gap:15px; margin-top:22px; }
.crpr-cta-btn{ width:100%; justify-content:center; }
.crpr-cta-mail{ width:100%; }
.crpr-cta-points li{ font-size:14px; padding:13px 0; }
}
@media (prefers-reduced-motion:reduce){
.crpr-cta-btn{ transition:none; }
.crpr-cta-btn:hover{ transform:none; }
}
