# SEO

Une page par point de vente, c'est une chance d'apparaître sur « magasin [marque] Lyon » ou « [marque] près de moi ». L'app fait le gros du travail : chaque point de vente avec une page a une adresse stable, un title et une meta description, des données structurées pour Google et les assistants IA, et sa place dans le sitemap. Les pages sont servies par Shopify, comme les autres pages de la boutique : elles sont rapides, mises en cache, et restent en ligne même si l'app est indisponible.

Cette page dit ce que l'app fait, ce que vous pouvez faire de plus dans le thème, puis détaille chaque point.

## Ce que vous pouvez faire

L'app ne crée pas de liens vers les pages des points de vente depuis le reste de la boutique : c'est le thème qui les place. Pour que les moteurs de recherche les trouvent et leur donnent du poids :

- **Liez la page du store locator** depuis le menu principal ou le pied de page.
- **Ajoutez une liste des points de vente** : le bloc **Liste des points de vente** met dans le HTML un lien vers chaque page, ce que la carte du store locator ne fait pas pour tous. Sous le store locator, ou sur une page à part (« Toutes nos boutiques »).
- **Remplissez le Lien vers tous les points de vente** du bloc **Page point de vente**, pour un lien de chaque page vers le store locator.
- **Gardez les points de vente à proximité** affichés sur les pages : ils lient les pages entre elles.
- **Gardez un seul `h1`** : si vous placez le titre du thème au-dessus du bloc, videz le champ **Titre** du bloc. De même pour le bloc **Store locator** et le titre de page de votre thème.
- **Demandez au marchand de soigner ses points de vente principaux** : un texte de présentation, des photos, et au besoin un title et une meta description propres, dans **Référencement** sur la fiche du point de vente.

Pour vérifier les données structurées d'une page, collez son adresse dans le [validateur de schema.org](https://validator.schema.org/).

## L'adresse des pages

Une page a l'adresse `/pages/<chemin>/<identifiant>`, par exemple `/pages/stores/paris-le-marais` :

- le **chemin** (`stores` par défaut) est le même pour toutes les pages. Le marchand le change dans les **Réglages** de l'app : **Chemin des pages points de vente**, sous **Pages des points de vente** ;
- l'**identifiant** est propre à chaque point de vente. L'app le tire du nom à la création, avec un suffixe (`-2`) s'il est déjà pris ; le marchand peut le changer dans **Référencement**, sur la fiche du point de vente.

Seuls les points de vente actifs ont une page. Un brouillon, un point de vente sans sa case **Page du point de vente**, ou supprimé, renvoie une erreur 404.

## Les redirections

Une adresse qui change ou disparaît, c'est un lien cassé pour le visiteur et une page perdue pour le moteur de recherche. L'app crée donc des redirections 301, que le marchand voit dans **Contenu > Menus > Redirections d'URL** :

| Changement | Ce qui se passe |
| --- | --- |
| L'identifiant d'une page publiée change | L'ancienne adresse redirige vers la nouvelle. Le marchand peut décocher **Créer une redirection d'URL** avant d'enregistrer. |
| Le chemin des pages change | Une redirection par point de vente, de l'ancienne adresse vers la nouvelle. |
| Un point de vente dont la page est en ligne est supprimé | L'ancienne adresse redirige vers la page du point de vente actif le plus proche, un de ses 3 points de vente à proximité, jamais vers l'accueil. Sans point de vente proche, elle renvoie une 404. Le marchand peut couper la redirection dans la fenêtre de confirmation. |

Un brouillon n'est pas redirigé : il n'avait pas de page en ligne.

## Title et meta description

Le title et la meta description d'une page sont les champs `seo_title` et `seo_description` de son entrée **Store page**, que le thème écrit dans le `<head>` comme pour un produit. Une marque qui ne renseigne rien a donc toujours un title, et une description dès qu'elle a un texte de présentation :

- **title** : celui saisi sur la fiche du point de vente, sinon son nom. Le thème y ajoute en général le nom de la boutique : « Champs-Élysées – Ladurée » ;
- **meta description** : celle saisie sur la fiche, sinon le texte de présentation en texte brut, coupé à 160 caractères.

Les deux se traduisent dans la page **Traductions** de l'app : le title et la meta description saisis sont traduits, et la meta description par défaut reprend le début de la présentation traduite. Le title par défaut reste le nom, qui ne se traduit pas.

## Les données structurées

Le bloc **Page point de vente** décrit le point de vente en schema.org `Store`, ce que lisent Google et les assistants IA pour répondre à « à quelle heure ferme… » ou « où acheter… ». La description est donnée deux fois, en microdata dans la page et en JSON-LD, avec le même `@id`, l'adresse canonique de la page : les deux décrivent un seul point de vente.

| Propriété | Contenu |
| --- | --- |
| `name`, `description`, `url` | Le nom, le texte de présentation en texte brut, l'adresse canonique. |
| `image` | Les 5 premières photos. |
| `telephone`, `email` | Le contact. |
| `address` | Un `PostalAddress` : rue, code postal, ville, région, pays. |
| `geo` | Les coordonnées. |
| `openingHoursSpecification` | Les horaires de la semaine, un créneau par entrée. |
| `specialOpeningHoursSpecification` | Les horaires exceptionnels, avec `validFrom` et `validThrough` ; un jour fermé va de `00:00` à `00:00`. |
| `amenityFeature` | Les services. |
| `hasMap` | L'itinéraire vers le point de vente dans Google Maps. |
| `brand` | La boutique Shopify, en `Organization` : son nom, son adresse, et un `@id` fixe, son domaine principal suivi de `/#organization`, le même sur toutes les pages. |

La boutique est indiquée comme marque (`brand`), pas comme propriétaire : un revendeur qui a sa page vend la marque sans lui appartenir.

Si le thème décrit déjà la marque ailleurs (une `Organization` sur la page d'accueil), donnez-lui le même `@id` : les moteurs de recherche relient alors les points de vente à la marque.

## Le sitemap

Les pages des points de vente sont dans le sitemap de la boutique (`/sitemap.xml`), que Shopify tient à jour : une page y apparaît quand le point de vente est publié, et en sort quand il passe en brouillon, perd sa page ou est supprimé. Rien à soumettre de plus.

:::note[Bon à savoir]
- L'adresse d'une page ne se traduit pas : elle est la même dans toutes les langues de la boutique.
- Le store locator met ses 250 premiers points de vente dans la page et charge les suivants par lots. Une vue filtrée (recherche, type, position de la carte) n'a pas d'adresse indexable à part.
:::