// src/pages/consultant-seo-montreal.astro --- import CityPage from '../components/CityPage.astro'; import data from '../data/cities/montreal.fr'; --- // src/data/cities/montreal.fr.ts import type { CityPageData } from '../../lib/city-types'; const data: CityPageData = { lang: 'fr-CA', slug: 'consultant-seo-montreal.html', alternate: { lang: 'en-CA', slug: 'seo-consultant-montreal.html' }, city: 'Montréal', region: 'Québec', updated: '2026-10-22', title: 'Consultant SEO à Montréal : Google et recherche IA | Hicham Souilmi', description: "Consultant SEO et GEO à Montréal : tarifs affichés, délais réalistes, agence ou indépendant, SEO bilingue et citations dans ChatGPT et Google AI.", imageAlt: "Hicham Souilmi, consultant SEO et recherche IA, à côté de la phrase : si l'IA ne vous trouve pas, vos clients non plus.", eyebrow: 'Consultant SEO · GEO · Montréal', h1: 'Consultant SEO à Montréal', h1Accent: "visible sur Google et dans l'IA.", lede: "Vous cherchez à qui confier le référencement de votre entreprise à Montréal ? Cette page répond aux questions qu'on me pose avant de signer : combien ça coûte, en combien de temps, agence ou indépendant, français ou anglais, et comment être cité par ChatGPT et Google AI.", takeaways: [ { label: 'Ce que je propose', text: "un audit SEO & GEO à partir de 2 500 $ et un accompagnement à partir de 2 000 $ par mois, avec un seul interlocuteur senior du premier appel au suivi." }, { label: 'Les délais', text: '3 à 6 mois pour une progression visible et les premiers leads, 6 à 12 mois pour des positions consolidées.' }, { label: 'Français ou anglais', text: "à Montréal, les deux. Chaque langue a ses propres mots-clés et sa propre concurrence ; une traduction ne suffit pas." }, { label: 'Agence ou indépendant', text: "une agence pour un très gros site ou plusieurs chantiers en parallèle ; un indépendant pour parler directement à la personne qui travaille sur votre site." }, { label: "La recherche IA", text: "le GEO est inclus dans mon travail, pas facturé à part : les fondations sont les mêmes que pour Google." }, ], market: { eyebrow: 'Le SEO à Montréal', h2: 'Un marché mature, bilingue et très concurrentiel.', paragraphs: [ "Montréal concentre un écosystème dense : SaaS et tech (Plateau, Mile End, Griffintown), jeu vidéo, manufacturier, e-commerce et services professionnels au centre-ville. Agences établies, indépendants et équipes internes se disputent les mêmes mots-clés.", "S'ajoute une difficulté propre à Montréal : le bilinguisme. Vos acheteurs cherchent en français et en anglais, avec des requêtes différentes. Une stratégie qui ignore l'une des deux langues laisse la moitié du marché à la concurrence.", "Mon approche part de vos objectifs d'affaires : quels mots-clés ramènent des prospects qualifiés, quelles pages doivent convertir, où sont les gains rapides.", ], }, sectors: { eyebrow: 'Ce qui marche à Montréal', h2: 'Le SEO ne se joue pas pareil selon votre secteur.', items: [ { title: 'SaaS, tech et B2B', text: "La demande est nationale, souvent nord-américaine, et en anglais d'abord. La page ville n'est qu'une porte d'entrée : ce qui compte, ce sont les pages par cas d'usage et par comparaison." }, { title: 'Manufacturier et industriel', text: "Des requêtes techniques rares, cherchées par un acheteur qui compare des fournisseurs. Le volume de recherche ne dit rien du chiffre d'affaires : une seule demande peut payer l'année." }, { title: 'Cliniques et réseaux multisites', text: "Tout se joue dans le pack local : une fiche Google par établissement, des avis suivis et une page par emplacement qui nomme vraiment le quartier." }, { title: 'Services professionnels', text: "Un marché dense où la recherche reste locale. Ce qui départage, c'est la précision des pages par prestation, et la preuve d'expertise que les IA peuvent reprendre." }, ], }, comparison: { eyebrow: 'Comparatif', h2: 'Agences et consultants SEO à Montréal', intro: "Les prestataires que Google sert sur « consultant SEO Montréal » et « agence SEO Montréal », comparés sur des critères vérifiables en ouvrant leur site. J'ai rédigé ce comparatif et j'y figure : jugez-le sur ses critères, pas sur l'ordre.", headers: ['Prestataire', 'Type', 'Travail GEO affiché', 'Méthode publiée', 'Tarifs affichés', 'Note Google'], // À REMPLIR après ton relevé de la SERP (date, requêtes, critères). Tant que la liste // est vide, la section ne s'affiche pas. Exemple de ligne : // { name: 'Hicham Souilmi', type: 'Indépendant', aiWork: 'Oui', method: 'Oui', pricing: 'Oui : audit dès 2 500 $', rating: '—', self: true }, competitors: [], note: 'Relevé le JJ mois AAAA sur Google.ca, requêtes « consultant SEO Montréal » et « agence SEO Montréal ». Annuaires et articles de classement écartés.', takeaway: '', }, pricing: { eyebrow: 'Tarifs', h2: 'Combien coûte le SEO à Montréal', intro: 'Mes tarifs sont affichés avant tout échange. Le périmètre exact se cadre pendant l\'appel de découverte, qui est offert.', rows: [ { item: 'Audit SEO & GEO', price: 'dès 2 500 $', scope: 'Technique, contenu, liens et visibilité IA, avec un plan de pages priorisé et une restitution.' }, { item: 'Accompagnement mensuel', price: 'dès 2 000 $/mois', scope: 'Cap, priorités, exécution ou supervision, et mesure chaque mois.' }, { item: 'Coaching et formation', price: 'sur mesure', scope: 'Sessions individuelles ou journée d\'équipe, travaillées sur vos propres pages.' }, // À AJOUTER après relevé : la fourchette affichée par les prestataires montréalais. // { item: 'Ce qui se pratique à Montréal', price: 'de X à Y $/mois', scope: 'Relevé le JJ mois AAAA chez les prestataires qui affichent leurs prix.' }, ], timeline: "Et au bout de combien de temps ? 0 à 2 mois pour l'audit et les corrections techniques, 3 à 6 mois pour une progression visible, 6 à 12 mois pour des positions consolidées. Méfiez-vous de quiconque promet la première place en quelques semaines.", }, labels: { takeawaysTitle: "L'essentiel en 30 secondes", updatedPrefix: 'Page mise à jour le', bookCta: 'Réserver un audit gratuit', servicesCta: 'Voir mes services', servicesHref: 'mes-services.html', homeLabel: 'Accueil', homeHref: 'index-fr.html', breadcrumbAria: "Fil d'Ariane", priceTableHeaders: ['Prestation', 'Tarif', 'Ce que ça couvre'], faqEyebrow: 'FAQ · SEO à Montréal', faqH2: 'Vos questions avant de signer', meshTitle: 'Consultant SEO partout au Canada', meshFr: 'Français (Québec)', meshEn: 'English (Canada)', ctaEyebrow: 'Le plus rapide', ctaH2: 'Réservez un audit gratuit à Montréal', ctaText: 'Trente minutes, sans pression. On fait le point sur votre présence Google et IA, et on trouve vos gains les plus rapides.', ctaButton: 'Choisir un créneau', navExtraLabel: 'SEO Montréal', altLangTitle: 'This page in English', }, faq: [ { q: 'Combien coûte un consultant SEO à Montréal ?', a: "L'audit SEO & GEO est à partir de 2 500 $ CAD et l'accompagnement mensuel à partir de 2 000 $ CAD par mois. Le coaching et la formation sont sur mesure. Le périmètre (taille du site, concurrence, volume de contenu, nombre de langues) se cadre pendant l'appel de découverte, qui est offert." }, { q: 'En combien de temps voit-on des résultats ?', a: "0 à 2 mois pour l'audit et les optimisations techniques, 3 à 6 mois pour une progression visible et les premiers leads, 6 à 12 mois pour des positions consolidées et un ROI mesurable." }, { q: 'Faut-il faire du SEO en français, en anglais, ou les deux ?', a: "À Montréal, les deux. Je bâtis chaque langue sur ses propres mots-clés, avec des URL distinctes et des balises hreflang, pour que Google serve la bonne version à chaque audience sans cannibalisation." }, { q: 'Mon site doit-il obligatoirement être en français ?', a: "Selon l'Office québécois de la langue française, le site d'une entreprise qui fait affaire au Québec doit être disponible en français, et la loi 96 a renforcé ces obligations. Je ne suis pas juriste : validez votre cas auprès de l'OQLF ou d'un avocat. Côté SEO, la version française doit être pensée pour ses propres requêtes, pas seulement traduite pour être conforme." }, { q: 'Quelle différence entre le SEO et le GEO ?', a: "Le SEO vise votre classement dans les résultats Google ; le GEO vise votre présence dans les réponses générées par ChatGPT, Perplexity ou l'IA de Google. Ce qui vous rend citable renforce aussi votre position sur Google, alors je pilote les deux." }, { q: "J'ai déjà payé une agence sans résultat. Pourquoi ce serait différent ?", a: "Dans la plupart des cas, deux choses manquaient : un plan d'actions classé par ce qu'elles rapportent, et un suivi mensuel lisible sans être du métier. Demandez à voir ce qui a été fait le premier mois ; chez moi, vous le voyez." }, { q: 'Quand le SEO rapporte-t-il plus qu\'il ne coûte ?', a: "Le calcul se fait sur la valeur d'un client chez vous, pas sur le trafic. Selon votre secteur, quelques contrats gagnés dans l'année suffisent souvent à couvrir l'accompagnement. On fait ce calcul ensemble pendant l'appel." }, { q: 'Intervenez-vous à Laval, sur la Rive-Sud et ailleurs au Québec ?', a: "Oui. Basé dans le Grand Montréal, j'accompagne des entreprises à Laval, Longueuil, sur la Rive-Sud, à Québec, Gatineau et partout au Québec, ainsi qu'ailleurs au Canada en anglais." }, ], }; export default data; // src/components/CityPage.astro (gabarit partagé) --- // Gabarit unique des pages villes (FR et EN). // Toutes les variations viennent de `data` (src/data/cities/*.ts) et de shared-blocks.ts. import Base from '../layouts/Base.astro'; import type { CityPageData } from '../lib/city-types'; import { shared, BOOK_URL } from '../lib/shared-blocks'; import { buildCitySchema } from '../lib/city-schema'; import { ICONS } from '../lib/icons'; interface Props { data: CityPageData } const { data: d } = Astro.props; const s = shared[d.lang]; const sub = (t: string) => t.replaceAll('{city}', d.city); const updatedLabel = new Date(d.updated + 'T12:00:00').toLocaleDateString(d.lang, { day: 'numeric', month: 'long', year: 'numeric' }); const schema = buildCitySchema(d); const arrow = ''; ---

{d.eyebrow}

{d.h1} {d.h1Accent}

{d.lede}

{d.labels.updatedPrefix}

{d.labels.takeawaysTitle}

    {d.takeaways.map((t) => (
  • {t.label} :
  • ))}

{d.market.eyebrow}

{d.market.h2}

{d.market.paragraphs.map((p) =>

)}

{d.comparison.competitors.length > 0 && (

{d.comparison.eyebrow}

{d.comparison.h2}

{d.comparison.headers.map((h) => )} {d.comparison.competitors.map((c) => ( ))}
{h}
{c.name} {c.type} {c.aiWork} {c.method} {c.pricing} {c.rating}

{d.comparison.note}

)}

{d.pricing.eyebrow}

{d.pricing.h2}

{d.pricing.intro}

{d.labels.priceTableHeaders.map((h) => )} {d.pricing.rows.map((r) => ( ))}
{h}
{r.item} {r.price} {r.scope}

{d.sectors.eyebrow}

{d.sectors.h2}

{d.sectors.items.map((it) => (

{it.title}

))}

{s.geo.eyebrow}

{sub(s.geo.h2)}

{s.geo.paragraphs.map((p) =>

)}

{s.geo.cards.map((c) => (

{c.title}

{c.text}

))}

{sub(s.agency.eyebrow)}

{s.agency.h2}

{s.agency.agencyTitle}

    {s.agency.agencyItems.map((i) =>
  • •{i}
  • )}

{s.agency.freelanceTitle}

    {s.agency.freelanceItems.map((i) =>
  • ✦{i}
  • )}

{s.agency.note}

{sub(s.services.eyebrow)}

{s.services.h2}

{s.services.intro}

{s.services.items.map((it, i) => (
{String(i + 1).padStart(2, '0')}

{it.title}

{it.text}

{it.stepsLabel}
    {it.steps.map((st) =>
  • {st}
  • )}
{it.cta}
))}

{s.authority.eyebrow}

{s.authority.h2}

{s.authority.cards.map((c) => (

{c.name}

{c.role}

))}

{d.labels.faqEyebrow}

{d.labels.faqH2}

{d.faq.map((f) => (
{f.q}+

))}

{d.labels.meshTitle}

{d.labels.meshFr}

{s.mesh.fr.map((l) => {l.label})}

{d.labels.meshEn}

{s.mesh.en.map((l) => {l.label})}

{d.labels.ctaEyebrow}

{d.labels.ctaH2}

{d.labels.ctaText}

{d.labels.ctaButton}