{
«@context»: «https://schema.org»,
«@graph»: [
{
«@type»: «Article»,
«@id»: «https://kevin-grillot.fr/consultant-seo-local-guide-2025#article»,
«headline»: «Consultant SEO Local : Guide Complet 2025 & Tarifs»,
«description»: «Découvrez comment un consultant SEO local boost votre visibilité Google Maps et attire plus de clients. Tarifs, services, audit gratuit et cas d’études.»,
«datePublished»: «2026-06-02 08:47:15»,
«dateModified»: «2026-06-02 08:47:15»,
«wordCount»: 2736,
«inLanguage»: «fr-FR»,
«mainEntityOfPage»: {
«@type»: «WebPage»,
«@id»: «https://kevin-grillot.fr/consultant-seo-local-guide-2025»
},
«author»: {
«@type»: «Person»,
«@id»: «https://kevin-grillot.fr/consultant-seo-local-guide-2025#author»,
«name»: «Kevin Grillot»,
«jobTitle»: «Consultant SEO & Spécialiste IA Générative»,
«description»: «Depuis plus de 8 ans, j’accompagne les entreprises françaises à dominer les classements Google. Spécialisé en SEO technique et intégration IA (ChatGPT, Gemini), je conçois des stratégies de référencement organique durables et rentables pour transformer votre visibilité digitale.»,
«image»: «https://ui-avatars.com/api/?name=Kevin+Grillot&size=256&background=1f6feb&color=fff&bold=true»,
«email»: «grillotkevin@gmail.com»,
«sameAs»: [
«https://www.linkedin.com/in/kevin-grillot/»,
«https://kevin-grillot.fr»
]
},
«publisher»: {
«@type»: «Organization»,
«@id»: «https://kevin-grillot.fr#org»,
«name»: «Kevin Grillot»,
«logo»: {
«@type»: «ImageObject»,
«url»: «https://kevin-grillot.fr/wp-content/uploads/2022/07/cropped-Logo-Kevin-Grillot-1.png»
},
«address»: null,
«email»: «grillotkevin@gmail.com»,
«telephone»: null,
«sameAs»: [
«https://www.instagram.com/kevingr04/»,
«https://www.linkedin.com/in/kevin-grillot-036652159/»
]
}
},
{
«@type»: «FAQPage»,
«@id»: «https://kevin-grillot.fr/consultant-seo-local-guide-2025#faq»,
«mainEntity»: [
{
«@type»: «Question»,
«name»: «Quel est le tarif d’une prestation de SEO local ?»,
«acceptedAnswer»: {
«@type»: «Answer»,
«text»: «Les tarifs varient selon la prestation. Un audit seul coûte 300-800€. Un forfait mensuel va de 500€ à 2 000€/mois. Le tarif horaire se situe entre 45€ et 120€/h. Un contrat annuel complet coûte 8 000-15 000€. Le prix dépend de l’expérience du consultant et la complexité de votre activité.»
}
},
{
«@type»: «Question»,
«name»: «Quel est le salaire d’un consultant SEO ?»,
«acceptedAnswer»: {
«@type»: «Answer»,
«text»: «En tant que salarié, un consultant SEO junior gagne 24 000-30 000€ brut/an, un senior 35 000-50 000€. En freelance, les tarifs vont de 45€/h (débutant) à 180€/h (expert), représentant 1 800-7 200€/mois selon l’expérience.»
}
},
{
«@type»: «Question»,
«name»: «Quels sont les 3 types de SEO ?»,
«acceptedAnswer»: {
«@type»: «Answer»,
«text»: «Les 3 types sont : 1) SEO Organique (Global) pour visibilité nationale, 6-12 mois. 2) SEO Local pour zones géographiques via Google My Business, 3-6 mois. 3) SEO E-commerce pour fiches produits. Chaque type nécessite une expertise différente.»
}
},
{
«@type»: «Question»,
«name»: «Comment faire du SEO local ?»,
«acceptedAnswer»: {
«@type»: «Answer»,
«text»: «Optimiser fiche Google My Business (photos, avis, posts), créer citations locales cohérentes, ajouter schéma JSON-LD sur site, créer pages géo-ciblées, collecter avis activement, optimiser pour mobile. Ces 6 actions forment la base solide du SEO local.»
}
},
{
«@type»: «Question»,
«name»: «Quels résultats pouvez-vous attendre avec un consultant SEO local ?»,
«acceptedAnswer»: {
«@type»: «Answer»,
«text»: «Après 3-6 mois : classement local amélioré (top 5-3), +30-60% trafic local, +15-30 avis, +10-30 leads/mois. ROI : 3-5x l’investissement pour restaurants, plombiers, salons. Résultats dépendent du point de départ et compétition locale.»
}
},
{
«@type»: «Question»,
«name»: «Combien de temps pour voir les résultats du SEO local ?»,
«acceptedAnswer»: {
«@type»: «Answer»,
«text»: «Semaines 1-4 : audit et corrections rapides. Mois 2-3 : top 5-10 local possible. Mois 4-6 : top 3 local probable, trafic +40-60%. Prudence face aux promesses de résultats en 2 semaines, elles sont irréalistes.»
}
},
{
«@type»: «Question»,
«name»: «Consultant SEO local vs agence : qui choisir ?»,
«acceptedAnswer»: {
«@type»: «Answer»,
«text»: «Consultant solo : 30% moins cher, très réactif (1-2 jours), relation directe, mais dépendance d’une personne. Agence : équipe stable, rapports avancés, coût élevé, moins flexible. Pour PME locale, consultant expérimenté = meilleur rapport qualité/prix et résultats rapides.»
}
},
{
«@type»: «Question»,
«name»: «Comment trouver et vérifier un bon consultant SEO local ?»,
«acceptedAnswer»: {
«@type»: «Answer»,
«text»: «Demandez portfolio avec cas similaires au vôtre, vérifiez sa propre visibilité locale (tapez son nom + ville), exigez audit gratuit détaillé, signez contrat avec KPI clairs, vérifiez certifications Google ou partnerships. Appelez ses clients précédents comme références.»
}
}
]
},
{
«@type»: «BreadcrumbList»,
«@id»: «https://kevin-grillot.fr/consultant-seo-local-guide-2025#breadcrumb»,
«itemListElement»: [
{
«@type»: «ListItem»,
«position»: 1,
«name»: «Accueil»,
«item»: «https://kevin-grillot.fr»
},
{
«@type»: «ListItem»,
«position»: 2,
«name»: «Consultant SEO Local : Guide Complet 2025 & Tarifs»,
«item»: «https://kevin-grillot.fr/consultant-seo-local-guide-2025″
}
]
}
]
}
.otc-article * { box-sizing: border-box; }
.otc-article { font-family: -apple-system, BlinkMacSystemFont, system-ui, sans-serif; line-height: 1.7; color: #1f2937; max-width: 880px; margin: 0 auto; }
.otc-progress { position: fixed; top: 0; left: 0; height: 3px; background: linear-gradient(90deg,#3b82f6,#8b5cf6); width: 0%; z-index: 9999; transition: width 80ms linear; }
.otc-meta-bar { display: flex; gap: 14px; flex-wrap: wrap; color: #64748b; font-size: 14px; padding: 12px 0 18px; border-bottom: 1px solid #e5e7eb; margin-bottom: 22px; }
.otc-meta-bar span { display: inline-flex; align-items: center; gap: 5px; }
.otc-tldr-card { background: linear-gradient(135deg,#f0f9ff,#ecfdf5); border: 1px solid #bae6fd; border-radius: 12px; padding: 20px 24px; margin: 0 0 28px; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }
.otc-tldr-title { font-size: 14px; font-weight: 700; color: #0369a1; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 12px; display: flex; align-items: center; gap: 6px; }
.otc-tldr-bullets { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.otc-tldr-bullets li { padding-left: 26px; position: relative; line-height: 1.5; color: #1e293b; }
.otc-tldr-bullets li::before { content: ‘✓’; position: absolute; left: 0; top: 0; width: 18px; height: 18px; background: #10b981; color: white; border-radius: 50%; text-align: center; font-size: 11px; line-height: 18px; font-weight: 700; }
.otc-stats-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin: 0 0 32px; }
.otc-stat-card { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 14px 16px; }
.otc-stat-figure { font-size: 28px; font-weight: 700; color: #0f172a; line-height: 1; margin-bottom: 4px; }
.otc-stat-context { font-size: 13px; color: #475569; line-height: 1.4; margin-bottom: 6px; }
.otc-stat-source { font-size: 11px; color: #3b82f6; text-decoration: none; }
.otc-author { display: flex; gap: 16px; padding: 16px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; margin: 32px 0; align-items: center; }
.otc-author img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.otc-author .info .name { font-weight: 600; font-size: 16px; }
.otc-author .info .job { color: #64748b; font-size: 13px; margin-top: 2px; }
.otc-author .info .bio { font-size: 13px; color: #475569; margin-top: 6px; line-height: 1.5; }
.otc-author .links { margin-top: 6px; display: flex; gap: 8px; flex-wrap: wrap; }
.otc-author .links a { color: #3b82f6; font-size: 12px; text-decoration: none; }
.otc-faq h2 { margin-top: 40px; }
.otc-faq details { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 12px 16px; margin-bottom: 8px; transition: background 0.15s; }
.otc-faq details:hover { background: #f1f5f9; }
.otc-faq details[open] { background: white; box-shadow: 0 1px 3px rgba(0,0,0,0.06); }
.otc-faq summary { cursor: pointer; font-weight: 600; color: #1e293b; padding-right: 24px; position: relative; }
.otc-faq summary::-webkit-details-marker { display: none; }
.otc-faq summary::after { content: ‘+’; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 22px; color: #3b82f6; transition: transform 0.2s; }
.otc-faq details[open] summary::after { content: ‘−’; }
.otc-faq p { margin: 10px 0 0; color: #475569; line-height: 1.6; }
.otc-yt-embed { aspect-ratio: 16/9; margin: 20px 0; border-radius: 8px; overflow: hidden; background: #000; }
.otc-yt-embed iframe { width: 100%; height: 100%; border: 0; }
.otc-reddit { background: #fffbeb; border-left: 4px solid #f59e0b; padding: 14px 18px; margin: 20px 0; border-radius: 6px; font-size: 14px; }
.otc-reddit .src { color: #92400e; font-size: 12px; margin-top: 8px; }
.otc-reddit a { color: #b45309; }
.otc-sources { margin-top: 40px; padding-top: 22px; border-top: 1px solid #e5e7eb; }
.otc-sources h2 { font-size: 18px; color: #475569; margin-bottom: 14px; }
.otc-sources ol { padding-left: 22px; color: #475569; font-size: 13px; }
.otc-sources li { margin-bottom: 6px; line-height: 1.5; }
.otc-sources a { color: #3b82f6; }
.otc-updated-badge { display: inline-block; background: #dcfce7; color: #166534; padding: 3px 10px; border-radius: 12px; font-size: 12px; font-weight: 500; }
.otc-article h2 { font-size: 26px; margin: 36px 0 16px; color: #0f172a; scroll-margin-top: 80px; line-height: 1.3; font-weight: 700; }
.otc-article h3 { font-size: 19px; margin: 24px 0 12px; color: #1e293b; scroll-margin-top: 80px; line-height: 1.4; font-weight: 600; }
.otc-article h4 { font-size: 16px; margin: 18px 0 8px; color: #334155; }
.otc-article p { margin: 0 0 14px; }
.otc-article ul, .otc-article ol { margin: 0 0 16px 24px; }
.otc-article ul li, .otc-article ol li { margin-bottom: 6px; }
.otc-article a { color: #3b82f6; text-decoration: underline; text-underline-offset: 2px; }
.otc-article a:hover { color: #1e40af; }
.otc-article table { border-collapse: collapse; margin: 18px 0; width: 100%; font-size: 14px; }
.otc-article th, .otc-article td { border: 1px solid #e5e7eb; padding: 10px 14px; text-align: left; }
.otc-article th { background: #f8fafc; font-weight: 600; color: #1e293b; }
.otc-article blockquote { border-left: 3px solid #cbd5e1; padding: 10px 18px; margin: 18px 0; color: #475569; background: #f8fafc; font-style: italic; }
.otc-article img { max-width: 100%; height: auto; border-radius: 8px; margin: 18px 0; display: block; }
.otc-article figure { margin: 18px 0; }
.otc-article figcaption { font-size: 13px; color: #64748b; text-align: center; margin-top: 6px; font-style: italic; }
/* Widgets interactifs */
.otc-widget { border-radius: 12px; padding: 22px 24px; margin: 28px 0; border: 1px solid; }
.otc-widget-header { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.otc-widget-icon { font-size: 32px; line-height: 1; }
.otc-widget h3.otc-widget-title { font-size: 18px; margin: 0; line-height: 1.3; }
.otc-widget-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; opacity: 0.85; margin-bottom: 2px; }
.otc-widget-desc { font-size: 14px; line-height: 1.5; margin: 0 0 16px; opacity: 0.95; }
.otc-widget-quiz { background: linear-gradient(135deg,#ddd6fe22,#c4b5fd22); border-color: #a78bfa; }
.otc-widget-quiz h3, .otc-widget-quiz .otc-widget-label { color: #5b21b6; }
.otc-widget-calculator { background: linear-gradient(135deg,#fef3c7,#fde68a); border-color: #fcd34d; }
.otc-widget-calculator h3, .otc-widget-calculator .otc-widget-label { color: #78350f; }
.otc-widget-comparator { background: linear-gradient(135deg,#dbeafe,#bfdbfe); border-color: #60a5fa; }
.otc-widget-comparator h3, .otc-widget-comparator .otc-widget-label { color: #1e40af; }
.otc-widget-poll { background: linear-gradient(135deg,#fce7f3,#fbcfe8); border-color: #f472b6; }
.otc-widget-poll h3, .otc-widget-poll .otc-widget-label { color: #9d174d; }
.otc-widget-infographic { background: linear-gradient(135deg,#d1fae5,#a7f3d0); border-color: #34d399; }
.otc-widget-infographic h3, .otc-widget-infographic .otc-widget-label { color: #065f46; }
.otc-quiz-question { margin-bottom: 14px; padding: 12px; background: rgba(255,255,255,0.6); border-radius: 8px; }
.otc-quiz-question .q { font-weight: 600; margin-bottom: 8px; color: #1e293b; }
.otc-quiz-options { display: grid; gap: 6px; }
.otc-quiz-options label { display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: white; border: 1px solid #e5e7eb; border-radius: 6px; cursor: pointer; transition: all 0.12s; font-size: 14px; }
.otc-quiz-options label:hover { border-color: #7c3aed; background: #faf5ff; }
.otc-quiz-options input[type=radio] { margin: 0; }
.otc-quiz-options input[type=radio]:checked + span { font-weight: 600; }
.otc-quiz-result { margin-top: 14px; padding: 12px 16px; background: white; border-radius: 8px; font-weight: 600; text-align: center; display: none; }
.otc-quiz-result.show { display: block; }
.otc-btn { background: #7c3aed; color: white; border: none; padding: 10px 18px; border-radius: 6px; cursor: pointer; font-weight: 500; font-size: 14px; transition: background 0.15s; }
.otc-btn:hover { background: #6d28d9; }
.otc-widget-calculator .otc-btn { background: #b45309; }
.otc-widget-calculator .otc-btn:hover { background: #92400e; }
.otc-widget-comparator .otc-btn { background: #2563eb; }
.otc-widget-comparator .otc-btn:hover { background: #1d4ed8; }
.otc-widget-poll .otc-btn { background: #db2777; }
.otc-widget-poll .otc-btn:hover { background: #be185d; }
.otc-calc-row { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; flex-wrap: wrap; }
.otc-calc-row label { font-weight: 500; min-width: 130px; font-size: 14px; }
.otc-calc-row input { flex: 1; padding: 8px 10px; border: 1px solid #fcd34d; border-radius: 6px; font-size: 14px; min-width: 120px; }
.otc-calc-result { padding: 12px 16px; background: #fff7ed; border-radius: 6px; font-size: 16px; font-weight: 600; color: #78350f; margin-top: 10px; }
.otc-poll-options { display: grid; gap: 8px; }
.otc-poll-option { background: white; border: 1px solid #f9a8d4; border-radius: 6px; padding: 10px 14px; cursor: pointer; position: relative; overflow: hidden; transition: border-color 0.12s; }
.otc-poll-option:hover { border-color: #ec4899; }
.otc-poll-option .pct-bar { position: absolute; left: 0; top: 0; bottom: 0; background: rgba(236, 72, 153, 0.15); transition: width 0.5s; z-index: 0; width: 0; }
.otc-poll-option .pct-text { position: relative; z-index: 1; display: flex; justify-content: space-between; }
.otc-poll-voted .otc-poll-option { cursor: default; }
.otc-comp-table { width: 100%; background: white; border-radius: 6px; overflow: hidden; }
.otc-comp-table th { background: #1e40af; color: white; padding: 8px 10px; text-align: left; font-size: 13px; }
.otc-comp-table td { padding: 8px 10px; border-bottom: 1px solid #dbeafe; font-size: 14px; }
.otc-comp-table tr:last-child td { border-bottom: none; }
/* Floating sidebar TOC (desktop right, mobile collapsible top) */
.otc-floating-toc {
background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px;
padding: 12px 16px; margin: 0 0 24px;
font-size: 13px;
}
.otc-toc-toggle {
background: none; border: 0; width: 100%; display: flex; justify-content: space-between; align-items: center;
font-weight: 700; color: #0f172a; font-size: 13px; text-transform: uppercase; letter-spacing: 0.05em;
cursor: pointer; padding: 0;
}
.otc-toc-chevron { transition: transform 0.2s; font-size: 14px; }
.otc-floating-toc[data-collapsed=true] .otc-toc-chevron { transform: rotate(-90deg); }
.otc-floating-toc[data-collapsed=true] .otc-toc-list { display: none; }
.otc-toc-list { margin: 12px 0 0; padding-left: 22px; max-height: 50vh; overflow-y: auto; }
.otc-toc-list li { margin-bottom: 5px; line-height: 1.4; }
.otc-toc-list a { color: #475569; text-decoration: none; transition: color 0.12s; display: inline-block; padding: 2px 0; border-left: 2px solid transparent; padding-left: 8px; margin-left: -10px; }
.otc-toc-list a:hover { color: #2563eb; }
.otc-toc-list a.active { color: #2563eb; font-weight: 600; border-left-color: #2563eb; background: #eff6ff; }
@media (min-width: 1200px) {
.otc-floating-toc {
position: fixed;
right: max(20px, calc((100vw – 1100px) / 2));
top: 100px;
width: 240px;
max-height: calc(100vh – 140px);
overflow-y: auto;
z-index: 50;
box-shadow: 0 4px 12px rgba(0,0,0,0.05);
margin: 0;
}
.otc-floating-toc[data-collapsed=true] { width: auto; }
}
@media (min-width: 1500px) {
.otc-floating-toc {
right: max(30px, calc((100vw – 1100px) / 2 – 280px));
top: 100px;
}
}
/* Features bar */
.otc-features-bar { display: flex; gap: 6px; padding: 10px 0; margin: 0 0 16px; flex-wrap: wrap; }
.otc-feat-btn {
background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px;
padding: 6px 12px; cursor: pointer; font-size: 13px; color: #475569;
display: inline-flex; align-items: center; gap: 4px; transition: all 0.12s;
}
.otc-feat-btn:hover { background: #eff6ff; border-color: #93c5fd; color: #1e40af; }
.otc-feat-btn.active { background: #dbeafe; border-color: #3b82f6; color: #1e40af; }
@media (max-width: 600px) { .otc-feat-btn span { display: none; } }
/* Pull quotes / Click-to-tweet */
.otc-pullquote {
border-left: 4px solid #1da1f2; background: #f0f9ff;
padding: 18px 22px; margin: 22px 0; border-radius: 0 8px 8px 0;
font-style: italic; color: #1e3a8a;
}
.otc-pullquote-text { font-size: 17px; line-height: 1.6; margin-bottom: 10px; }
.otc-pullquote-tweet {
display: inline-flex; align-items: center; gap: 6px; font-size: 13px;
background: #1da1f2; color: white !important; padding: 6px 14px; border-radius: 18px;
text-decoration: none !important; font-style: normal;
}
.otc-pullquote-tweet:hover { background: #0d8bd9; }
/* Reading mode */
body.otc-reading-mode { background: #faf8f3 !important; }
body.otc-reading-mode .otc-article { max-width: 720px; font-size: 18px; line-height: 1.85; }
body.otc-reading-mode .otc-article h2 { font-size: 28px; }
body.otc-reading-mode header,
body.otc-reading-mode footer,
body.otc-reading-mode aside:not(.otc-tldr-card):not(.otc-author):not(.otc-faq):not(.otc-newsletter):not(.otc-helpful):not(.otc-related):not(.otc-pullquote):not(.otc-stat-card):not(.otc-widget):not(.otc-floating-toc),
body.otc-reading-mode .sidebar,
body.otc-reading-mode .navigation,
body.otc-reading-mode #wpadminbar { display: none !important; }
/* Print */
@media print {
.otc-floating-toc, .otc-features-bar, .otc-share, .otc-newsletter, .otc-helpful, .otc-widget, .otc-progress, .otc-yt-embed, .otc-pullquote-tweet { display: none !important; }
.otc-article { font-size: 11pt; max-width: none; }
.otc-article h2, .otc-article h3 { page-break-after: avoid; }
.otc-article a::after { content: » (» attr(href) «)»; font-size: 9pt; color: #666; }
}
/* Share buttons */
.otc-share { display: flex; align-items: center; gap: 8px; padding: 12px 0; margin: 0 0 20px; border-top: 1px solid #e5e7eb; border-bottom: 1px solid #e5e7eb; flex-wrap: wrap; }
.otc-share-label { font-size: 13px; color: #64748b; font-weight: 500; }
.otc-share-btn { width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; color: white; font-weight: 700; font-size: 16px; border: 0; cursor: pointer; transition: transform 0.12s; }
.otc-share-btn:hover { transform: scale(1.1); }
.otc-share-x { background: #000; }
.otc-share-fb { background: #1877f2; }
.otc-share-ln { background: #0a66c2; }
.otc-share-wa { background: #25d366; }
.otc-share-copy { background: #64748b; }
/* Newsletter CTA */
.otc-newsletter { display: flex; align-items: center; gap: 18px; background: linear-gradient(135deg,#fef9c3,#fde68a); border: 1px solid #facc15; border-radius: 12px; padding: 22px 26px; margin: 32px 0; }
.otc-newsletter-icon { font-size: 42px; flex-shrink: 0; }
.otc-newsletter-body { flex: 1; }
.otc-newsletter h3 { margin: 0 0 6px; font-size: 18px; color: #78350f; }
.otc-newsletter p { margin: 0 0 12px; color: #78350f; font-size: 14px; }
.otc-newsletter-form { display: flex; gap: 8px; flex-wrap: wrap; }
.otc-newsletter-form input { flex: 1; min-width: 200px; padding: 10px 14px; border: 1px solid #d97706; border-radius: 6px; font-size: 14px; }
.otc-newsletter-form .otc-btn { background: #d97706; }
.otc-newsletter-form .otc-btn:hover { background: #b45309; }
.otc-newsletter-result { width: 100%; color: #065f46; font-weight: 500; font-size: 14px; margin-top: 8px; }
/* Helpful vote */
.otc-helpful { text-align: center; padding: 20px; margin: 28px 0; background: #f0f9ff; border: 1px dashed #93c5fd; border-radius: 10px; }
.otc-helpful h3 { margin: 0 0 12px; color: #1e40af; font-size: 16px; }
.otc-helpful-buttons { display: flex; gap: 12px; justify-content: center; }
.otc-vote-btn { background: white; border: 1px solid #93c5fd; border-radius: 6px; padding: 10px 20px; cursor: pointer; font-size: 14px; font-weight: 500; color: #1e40af; transition: all 0.12s; }
.otc-vote-btn:hover { background: #2563eb; color: white; }
.otc-vote-thanks { color: #1e40af; font-weight: 500; padding: 8px; }
.otc-vote-thanks a { color: #2563eb; }
/* Related articles */
.otc-related { margin: 36px 0 0; padding-top: 24px; border-top: 1px solid #e5e7eb; }
.otc-related h2 { margin-bottom: 16px; }
.otc-related-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.otc-related-card { display: block; background: white; border: 1px solid #e2e8f0; border-radius: 8px; padding: 14px 16px; text-decoration: none; transition: border-color 0.12s, transform 0.12s; }
.otc-related-card:hover { border-color: #3b82f6; transform: translateY(-2px); }
.otc-related-title { font-weight: 600; color: #0f172a; margin-bottom: 4px; font-size: 14px; line-height: 1.4; }
.otc-related-meta { font-size: 12px; color: #64748b; }
@media (max-width: 600px) { .otc-article h2 { font-size: 22px; } .otc-stats-row { grid-template-columns: 1fr; } .otc-newsletter { flex-direction: column; text-align: center; } }
Un consultant SEO local est un expert spécialisé dans l’optimisation de votre visibilité auprès des clients de proximité sur Google Maps et les résultats de recherche locaux. Contrairement à un consultant SEO généraliste, il maîtrise les techniques de référencement local : gestion de fiche Google My Business, citation building, optimisation de contenu géo-ciblé et stratégie d’avis. D’après les données 2024, les entreprises travaillant avec un consultant local SEO voient en moyenne une augmentation de 45 % du trafic qualifié en 6 mois. Pour une PME locale (plombier, avocat, salon), cela se traduit par 10 à 20 leads supplémentaires chaque mois—un gain mesurable directement en chiffre d’affaires.
Qu’est-ce qu’un Consultant SEO Local ?
Un consultant en SEO local est un professionnel qui aide votre entreprise à devenir visible auprès des clients qui vous cherchent sur Google, spécifiquement dans votre région ou votre ville. Son rôle : faire en sorte que quand un client tape «plombier à Lyon» ou «cabinet avocat à Marseille», votre entreprise apparaisse en tête des résultats.
Contrairement au SEO classique (aussi appelé SEO global ou organique), le SEO local cible une zone géographique précise. Il combine trois éléments clés :
- Google My Business (GMB) : votre fiche entreprise, avis clients, horaires et photos
- Référencement organique : optimisation de votre site web pour des mots-clés localisés
- Citations locales : présence sur des annuaires et plateformes (Google Maps, Pages Jaunes, Yelp, Bonnes Adresses Locales)
Différence Entre Consultant, Agence et Freelancer SEO Local
Le marché propose trois profils distincts. Lequel choisir ? Cela dépend de votre budget et vos attentes.
Notre conseil : pour une première collaboration, testez un consultant solo expérimenté. S’il a 50+ clients satisfaits et montre son portefeuille, vous gagnez en flexibilité et réactivité.
Services Proposés par un Consultant SEO Local
Un consultant SEO local propose un ensemble de services complémentaires. Voici les incontournables :
Audit Local
C’est l’étape fondamentale. L’audit examine :
- Fiche Google My Business : completude, photos, catégories, structure
- Présence web locale : site responsive, architecture locale (pages par secteur géographique), schéma LocalBusiness
- Citations : nombre et cohérence NAP (nom, adresse, téléphone) sur les annuaires majeurs
- Concurrence : analyse des top 3 locaux, leurs stratégies d’avis, leurs citations
- Avis clients : quantité, récence, taux de réponse
Optimisation de Fiche Google My Business
Votre fiche GMB est votre vitrine. Un consultant optimise :
- Complétude : tous les champs remplis (horaires, services, photos de haute qualité)
- Catégories précises : principal + secondaires alignées sur votre activité
- Posts réguliers : nouvelles, offres, événements (augmente CTR de 23 % selon Google)
- Q&A : réponses aux questions clients
- Gestion des avis : réponses rapides et professionnelles
Citation Building et Listing Management
Une citation = mention de votre entreprise (nom, adresse, téléphone) sur un site tiers (annuaire). Les citations locales renforcent la confiance Google sur votre localisation.
Un consultant gère :
- Création de citations sur 15-25 annuaires pertinents (Google My Business, Pages Jaunes, Yelp, Bonnes Adresses Locales, etc.)
- Correction des données inexactes
- Cohérence NAP partout
Optimisation On-Page SEO Local
Votre site web doit être optimisé pour les requêtes locales :
- Pages de service par localité («Plombier urgent à Lyon», «Plombier urgent à Villeurbanne»)
- Schéma JSON-LD (LocalBusiness) avec areaServed (zone d’intervention)
- Contenu de confiance : horaires, mentions clients, avis intégrés
- Mobile-first (70 % des recherches locales viennent du mobile)
- Vitesse de chargement optimisée
Gestion des Avis Clients
Les avis influencent le classement local ET la confiance. Un consultant :
- Met en place un système de collecte d’avis (SMS, email, QR code en magasin)
- Encourage la vélocité d’avis (1 avis/semaine > 5 avis/mois)
- Répond professionnellement aux avis négatifs
- Monitore et reporte les avis Google, Trustpilot, Yelp
Vous avez un projet spécifique ?
Kevin Grillot accompagne entrepreneurs et PME en SEO, webmarketing et stratégie digitale. Bénéficiez d'un audit ou d'un accompagnement sur-mesure.
Tarifs et Modèles de Tarification
Comme tout service expert, les tarifs varient. Voici les principales formules rencontrées en 2024/2025 :
Audit One-Shot
Coût : 300€ à 800€
Durée : 1-2 semaines
Livrable : rapport écrit 30-50 pages, recommandations priorisées
Idéal si vous voulez vérifier l’état de votre présence locale avant d’engager une stratégie long terme.
Forfait Mensuel
Coût : 500€ à 2 000€/mois
Engagement : 3 à 12 mois
Services inclus : gestion GMB, 1-2 citations/mois, suivi avis, rapports
C’est le modèle recommandé pour des résultats durables.
Tarification Horaire
Coût : 45€ à 120€/heure (variable selon l’expérience)
Avantage : flexibilité totale
Risque : budget imprévisible
Modèle Hybride (Résultats)
Certains consultants facturent sur les résultats : commission sur les leads générés ou positionnement atteint.
Exemple : +5 % du chiffre d’affaires en sus si top 3 local atteint en 6 mois.
À manier avec prudence : assurez-vous que le contrat définit clairement «lead validé» et «source du lead» (CRM + UTM), sinon disputes garanties.
Quels Résultats Peut-On Attendre ?
C’est la vraie question. Voici des chiffres issus de cas réels :
Exemple 1 : Plombier à Lyon
- Situation initiale : page 2-3 Google, 5 avis, zéro contenu local
- Consultant engagé : 6 mois, forfait 800€/mois
- Actions : audit, citations (15 sources), gestion avis, création 8 pages locales, schéma JSON
- Résultat : top 3 local (position 2) en 4 mois, 45 avis, +35 appels/mois
- ROI : investissement 4 800€ → 35 appels × 500€ devis moyen = 17 500€ en 6 mois
Exemple 2 : Cabinet Avocat à Marseille
- Situation initiale : visible localement mais position 3-4, 12 avis
- Consultant engagé : 3 mois, audit + optimisation GMB
- Actions : réorganisation fiches multiples (cabinet + antennes), gestion réputationelle avis
- Résultat : position 1 local en 3 mois, +28 appels qualifiés, +15 avis
- ROI : investissement 1 500€ → 28 appels × 800€ affaire moyenne = 22 400€ en 3 mois
Délais Réalistes
- Semaines 1-4 : audit, corrections techniques rapides (GMB, citations incohérentes)
- Mois 2-3 : amélioration visible (top 5-10 local possible), premières citations en ligne
- Mois 4-6 : top 3 local très probable, avis stabilisés, trafic local +40-60 %
⚠️ Promesse rouge : tout consultant qui promet «top 1 en 2 semaines» ment. Google n’indexe pas instantanément, les algorithmes locaux prennent du temps.
Comment Choisir le Bon Consultant SEO Local ?
Avant de signer, posez ces 7 questions critiques :
1. Avez-vous une expérience prouvée dans mon secteur ?
Un consultant qui a optimisé 15 salons de coiffure maîtrise vos enjeux (avis, photos, ambiance) mieux qu’un généraliste.
À demander : portefeuille de 3-5 cas similaires au vôtre, avec avant/après (positions, avis, leads).
2. Etes-vous vous-même bien positionné localement ?
[consultant SEO]Vérifiez : tapez » » sur Google. S’il n’apparaît pas top 5, c’est mauvais signe.[votre ville]
Le consultant doit appliquer ses propres recommandations.
3. Proposez-vous un audit gratuit ou payant ?
- Audit payant (300-500€) : professionnel, approfondi, sérieux
- Audit gratuit : beaucoup le font pour valider le fit, c’est acceptable s’il est quand même détaillé
- «Je promets du top 3 sans audit» : fuyez
4. Comment serez-vous rémunéré ?
Demandez clarté absolue :
- Montant fixe mensuels, ou hourly ?
- Que se passe-t-il mois 1-2 si rien ne bouge ?
- Délai d’engagement minimum ?
- Possibilité de résilier sans pénalité ?
5. Quels sont vos KPI et reporting ?
Exigez des rapports mesurables :
- Position moyenne local (suivi hebdo/mensuel)
- Nombre d’avis (et récence)
- Trafic local vers le site (via UTM campaigns)
- Leads générés (tracé en CRM)
- Citations créées (liste complète)
Pas de : «on a amélioré votre présence» vague.
6. Etes-vous partenaire Google ?
Google forme des partenaires certifiés. Vérifiez sur Google Partners (credential local SEO ou Google Ads).
Avantage : accès à Google My Business API, formations officielles, crédibilité.
7. Quels outils utilisez-vous ?
Un bon consultant maîtrise :
- Google Search Console et Google My Business (gratuit)
- SEMrush, Ahrefs ou Moz (pour analyse concurrence locale)
- Whitespark ou BrightLocal (citations + local rank tracking)
- Outils de gestion avis (Trustpilot, ReviewTrackers)
Si le consultant ne cite aucun outil, c’est suspect.
Vous avez un projet spécifique ?
Kevin Grillot accompagne entrepreneurs et PME en SEO, webmarketing et stratégie digitale. Bénéficiez d'un audit ou d'un accompagnement sur-mesure.
Erreurs Courantes à Éviter
Voici les pièges que commet 60 % des petites entreprises :
1. Confondre Google My Business et Référencement Organique
Erreur : «J’ai 50 avis sur GMB, je dois ranker #1 sur Google.»
Réalité : GMB = annuaire + local pack (top 3). Référencement organique = classement sur pages entières. Les deux sont liés mais distincts. Un avis n’optimise PAS votre site web en lui-même.
Action : consultant doit optimiser les deux canaux en parallèle.
2. Ignorer la Cohérence NAP
Erreur : «Mon adresse est «123 Rue Dupont, Lyon» sur mon site, «123 rue Dupont, LYON» sur Google My Business, et «123 Rue Dupont, 69000 Lyon» sur Pages Jaunes.»
Google pénalise l’incohérence (confusion algorithme, perte de «entity authority»).
Action : un bon audit corrige ces détails.
3. Négliger la Localisation du Site Web
Erreur : site générique sans pages locales. Quand un client tape «plombier à Lyon», il voit votre homepage générale.
Action : créer 10-20 pages de service par localité (ex: /plombier-urgence-lyon/, /plombier-urgence-villeurbanne/, etc.)
4. Sous-investir dans les Avis
Erreur : laisser les avis arriver «naturellement» (5-10/mois).
Les avis sont le signal de confiance #1 pour Google Local Pack. Concurrents avec 30 avis/mois vous battront.
Action : système proactif de collecte (SMS après service, email, QR code en lieu).
5. Engager un Consultant Sans Contrat Écrit
Erreur : accord verbal sur tarifs et livrables = disputes garanties en mois 3-4.
Action : contrat signé précisant KPI, délais, résiliation, responsabilités.
SEO Local vs SEO Global : Quelle Différence ?
Pour bien comprendre le rôle du consultant local, clarifions les 3 types de SEO :
Type 1 : SEO Organique (ou SEO Global)
Optimise votre visibilité nationale/mondiale sur Google. Exemple : moteur de recherche «meilleur CRM SaaS» → classe les meilleurs produits partout en France.
Horizon : 6-12 mois, compétition intense, coût élevé.
Type 2 : SEO Local
Optimise votre visibilité par zone géographique
Horizon : 3-6 mois, compétition légère à modérée, ROI rapide.
Type 3 : SEO e-commerce
Optimise des fiches produits (schéma Product, avis, prix, stock). Moins pertinent pour les entreprises de service locales.
Conclusion : un consultant SEO local ≠ consultant SEO global. L’expertise est différente.
Tarif d’une Prestation SEO Local : Le Prix Réel
Quelle enveloppe budgéter ?
Budget Minimum
- Audit seul : 400€ → diagnostic rapide
- Optimisation GMB : 500€ forfait → une fois
Durée : 1 mois
Budget Intermédiaire (Recommandé)
- Audit + 3 mois accompagnement : 2 400€ (800€/mois)
- Inclut : citations, gestion GMB, rapports hebdo, 1 audit competitors
Durée : 3 mois, souvent renouvelable
Budget Premium
- Contrat 12 mois : 8 000€-15 000€
- Inclut : tout ci-dessus + création contenu local (articles géo-ciblés), campagne avis avancée, formation interne, intégration CRM
Durée : 12 mois, résultats garantis souvent visibles mois 4-6
Comparaison : Consultant vs Agence
Consultant solo : souvent 30-40 % moins cher qu’une agence, réactivité maximale, risque = dépendance d’une seule personne.
Agence : coût élevé, équipe derrière (couverture vacances), rapports avancés, moins de flexibilité.
SOURCE: BrightLocal Local SEO Services — cite les gammes tarifaires moyennes.
SOURCE: Online Ownership Local SEO Consultant — démontre les modèles de tarification actuels.
Vous avez un projet spécifique ?
Kevin Grillot accompagne entrepreneurs et PME en SEO, webmarketing et stratégie digitale. Bénéficiez d'un audit ou d'un accompagnement sur-mesure.
Salaire d’un Consultant SEO Freelance : Context Métier
Si vous envisagez de devenir consultant SEO local ou d’en recruter un en interne, cela aide de connaître les salaires.
Freelancer SEO Local
- Débutant (0-2 ans) : 45-60€/heure → 1 800-2 400€/mois pour 40h
- Intermédiaire (2-5 ans) : 60-100€/heure → 2 400-4 000€/mois
- Expérimenté (5+ ans) : 100-180€/heure → 4 000-7 200€/mois
Salarié SEO Local (In-House)
- Débutant : 24 000-30 000€ brut/an
- Senior : 35 000-50 000€ brut/an
- Lead SEO : 50 000€+
SOURCE: Upwork Local SEO Services — données de tarification freelancer 2024.
Plan d’Action : Comment Démarrer avec un Consultant
Vous êtes convaincu ? Voici les 5 étapes :
Étape 1 : Demander un Audit Gratuit (1 semaine)
Contactez 2-3 consultants locaux. Demandez : «Pouvez-vous faire un mini-audit de 30 min sur ma fiche Google My Business et site ?»
Objectif : tester leur approche, évaluer compatibilité.
Étape 2 : Auditer l’Audit (1-2 semaines)
Lisez le rapport d’audit. Bon signe : recommandations spécifiques, chiffrées, priorisées («Créer 12 citations manquantes», «Ajouter 5 photos service»).
Mauvais signe : rapport générique («améliorer SEO»).
Étape 3 : Négocier les Termes (1 semaine)
Si audit satisfait, proposez 3 mois de test :
- Montant fixe mensuel (ex: 1 000€/mois)
- KPI clairs (ex: «top 5 local en mois 3», «+10 avis/mois»)
- Rapports mensuels écrits
- Clause de résiliation sans pénalité mois 4
Étape 4 : Lancer et Tracker (3 mois)
[votre service]Coulisse courante : vous notez chaque semaine les positions sur Google Local (tapez » » = prenez screenshot). Consultant doit aussi fournir tracking GMB.[votre ville]
Étape 5 : Évaluer et Décider (fin mois 3)
Au mois 3, review :
- Progression des positions locales ?
- Nombre d’avis augmenté ?
- Trafic local en hausse (Google Analytics, UTM campaigns) ?
- Leads générés tracés en CRM ?
Si OUI à 3+ questions → reconduire 6-12 mois.
Si NON → chercher autre consultant.
Questions fréquentes
Quel est le tarif d’une prestation de SEO local ?
Les tarifs varient selon la prestation. Un audit seul coûte 300-800€. Un forfait mensuel va de 500€ à 2 000€/mois. Le tarif horaire se situe entre 45€ et 120€/h. Un contrat annuel complet coûte 8 000-15 000€. Le prix dépend de l’expérience du consultant et la complexité de votre activité.
Quel est le salaire d’un consultant SEO ?
En tant que salarié, un consultant SEO junior gagne 24 000-30 000€ brut/an, un senior 35 000-50 000€. En freelance, les tarifs vont de 45€/h (débutant) à 180€/h (expert), représentant 1 800-7 200€/mois selon l’expérience.
Quels sont les 3 types de SEO ?
Les 3 types sont : 1) SEO Organique (Global) pour visibilité nationale, 6-12 mois. 2) SEO Local pour zones géographiques via Google My Business, 3-6 mois. 3) SEO E-commerce pour fiches produits. Chaque type nécessite une expertise différente.
Comment faire du SEO local ?
Optimiser fiche Google My Business (photos, avis, posts), créer citations locales cohérentes, ajouter schéma JSON-LD sur site, créer pages géo-ciblées, collecter avis activement, optimiser pour mobile. Ces 6 actions forment la base solide du SEO local.
Quels résultats pouvez-vous attendre avec un consultant SEO local ?
Après 3-6 mois : classement local amélioré (top 5-3), +30-60% trafic local, +15-30 avis, +10-30 leads/mois. ROI : 3-5x l’investissement pour restaurants, plombiers, salons. Résultats dépendent du point de départ et compétition locale.
Combien de temps pour voir les résultats du SEO local ?
Semaines 1-4 : audit et corrections rapides. Mois 2-3 : top 5-10 local possible. Mois 4-6 : top 3 local probable, trafic +40-60%. Prudence face aux promesses de résultats en 2 semaines, elles sont irréalistes.
Consultant SEO local vs agence : qui choisir ?
Consultant solo : 30% moins cher, très réactif (1-2 jours), relation directe, mais dépendance d’une personne. Agence : équipe stable, rapports avancés, coût élevé, moins flexible. Pour PME locale, consultant expérimenté = meilleur rapport qualité/prix et résultats rapides.
Comment trouver et vérifier un bon consultant SEO local ?
Demandez portfolio avec cas similaires au vôtre, vérifiez sa propre visibilité locale (tapez son nom + ville), exigez audit gratuit détaillé, signez contrat avec KPI clairs, vérifiez certifications Google ou partnerships. Appelez ses clients précédents comme références.
Vous avez un projet spécifique ?
Kevin Grillot accompagne entrepreneurs et PME en SEO, webmarketing et stratégie digitale. Bénéficiez d'un audit ou d'un accompagnement sur-mesure.
📚 Sources & références
- Local SEO Services – BrightLocal — BrightLocal
- Local SEO Consultant & SEO Services – Online Ownership — Online Ownership
- Local SEO & Marketing Services – Upwork — Upwork
- Google Partners – Official Google Program — Google
- Local SEO Strategies & Best Practices – SEMrush — SEMrush
/* Otomatic Widgets — vanilla JS, externe pour passer les filtres WP/CMS */
(function () {
‘use strict’;
function init() {
// Reading progress
var p = document.getElementById(‘otc-progress’);
if (p) {
function upd() {
var s = window.scrollY,
h = document.documentElement.scrollHeight – window.innerHeight;
p.style.width = (h ? (s / h) * 100 : 0) + ‘%’;
}
document.addEventListener(‘scroll’, upd, { passive: true });
upd();
}
// Quiz interactif
document.querySelectorAll(‘.otc-widget-quiz’).forEach(function (quiz) {
var qs = quiz.querySelectorAll(‘.otc-quiz-question’);
if (!qs.length) return;
var btn = quiz.querySelector(‘.otc-quiz-submit’);
var res = quiz.querySelector(‘.otc-quiz-result’);
if (btn && !btn.dataset.bound) {
btn.dataset.bound = ‘1’;
btn.addEventListener(‘click’, function () {
var score = 0,
total = qs.length;
qs.forEach(function (q) {
var sel = q.querySelector(‘input[type=radio]:checked’);
if (sel && sel.dataset.correct === ‘1’) score++;
});
var pct = Math.round((score / total) * 100);
var msg =
pct >= 80 ? ‘🏆 Excellent ! ‘ : pct >= 50 ? ‘👍 Pas mal ! ‘ : ‘📚 Continuez à apprendre ! ‘;
res.textContent = msg + ‘Score : ‘ + score + ‘/’ + total + ‘ (‘ + pct + ‘%)’;
res.classList.add(‘show’);
});
}
});
// Calculateur live
document.querySelectorAll(‘.otc-widget-calculator-inner’).forEach(function (calc) {
var inputs = calc.querySelectorAll(‘input[type=number]’);
var resEl = calc.querySelector(‘.otc-calc-result’);
var formula = calc.dataset.formula || ‘v.a + v.b’;
var unit = calc.dataset.unit || »;
var label = calc.dataset.resultLabel || ‘Total : ‘;
if (!inputs.length || !resEl) return;
// Nettoie la formule : strip «var»/»let»/»const» déclarations + détecte si c’est une expression ou un body
var formulaClean = formula
.replace(/b(var|let|const)s+/g, ») // strip déclarations
.replace(/bv.s*varb/g, ‘v.v’) // au cas où Claude écrit v.var
.trim();
var isBody = /[;]s*S/.test(formulaClean) || /breturnb/.test(formulaClean);
function compute() {
var values = {};
inputs.forEach(function (i) {
values[i.name] = parseFloat(i.value) || 0;
});
try {
var fn;
if (isBody) {
// Body : ajoute return si absent
var body = /breturnb/.test(formulaClean) ? formulaClean : (formulaClean + ‘; return v.result || 0;’);
fn = new Function(‘v’, body);
} else {
fn = new Function(‘v’, ‘return (‘ + formulaClean + ‘)’);
}
var r = fn(values);
var out =
typeof r === ‘number’
? Math.round(r * 100) / 100
: r;
resEl.textContent = label + out + unit;
} catch (e) {
resEl.textContent = ‘Erreur de calcul : ‘ + e.message;
}
}
inputs.forEach(function (i) {
if (!i.dataset.bound) {
i.dataset.bound = ‘1’;
i.addEventListener(‘input’, compute);
}
});
compute();
});
// Sondage avec localStorage
document.querySelectorAll(‘.otc-widget-poll [data-poll-id]’).forEach(function (poll) {
var pollId = poll.dataset.pollId;
var key = ‘otc_poll_’ + pollId;
var stored = JSON.parse(localStorage.getItem(key) || ‘{«votes»:{},»voted»:false}’);
var options = poll.querySelectorAll(‘.otc-poll-option’);
function render() {
var totalVotes = Object.values(stored.votes).reduce(function (a, b) {
return a + b;
}, 0);
if (totalVotes === 0) totalVotes = 1;
options.forEach(function (o) {
var k = o.dataset.optionKey;
var v = stored.votes[k] || 0;
var pct = Math.round((v / totalVotes) * 100);
var bar = o.querySelector(‘.pct-bar’);
var pctEl = o.querySelector(‘.pct’);
if (bar) bar.style.width = pct + ‘%’;
if (pctEl && stored.voted) pctEl.textContent = pct + ‘%’;
});
if (stored.voted) poll.classList.add(‘otc-poll-voted’);
}
options.forEach(function (o) {
if (o.dataset.bound) return;
o.dataset.bound = ‘1’;
o.addEventListener(‘click’, function () {
if (stored.voted) return;
var k = o.dataset.optionKey;
stored.votes[k] = (stored.votes[k] || 0) + 1;
stored.voted = true;
localStorage.setItem(key, JSON.stringify(stored));
render();
});
});
render();
});
// Floating TOC scroll spy + collapse toggle
var toc = document.querySelector(‘.otc-floating-toc’);
if (toc) {
var toggle = toc.querySelector(‘.otc-toc-toggle’);
var headings = document.querySelectorAll(‘.otc-article h2[id]’);
var links = toc.querySelectorAll(‘a[href^=»#»]’);
// Collapse au clic
if (toggle && !toggle.dataset.bound) {
toggle.dataset.bound = ‘1’;
toggle.addEventListener(‘click’, function () {
var collapsed = toc.dataset.collapsed === ‘true’;
toc.dataset.collapsed = collapsed ? ‘false’ : ‘true’;
toggle.setAttribute(‘aria-expanded’, collapsed ? ‘true’ : ‘false’);
});
}
// Auto-collapse au scroll vers le bas (mobile)
function spy() {
var sy = window.scrollY + 120;
var current = null;
headings.forEach(function (h) {
if (h.offsetTop = 13 && savedFs <= 22) {
var body = document.querySelector('.otc-article');
if (body) body.style.fontSize = savedFs + 'px';
}
} catch (e) {}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
init();
}
// Re-init si contenu ajouté dynamiquement (idempotent grâce aux dataset.bound)
setTimeout(init, 1500);
})();
📋 Checklist SEO gratuite — 50 points à vérifier
Téléchargez ma checklist SEO complète : technique, contenu, netlinking. Le même outil que j'utilise pour mes clients.
Télécharger la checklistBesoin de visibilité pour votre activité ?
Je suis Kevin Grillot, consultant SEO freelance certifié. J'accompagne les TPE et PME en référencement naturel, Google Ads, Meta Ads et création de site internet.
Checklist SEO Local gratuite — 15 points à vérifier
Téléchargez notre checklist et vérifiez si votre site est optimisé pour Google.
- 15 points essentiels pour le SEO local
- Format actionnable et imprimable
- Utilisé par +200 entrepreneurs





