4 min de lecture · 801 mots

Parcours d’Apprentissage : Développeur WordPress sur VPS (Débutant)

Parcours d’Apprentissage : Développeur WordPress sur VPS (Débutant)

Durée : 8-12 semaines
Niveau : Débutant
Objectif : Maîtriser l’installation, la configuration et la gestion d’un site WordPress haute performance sur un serveur VPS Debian avec WordOps

Table des Matières

  • Vue d’ensemble
  • Prérequis
  • Programme détaillé semaine par semaine
  • Ressources officielles
  • Critères de réussite
  • Certification finale
  • Vue d’ensemble

    Ce parcours d’apprentissage vous guidera de débutant à développeur WordPress autonome capable de :

  • Gérer un serveur VPS Debian en ligne de commande
  • Installer et configurer WordPress avec WordOps
  • Optimiser les performances (Nginx, PHP-FPM, cache)
  • Sécuriser votre installation (SSL, headers, hardening)
  • Utiliser Git et GitHub pour le versioning
  • Automatiser vos workflows avec l’IA (Claude, ChatGPT)
  • Déployer et maintenir un site WordPress en production
  • Stack technologique :

  • OS : Debian 12 (Bookworm)
  • Serveur Web : Nginx + FastCGI Cache
  • PHP : 8.2 + PHP-FPM + Opcache
  • Base de données : MariaDB 10.11
  • CMS : WordPress 6.9+
  • Gestionnaire de stack : WordOps 3.22.0
  • Versioning : Git + GitHub
  • IA : Claude.ai + ChatGPT
  • Prérequis

    Avant de commencer

  • [ ] Accès à un VPS Debian 12 (recommandé : 2GB RAM minimum)
  • [ ] Connexion SSH fonctionnelle
  • [ ] Nom de domaine avec accès DNS
  • [ ] Compte GitHub (gratuit)
  • [ ] Connaissance basique de l’anglais technique (documentation)
  • [ ] Motivation et 8-15h/semaine disponibles
  • Matériel requis

  • Ordinateur avec terminal SSH (Windows : WSL2, PuTTY / Mac, Linux : terminal natif)
  • Éditeur de code (VS Code recommandé)
  • Navigateur moderne (Chrome, Firefox)
  • Programme détaillé semaine par semaine

    Semaine 1 : Fondations Linux & SSH

    Objectif : Maîtriser les bases de la ligne de commande Linux et sécuriser l’accès SSH

    Compétences à acquérir

  • [ ] Connexion SSH au VPS
  • [ ] Navigation dans le système de fichiers (cd, ls, pwd, tree)
  • [ ] Gestion des fichiers et dossiers (mkdir, touch, cp, mv, rm)
  • [ ] Permissions Linux (chmod, chown, ls -la)
  • [ ] Éditeur de texte en ligne de commande (nano ou vim basique)
  • [ ] Gestion des utilisateurs et sudo
  • [ ] Configuration sécurisée SSH (clés publiques/privées)
  • Projet pratique #1

    « Sécuriser mon VPS »

    Tâches :

  • Créer un utilisateur non-root avec privilèges sudo
  • Désactiver l’authentification root par SSH
  • Générer une paire de clés SSH (ed25519)
  • Configurer l’authentification par clé uniquement
  • Changer le port SSH par défaut (optionnel)
  • Installer et configurer fail2ban
  • Temps estimé : 8-10h

    Commandes clés à maîtriser

Connexion SSH

ssh user@votredomaine.com

Navigation

ls -lah cd /var/www pwd

Création utilisateur

sudo adduser deployer sudo usermod -aG sudo deployer

Clés SSH

ssh-keygen -t ed25519 -C "votre@email.com" ssh-copy-id deployer@votredomaine.com

Permissions

sudo chown -R www-data:www-data /var/www/html sudo chmod 755 /var/www/html

Édition configuration SSH

sudo nano /etc/ssh/sshdconfig sudo systemctl restart ssh

Ressources semaine 1

  • Guide SSH – Debian Wiki
  • Linux Command Line Basics
  • Documentation fail2ban : /usr/share/doc/fail2ban/
  • Critères de réussite

  • [ ] Connexion SSH uniquement par clé (pas de mot de passe)
  • [ ] Utilisateur non-root fonctionnel avec sudo
  • [ ] fail2ban actif et protégeant SSH
  • [ ] Logs SSH accessibles et compréhensibles (/var/log/auth.log)
  • Semaine 2 : Installation de la Stack (Nginx, PHP, MariaDB)

    Objectif : Comprendre et installer manuellement les composants de la stack LEMP avant d’utiliser WordOps

    Compétences à acquérir

  • [ ] Mise à jour du système Debian (apt update, apt upgrade)
  • [ ] Installation Nginx et compréhension des virtual hosts
  • [ ] Installation PHP-FPM et gestion des pools
  • [ ] Installation MariaDB et sécurisation
  • [ ] Configuration firewall UFW
  • [ ] Compréhension architecture LEMP
  • Projet pratique #2

    « Installer LEMP manuellement »

    Tâches :

  • Installer Nginx et créer un virtual host de test
  • Installer PHP 8.2 et PHP-FPM
  • Installer MariaDB et exécuter mysqlsecureinstallation
  • Créer une base de données et un utilisateur
  • Configurer UFW (ports 22, 80, 443)
  • Tester PHP avec info.php
  • Temps estimé : 8-10h

    Commandes clés à maîtriser

    Mise à jour système

    sudo apt update && sudo apt upgrade -y

    Installation Nginx

    sudo apt install nginx -y sudo systemctl status nginx sudo systemctl enable nginx

    Installation PHP 8.2

    sudo apt install php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-xmlrpc php8.2-zip -y

    Installation MariaDB

    sudo apt install mariadb-server mariadb-client -y sudo mysqlsecureinstallation

    Gestion base de données

    sudo mysql CREATE DATABASE test
    db; CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'motdepassefort'; GRANT ALL PRIVILEGES ON testdb. TO 'testuser'@'localhost'; FLUSH PRIVILEGES; EXIT;

    Configuration firewall

    sudo apt install ufw -y sudo ufw allow 22/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable sudo ufw status

    Configuration Nginx basique

    Créer /etc/nginx/sites-available/test.conf :

    server {
        listen 80;
        servername test.votredomaine.com;
        root /var/www/test;
        index index.php index.html;
    
        location ~ .php$ {
            include snippets/fastcgi-php.conf;
            fastcgipass unix:/run/php/php8.2-fpm.sock;
        }
    }
    

    Activer le site :

    sudo ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx
    

    Ressources semaine 2

  • PHP-FPM Documentation
  • MariaDB Knowledge Base
  • Critères de réussite

  • [ ] Nginx répond sur le port 80
  • [ ] PHP-FPM fonctionne (vérification via phpinfo())
  • [ ] MariaDB sécurisée et accessible
  • [ ] Base de données de test créée
  • [ ] UFW actif et configuré correctement
  • Semaine 3 : WordOps & Premier Site WordPress

    Objectif : Installer WordOps et déployer votre premier site WordPress automatisé

    Compétences à acquérir

  • [ ] Installation de WordOps 3.22.0
  • [ ] Commandes WordOps essentielles
  • [ ] Création site WordPress avec SSL Let’s Encrypt
  • [ ] Compréhension du cache FastCGI
  • [ ] Gestion des sites WordOps
  • [ ] Logs et debugging
  • Projet pratique #3

    « Déployer WordPress avec WordOps »

    Tâches :

  • Installer WordOps sur Debian 12
  • Créer un site WordPress avec cache et SSL
  • Configurer wp-admin et base de données
  • Activer Redis pour le cache objet (optionnel)
  • Tester la performance avec GTmetrix
  • Explorer la structure des fichiers générés
  • Temps estimé : 6-8h

    Commandes clés à maîtriser

    Installation WordOps

    wget -qO wo wops.cc && sudo bash wo

    Vérification installation

    sudo wo --version

    Devrait afficher : WordOps 3.22.0

    Stack complète

    sudo wo stack install sudo wo stack install --php82

    Création site WordPress avec toutes options

    sudo wo site create votredomaine.com --wp --php82 --mysql8 --letsencrypt --wpfc --wpredis

    Obtenir les informations du site

    sudo wo site info votredomaine.com

    Gestion des sites

    sudo wo site list sudo wo site show votredomaine.com

    Mise à jour WordPress

    sudo wo site update votredomaine.com --wp

    Logs en temps réel

    sudo wo log show votredomaine.com --nginx sudo wo log show votredomaine.com --php

    Debug

    sudo wo stack status sudo wo debug votredomaine.com

    Structure fichiers générés par WordOps

    /var/www/votredomaine.com/
    ├── htdocs/               # Racine WordPress
    │   ├── wp-admin/
    │   ├── wp-content/
    │   │   ├── plugins/
    │   │   ├── themes/
    │   │   └── uploads/
    │   ├── wp-config.php
    │   └── index.php
    ├── conf/
    │   └── nginx/           # Config Nginx spécifique
    ├── logs/                # Logs Nginx/PHP
    └── backup/              # Backups automatiques
    

    Configuration WordPress post-installation

  • Accéder à https://votredomaine.com/wp-admin
  • Compléter l’installation WordPress
  • Installer un thème (GeneratePress recommandé)
  • Sécuriser wp-config.php avec clés de sécurité
  • Désactiver l’édition fichiers dans wp-admin
  • Ajouter dans wp-config.php :

    // Désactiver éditeur de fichiers
    define('DISALLOWFILEEDIT', true);
    
    // Forcer HTTPS
    define('FORCESSLADMIN', true);
    
    // Augmenter memory limit
    define('WPMEMORYLIMIT', '256M');
    
    // Activer debug (développement seulement)
    define('WPDEBUG', false);
    define('WPDEBUGLOG', false);
    

    Ressources semaine 3

  • WordOps Documentation officielle
  • WordOps GitHub Repository
  • WordOps Changelog
  • Critères de réussite

  • [ ] WordOps 3.22.0 installé et fonctionnel
  • [ ] Site WordPress accessible en HTTPS
  • [ ] Cache FastCGI actif (vérification headers HTTP)
  • [ ] Score GTmetrix > 85% (A/B)
  • [ ] Logs accessibles et compréhensibles
  • [ ] Backup automatique configuré
  • Semaine 4 : Sécurité WordPress & Hardening

    Objectif : Sécuriser WordPress contre les menaces courantes et mettre en place les bonnes pratiques

    Compétences à acquérir

  • [ ] Configuration headers sécurité HTTP
  • [ ] Installation et configuration Wordfence
  • [ ] Hardening wp-config.php
  • [ ] Protection contre brute-force
  • [ ] Désactivation XML-RPC et user enumeration
  • [ ] Configuration SSL/TLS optimale
  • [ ] Mise en place backups automatiques
  • Projet pratique #4

    « Forteresse WordPress »

    Tâches :

  • Ajouter headers sécurité dans Nginx (HSTS, CSP, X-Frame-Options)
  • Installer et configurer Wordfence Security
  • Hardening wp-config.php (clés secrètes, permissions)
  • Désactiver XML-RPC
  • Configurer UpdraftPlus avec backup cloud
  • Tester sécurité avec Mozilla Observatory
  • Obtenir note A+ sur SSL Labs
  • Temps estimé : 8-10h

    Headers sécurité Nginx

    Éditer /etc/nginx/common/wpcommon-php82.conf ou le fichier de conf du site :

    Headers sécurité HTTP

    addheader Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; addheader X-Frame-Options "SAMEORIGIN" always; addheader X-Content-Type-Options "nosniff" always; addheader X-XSS-Protection "1; mode=block" always; addheader Referrer-Policy "strict-origin-when-cross-origin" always; addheader Permissions-Policy "geolocation=(), microphone=(), camera=()" always; addheader Content-Security-Policy "default-src 'self' https:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https:; style-src 'self' 'unsafe-inline' https:; img-src 'self' data: https:; font-src 'self' data: https:; connect-src 'self' https:; frame-ancestors 'self';" always;

    Tester et recharger :

    sudo nginx -t
    sudo systemctl reload nginx
    

    Hardening wp-config.php

    KEY',         'votre-clé-unique-ici');
    define('SECUREAUTHKEY',  'votre-clé-unique-ici');
    define('LOGGEDINKEY',    'votre-clé-unique-ici');
    define('NONCEKEY',        'votre-clé-unique-ici');
    define('AUTHSALT',        'votre-clé-unique-ici');
    define('SECUREAUTHSALT', 'votre-clé-unique-ici');
    define('LOGGEDINSALT',   'votre-clé-unique-ici');
    define('NONCESALT',       'votre-clé-unique-ici');
    
    // === Sécurité ===
    define('DISALLOWFILEEDIT', true);
    define('DISALLOWFILEMODS', false); // true = bloquer installation plugins/thèmes
    define('FORCESSLADMIN', true);
    define('WPAUTOUPDATECORE', 'minor'); // Updates sécurité auto
    
    // === Performance ===
    define('WPMEMORYLIMIT', '256M');
    define('WPMAXMEMORYLIMIT', '512M');
    define('WPPOSTREVISIONS', 5);
    define('AUTOSAVEINTERVAL', 300);
    define('EMPTYTRASHDAYS', 7);
    
    // === Cache ===
    define('WPCACHE', true);
    
    // === Debugging (DÉSACTIVER EN PRODUCTION) ===
    define('WPDEBUG', false);
    define('WPDEBUGLOG', false);
    define('WPDEBUGDISPLAY', false);
    define('SCRIPTDEBUG', false);
    

    Permissions correctes :

    sudo chown www-data:www-data /var/www/votredomaine.com/htdocs/wp-config.php
    sudo chmod 640 /var/www/votredomaine.com/htdocs/wp-config.php
    

    Plugins sécurité recommandés

  • Wordfence Security (gratuit)
  • – Firewall applicatif
    – Scan malware
    – Protection brute-force
    – 2FA (authentification à deux facteurs)

  • UpdraftPlus (gratuit)
  • – Backups automatiques
    – Stockage cloud (Google Drive, Dropbox, S3)
    – Restauration en un clic

  • Limit Login Attempts Reloaded (gratuit)
  • – Protection brute-force additionnelle
    – Logs tentatives de connexion

    Désactiver XML-RPC

    Ajouter dans wp-config.php :

    // Désactiver XML-RPC
    addfilter('xmlrpcenabled', 'returnfalse');
    

    Ou bloquer dans Nginx (déjà inclus dans WordOps) :

    location = /xmlrpc.php {
        deny all;
        accesslog off;
        lognotfound off;
        return 444;
    }
    

    Tests sécurité

    Test SSL Labs (note A+ attendue)

    Aller sur : https://www.ssllabs.com/ssltest/

    Test headers sécurité (note A attendue)

    Aller sur : https://observatory.mozilla.org/

    Vérifier headers en ligne de commande

    curl -I https://votredomaine.com | grep -i "strict-transport" curl -I https://votredomaine.com | grep -i "x-frame"

    Ressources semaine 4

  • WordPress Security Guide
  • Wordfence Documentation
  • Vérification git config --list

    Générer clé SSH pour GitHub (si pas déjà fait)

    ssh-keygen -t ed25519 -C "votre@email.com" cat ~/.ssh/ided25519.pub

    Copier la clé et l'ajouter sur GitHub : Settings → SSH Keys

    Workflow Git basique

    Se positionner dans le dossier du thème

    cd /var/www/votredomaine.com/htdocs/wp-content/themes/votre-theme/

    Initialiser repository

    git init

    Créer .gitignore

    nano .gitignore

    Premier commit

    git add . git commit -m "Initial commit: Mon thème WordPress"

    Lier au repository GitHub (créé au préalable sur github.com)

    git remote add origin git@github.com:votre-username/votre-theme.git

    Pousser vers GitHub

    git push -u origin main

    Workflow quotidien

    git status # Voir les modifications git add fichier.php # Ajouter un fichier modifié git add . # Ajouter tous les fichiers modifiés git commit -m "Description" # Créer un commit git push # Envoyer vers GitHub git pull # Récupérer les modifications

    .gitignore pour WordPress

    Créer .gitignore :

    WordPress Core

    /wp-admin/ /wp-includes/ /wp-
    .php /xmlrpc.php /readme.html /license.txt

    Configuration

    wp-config.php .htaccess

    Contenu utilisateur (ne pas versionner)

    /wp-content/uploads/ /wp-content/backup/ /wp-content/upgrade/ /wp-content/cache/

    Plugins (sauf si vous développez des plugins custom)

    /wp-content/plugins/ !/wp-content/plugins/votre-plugin-custom/

    Thèmes (sauf votre thème)

    /wp-content/themes/ !/wp-content/themes/votre-theme/

    Logs et temporaires

    .log .sql .sqlite .DSStore Thumbs.db .swp .bak ~

    Environnements

    .env .env.local

    IDE

    .vscode/ .idea/
    .sublime-project .sublime-workspace

    Dépendances

    nodemodules/ vendor/ composer.phar package-lock.json

    Branches Git

    Créer une nouvelle branche

    git checkout -b feature-nouvelle-fonctionnalite

    Lister les branches

    git branch

    Changer de branche

    git checkout main

    Merger une branche

    git checkout main git merge feature-nouvelle-fonctionnalite

    Supprimer une branche

    git branch -d feature-nouvelle-fonctionnalite

    Pousser une branche vers GitHub

    git push -u origin feature-nouvelle-fonctionnalite

    README.md professionnel

    Créer README.md dans votre thème :

    Mon Thème WordPress

    !
    Version !WordPress !PHP

    Description

    Thème WordPress moderne et performant pour [décrire l'usage].

    Fonctionnalités

  • Responsive design
  • SEO optimisé
  • Performance optimisée (lazy loading, WebP)
  • Compatible Gutenberg
  • Accessible (WCAG 2.1)
  • Installation

  • Télécharger le thème
  • Uploader via WordPress Admin → Apparence → Thèmes
  • Activer le thème
  • Configurer via Apparence → Personnaliser
  • Prérequis

  • WordPress 6.9+
  • PHP 8.2+
  • Nginx ou Apache
  • Configuration

    Widgets

    Le thème propose 3 zones de widgets :
  • Sidebar
  • Footer 1
  • Footer 2
  • Développement

    Structure

    votre-theme/
    ├── style.css
    ├── functions.php
    ├── header.php
    ├── footer.php
    ├── index.php
    ├── single.php
    ├── archive.php
    └── template-parts/

    Commandes

    bash

    Installation dépendances

    npm install

    Compilation SASS (si utilisé)

    npm run build

    Support

    Pour toute question : contact@votredomaine.com

    Changelog

    Version 1.0.0 - 2025-01-15

  • Release initiale
  • Design responsive
  • SEO optimisé
  • Licence

    GPLv2 or later

    Ressources semaine 5

  • Pro Git Book (français)
  • GitHub Docs
  • DIR" -type f ( -iname "
  • .jpg" -o -iname ".jpeg" -o -iname ".png" ) | while read IMG; do WEBP="${IMG%.}.webp" if [ ! -f "$WEBP" ]; then echo "Converting: $IMG" cwebp -q 85 "$IMG" -o "$WEBP" fi done echo "Conversion terminée!"

    Ou utiliser plugin : ShortPixel Image Optimizer ou Imagify.

    Lazy loading

    WordPress 5.5+ intègre lazy loading natif pour images.

    Vérifier présence attribut loading="lazy" dans HTML :

    Description
    

    Plugin optionnel : Lazy Load by WP Rocket pour iframes et vidéos.

    Configuration Cloudflare CDN

  • Créer compte gratuit sur Cloudflare
  • Ajouter votre domaine
  • Changer nameservers chez votre registrar
  • Attendre propagation DNS (24-48h)
  • Activer options :
  • – SSL/TLS: Full (Strict)
    – Auto Minify: JS, CSS, HTML
    – Brotli: ON
    – HTTP/2: ON
    – HTTP/3 (QUIC): ON

    Configuration Cloudflare optimale :

    Speed → Optimization :

  • Auto Minify: Tout cocher
  • Brotli: ON
  • Early Hints: ON
  • Rocket Loader: OFF (peut casser scripts)
  • Caching :

  • Caching Level: Standard
  • Browser Cache TTL: 4 hours
  • Always Online: ON
  • Rules → Page Rules (gratuit : 3 règles) :

    Règle 1 : Cache everything

  • URL: votredomaine.com/
  • Cache Level: Cache Everything
  • Edge Cache TTL: 1 month
  • Règle 2 : Bypass wp-admin

  • URL: votredomaine.com/wp-admin/
  • Cache Level: Bypass
  • Règle 3 : Bypass wp-login

  • URL: votredomaine.com/wp-login.php
  • Security Level: High
  • Tests performance

    Test PageSpeed Insights

    Aller sur : https://pagespeed.web.dev/

    Objectif : Score 90+ mobile et desktop

    Test GTmetrix

    Aller sur : https://gtmetrix.com/

    Objectif : Grade A, Performance 90+

    Test temps de chargement (ligne de commande)

    curl -o /dev/null -s -w "Time Total: %{timetotal}sn" https://votredomaine.com

    Objectif : < 1s

    Checklist optimisation

    Vérifier cache FastCGI actif

    curl -I https://votredomaine.com | grep -i "x-fastcgi-cache"

    Devrait afficher : X-FastCGI-Cache: HIT

    Vérifier Opcache

    php -i | grep opcache.enable

    Devrait afficher : opcache.enable => On => On

    Vérifier Brotli/Gzip

    curl -H "Accept-Encoding: br,gzip" -I https://votredomaine.com | grep -i "content-encoding"

    Devrait afficher : content-encoding: br ou gzip

    Ressources semaine 6

  • Nginx FastCGI Cache Guide
  • PHP-FPM Performance Tuning
  • MariaDB Performance Tuning
  • Critères de réussite

  • [ ] Cache FastCGI actif (vérification headers)
  • [ ] PHP-FPM optimisé (pm.maxchildren adapté)
  • [ ] Opcache actif et configuré
  • [ ] MariaDB innodbbufferpoolsize optimisé
  • [ ] Images converties en WebP
  • [ ] Cloudflare configuré et actif
  • [ ] Score PageSpeed Insights 90+ (mobile + desktop)
  • [ ] Score GTmetrix A (90+)
  • [ ] Temps de chargement < 1s
  • Semaine 7 : SEO & Rank Math

    Objectif : Optimiser le référencement naturel avec Rank Math SEO

    Compétences à acquérir

  • [ ] Installation et configuration Rank Math
  • [ ] Optimisation on-page (titres, meta descriptions, H1-H6)
  • [ ] Schema.org markup
  • [ ] Sitemap XML
  • [ ] Breadcrumbs
  • [ ] Open Graph et Twitter Cards
  • [ ] Google Search Console
  • [ ] Google Analytics 4
  • Projet pratique #7

    « SEO WordPress parfait »

    Tâches :

  • Installer et configurer Rank Math SEO
  • Optimiser 5 articles existants (score 90+)
  • Configurer Schema.org (Organization, Article)
  • Générer et soumettre sitemap XML
  • Configurer Open Graph pour partage social
  • Lier Google Search Console
  • Installer Google Analytics 4
  • Analyser mots-clés avec Ubersuggest
  • Temps estimé : 8-10h

    Installation Rank Math

    Via wp-cli (si installé)

    sudo -u www-data wp plugin install seo-by-rank-math --activate --path=/var/www/votredomaine.com/htdocs

    Ou via WordPress Admin → Extensions → Ajouter

    Configuration Setup Wizard :

  • Account: Créer compte Rank Math (optionnel)
  • Site Type: Blog / Portfolio / Business
  • Business Info: Nom, logo, social links
  • Google Services: Search Console + Analytics
  • Sitemap: Activer (désactiver taxonomies inutiles)
  • Schema: Organization + Website
  • Finir et accéder au tableau de bord
  • Configuration Rank Math avancée

    Rank Math → General Settings → Breadcrumbs :

  • Enable Breadcrumbs: ON
  • Separator: / ou
  • Hide on Homepage: ON
  • Ajouter au thème (avant le titre) :

    exists('rankmaththebreadcrumbs') ) {
        rankmaththebreadcrumbs();
    }
    ?>
    

    Rank Math → Titles & Meta :

    Configuration par type :

  • Posts: %title% %sep% %sitename%
  • Pages: %title% %sep% %sitename%
  • Archives: %term% Archives %sep% %sitename%
  • Meta description: Auto-generated or custom
  • Rank Math → Sitemap Settings :

  • Include Posts: ON
  • Include Pages: ON
  • Include Media: OFF (optionnel)
  • Include Categories: ON
  • Include Tags: OFF (sauf si très utilisés)
  • Images in Sitemap: ON
  • Sitemap URL : https://votredomaine.com/sitemapindex.xml

    Optimisation article (on-page SEO)

    Checklist par article :

  • Focus Keyword : Choisir 1 mot-clé principal
  • Titre (H1) : Inclure mot-clé, < 60 caractères
  • URL : Courte, mot-clé inclus, pas de stopwords
  • Meta description : 150-160 caractères, mot-clé, CTA
  • Premier paragraphe : Mot-clé dans les 100 premiers mots
  • Headings (H2-H6) : Structure logique, mots-clés secondaires
  • Images : Alt text descriptif avec mot-clé
  • Liens internes : 2-3 liens vers articles connexes
  • Liens externes : 1-2 liens vers sources qualité
  • Longueur : 1500+ mots pour articles piliers
  • Objectif : Score Rank Math 90+/100

    Schema.org markup

    Rank Math ajoute automatiquement Schema.org.

    Vérifier types activés :

  • Organization (site entier)
  • Website (site entier)
  • Article (posts)
  • Breadcrumbs (navigation)
  • Tester Schema : Google Rich Results Test

    Open Graph et Twitter Cards

    Rank Math → Titles & Meta → Social Meta :

  • Enable Open Graph: ON
  • Facebook App ID: (optionnel)
  • Enable Twitter Card: ON
  • Twitter Username: @votrecompte
  • Par article, Rank Math génère automatiquement :

  • og:title
  • og:description
  • og:image
  • og:url
  • twitter:card
  • Vérifier : Facebook Sharing Debugger

    Google Search Console

  • Aller sur Google Search Console
  • Ajouter propriété (votredomaine.com)
  • Vérification : Méthode DNS (TXT record) ou HTML file
  • Soumettre sitemap : https://votredomaine.com/sitemapindex.xml
  • Métriques à suivre :

  • Impressions
  • Clics
  • CTR moyen
  • Position moyenne
  • Pages indexées
  • Google Analytics 4

  • Créer compte Google Analytics
  • Créer propriété (GA4)
  • Créer flux de données (Web)
  • Copier Measurement ID (G-XXXXXXXXXX)
  • Installation via plugin Site Kit by Google ou code manuel.

    Code tracking (dans ) :

    
    
    
    

    Recherche de mots-clés

    Outils gratuits :

  • Ubersuggest (3 recherches/jour gratuit)
  • Google Keyword Planner
  • AnswerThePublic
  • Google Trends
  • Critères mot-clé :

  • Volume : 100-1000/mois (niche) ou 1000-10000/mois (large)
  • Difficulté : < 40 (facile) pour débuter
  • Intention : Informationnelle pour blog
  • Langue : Français (France ou Belgique selon cible)
  • Ressources semaine 7

  • Rank Math Documentation
  • Google Search Central
  • Schema.org Documentation
  • Critères de réussite

  • [ ] Rank Math installé et configuré
  • [ ] 5 articles optimisés (score 90+)
  • [ ] Sitemap XML généré et soumis
  • [ ] Schema.org validé (Google Rich Results Test)
  • [ ] Open Graph fonctionnel (test Facebook)
  • [ ] Google Search Console lié et sitemap soumis
  • [ ] Google Analytics 4 installé et tracking actif
  • [ ] Liste 10 mots-clés cibles identifiés
  • Semaine 8 : IA & Automatisation (Claude, ChatGPT)

    Objectif : Utiliser l’IA pour accélérer la création de contenu et automatiser les tâches répétitives

    Compétences à acquérir

  • [ ] Rédaction assistée par IA (Claude, ChatGPT)
  • [ ] Génération de prompts efficaces
  • [ ] Optimisation SEO avec IA
  • [ ] Génération d’images (Midjourney, DALL-E)
  • [ ] Automatisation avec Make.com ou Zapier (optionnel)
  • [ ] Code WordPress avec assistance IA
  • [ ] Documentation automatique
  • Projet pratique #8

    « Blog WordPress alimenté par IA »

    Tâches :

  • Créer 3 articles complets avec Claude.ai
  • Optimiser pour SEO avec ChatGPT
  • Générer featured images avec DALL-E
  • Créer un prompt template réutilisable
  • Coder un shortcode WordPress avec assistance Claude
  • Générer documentation README.md
  • Automatiser publication (optionnel)
  • Temps estimé : 8-10h

    Workflow rédaction article avec Claude.ai

    Étape 1 : Recherche sujet

    Prompt Claude :

    Je gère un blog DevOps/SRE en français ciblant la Belgique et la France.
    
    Public : Administrateurs systèmes, DevOps, SRE, développeurs backend.
    
    Propose-moi 5 idées d'articles sur le thème "Docker" qui sont :
    
  • Recherchés (mots-clés volume > 500/mois)
  • Peu concurrentiels (difficulty < 40)
  • Pratiques (tutoriels ou guides)
  • Pertinents pour mon audience
  • Format :
  • Titre SEO-optimisé
  • Mot-clé principal
  • Volume de recherche estimé
  • Angle unique
  • Étape 2 : Plan détaillé

    Prompt Claude (après avoir choisi un sujet) :

    Crée un plan détaillé pour l'article suivant :
    
    Titre : "Docker Compose : Guide complet pour débutants"
    Mot-clé principal : docker compose tutoriel
    Longueur cible : 2000 mots
    Public : Débutants en Docker
    
    Le plan doit inclure :
    
  • Introduction accrocheuse (problème + solution)
  • 5-7 sections H2 logiques
  • Sous-sections H3 si nécessaire
  • Exemples de code concrets
  • Section FAQ (3-5 questions)
  • Conclusion avec CTA
  • Optimise pour SEO (mots-clés secondaires, LSI).

    Étape 3 : Rédaction sections

    Prompt Claude (par section) :

    Rédige la section suivante de l'article en français professionnel :
    
    

    Installation de Docker Compose

    Consignes :
  • 300-400 mots
  • Inclure commandes bash avec explications
  • Ton : pédagogue mais technique
  • Inclure tips et warnings
  • Optimisé SEO (mots-clés : docker compose install, installer docker compose)
  • Public : Administrateurs Linux débutants en Docker

    Étape 4 : Optimisation SEO

    Prompt ChatGPT :

    Optimise ce paragraphe pour le SEO :
    
    [Coller paragraphe]
    
    Mot-clé principal : docker compose tutoriel
    Mots-clés secondaires : docker compose install, docker compose file, docker compose up
    
    Consignes :
    
  • Inclure mots-clés naturellement
  • Améliorer lisibilité (phrases courtes)
  • Ajouter transition entre idées
  • Garder ton professionnel
  • Prompt templates réutilisables

    Template article tutoriel :

    Rédige un article de blog technique complet en français.
    
    Titre : [TITRE]
    Mot-clé principal : [MOT-CLÉ]
    Longueur : [NOMBRE] mots
    Public : [DESCRIPTION PUBLIC]
    
    Structure :
    
  • Introduction (150 mots)
  • - Problème concret - Impact sur le lecteur - Promesse de solution
  • Prérequis (50 mots)
  • - Liste à puces - Connaissances requises - Outils nécessaires
  • Corps de l'article (1500 mots)
  • - 5 sections H2 - Exemples de code commentés - Captures d'écran décrites - Tips et warnings
  • FAQ (200 mots)
  • - 5 questions courantes - Réponses concises
  • Conclusion (100 mots)
  • - Résumé bénéfices - CTA vers article connexe Ton : Professionnel, pédagogue, accessible SEO : Densité mot-clé 1-2%, mots-clés secondaires naturels Format : Markdown avec code blocks

    Template meta description :

    Crée une meta description SEO pour cet article :
    
    Titre : [TITRE]
    Mot-clé : [MOT-CLÉ]
    
    Consignes :
    
  • 150-160 caractères exactement
  • Inclure mot-clé principal
  • Call-to-action clair
  • Bénéfice lecteur explicite
  • Ton engageant
  • Fournis 3 variantes.

    Génération code WordPress avec Claude

    Prompt exemple :

    Crée un shortcode WordPress qui affiche une boîte d'alerte personnalisable.
    
    Fonctionnalités :
    
  • Attributs : type (info, warning, error, success), titre, contenu
  • Design : Bootstrap 5 style
  • Responsive
  • Accessible (ARIA labels)
  • Sécurisé (échapper output)
  • Code :
  • Fonction avec prefix yawc
  • Commentaires détaillés
  • Bonnes pratiques WordPress
  • Exemple d'utilisation
  • Format : PHP avec syntaxe WordPress

    Claude génèrera un code production-ready que vous pouvez ajouter à functions.php.

    Génération images avec DALL-E

    Prompt exemple (ChatGPT Plus) :

    Crée une image featured pour article de blog tech.
    
    Sujet : Docker Compose pour débutants
    Style : Flat design, couleurs modernes (bleu, orange)
    Éléments : Logo Docker, containers stylisés, flèches workflow
    Format : 1200x630px (Open Graph)
    Ton : Professionnel mais accessible
    

    Alternatives gratuites :

  • Canva (templates personnalisables)
  • Unsplash (photos libres)
  • Excalidraw (diagrammes techniques)
  • Automatisation Make.com (optionnel)

    Exemple workflow :

  • Trigger : Nouveau fichier Markdown dans Google Drive
  • Action 1 : Parser contenu Markdown
  • Action 2 : Convertir en HTML
  • Action 3 : Créer post WordPress via API
  • Action 4 : Notification Slack
  • Nécessite : API WordPress REST activée, Make.com (gratuit limité).

    Best practices IA

    À FAIRE :

  • Relire et éditer le contenu généré (l’IA fait des erreurs)
  • Vérifier les faits et chiffres
  • Ajouter expérience personnelle
  • Adapter ton à votre audience
  • Tester le code généré
  • À NE PAS FAIRE :

  • Publier sans relecture
  • Copier-coller aveuglément
  • Utiliser pour spam de contenu
  • Ignorer les hallucinations IA
  • Remplacer totalement l’humain
  • Ressources semaine 8

  • Claude.ai (gratuit avec limites)
  • ChatGPT (gratuit avec GPT-3.5)
  • OpenAI API Docs
  • Prompt Engineering Guide
  • Critères de réussite

  • [ ] 3 articles rédigés avec Claude (2000+ mots chacun)
  • [ ] Articles optimisés SEO (score Rank Math 85+)
  • [ ] Featured images générées ou créées
  • [ ] Prompt templates documentés et réutilisables
  • [ ] 1 shortcode WordPress fonctionnel créé avec Claude
  • [ ] Contenu relu et édité (pas de hallucinations)
  • [ ] Articles publiés et performants (vérification Analytics)
  • Semaine 9-10 : Projet Fil Rouge – Site WordPress Complet

    Objectif : Synthétiser toutes les compétences en créant un site WordPress professionnel de A à Z

    Spécifications projet

    Thématique : Au choix (DevOps, SRE, Tech, ou autre)

    Livrables :

  • Site WordPress fonctionnel en HTTPS
  • Thème custom ou child theme
  • 10 articles optimisés SEO (1500+ mots)
  • Plugin custom avec 1 fonctionnalité
  • Repository GitHub avec documentation
  • Performance optimale (PageSpeed 90+)
  • Sécurité renforcée (note A SSL Labs)
  • Phase 1 : Infrastructure (Jour 1-2)

    Tâches :

  • [ ] Provisionner VPS Debian 12
  • [ ] Configurer utilisateur et SSH
  • [ ] Installer WordOps 3.22.0
  • [ ] Créer site WordPress avec SSL
  • [ ] Configurer DNS et Cloudflare
  • Commandes :

    Connexion et setup initial

    ssh root@votre-vps-ip adduser deployer usermod -aG sudo deployer su - deployer

    Installation WordOps

    wget -qO wo wops.cc && sudo bash wo sudo wo stack install --php82

    Création site

    sudo wo site create votreprojet.com --wp --php82 --mysql8 --letsencrypt=wildcard --wpfc --wpredis

    Vérification

    sudo wo site info votreprojet.com

    Phase 2 : Sécurité (Jour 3)

    Tâches :

  • [ ] Headers sécurité Nginx (HSTS, CSP)
  • [ ] Wordfence installé et configuré
  • [ ] fail2ban actif
  • [ ] Backups UpdraftPlus
  • [ ] wp-config.php hardenisé
  • [ ] UFW configuré
  • Tests :

    Test SSL

    curl https://www.ssllabs.com/ssltest/analyze.html?d=votreprojet.com

    Test headers

    curl -I https://votreprojet.com | grep -i strict-transport

    Phase 3 : Thème & Design (Jour 4-5)

    Tâches :

  • [ ] Installer GeneratePress (ou créer child theme)
  • [ ] Personnaliser design (couleurs, typo, logo)
  • [ ] Créer pages statiques (Accueil, À propos, Contact)
  • [ ] Configurer menu navigation
  • [ ] Ajouter footer avec social links
  • [ ] Responsive design vérifié
  • Phase 4 : Plugin Custom (Jour 6-7)

    Créer un plugin avec 1 fonctionnalité au choix :

    Idées :

  • Reading time calculator
  • Table of contents automatique
  • Related posts avec IA
  • Social share buttons
  • Custom shortcodes
  • Structure plugin :

    mon-plugin/
    ├── mon-plugin.php
    ├── includes/
    │   ├── class-core.php
    │   └── class-shortcodes.php
    ├── admin/
    │   └── settings-page.php
    ├── assets/
    │   ├── css/
    │   └── js/
    └── README.md
    

    Versioner sur GitHub.

    Phase 5 : Contenu (Jour 8-12)

    Tâches :

  • [ ] Planifier calendrier éditorial (10 articles)
  • [ ] Recherche mots-clés (Ubersuggest)
  • [ ] Rédaction 10 articles avec Claude
  • [ ] Optimisation SEO (Rank Math 90+)
  • [ ] Featured images
  • [ ] Liens internes stratégiques
  • Structure article type :

  • Introduction (150 mots)
  • 5-7 sections H2 (1500 mots total)
  • Code examples (si technique)
  • FAQ (3-5 questions)
  • Conclusion + CTA
  • Phase 6 : Performance (Jour 13-14)

    Tâches :

  • [ ] Cache FastCGI vérifié
  • [ ] Opcache optimisé
  • [ ] PHP-FPM tunné
  • [ ] Images converties WebP
  • [ ] Cloudflare CDN actif
  • [ ] Tests PageSpeed 90+
  • Phase 7 : SEO (Jour 15-16)

    Tâches :

  • [ ] Sitemap XML généré et soumis
  • [ ] Google Search Console lié
  • [ ] Google Analytics installé
  • [ ] Schema.org validé
  • [ ] Open Graph configuré
  • [ ] Tous articles score 85+
  • Phase 8 : Git & Documentation (Jour 17-18)

    Tâches :

  • [ ] Repository GitHub créé
  • [ ] Thème versionné
  • [ ] Plugin versionné
  • [ ] README.md professionnel
  • [ ] CHANGELOG.md
  • [ ] Documentation technique
  • Structure README :

    Mon Projet WordPress

    Description

    [Description concise]

    Stack Technique

  • Debian 12
  • Nginx + PHP 8.2 + MariaDB
  • WordPress 6.9
  • WordOps 3.22.0
  • Installation

    [Instructions step-by-step]

    Fonctionnalités

  • [Liste]
  • Performance

  • PageSpeed Score : 95/100
  • GTmetrix Grade : A
  • Sécurité

  • SSL Labs : A+
  • Headers sécurité : A
  • Screenshots

    [Captures d'écran]

    Licence

    GPL v2

    Phase 9 : Tests & Debug (Jour 19)

    Checklist finale :

  • [ ] Tous liens fonctionnels (no 404)
  • [ ] Formulaire contact opérationnel
  • [ ] Responsive mobile/tablet vérifié
  • [ ] Tests navigateurs (Chrome, Firefox, Safari)
  • [ ] Vitesse chargement < 2s
  • [ ] Pas d’erreurs JS console
  • [ ] Pas d’erreurs PHP logs
  • Phase 10 : Présentation (Jour 20)

    Créer une présentation du projet incluant :

  • Slides (Google Slides ou PowerPoint) :
  • – Slide 1 : Titre + URL
    – Slide 2 : Objectifs projet
    – Slide 3 : Stack technique
    – Slide 4 : Fonctionnalités clés
    – Slide 5 : Screenshots
    – Slide 6 : Metrics (PageSpeed, SEO)
    – Slide 7 : Défis rencontrés
    – Slide 8 : Apprentissages
    – Slide 9 : Prochaines étapes

  • Vidéo démo (2-3 minutes) :
  • – Tour du site
    – Fonctionnalité plugin custom
    – Backend WordPress
    – Performance tests

    Évaluation projet

    Grille notation (100 points) :

    | Critère | Points |
    |———|——–|
    | Infrastructure fonctionnelle | 10 |
    | Sécurité (A+ SSL Labs) | 10 |
    | Performance (90+ PageSpeed) | 15 |
    | SEO (85+ Rank Math) | 15 |
    | Design professionnel | 10 |
    | 10 articles qualité | 15 |
    | Plugin custom fonctionnel | 10 |
    | GitHub documentation | 10 |
    | Présentation | 5 |

    Seuil de réussite : 70/100

    Ressources projet

    Toutes ressources des semaines 1-8 applicables.

    Critères de réussite

  • [ ] Site accessible en HTTPS
  • [ ] 10 articles publiés et optimisés
  • [ ] Score PageSpeed 90+
  • [ ] Note SSL Labs A+
  • [ ] Plugin custom fonctionnel
  • [ ] Repository GitHub documenté
  • [ ] Présentation complète
  • [ ] Note finale 70+/100
  • Semaine 11-12 : Maintenance & Évolution

    Objectif : Maintenir le site en production et planifier son évolution

    Compétences à acquérir

  • [ ] Monitoring proactif (Uptime, erreurs)
  • [ ] Mises à jour sécurité WordPress/plugins
  • [ ] Analyse analytics et ajustements
  • [ ] Backups et restauration
  • [ ] Scaling (si trafic augmente)
  • [ ] Gestion incidents
  • [ ] Planification contenu long terme
  • Projet pratique #9

    « Plan de maintenance 6 mois »

    Tâches :

  • Configurer monitoring Uptime Robot
  • Calendrier mises à jour (hebdo/mensuel)
  • Automatiser backups (quotidien)
  • Tester restauration backup
  • Analyser Search Console (erreurs, opportunités)
  • Créer calendrier éditorial 6 mois
  • Planifier évolutions (features, refonte)
  • Temps estimé : 6-8h

    Monitoring Uptime

    Uptime Robot (gratuit, 50 monitors) :

  • Créer compte : uptimerobot.com
  • Ajouter monitor HTTP(S)
  • – URL : https://votredomaine.com
    – Interval : 5 minutes
    – Alert : Email + SMS

  • Ajouter monitor mots-clés (vérifier contenu présent)
  • Alternative : UptimeRobot CLI ou Netdata (self-hosted).

    Mises à jour automatiques

    Configuration wp-config.php :

    // Updates automatiques sécurité (recommandé)
    define('WPAUTOUPDATECORE', 'minor');
    
    // OU updates automatiques tout (risqué)
    // define('WPAUTOUPDATECORE', true);
    
    // Updates plugins/thèmes auto (optionnel, peut casser)
    addfilter('autoupdateplugin', 'returntrue');
    addfilter('autoupdatetheme', '_returntrue');
    

    Processus manuel recommandé :

    Hebdomadaire :

    Se connecter au VPS

    ssh deployer@votredomaine.com

    Créer backup pré-update

    sudo wo site update votredomaine.com --backup

    Mettre à jour WordPress core

    sudo -u www-data wp core update --path=/var/www/votredomaine.com/htdocs

    Mettre à jour plugins

    sudo -u www-data wp plugin update --all --path=/var/www/votredomaine.com/htdocs

    Mettre à jour thèmes

    sudo -u www-data wp theme update --all --path=/var/www/votredomaine.com/htdocs

    Vérifier site fonctionnel

    curl -I https://votredomaine.com

    Si problème, restaurer backup

    sudo wo site restore votredomaine.com --backup=20250118

    Mensuel :

  • Updates système : sudo apt update && sudo apt upgrade
  • Updates stack : sudo wo stack upgrade
  • Audit sécurité : Wordfence scan
  • Vérification backups : Test restauration
  • Revue analytics : GSC + GA4
  • Backups automatiques robustes

    UpdraftPlus configuration :

  • Fréquence :
  • – Fichiers : Hebdomadaire
    – Base de données : Quotidien

  • Rétention :
  • – Garder 7 backups fichiers
    – Garder 30 backups DB

  • Stockage :
  • – Primaire : Google Drive ou Dropbox
    – Secondaire : Serveur distant (rsync)

  • Notifications :
  • – Email après chaque backup
    – Alerte si échec

    Script backup système (en plus d’UpdraftPlus) :

    #!/bin/bash
    

    Script : backup-wordpress.sh

    SITEROOT="/var/www/votredomaine.com/htdocs" BACKUPDIR="/home/deployer/backups" DATE=$(date +%Y%m%d%H%M%S) DBNAME="votreprojet" DBUSER="votreprojet" DBPASS="motdepasse"

    Créer dossier backup

    mkdir -p "$BACKUPDIR"

    Backup fichiers

    tar -czf "$BACKUP
    DIR/files$DATE.tar.gz" "$SITEROOT"

    Backup base de données

    mysqldump -u "$DBUSER" -p"$DBPASS" "$DBNAME" | gzip > "$BACKUPDIR/db$DATE.sql.gz"

    Garder seulement 7 derniers backups

    find "$BACKUP
    DIR" -name "files.tar.gz" -mtime +7 -delete find "$BACKUPDIR" -name "db.sql.gz" -mtime +7 -delete

    Notification

    echo "Backup completed: $DATE" | mail -s "WordPress Backup" votre@email.com

    Automatiser avec cron :

    Éditer crontab

    crontab -e

    Ajouter ligne (backup quotidien 2h du matin)

    0 2 /home/deployer/scripts/backup-wordpress.sh

    Test restauration backup

    Important : Tester restauration tous les mois.

    Procédure :

  • Créer environnement staging
  • Restaurer backup dans staging
  • Vérifier site fonctionnel
  • Noter durée restauration
  • Documenter problèmes
  • Commandes :

    Créer site staging

    sudo wo site create staging.votredomaine.com --wp --php82

    Restaurer backup UpdraftPlus

    Via interface WordPress Admin → UpdraftPlus → Restore

    OU restauration manuelle

    cd /var/www/staging.votredomaine.com/htdocs sudo tar -xzf /chemin/backup/files20250118.tar.gz sudo mysql stagingdb < /chemin/backup/db20250118.sql

    Ajuster wp-config.php (DB credentials)

    sudo nano wp-config.php

    Search & Replace URLs

    sudo -u www-data wp search-replace 'https://votredomaine.com' 'https://staging.votredomaine.com' --path=/var/www/staging.votredomaine.com/htdocs

    Analyse Google Search Console

    Vérifications hebdomadaires :

  • Performance :
  • – Tendance impressions
    – Tendance clics
    – CTR moyen (> 3% bon)
    – Position moyenne (objectif top 10)

  • Couverture :
  • – Pages indexées (augmentation = bon)
    – Erreurs 404 à corriger
    – Pages exclues à investiguer

  • Améliorations :
  • – Core Web Vitals (LCP, FID, CLS)
    – Ergonomie mobile (aucune erreur)
    – HTTPS (100% des pages)

  • Requêtes :
  • – Top 10 requêtes
    – Opportunités (position 11-20 à booster)
    – Cannibalisation (2 pages même keyword)

    Actions correctives :

  • Erreur 404 : Créer redirection 301
  • Baisse CTR : Améliorer meta description
  • Position 11-20 : Optimiser contenu, ajouter liens internes
  • Core Web Vitals : Optimiser images, cache
  • Calendrier éditorial long terme

    Structure 6 mois (2 articles/semaine = 52 articles) :

    Répartition thématiques :

  • 40% Tutoriels techniques
  • 30% Guides pratiques
  • 20% Actualités/tendances
  • 10% Opinion/retours d’expérience
  • Format Markdown :

    Calendrier Éditorial 2025 - S1

    Janvier

    Semaine 1

  • [ ] Article 1 : [Titre] - Mot-clé : [keyword] - Auteur : [nom]
  • [ ] Article 2 : [Titre] - Mot-clé : [keyword] - Auteur : [nom]
  • Semaine 2

  • [ ] Article 3 : [Titre]
  • [ ] Article 4 : [Titre]
  • [...]

    Utiliser Notion, Trello ou Google Sheets pour suivi.

    Scaling (si forte croissance trafic)

    Signaux scaling requis :

  • Temps réponse > 2s constant
  • CPU > 80% régulier
  • RAM saturée
  • Erreurs 502/503
  • Solutions :

  • Vertical scaling (+ de RAM/CPU) :
  •    # Augmenter plan VPS chez hébergeur
       # Puis ajuster PHP-FPM
       sudo nano /etc/php/8.2/fpm/pool.d/www.conf
       # Augmenter pm.maxchildren
       
  • Horizontal scaling (load balancer) :
  • – Nginx reverse proxy
    – 2+ serveurs WordPress
    – DB séparé
    – Redis centralisé

  • CDN avancé :
  • – Cloudflare Pro (20$/mois)
    – BunnyCDN
    – KeyCDN

  • Managed WordPress :
  • – Kinsta
    – WP Engine
    – Cloudways

    Plan de gestion incidents

    Niveaux incidents :

  • P1 (Critique) : Site down, data loss
  • – Réponse : < 15 min - Action : Restauration immédiate

  • P2 (Majeur) : Fonctionnalité cassée, lenteur extrême
  • – Réponse : < 1h - Action : Fix + post-mortem

  • P3 (Mineur) : Bug visuel, lien cassé
  • – Réponse : < 24h - Action : Fix planifié Procédure incident P1 :

  • Détection : Monitoring alerte
  • Évaluation : Vérifier ampleur
  • Communication : Twitter/status page
  • Résolution :
  • – Restaurer backup récent
    – OU rollback update
    – OU hotfix

  • Vérification : Site fonctionnel
  • Post-mortem : Analyse cause, prévention
  • Documentation maintenance

    Créer MAINTENANCE.md dans repository :

    Plan de Maintenance - votredomaine.com

    Tâches Quotidiennes

  • [ ] Vérifier uptime (automatique)
  • [ ] Vérifier backup (automatique)
  • Tâches Hebdomadaires

  • [ ] Updates WordPress/plugins/thèmes
  • [ ] Vérifier logs erreurs
  • [ ] Répondre commentaires
  • [ ] Publier 2 articles
  • Tâches Mensuelles

  • [ ] Audit sécurité Wordfence
  • [ ] Test restauration backup
  • [ ] Analyse Google Search Console
  • [ ] Revue analytics GA4
  • [ ] Updates système Debian
  • Tâches Trimestrielles

  • [ ] Audit SEO complet
  • [ ] Refresh contenu ancien
  • [ ] Analyse concurrence
  • [ ] Revue stratégie contenu
  • Contacts Urgence

  • Hébergeur : [contact]
  • DNS : [contact]
  • Développeur backup : [contact]
  • Procédures Incidents

    Voir section Plan gestion incidents

    Ressources semaine 11-12

  • Uptime Robot
  • Google Search Console Help
  • WordPress Maintenance Guide
  • Critères de réussite

  • [ ] Monitoring uptime actif (< 5 min check)
  • [ ] Backups automatiques quotidiens
  • [ ] Test restauration réussi
  • [ ] Procédure updates documentée
  • [ ] Calendrier éditorial 6 mois créé
  • [ ] Plan gestion incidents documenté
  • [ ] Analyse GSC hebdomadaire en place
  • [ ] Aucun incident P1 non résolu en < 1h
  • Ressources officielles

    Documentation technique

    Debian :

  • Debian Administrator’s Handbook
  • Debian Wiki
  • Debian Security Advisories
  • Nginx :

  • Nginx Documentation
  • Nginx Admin Guide
  • PHP :

  • PHP Manual
  • PHP-FPM Configuration
  • PHP Best Practices
  • MariaDB :

  • MariaDB Knowledge Base
  • MariaDB Server Documentation
  • WordPress :

  • WordPress Codex
  • WordPress Developer Resources
  • WordPress Support
  • WordOps :

  • WordOps Documentation
  • WordOps GitHub
  • WordOps Community
  • Git & GitHub :

  • Pro Git Book (français)
  • GitHub Docs
  • GitHub Skills
  • Outils SEO & Analytics

  • Google Search Console
  • Google Analytics
  • Rank Math SEO
  • Ubersuggest
  • AnswerThePublic
  • Outils Performance

  • GTmetrix
  • Google PageSpeed Insights
  • WebPageTest
  • Pingdom
  • Outils Sécurité

  • SSL Labs
  • Mozilla Observatory
  • Security Headers
  • Have I Been Pwned
  • Communautés & Forums

  • WordPress.org Forums
  • Stack Overflow
  • Reddit r/WordPress
  • WordOps Community
  • IA & Automatisation

  • Claude.ai
  • ChatGPT
  • Prompt Engineering Guide
  • OpenAI Documentation
  • Critères de réussite

    Certification finale (100 points)

    1. Infrastructure & Sécurité (25 points)

  • [ ] VPS Debian 12 opérationnel (5 pts)
  • [ ] SSH sécurisé (clés uniquement) (3 pts)
  • [ ] WordOps 3.22.0 installé (2 pts)
  • [ ] Site WordPress HTTPS fonctionnel (5 pts)
  • [ ] Note SSL Labs A+ (5 pts)
  • [ ] Headers sécurité (note A Mozilla Observatory) (5 pts)
  • 2. Performance (20 points)

  • [ ] PageSpeed Insights 90+ mobile (5 pts)
  • [ ] PageSpeed Insights 90+ desktop (5 pts)
  • [ ] GTmetrix Grade A (5 pts)
  • [ ] Temps chargement < 2s (5 pts)
  • 3. SEO (20 points)

  • [ ] Rank Math installé et configuré (3 pts)
  • [ ] 10+ articles score Rank Math 85+ (10 pts)
  • [ ] Google Search Console lié (2 pts)
  • [ ] Sitemap XML soumis (2 pts)
  • [ ] Schema.org validé (3 pts)
  • 4. Contenu (15 points)

  • [ ] 10+ articles publiés (10 pts)
  • [ ] Longueur moyenne 1500+ mots (2 pts)
  • [ ] Featured images partout (1 pt)
  • [ ] Liens internes stratégiques (2 pts)
  • 5. Développement (15 points)

  • [ ] Thème custom ou child (5 pts)
  • [ ] Plugin custom fonctionnel (5 pts)
  • [ ] Code bien documenté (3 pts)
  • [ ] Aucune erreur PHP logs (2 pts)
  • 6. Git & Documentation (10 points)

  • [ ] Repository GitHub public (2 pts)
  • [ ] README.md professionnel (3 pts)
  • [ ] 20+ commits significatifs (3 pts)
  • [ ] .gitignore correct (2 pts)
  • 7. Maintenance (5 points)

  • [ ] Backups automatiques configurés (2 pts)
  • [ ] Monitoring uptime actif (2 pts)
  • [ ] Plan maintenance documenté (1 pt)
  • 8. Projet Fil Rouge (10 points)

  • [ ] Présentation slides (3 pts)
  • [ ] Vidéo démo (3 pts)
  • [ ] Respect cahier des charges (4 pts)
  • Seuils de réussite

  • 70-79 points : Acquis (débutant autonome)
  • 80-89 points : Bien (développeur junior)
  • 90-100 points : Excellent (développeur confirmé)
  • Certification finale

    Format

    Présentation orale (20 minutes) :

  • 10 min : Démo site + explications techniques
  • 5 min : Défis rencontrés et solutions
  • 5 min : Questions/réponses
  • Livrables :

  • URL site WordPress fonctionnel
  • Repository GitHub avec documentation
  • Slides présentation (PDF)
  • Vidéo démo (2-3 min)
  • Rapport technique (Markdown, 5-10 pages)
  • Rapport technique structure

    Projet WordPress VPS - Rapport Technique

    1. Introduction

  • Objectifs projet
  • Choix technologiques
  • 2. Infrastructure

  • Architecture système
  • Stack LEMP
  • Configuration serveur
  • 3. Sécurité

  • Mesures implémentées
  • Tests sécurité
  • Résultats audits
  • 4. Performance

  • Optimisations appliquées
  • Benchmarks
  • Comparaison avant/après
  • 5. SEO & Contenu

  • Stratégie SEO
  • Recherche mots-clés
  • Statistiques articles
  • 6. Développement

  • Thème (features)
  • Plugin (fonctionnalités)
  • Code highlights
  • 7. Défis & Apprentissages

  • Problèmes rencontrés
  • Solutions trouvées
  • Compétences acquises
  • 8. Évolution Future

  • Prochaines features
  • Scalabilité
  • Roadmap 6 mois
  • Annexes

  • Commandes utiles
  • Screenshots
  • Metrics complètes
  • Conseils de réussite

    Organisation

  • Planifier : Bloquer 10-15h/semaine dans votre agenda
  • Documenter : Tenir un journal de bord (problèmes, solutions, apprentissages)
  • Pratiquer : Ne pas se contenter de lire, FAIRE les exercices
  • Persévérer : Les erreurs sont normales et formatrices
  • Apprentissage efficace

  • Technique Feynman : Expliquer à voix haute ce que vous apprenez
  • Pomodoro : 25 min focus + 5 min pause
  • Active recall : Tester vos connaissances sans regarder la doc
  • Spaced repetition : Revoir les concepts à intervalles croissants
  • Debugging

  • Lire les logs : /var/log/nginx/, /var/log/php/, wp-content/debug.log
  • Google est votre ami : Copier l’erreur exacte dans recherche
  • Stack Overflow : 90% des erreurs ont déjà été résolues
  • Documentation officielle : Toujours la source de vérité
  • Communauté

  • Rejoindre forums : WordPress.org, Reddit r/WordPress
  • Suivre experts : Twitter/X, YouTube, blogs
  • Participer : Répondre aux questions d’autres débutants
  • Partager : Documenter vos solutions (blog, GitHub)
  • Conclusion

    Félicitations d’avoir entrepris ce parcours de 8-12 semaines.

    À la fin, vous serez capable de :

  • Gérer un serveur VPS Debian en production
  • Déployer et maintenir WordPress avec WordOps
  • Optimiser performance et sécurité
  • Créer du contenu SEO-optimisé
  • Développer thèmes et plugins WordPress
  • Utiliser Git et GitHub professionnellement
  • Automatiser avec l’IA (Claude, ChatGPT)
  • Prochaines étapes :

  • Provisionner votre VPS
  • Commencer Semaine 1
  • Rejoindre la communauté
  • Documenter votre progression
  • Profiter de l’aventure
  • Bon courage et bon apprentissage !

    Changelog

    Version 1.0.0 – 2025-12-18

  • Création parcours initial
  • 12 semaines de contenu structuré
  • 9 projets pratiques
  • Ressources officielles vérifiées
  • Critères de réussite définis
  • Support

    Questions ? Besoin d’aide ?

  • Email : contact@you.arewel.com
  • GitHub Issues : Repository
  • Site web : https://you.arewel.com
  • Made with passion for you.arewel.com
    DevOps, SRE & Cloud Engineering depuis 2003

    Une remarque, un retour ?

    Cet article est vivant — corrections, contre-arguments et retours de production sont les bienvenus. Trois canaux, choisissez celui qui vous convient.