Aller au contenu

Metatag

Metatag permet de gérer les métadonnées pour :

  • SEO : title, description, robots
  • Réseaux sociaux : Open Graph (Facebook), Twitter Cards
  • Autres : canonical, hreflang
Fenêtre de terminal
# Installer Metatag
ddev composer require drupal/metatag
# Activer les sous-modules
ddev drush en metatag metatag_open_graph metatag_twitter_cards -y
ModuleDescription
metatagModule principal
metatag_open_graphFacebook, LinkedIn
metatag_twitter_cardsTwitter/X
metatag_verificationGoogle Search Console
metatag_google_cseGoogle Custom Search

ConfigurationRecherche et métadonnéesMetatag

Ou : /admin/config/search/metatag

  1. Cliquez sur GlobalModifier

  2. Configurez les valeurs par défaut :

    Basique

    • Titre de la page : [current-page:title] | [site:name]
    • Description : [site:slogan]

    Avancé

    • URL canonique : [current-page:url]
    • Robots : index, follow
  3. Enregistrer

Allez dans ContenuProduitModifier :

# Basique
Titre: "[node:title] - [site:name]"
Description: "[node:field_description:summary]"
# Open Graph
og:type: "product"
og:title: "[node:title]"
og:description: "[node:field_description:summary]"
og:image: "[node:field_images:0:entity:url]"
# Twitter Cards
twitter:card: "summary_large_image"
twitter:title: "[node:title]"
twitter:description: "[node:field_description:summary]"
twitter:image: "[node:field_images:0:entity:url]"
# Produit
product:price:amount: "[node:field_price:value]"
product:price:currency: "EUR"
# Basique
Titre: "[node:title] | Blog - [site:name]"
Description: "[node:body:summary]"
# Open Graph
og:type: "article"
og:title: "[node:title]"
og:description: "[node:body:summary]"
og:image: "[node:field_image:entity:url]"
# Article
article:published_time: "[node:created:html_datetime]"
article:modified_time: "[node:changed:html_datetime]"
article:author: "[node:author:display-name]"
# Basique
Titre: "[term:name] - Catégories | [site:name]"
Description: "Découvrez nos [term:name] dans notre boutique."
# Open Graph
og:type: "website"
og:title: "[term:name]"
PlateformeTailleRatio
Facebook1200×6301.91:1
Twitter1200×6002:1
LinkedIn1200×6271.91:1

Créez un style d’image pour Open Graph :

  1. ConfigurationMédiasStyles d’image

  2. Ajouter un style d’image : open_graph

  3. Ajouter l’effet Redimensionner et recadrer :

    • Largeur : 1200
    • Hauteur : 630
  4. Dans Metatag, référencez le style :

    [node:field_images:0:entity:url]

Contrôlez l’indexation :

ValeurEffet
index, followIndexer, suivre liens
noindex, followNe pas indexer
noindex, nofollowIgnorer complètement

Évitez le contenu dupliqué :

canonical: [current-page:url]

Pour les sites multilingues :

hreflang: fr
TypeUsage
summaryPetit aperçu avec vignette
summary_large_imageGrande image en haut
appApplication mobile
playerVidéo
twitter:card: "summary_large_image"
twitter:site: "@votre_compte"
twitter:creator: "@votre_compte"

Installez le module Schema.org :

Fenêtre de terminal
ddev composer require drupal/schema_metatag
ddev drush en schema_metatag schema_product -y

Configuration pour un produit :

{
"@context": "https://schema.org/",
"@type": "Product",
"name": "[node:title]",
"image": "[node:field_images:0:entity:url]",
"description": "[node:field_description:value]",
"brand": {
"@type": "Brand",
"name": "[node:field_brand:entity:name]"
},
"offers": {
"@type": "Offer",
"price": "[node:field_price:value]",
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock"
}
}
OutilURL
Facebook Debuggerdevelopers.facebook.com/tools/debug
Twitter Card Validatorcards-dev.twitter.com/validator
LinkedIn Inspectorlinkedin.com/post-inspector
Google Rich Resultssearch.google.com/test/rich-results
<!-- Attendu dans <head> -->
<meta property="og:title" content="T-Shirt Blanc - TailStore">
<meta property="og:description" content="T-shirt en coton bio...">
<meta property="og:image" content="https://example.com/sites/default/files/tshirt.jpg">
<meta property="og:type" content="product">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="T-Shirt Blanc - TailStore">
Global (défaut)
├── Front page (page d'accueil)
├── Contenu
│ ├── Produit
│ ├── Article
│ └── Slide
├── Taxonomie
│ ├── Catégorie
│ ├── Marque
│ └── Couleur
└── Utilisateur

Les métadonnées sont exportées dans :

config/sync/metatag.metatag_defaults.global.yml
config/sync/metatag.metatag_defaults.node__product.yml
config/sync/metatag.metatag_defaults.taxonomy_term__category.yml
┌─────────────────────────────────┐
│ [Image 1200×630] │
├─────────────────────────────────┤
│ tailstore.com │
│ T-Shirt Blanc Premium │
│ T-shirt en coton bio, coupe... │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ [Image 1200×600] │
│ │
├─────────────────────────────────┤
│ T-Shirt Blanc Premium │
│ T-shirt en coton bio, coupe... │
│ tailstore.com │
└─────────────────────────────────┘
  • Metatag installé
  • Open Graph activé
  • Twitter Cards activé
  • Métadonnées globales configurées
  • Métadonnées par type de contenu
  • Image style Open Graph créé (1200×630)
  • Testé avec les validateurs
  • Vérifié dans le code source HTML

Les metatags sont mis en cache avec les pages. Si vous modifiez un modèle :

Fenêtre de terminal
# Vider le cache pour voir les changements
ddev drush cr
# Pour un contenu spécifique
ddev drush cache:rebuild-external /node/42
# Ne pas générer de metatags inutiles
Configuration → Metatag → Avancé → Désactiver les metatags non utilisés
# ⚠️ NE JAMAIS inclure de données sensibles
# ❌ Mauvais
Description: "Prix d'achat: [node:field_cost_price]"
# ✅ Bon
Description: "Prix de vente: [node:field_price]"

Assurez-vous que les URLs canoniques sont absolues :

# ❌ Mauvais
canonical: "/produits/t-shirt"
# ✅ Bon
canonical: "[current-page:url]"

SEO optimisé ! Créons des Formulaires avec Webform.