# Désindexer automatiquement les fiches d’événements passés, sans suppression

> Snippet pour une agence événementielle appliquant un noindex automatique aux fiches de dates révolues, sans jamais supprimer le contenu correspondant.

- Auteur : Clément Hadrot
- Publié le : 2026-08-02
- Mis à jour le : 2026-08-02
- Catégorie : SEO &amp; GEO
- URL : https://wpmoderne.dev.wordpress-developpement.fr/seo/desindexer-fiches-evenements-passes-sans-suppression/

## L’essentiel

- Une fiche d'événement passé reste utile en archive mais nuit à la pertinence perçue si indexée
- Le noindex conditionnel évite de choisir entre conserver et désindexer
- La comparaison de dates doit gérer le fuseau horaire du site

Une fiche d'événement dont la date est passée depuis plusieurs mois continue, sur de nombreux sites d'agences événementielles, d'apparaître dans les résultats de recherche pour des requêtes portant sur cet événement précis. Le visiteur qui clique dessus découvre une page annonçant un événement qui n'aura plus jamais lieu, sans redirection ni indication claire vers une édition future ou équivalente. Ce décalage entre la promesse du résultat de recherche et la réalité de la page dégrade la pertinence perçue du site dans son ensemble.

La solution retenue sur ce type de site n'est ni la suppression pure et simple de la fiche, qui reste utile comme trace d'archive et parfois comme preuve sociale pour de futurs clients consultant l'historique des événements organisés, ni son maintien tel quel dans l'index. Le compromis choisi : un noindex conditionnel, appliqué automatiquement dès que la date de l'événement est dépassée, sans jamais toucher au contenu de la fiche elle-même.

## Le problème posé plus précisément

Un type de publication personnalisé `evenement` porte un champ de date de fin stocké en métadonnée. Tant que cette date n'est pas dépassée, la fiche doit rester pleinement indexable. Une fois la date dépassée, la fiche doit basculer en `noindex` tout en restant accessible et parfaitement lisible pour un visiteur qui y accéderait via un lien interne ou une recherche directe sur le nom de l'événement.

## Le snippet commenté

> L'essentiel à retenir : Une fiche d'événement passé reste utile en archive mais nuit à la pertinence perçue si indexée ; Le noindex conditionnel évite de choisir entre conserver et désindexer ; La comparaison de dates doit gérer le fuseau horaire du site

```
add_action( 'wp_head', function() {
    if ( ! is_singular( 'evenement' ) ) {
        return;
    }

    $date_fin = get_post_meta( get_the_ID(), 'date_fin_evenement', true );
    if ( empty( $date_fin ) ) {
        return; // Pas de date renseignée : on ne prend pas de risque, on n'ajoute rien.
    }

    // Comparaison en tenant compte du fuseau horaire configuré sur le site,
    // pour éviter un basculement anticipé ou tardif de quelques heures.
    $maintenant = current_datetime();
    $fin_evenement = new DateTime( $date_fin, wp_timezone() );

    if ( $fin_evenement < $maintenant ) {
        echo '<meta name="robots" content="noindex,follow">' . "\n";
    }
}, 1 );
```

Le point d'attention principal de ce snippet tient à l'usage de `wp_timezone()` plutôt qu'une comparaison sur des chaînes de caractères brutes ou sur le fuseau UTC par défaut de PHP : sans cette précaution, un événement se terminant à 23h dans le fuseau du site pourrait basculer en `noindex` avec plusieurs heures d'avance ou de retard selon le décalage horaire réel du serveur d'hébergement.

## Pourquoi `noindex,follow` plutôt qu'un simple `noindex`

La directive `follow` associée conserve la capacité des robots à suivre les liens internes présents sur la fiche, notamment ceux menant vers une édition future de l'événement ou vers des événements similaires proposés par l'agence. Retirer cette capacité de suivi couperait un maillage interne parfois précieux entre une ancienne édition et sa suivante.

## Variante : ajouter un lien visible vers l'édition suivante

Au-delà du seul balisage technique, une variante utile consiste à afficher, sur la fiche désindexée, un message et un lien clairement visibles vers l'édition suivante de l'événement si elle existe déjà, ce qui améliore l'expérience du visiteur qui arriverait malgré tout sur la page via un lien externe ou un partage ancien.

```
$edition_suivante = get_field( 'edition_suivante', get_the_ID() ); // via ACF, par exemple
if ( $fin_evenement < $maintenant && $edition_suivante ) {
    echo '<p>Cette édition est terminée. Découvrez <a href="'
        . esc_url( get_permalink( $edition_suivante ) )
        . '">la prochaine édition</a>.</p>';
}
```

## Variante : exclure aussi du sitemap natif plutôt que de compter sur le seul noindex

Pour renforcer le signal et limiter le nombre d'URL obsolètes soumises à exploration, la même logique de date peut être répercutée au niveau du filtre `wp_sitemaps_posts_query_args`, en excluant directement les événements passés du sitemap plutôt que de compter uniquement sur la balise `noindex` lue lors du crawl.

```
add_filter( 'wp_sitemaps_posts_query_args', function( $args, $post_type ) {
    if ( 'evenement' === $post_type ) {
        $args['meta_query'] = array(
            array(
                'key'     => 'date_fin_evenement',
                'value'   => current_time( 'Y-m-d H:i:s' ),
                'compare' => '>=',
                'type'    => 'DATETIME',
            ),
        );
    }
    return $args;
}, 10, 2 );
```

## Ce que cette approche évite

- Elle évite la perte d'archive qu'entraînerait une suppression pure et simple des fiches passées.
- Elle évite l'accumulation, dans l'index, de résultats de recherche menant vers des événements révolus.
- Elle évite un travail manuel répétitif, la logique s'appliquant automatiquement dès que la date de fin est dépassée.

> Sur ce type de contenu à durée de vie limitée, on préfère toujours une logique automatisée basée sur une donnée structurée existante plutôt qu'une tâche récurrente confiée à quelqu'un qui doit penser à y repasser chaque semaine.

## En résumé

Le noindex conditionnel basé sur la date de fin d'un événement permet de concilier deux besoins qui semblent opposés : conserver l'historique complet des événements organisés par une agence, et éviter que ce même historique ne pollue les résultats de recherche avec des pages dont la promesse ne correspond plus à la réalité. Le point technique déterminant reste la gestion correcte du fuseau horaire dans la comparaison de dates.
