example-petstore.com

Domaine d’exemple · Pas un service réel · Les visites depuis un navigateur affichent cette page · Les requêtes API reçoivent 410 Gone

Domaine d’exemple · pas un service réel

example-petstore.com

example-petstore.com est un domaine d’exemple issu de la documentation de Google sur Google Analytics, la Search Console et les données structurées, où il remplace votre propre site Web. Il n’héberge ni boutique, ni API, ni recherche. Si ce nom apparaît dans votre code ou vos paramètres, remplacez-le par votre propre domaine.

Vous avez envoyé une clé, un jeton ou un mot de passe ici ? Renouvelez-le maintenant.

Les requêtes provenant d’un code qui pointe vers example-petstore.com arrivent sur ce serveur au lieu du service réel, avec les clés API, jetons d’accès, mots de passe ou cookies de session qu’elles contiennent. Considérez ces identifiants comme exposés :

  1. Révoquez la clé, le jeton ou le mot de passe auprès du service qui l’a émis.
  2. Générez-en un nouveau et conservez-le dans la configuration ou dans un gestionnaire de secrets, pas dans le code.
  3. Corrigez l’adresse dans votre code, afin que les nouveaux identifiants ne soient envoyés qu’au service réel.
  4. Examinez les journaux d’accès de ce service pour repérer toute activité que vous ne reconnaissez pas.

Où révoquer des clés chez GitHub, AWS, Google Cloud, Stripe et d’autres

Origine de ce nom

Chaque exemple ci-dessous présente l’extrait obsolète tel qu’il a été publié, et ce qu’il faut utiliser à la place. La partie en surbrillance est celle que vous remplacez. L’historique complet fournit les dates et les sources archivées.

Google Analytics · 2009–2024

Suivi multidomaine avec Classic Analytics

Le guide de Google consacré au suivi de plusieurs domaines avec Classic Analytics (ga.js) utilisait une animalerie sur example-petstore.com, des sous-domaines comme dogs.example-petstore.com et un panier d’achat sur example-commerce-host.com.

Exemple obsolète

_gaq.push(['_setAccount', 'UA-12345-1']);
_gaq.push(['_setDomainName', 'example-petstore.com']);
_gaq.push(['_setAllowLinker', true]);

<a href="http://dogs.example-petstore.com/intro.html"
   onclick="_gaq.push(['_link', 'http://dogs.example-petstore.com/intro.html']); return false;">See my pet store</a>

Classic Analytics et Universal Analytics ne collectent plus de données. Supprimez ce code, y compris les liens d’exemple, et installez la balise Google pour Google Analytics 4. La mesure multidomaine se configure ensuite dans l’interface d’administration.

À utiliser à la place

<!-- Google tag (gtag.js) for Google Analytics 4 -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'G-XXXXXXXXXX');
</script>

Guide complet : de Classic Analytics à Google Analytics 4

Search Console · 2015–2019

Transférer un site

L’aide de la Search Console sur l’outil de changement d’adresse utilisait un transfert de http://fish.example-petstore.com vers http://example.com ou http://example-petstore.com. L’outil ne fonctionne qu’entre des propriétés de domaine que vous avez validées : les adresses d’exemple doivent donc être remplacées par les vôtres, y compris dans les URL canoniques, les sitemaps et les hreflang.

Guide complet : transférer un site dans la Search Console

API · scripts

Clients API et scripts

Les requêtes vers des adresses comme api.example-petstore.com/v2/pet proviennent d’un code qui utilise ce domaine comme URL de base. Elles reçoivent 410 Gone avec une explication au format JSON. Ce domaine n’a aucun lien avec l’API d’exemple Swagger Petstore sur petstore.swagger.io.

À utiliser à la place : lire l’adresse depuis la configuration

# Python: read the address from configuration, not from the code
import os
BASE_URL = os.environ["API_BASE_URL"]

// JavaScript / Node.js
const baseURL = process.env.API_BASE_URL;

Guide complet : configurer les clients API et les SDK

Liste de contrôle rapide

  • Recherchez example-petstore et example-commerce-host dans votre code, vos modèles, votre thème et votre gestionnaire de balises.
  • Supprimez le code Classic et Universal Analytics ; dans Google Analytics 4, n’indiquez que vos propres domaines.
  • Utilisez votre propre page d’accueil et le nom de votre site dans les données structurées, et vérifiez-les avec le Schema Markup Validator.
  • Faites pointer les clients API et les scripts vers le service réel, et renouvelez tous les identifiants qui ont été envoyés ici.
  • Lorsque tout pointe vers le bon endroit, plus rien de votre site ou de votre code n’atteint ce domaine.

Guides étape par étape

Ouvrez le guide de la plate-forme sur laquelle le domaine d’exemple est apparu.

Google Analytics 4 : mesure multidomaine
  1. Dans Google Analytics, ouvrez Admin et accédez à Data streams. Sélectionnez votre flux Web.
  2. Ouvrez Configure tag settings › Configure your domains. Supprimez example-petstore.com et example-commerce-host.com, puis ajoutez les domaines que vous possédez ou utilisez réellement, comme votre boutique et votre prestataire de paiement.
  3. De retour dans Configure tag settings, ouvrez List unwanted referrals et ajoutez les sites référents qui ne doivent pas démarrer de nouvelle session, comme votre prestataire de paiement. Vous pouvez en indiquer jusqu’à 50.
  4. Enregistrez. Les modifications s’appliquent à la balise Google sur toutes les pages qui utilisent ce flux.

Vous préférez le code à l’interface d’administration ?

// Only if you configure cross-domain measurement in code instead of in the admin
gtag('set', 'linker', {
  'domains': ['www.example.com', 'checkout.example.net']
});

Vérification : Cliquez sur un lien d’un de vos domaines vers un autre. L’adresse de la page de destination doit contenir _gl=. Dans Admin › DebugView (avec Tag Assistant ou le mode débogage activé), la visite doit se poursuivre en une seule session.

Documentation : Set up cross-domain measurement · Lire le guide complet

Google Tag Manager
  1. Dans Tag Manager, ouvrez Google tags, sélectionnez votre balise Google et choisissez Show all.
  2. Sous Configure your domains, ne conservez que vos propres domaines. Utilisez List unwanted referrals pour les sites référents à ignorer.
  3. Recherchez example-petstore, example-commerce-host, _gaq et pageTracker dans vos Tags et vos Variables. Supprimez les anciennes balises HTML personnalisées qui contiennent du code Classic ou Universal Analytics.
  4. Testez avec Preview, puis cliquez sur Submit pour publier une nouvelle version du conteneur.

Vérification : En mode Preview, la balise Google se déclenche sur chaque page et aucune balise ne fait référence aux domaines d’exemple. Les liens entre vos domaines contiennent _gl=.

Documentation : Google tag settings in Tag Manager · Lire le guide complet

Ancien code Classic ou Universal Analytics
  1. Recherchez _gaq, pageTracker, ga.js, analytics.js, ga('create' et urchin dans vos modèles.
  2. Supprimez l’intégralité du bloc, y compris les gestionnaires onclick et onsubmit contenant _link ou _linkByPost. Faites pointer les liens d’exemple, comme « See my pet store » ou « Continue Shopping », vers vos propres pages, ou supprimez-les.
  3. Installez la balise Google pour Google Analytics 4 (extrait ci-dessous) ou ajoutez-la via Google Tag Manager.
<!-- Google tag (gtag.js) for Google Analytics 4 -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'G-XXXXXXXXXX');
</script>

Vérification : Affichez la source de la page : elle ne contient plus ga.js, analytics.js ni les domaines d’exemple. Dans Google Analytics 4, Reports › Realtime affiche votre propre visite.

Documentation : Universal Analytics has been replaced · Lire le guide complet

WordPress et plug-ins SEO
  1. Yoast SEO, Rank Math et All in One SEO génèrent le schéma de votre site à partir de votre propre adresse et n’utilisent pas les domaines d’exemple. Pour supprimer malgré tout l’action de recherche : Yoast add_filter( 'disable_wpseo_json_ld_search', '__return_true' );, Rank Math rank_math/json_ld/disable_search, All in One SEO Search Appearance › Advanced › Enable Sitelinks Search Box désactivé.
  2. SEOPress a supprimé le balisage du champ de recherche dans la version 8.1 (septembre 2024). Mettez le plug-in à jour.
  3. Le domaine d’exemple provient généralement d’un bloc collé à la main : vérifiez le fichier header.php de votre thème, les champs « code personnalisé dans l’en-tête » ou « scripts d’en-tête », ainsi que les plug-ins qui insèrent du code dans l’en-tête de la page.
  4. Remplacez le bloc par le balisage WebSite correct (extrait ci-dessous), ou supprimez-le si votre plug-in SEO en génère déjà un.
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Your site name",
  "url": "https://www.example.com/"
}
</script>

Vérification : Affichez la source de votre page d’accueil : elle contient un seul bloc WebSite avec votre propre nom et votre propre adresse. Vérifiez-le avec le Schema Markup Validator.

Documentation : Yoast: SearchAction · Lire le guide complet

Données structurées ajoutées manuellement
  1. Recherchez le bloc <script type="application/ld+json"> (ou les microdonnées) qui contient example-petstore.com.
  2. Remplacez url par votre propre page d’accueil et définissez name sur le nom de votre site. La partie potentialAction / SearchAction peut être supprimée : Google n’affiche plus le champ de recherche sitelinks.
  3. Ne conservez le bloc WebSite que sur votre page d’accueil.
  4. Dans la Search Console, utilisez URL Inspection › Request indexing pour votre page d’accueil.
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Your site name",
  "url": "https://www.example.com/"
}
</script>

Vérification : Le Schema Markup Validator affiche un élément WebSite avec vos propres name et url. Le test des résultats enrichis ne couvre pas les noms de sites.

Documentation : Site names in Google Search · Lire le guide complet

Search Console : transférer un site
  1. Validez l’ancien et le nouveau domaine en tant que propriétés de domaine dans le même compte Search Console.
  2. Redirigez chaque ancienne adresse vers son équivalent sur le nouveau domaine avec une redirection 301, et maintenez les redirections pendant au moins 180 jours.
  3. Dans l’ancienne propriété, ouvrez Settings › Change of address et sélectionnez la nouvelle propriété.
  4. Vérifiez que les URL canoniques, les sitemaps et les hreflang du nouveau site ne contiennent pas d’adresses d’exemple, puis envoyez à nouveau le sitemap.

Vérification : Dans la Search Console, la demande de changement d’adresse apparaît comme en cours et la nouvelle propriété commence à recevoir des impressions.

Documentation : Change of Address tool · Lire le guide complet

Clients API, SDK et scripts
  1. Déterminez où l’adresse est définie : une URL de base ou un hôte dans le code, un fichier de configuration, une variable d’environnement, un environnement Postman ou le constructeur d’un SDK.
  2. Déplacez l’adresse dans la configuration (extrait ci-dessous) et faites-la pointer vers le service réel.
  3. Révoquez chaque clé, jeton ou mot de passe envoyé à ce domaine, et générez-en de nouveaux auprès du service qui les a émis.
  4. Ajoutez une vérification qui échoue lorsque l’adresse configurée contient example-, pour que cela ne puisse plus se reproduire.
# Python: read the address from configuration, not from the code
import os
BASE_URL = os.environ["API_BASE_URL"]

// JavaScript / Node.js
const baseURL = process.env.API_BASE_URL;

Vérification : Les requêtes atteignent le service réel et aboutissent. Plus rien de votre code n’arrive ici : ce domaine répond à ces requêtes par 410 Gone.

Documentation : OWASP Secrets Management · Lire le guide complet

En bref : corrections par plate-forme

OùCe que vous voyezQue faire
Classic Analytics (ga.js) ou Universal Analytics (analytics.js)_setDomainName, _setAllowLinker, _link, _linkByPost ou ga('linker:autoLink', …) avec l’un de ces nomsSupprimez l’intégralité de l’ancien extrait, y compris les gestionnaires onclick/onsubmit et les liens d’exemple, puis installez la balise Google pour Google Analytics 4. Universal Analytics a cessé de traiter les données le 1er juillet 2023. Universal Analytics has been replaced
Google Analytics 4Ces noms dans la liste des domaines, ou des autoréférences dans les rapportsAdmin › Data streams › votre flux Web › Configure tag settings › Configure your domains : ne conservez que vos propres domaines. Ajoutez les sites référents indésirables sous List unwanted referrals. Set up cross-domain measurement
Balise Google dans le code (gtag.js)gtag('set', 'linker', {'domains': ['example-petstore.com']}) ou un cookie_domain codé en durIndiquez vos propres domaines dans linker.domains ; omettez cookie_domain ou définissez-le sur 'auto'. Measure activity across multiple domains
Google Tag ManagerListe des domaines dans la balise Google, ou une ancienne balise HTML personnaliséeGoogle tags › votre balise › Show all › Configure your domains / List unwanted referrals ; recherchez l’ancien extrait dans les balises HTML personnalisées et les variables ; testez avec Preview. Google tag settings in Tag Manager
Données structurées ajoutées manuellement (JSON-LD, microdonnées)"url": "https://www.example-petstore.com/", une target sur query. ou host.example-petstore.comUtilisez votre propre page d’accueil comme url et le nom de votre site comme name. La SearchAction peut être supprimée. Vérifiez avec le Schema Markup Validator (le test des résultats enrichis ne couvre pas les noms de sites). Site names in Google Search
Yoast SEOAction de recherche dans le schéma du siteYoast utilise l’adresse de votre propre site. Pour la supprimer : add_filter( 'disable_wpseo_json_ld_search', '__return_true' ); Yoast: SearchAction
Rank MathAction de recherche dans le schéma du siteRank Math utilise l’adresse de votre propre site. Pour la supprimer, utilisez le filtre rank_math/json_ld/disable_search. Rank Math: sitelinks search box schema
All in One SEOAction de recherche dans le schéma du siteSearch Appearance › Advanced › « Enable Sitelinks Search Box » désactivé. AIOSEO: sitelinks search box
SEOPress—Le balisage du champ de recherche a été supprimé dans la version 8.1 (septembre 2024) ; mettez le plug-in à jour. SEOPress changelog
Search ConsoleUne adresse d’exemple utilisée dans un transfert de site, une URL canonique, un sitemap ou un hreflangLe changement d’adresse ne fonctionne qu’entre des propriétés de domaine qui vous appartiennent, avec des redirections 301 maintenues pendant au moins 180 jours. Corrigez les URL canoniques, le sitemap et les hreflang de votre propre site, puis envoyez à nouveau le sitemap. Change of Address tool
Clients API, SDK et scriptsUne URL de base ou un hôte sur l’un de ces noms, souvent avec un en-tête AuthorizationDéplacez l’URL de base dans la configuration (variable d’environnement ou fichier de configuration) et faites-la pointer vers le service réel. Révoquez chaque clé qui a été envoyée ici. OWASP Secrets Management

Le retrouver dans votre propre code

Recherchez les deux noms dans votre projet, y compris dans les modèles et les fichiers de thème :

grep -rniE "example-(petstore|commerce-host)\.com" .

Vérifiez aussi ce que votre code ne montre pas : le HTML généré de votre page d’accueil (affichez la source et lancez une recherche), les balises HTML personnalisées et les variables de votre conteneur Google Tag Manager, les champs « code personnalisé dans l’en-tête » de votre CMS ou de votre thème, ainsi que les paramètres de vos plug-ins d’analyse et de SEO.

Questions et réponses

Qu’est-ce qu’example-petstore.com ?

Un domaine d’exemple. La documentation de Google sur Google Analytics, la Search Console et les données structurées l’utilisait pour représenter votre propre site Web, et des tutoriels l’ont repris à partir de là. Il n’héberge ni boutique, ni API, ni recherche.

example-petstore.com est-il une véritable animalerie ?

Non. Rien n’est vendu ici et il n’existe ni produits, ni comptes, ni commandes. Chaque adresse du domaine affiche cette page.

Pourquoi des requêtes de mon site ou de mon code arrivent-elles sur example-petstore.com ?

Une adresse issue d’un exemple a été copiée et n’a jamais été remplacée : un lien d’un ancien extrait de suivi, des données structurées, un paramètre de la Search Console ou l’URL de base d’un client API. Remplacez-la par votre propre domaine ou par le service réel.

J’ai envoyé une clé API, un jeton ou un mot de passe à example-petstore.com. Que faire ?

Considérez-le comme exposé. Révoquez-le auprès du service qui l’a émis, générez-en un nouveau, conservez-le en dehors de votre code, corrigez l’adresse et examinez les journaux d’accès du service. Seul le service émetteur peut révoquer une clé.

À quoi servait query.example-petstore.com ?

Dans l’exemple de Google de 2014–2015 pour le champ de recherche sitelinks, il s’agissait de l’adresse fictive de la page de résultats de recherche de l’animalerie. Google pouvait afficher un champ de recherche sous le résultat d’un site ; les termes de recherche remplaçaient {search_term_string} et l’internaute était redirigé vers cette adresse. Elle n’a jamais existé, et Google a cessé d’afficher le champ de recherche en novembre 2024.

Depuis quand example-petstore.com est-il utilisé ?

Depuis mars 2009, lorsque Google a réorganisé sa documentation Classic Analytics et que le guide sur le suivi de plusieurs domaines a introduit l’animalerie et son panier. Les versions antérieures de ce guide ne l’utilisaient pas.

Pourquoi des utilisateurs en double ou des autoréférences apparaissent-ils dans Google Analytics ?

La mesure multidomaine indique les mauvais domaines, ou aucun. Dans Google Analytics 4, indiquez vos propres domaines sous Configure your domains et ajoutez les sites référents indésirables sous List unwanted referrals.

Faut-il utiliser un point initial, "none" ou "auto" dans _setDomainName ?

Aucun des trois. _setDomainName appartient à Classic Analytics (ga.js), qui ne collecte plus de données. Supprimez l’ancien code et utilisez Google Analytics 4, qui définit automatiquement le domaine des cookies.

Y a-t-il un lien avec le Swagger Petstore ?

Non. Le Swagger Petstore est une API d’exemple pour OpenAPI, disponible sur petstore.swagger.io. example-petstore.com provient de la documentation de Google sur l’analyse d’audience et le SEO.

Qu’est-ce qu’example-commerce-host.com ?

Le domaine d’exemple associé : le panier d’achat tiers des mêmes exemples multidomaines, comme example-commerce-host.com/example-petstore. Consultez example-commerce-host.com.

Sources