ClaudiaFix · Leona Booking

Widgets ▸ Pages for Google

Des pages pour Google, sur votre propre site

Vos widgets Leona sont des iframes. Google attribue le contenu d’une iframe à l’adresse d’où elle vient (app.claudiafix.ai), pas à votre site. Leona peut aussi vous donner de vraies pages : une par secteur desservi et une par membre de l’équipe, avec un titre, une description, des liens anglais et français, des données structurées et un plan du site, et votre widget de réservation dedans. Vous les affichez sur votre propre domaine.

1. Les préparer dans Leona

  1. Settings ▸ Region : les secteurs desservis (chacun avec ses villes). Une page est créée par secteur. Écrivez si possible une courte introduction et les questions-réponses de chaque secteur : une page avec vos propres mots se classe mieux.
  2. Settings ▸ Staff : qui est affiché, dans quel ordre, et ce que montre une carte. Une page est créée pour chaque personne que vos widgets montrent déjà. Jamais d’adresse personnelle, de téléphone, de courriel ou de distance de déplacement. La distance parcourue et les secteurs couverts n’apparaissent que si vous les avez activés pour la carte de l’équipe.
  3. Widgets ▸ Pages for Google :
    • L’adresse de votre site, par exemple https://www.votrespa.com. Chaque page indique qu’elle lui appartient (lien « canonique ») : Google classe votre domaine.
    • Nom court, par exemple votre-spa. Il remplace votre numéro de compte dans nos adresses (KEY ci-dessous).
    • Ce que vous faites, comme le cherchent vos clients : « Coiffure à domicile » / « Mobile hairdresser ». Les pages de secteurs s’intitulent « Coiffure à domicile à Laval ».
    • Adresses des pages sur votre site : par défaut /areas/{slug} et /fr/secteurs/{slug} pour les secteurs, /team/{name} et /fr/equipe/{name} pour l’équipe. Si votre site a déjà des pages à d’autres adresses, reprenez-les : rien de ce qui est déjà classé ne bouge.
    • Utilisez Preview sur chaque page. Quand tout vous convient, activez Publish the pages.

2. Les mettre sur votre domaine — option A : une règle de redirection (recommandé)

Votre site affiche notre page à votre propre adresse. Elle reste à jour toute seule : un nouveau membre ou un nouveau secteur apparaît sans rien faire. Remplacez KEY par votre nom court et les chemins par ceux que vous avez choisis.

Vercel — dans vercel.json, ajoutez dans "rewrites", avant toute règle générale comme "/(.*)" :
{ "source": "/areas/:slug",        "destination": "https://app.claudiafix.ai/marketplace/public/p/KEY/en/:slug" },
{ "source": "/fr/secteurs/:slug",  "destination": "https://app.claudiafix.ai/marketplace/public/p/KEY/fr/:slug" },
{ "source": "/team",               "destination": "https://app.claudiafix.ai/marketplace/public/p/KEY/en/team" },
{ "source": "/team/:name",         "destination": "https://app.claudiafix.ai/marketplace/public/p/KEY/en/team/:name" },
{ "source": "/fr/equipe",          "destination": "https://app.claudiafix.ai/marketplace/public/p/KEY/fr/team" },
{ "source": "/fr/equipe/:name",    "destination": "https://app.claudiafix.ai/marketplace/public/p/KEY/fr/team/:name" },
{ "source": "/leona-sitemap.xml",  "destination": "https://app.claudiafix.ai/marketplace/public/p/KEY/sitemap.xml" }

Si votre site définit une Content-Security-Policy, autorisez https://app.claudiafix.ai dans frame-src pour ces chemins, sinon le widget de réservation reste vide.

Cloudflare — un Worker sur les routes votrespa.com/areas/*, votrespa.com/fr/secteurs/*, votrespa.com/team*, votrespa.com/fr/equipe*, votrespa.com/leona-sitemap.xml :
const UP = "https://app.claudiafix.ai/marketplace/public/p/KEY";
const MAP = [
  [/^\/areas\/([a-z0-9-]+)\/?$/, "/en/$1"],
  [/^\/fr\/secteurs\/([a-z0-9-]+)\/?$/, "/fr/$1"],
  [/^\/team\/?$/, "/en/team"],
  [/^\/team\/([a-z0-9-]+)\/?$/, "/en/team/$1"],
  [/^\/fr\/equipe\/?$/, "/fr/team"],
  [/^\/fr\/equipe\/([a-z0-9-]+)\/?$/, "/fr/team/$1"],
  [/^\/leona-sitemap\.xml$/, "/sitemap.xml"],
];
export default {
  async fetch(req) {
    const u = new URL(req.url);
    for (const [re, to] of MAP) {
      if (re.test(u.pathname)) {
        const r = await fetch(UP + u.pathname.replace(re, to), { cf: { cacheTtl: 600 } });
        return new Response(r.body, { status: r.status, headers: r.headers });
      }
    }
    return fetch(req);
  },
};
nginx (votre propre serveur) :
resolver 1.1.1.1 valid=300s;
location ~ ^/areas/([a-z0-9-]+)/?$        { proxy_pass https://app.claudiafix.ai/marketplace/public/p/KEY/en/$1;      proxy_ssl_server_name on; proxy_set_header Host app.claudiafix.ai; }
location ~ ^/fr/secteurs/([a-z0-9-]+)/?$  { proxy_pass https://app.claudiafix.ai/marketplace/public/p/KEY/fr/$1;      proxy_ssl_server_name on; proxy_set_header Host app.claudiafix.ai; }
location ~ ^/team/([a-z0-9-]+)/?$         { proxy_pass https://app.claudiafix.ai/marketplace/public/p/KEY/en/team/$1; proxy_ssl_server_name on; proxy_set_header Host app.claudiafix.ai; }
location ~ ^/fr/equipe/([a-z0-9-]+)/?$    { proxy_pass https://app.claudiafix.ai/marketplace/public/p/KEY/fr/team/$1; proxy_ssl_server_name on; proxy_set_header Host app.claudiafix.ai; }
location = /team                          { proxy_pass https://app.claudiafix.ai/marketplace/public/p/KEY/en/team;    proxy_ssl_server_name on; proxy_set_header Host app.claudiafix.ai; }
location = /fr/equipe                     { proxy_pass https://app.claudiafix.ai/marketplace/public/p/KEY/fr/team;    proxy_ssl_server_name on; proxy_set_header Host app.claudiafix.ai; }
location = /leona-sitemap.xml             { proxy_pass https://app.claudiafix.ai/marketplace/public/p/KEY/sitemap.xml; proxy_ssl_server_name on; proxy_set_header Host app.claudiafix.ai; }

Aussi les pages Réserver, Équipe, Avis et « Où nous nous déplaçons »

La page de réservation, la page d’équipe, la page de chaque personne, la page d’avis et la page « Où nous nous déplaçons » existent aussi en vraies pages : le titre, la description, les liens anglais et français, les données structurées (votre entreprise et sa note Google, chaque personne, les avis, les secteurs) et les mots de la page sont dans le HTML, puis votre widget en direct. Avec JavaScript, le widget prend la place des mots à l’écran; Google lit les deux. Ajoutez leurs règles de la même façon (adresses par défaut /book · /fr/reserver, /areas · /fr/secteurs, /reviews · /fr/avis; changez-les sous Pour votre webmestre pour garder vos adresses actuelles) :

{ "source": "/book",        "destination": "https://app.claudiafix.ai/marketplace/public/p/KEY/en/book" },
{ "source": "/fr/reserver", "destination": "https://app.claudiafix.ai/marketplace/public/p/KEY/fr/book" },
{ "source": "/fr/avis",     "destination": "https://app.claudiafix.ai/marketplace/public/p/KEY/fr/reviews" },
{ "source": "/fr/secteurs", "destination": "https://app.claudiafix.ai/marketplace/public/p/KEY/fr/areas" }

Option C : votre site construit ses propres pages (il garde son en-tête et son pied de page)

Ajoutez ?format=json à l’adresse d’une page ci-dessus. La réponse contient la même page en morceaux : head (titre, description, robots, canonique, hreflang, Open Graph et données structurées, prêts à mettre dans le <head> de votre page), body (les mots de la page et le widget, prêts à mettre là où va le widget), plus canonical, alternates, h1 et jsonld. Un site qui pré-génère ses pages (Vite, Next.js, Astro…) la lit au moment de la construction ou à chaque visite et l’écrit dans son propre HTML : Google lit alors la page sans JavaScript et sans iframe, dans votre en-tête et votre pied de page.

const r = await fetch("https://app.claudiafix.ai/marketplace/public/p/KEY/fr/team?format=json").then((x) => x.json());
html = html.replace("</head>", r.head + "</head>").replace('<div id="leona"></div>', '<div id="leona">' + r.body + "</div>");

2. Ou — option B : télécharger les pages

Widgets ▸ Pages for Google ▸ Download (.zip). Le fichier contient un dossier par page, déjà à l’adresse qu’elle a sur votre site (par exemple fr/secteurs/laval/index.html), et le plan du site. Déposez-les tels quels sur votre site.

Une copie téléchargée ne change pas toute seule. Téléchargez et déposez de nouveau après un changement d’équipe, de secteurs ou de textes. La règle de redirection n’en a jamais besoin.

3. Prévenir Google

  1. Ajoutez les deux lignes de https://app.claudiafix.ai/marketplace/public/p/KEY/robots.txt au robots.txt de votre site (la ligne Sitemap: pointe vers votre domaine).
  2. Dans Google Search Console, soumettez https://www.votrespa.com/leona-sitemap.xml.
  3. Ouvrez une page sur votre domaine et utilisez Inspection de l’URL ▸ Tester l’URL en direct : la canonique doit être votre adresse, pas app.claudiafix.ai.

Bon à savoir