1
0

PROBLEME_2_SITEMAP_DYNAMIQUE.md 5.4 KB

Résolution du Problème #2 : "Explorée, actuellement non indexée"

🎯 Problème identifié

56 pages explorées par Google mais non indexées

Causes principales :

  1. Sitemap statique obsolète (2022) dans /static/sitemap.xml
  2. Dates de modification incorrectes (toutes en 2022)
  3. Pas de mise à jour automatique du sitemap
  4. URLs manquantes dans le sitemap statique

✅ Solutions implémentées

1. Sitemap dynamique Django activé

Fichiers modifiés :

  • duhaz_blog/settings.py : Ajout de django.contrib.sitemaps et django.contrib.sites
  • duhaz_blog/urls.py : Configuration du sitemap dynamique
  • blog/sitemaps.py : Amélioration des classes de sitemap

2. Classes de Sitemap améliorées

BlogSitemap

- Priority: 0.8
- Changefreq: weekly
- Articles publiés uniquement
- Date de modification : b_publdate

CategorySitemap

- Priority: 0.6
- Changefreq: monthly
- Date de modification : dernier article de la catégorie

PageSitemap

- Priority: 0.5
- Changefreq: monthly
- Pages statiques publiées

StaticViewSitemap

- Priority: 0.5
- Changefreq: daily (car l'index change souvent)
- Date : dernier article publié

3. Structure du sitemap

Le sitemap est maintenant divisé en 4 sections :

  • /sitemap.xml?section=blog : Tous les articles
  • /sitemap.xml?section=categories : Toutes les catégories
  • /sitemap.xml?section=pages : Pages statiques
  • /sitemap.xml?section=static : Page d'accueil

4. Fichiers créés

Scripts de test et migration

  1. scripts/migrate_sitemap.py

    • Sauvegarde l'ancien sitemap
    • Teste le nouveau sitemap dynamique
    • Affiche les statistiques
  2. scripts/generate_sitemap_preview.py

    • Génère un aperçu XML du sitemap
    • Utile pour debug

Configuration

  • static/robots.txt : Mis à jour avec le nouveau sitemap
  • SITE_ID = 1 ajouté dans settings.py

📊 Comparaison avant/après

AVANT (sitemap statique)

❌ Dernière mise à jour : 2022-05-18
❌ 707 URLs statiques
❌ Dates incorrectes
❌ URLs obsolètes incluses
❌ Nouveaux articles non inclus

APRÈS (sitemap dynamique)

✅ Mise à jour automatique
✅ Dates correctes
✅ Seulement les pages publiées
✅ Nouveaux articles automatiquement ajoutés
✅ URLs canoniques (sans trailing slash)

🧪 Tests et validation

1. Tester en local

cd /Users/duhaz/projets/blog-duhaz

# Migration et test
python scripts/migrate_sitemap.py

# Générer un aperçu XML
python scripts/generate_sitemap_preview.py

2. Vérifier le sitemap

Après redémarrage du serveur :

# Démarrer Django
python manage.py runserver

# Dans un navigateur
http://localhost:8000/sitemap.xml

3. URLs à tester

  • http://localhost:8000/sitemap.xml : Sitemap principal
  • http://localhost:8000/sitemap.xml?section=blog : Articles
  • http://localhost:8000/sitemap.xml?section=categories : Catégories
  • http://localhost:8000/sitemap.xml?section=pages : Pages
  • http://localhost:8000/sitemap.xml?section=static : Vues statiques

🚀 Déploiement en production

Étape 1 : Migrer la base de données

python manage.py migrate

Étape 2 : Redémarrer Django

# Selon votre configuration
systemctl restart gunicorn
# ou
supervisorctl restart duhaz_blog

Étape 3 : Vérifier le sitemap

curl https://www.duhaz.fr/sitemap.xml

Étape 4 : Soumettre à Google Search Console

  1. Aller sur https://search.google.com/search-console
  2. Sélectionner votre propriété (www.duhaz.fr)
  3. Aller dans Sitemaps
  4. Supprimer l'ancien sitemap.xml si présent
  5. Ajouter le nouveau : sitemap.xml
  6. Cliquer sur Envoyer

📈 Résultats attendus

Immédiat (0-7 jours)

  • Google détecte le nouveau sitemap
  • Exploration accrue des pages

Court terme (1-4 semaines)

  • Les 56 pages non indexées commencent à être indexées
  • Amélioration du taux d'indexation

Moyen terme (1-3 mois)

  • Meilleure visibilité sur Google
  • Augmentation du trafic organique

⚠️ Points d'attention

Ancien sitemap statique

L'ancien fichier /static/sitemap.xml a été renommé en sitemap_OLD_XXXXXXXX.xml par le script de migration. Ne pas le supprimer immédiatement (gardez-le comme backup pendant 1 mois).

Mise en cache

Si le sitemap ne se met pas à jour :

# Dans settings.py, vérifier :
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
    }
}

URLs canoniques

Le sitemap génère des URLs sans trailing slash (ex: /blog/article). C'est normal, les redirections 301 du problème #1 gèrent les anciennes URLs avec slash.

🔗 Fichiers modifiés

  1. duhaz_blog/settings.py - Applications et SITE_ID
  2. duhaz_blog/urls.py - Configuration sitemap
  3. blog/sitemaps.py - Classes de sitemap améliorées
  4. static/robots.txt - URL du sitemap
  5. scripts/migrate_sitemap.py - Script de migration
  6. scripts/generate_sitemap_preview.py - Script de preview

📚 Ressources

🎉 Prochaine étape

Problème #3 : Soft 404 (13 pages)

  • Identifier les URLs qui n'existent plus
  • Supprimer du sitemap ou créer des redirections