Exclure certaines pages du sitemap (Gestion:Tâches/Liste/624)
Type | Tâche |
---|---|
Création | Antoine Mercier-Linteau |
Responsable(s) | Antoine Mercier-Linteau |
État | En test |
Date de création | 2023-08-31 |
Échéance | aucune |
Priorité | Urgente |
Projet(s) |
Plusieurs pages sont inclues dans le sitemap mais ne doivent en fait pas être indexées (meta noindex est réglé programmatiquement).
Google n'aime pas quand les directives meta de la page contredisent le sitemap.
Il n'y a malheureusement pas de hook pour filtrer les pages du Sitemap, alors il faut amender le script.
Correctif
Dans maintenance/generateSitemap.php
:
- Ajouter dans
main()
if(!$this->filterTitle(Title::makeTitle( $row->page_namespace, $row->page_title ))) { continue; }
- Ajouter la méthode suivante:
protected function filterTitle($title){ switch($title->getNamespace()) { case NS_USER: case NS_USER_TALK: if(strpos($title->getText(), '/Brouillons/') > 0) { return false; } // Skip draft pages. default: $user = new User(); // Anonymous user. if(!MediaWiki\Extension\SemanticACL\SemanticACL::onGetUserPermissionsErrors($title, $user, 'read', $result)) { return false; } // Skip pages that cannot be viewed by an anonymous user. } return true; }