Spam indexing

Screen page d'accueil devis-portail.fr

Un site personnel pour tester le SEO programmatique sur une niche locale : l'installation de portails en France.

L'idée : créer un maximum de pages géolocalisées pour capter du trafic longue traîne, puis monétiser via l'affiliation Viteundevis.

Le principe

Plutôt que d'écrire des milliers de pages à la main, j'ai construit un système qui les génère à la volée.

Un routeur PHP intercepte toutes les requêtes entrantes. Il analyse l'URL, identifie le type de page demandé (région, département ou ville), récupère les données correspondantes dans les fichiers JSON, puis injecte tout ça dans le bon template.

Concrètement, /ile-de-france/paris/paris-75001 déclenche :

  • reconnaissance du pattern "région/département/ville"
  • extraction des slugs
  • vérification que la hiérarchie géographique est cohérente
  • chargement du template ville.php avec les bonnes variables

Si l'URL ne correspond à rien, le routeur renvoie une 404.

Structure des URLs

J'ai opté pour une arborescence géographique logique :

NiveauFormatExemple
Région/region/ile-de-france
Département/region/departement/ile-de-france/paris
Ville/region/departement/ville-codepostal/ile-de-france/paris/paris-75001

Le code postal dans l'URL de la ville évite les conflits entre communes homonymes.

Les variantes de services

Pour démultiplier le nombre de pages sans créer de nouveaux templates, j'ai ajouté un système de variantes. Chaque type de portail possède son propre préfixe d'URL qui vient se greffer devant la structure géographique.

Les 9 variantes :

  • portail (défaut, sans préfixe)
  • portail battant
  • portail coulissant
  • portail électrique
  • portail électrique battant
  • portail aluminium
  • portail standard
  • portail asymétrique
  • portail portillon intégré

Ça transforme /ile-de-france/paris en /portail-battant/ile-de-france/paris, /portail-coulissant/ile-de-france/paris, etc.

Le calcul : 9 variantes × 18 régions × 101 départements × 36 000 villes = environ 326 000 pages indexables.

Les données

Fichier JSON des communes : j'ai structuré un fichier contenant toutes les villes françaises. Chaque entrée comprend le nom, le code postal, le code département et la population. Un helper PHP (DataHelper) permet de rechercher, filtrer et naviguer dans ces données.

Base SIRENE : pour les pages villes, j'affiche de vrais artisans. Les données viennent de data.gouv.fr (base des établissements français). Chaque artisan a sa propre fiche avec nom, adresse et SIRET.

Fonctionnalités

Recherche avec autocomplétion : une API interne (/api/search) renvoie les villes correspondant à la saisie. Le JavaScript envoie la requête après 200ms sans frappe (debounce) et affiche jusqu'à 8 suggestions.

Sitemap XML dynamique : généré par le routeur à chaque appel de /sitemap.xml. Il liste toutes les régions, départements et les 50 plus grandes villes par département, pour chaque variante.

Fil d'ariane : chaque page affiche sa position dans l'arborescence. Sur une page ville, ça donne : Accueil > Région > Département > Ville.

Pages légales : mentions légales et politique de confidentialité.

Monétisation

Les boutons "Trouver un artisan" et "Demander un devis" redirigent vers Viteundevis, une plateforme de mise en relation. Chaque lead généré est rémunéré.

Technologies

  • PHP 8 sans framework
  • JSON pour le stockage des données géographiques et artisans
  • CSS avec variables custom et responsive mobile
  • JavaScript vanilla pour l'autocomplétion
  • Apache avec .htaccess pour rediriger toutes les requêtes vers le routeur