| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #!/usr/bin/env python3
- """
- Script de test pour vérifier les codes HTTP 410 (Gone)
- Teste les anciennes URLs /youtube/ et /flux/
- """
- import requests
- import sys
- from urllib.parse import urljoin
- # Configuration
- BASE_URL = "https://www.duhaz.fr" # Changer en localhost pour tests locaux
- # URLs à tester (les 13 pages en Soft 404)
- test_urls = [
- "/youtube/tag/independants/",
- "/flux/hier/?pages=9",
- "/youtube/tag/fallout/",
- "/youtube/tag/jd/",
- "/flux/hier/?pages=2",
- "/youtube/tag/metrage/",
- "/youtube/outils/vignettes/",
- "/youtube/tag/360/",
- "/youtube/tag/2017/",
- "/youtube/tag/gym/",
- "/youtube/#/",
- "/youtube/tag/ark/",
- "/youtube/tag/fun/",
- ]
- def test_gone_responses():
- """Teste que les URLs retournent bien un 410 Gone"""
- print("\n" + "="*70)
- print("TEST DES RÉPONSES HTTP 410 (GONE)")
- print("="*70)
- print(f"\nBase URL: {BASE_URL}")
- print(f"URLs à tester: {len(test_urls)}\n")
-
- success = 0
- failures = 0
-
- for url_path in test_urls:
- url = urljoin(BASE_URL, url_path)
-
- print(f"Test: {url_path}")
-
- try:
- # Ne pas suivre les redirections
- response = requests.get(url, allow_redirects=False, timeout=10)
-
- # Vérifier le code de statut
- if response.status_code == 410:
- print(f" ✓ Code HTTP: {response.status_code} (Gone) - OK")
- print(" ✓ TEST RÉUSSI\n")
- success += 1
- elif response.status_code == 404:
- print(f" ⚠️ Code HTTP: {response.status_code} (Not Found)")
- print(" ⚠️ Acceptable mais 410 serait mieux")
- print(" ~ TEST ACCEPTABLE\n")
- success += 1
- elif response.status_code in [301, 302, 307, 308]:
- print(f" ✗ Code HTTP: {response.status_code} (Redirection)")
- print(f" ✗ Attendu: 410 (Gone)")
- if 'Location' in response.headers:
- print(f" ✗ Redirige vers: {response.headers['Location']}")
- print(" ✗ TEST ÉCHOUÉ\n")
- failures += 1
- else:
- print(f" ✗ Code HTTP: {response.status_code}")
- print(f" ✗ Attendu: 410 (Gone)")
- print(" ✗ TEST ÉCHOUÉ\n")
- failures += 1
-
- except requests.RequestException as e:
- print(f" ✗ Erreur de connexion: {e}")
- print(" ✗ TEST ÉCHOUÉ\n")
- failures += 1
-
- # Résumé
- print("=" * 70)
- print("RÉSUMÉ")
- print("=" * 70)
- print(f"Tests réussis: {success}/{len(test_urls)}")
- print(f"Tests échoués: {failures}/{len(test_urls)}")
-
- if failures == 0:
- print("\n✓ Tous les tests sont passés avec succès !")
- print("\n📊 Impact SEO attendu:")
- print(" - Google comprendra que ces pages n'existent plus")
- print(" - Les Soft 404 disparaîtront de la Search Console")
- print(" - Pas de pénalité SEO (code 410 est approprié)")
- return 0
- else:
- print(f"\n✗ {failures} test(s) ont échoué")
- return 1
- if __name__ == "__main__":
- print("\n⚠️ IMPORTANT: Configuration du test")
- print(f" URL de base: {BASE_URL}")
- print("\n Pour tester en local, modifiez BASE_URL dans le script:")
- print(' BASE_URL = "http://localhost:8000"\n')
-
- input("Appuyez sur Entrée pour continuer...")
-
- exit_code = test_gone_responses()
- sys.exit(exit_code)
|