Google donne une seule fourchette pour l’approbation AdSense, et c’est le seul chiffre auquel se fier : généralement quelques jours, dans certains cas 2 à 4 semaines. Tout ce qui est plus précis est l’expérience de quelqu’un sur le site de quelqu’un d’autre. Google ne publie pas de découpage plus fin, et nous n’avons rien trouvé dans sa documentation qui permette de raccourcir l’attente.
La fourchette cache aussi une structure. Le processus d’approbation de Google comporte 2 étapes : le compte est d’abord approuvé, ce qui inclut la vérification des données de paiement, puis le site est contrôlé au regard des règles du programme. Google donne une seule fourchette pour l’ensemble et ne la répartit pas entre les étapes : une longue attente peut donc venir de l’une comme de l’autre.
Ce que Google dit, et ce qu’il omet
Seuls 3 énoncés sont publiés. Le processus prend généralement quelques jours. Dans certains cas, il prend 2 à 4 semaines. Et si le site n’est pas prêt, la page d’aide correspondante vous demande de corriger la cause et de solliciter un nouvel examen.
Ce que Google omet est plus long. Les pages que nous avons consultées ne disent pas quels cas prennent 2 à 4 semaines, si un site jeune attend plus longtemps, ni si le moment de la semaine joue. Nous inventerions en comblant ces vides, alors nous les laissons ouverts. La conséquence pratique : votre unité de planification doit être la semaine, pas le jour. Si vous avez besoin que le site rapporte avant une date fixe, un examen lancé à cette date est déjà trop tardif.
Un calendrier pour s’organiser
Google ne définit aucun calendrier : ce tableau est le nôtre, avec la fourchette de Google posée sur les actions qui comptent chaque jour.
| Quand | Ce qui se passe | Ce que vous faites |
|---|---|---|
| Jour 0, vous soumettez | Les 2 étapes commencent : d’abord les données de paiement, puis le site au regard des règles du programme | Confirmez que le code publicitaire est en ligne sur les pages publiées et que le site est ouvert à tous. Gardez une copie de votre sitemap pour savoir exactement quelle version a été soumise |
| Les premiers jours | C’est la durée habituelle selon Google | Publiez comme d’habitude. Consultez chaque jour le compte et l’e-mail qui lui est lié. Ne touchez pas à la structure du site |
| Jusqu’à la semaine 4 | Le haut de la fourchette indiquée par Google, qui s’applique dans certains cas selon lui | Gardez le site en ligne, le code en place et la qualité constante. Ne corrigez que ce que le compte vous demande de corriger |
| Au-delà de la semaine 4 | Hors de la fourchette indiquée par Google | Auditez votre côté, puis contactez Google par ses canaux d’aide. Détails dans la dernière section |
| N’importe quel jour, un message arrive | Une approbation, ou un motif pour lequel le site n’est pas prêt | Approuvé : terminez la configuration. Refusé : diagnostiquez avec le guide des motifs de refus, corrigez la cause, sollicitez un nouvel examen |
Si le message est un refus, résistez à l’envie de soumettre à nouveau le jour même. Le plan de 3 semaines pour candidater à nouveau explique pourquoi nous espaçons les tentatives, et pourquoi cet espacement est notre recommandation et non une règle de Google.
Que faire pendant l’attente
Gardez le site tel qu’un examinateur voudrait le trouver. Nous recommandons de continuer à publier des pages de même qualité, au même rythme qu’avant la candidature, car le site examiné doit ressembler à celui que vous comptez exploiter ensuite.
Employez le temps à un travail qui ne change pas ce qui est examiné. Préparez la ligne ads.txt de votre compte : Google précise 4 champs, le fichier se trouve à la racine de votre domaine, et un changement peut mettre de quelques jours à un mois à être pris en compte, selon le trafic. Notre vérificateur ads.txt valide le fichier ligne par ligne dès que vous avez votre identifiant d’éditeur. Si vous avez des visiteurs dans l’EEE, au Royaume-Uni ou en Suisse, prévoyez dès maintenant votre bandeau de consentement : Google exige là-bas une plateforme de gestion du consentement certifiée pour les annonces personnalisées, et sans elle les annonces ne sont pas personnalisées.
Évitez les changements qui font tomber l’examen sur un site à moitié construit. Nous ne referions pas le thème, ne changerions pas d’hébergeur ou de CMS, ne modifierions pas la structure des URL, ne supprimerions pas de pages en masse et ne changerions pas de domaine tant que l’examen est ouvert. Google ne dit pas quand il récupère vos pages : n’importe lequel de ces changements peut être pris en plein milieu. Enfin, méfiez-vous de quiconque vend une approbation plus rapide : nous n’avons trouvé dans la documentation de Google aucun mécanisme qui en accélère une.
Un contrôle quotidien à automatiser
Un examen en attente peut être abîmé par ce que vous n’avez pas touché : un certificat qui expire, une mise à jour de plugin qui ajoute un noindex, un déploiement qui écrase robots.txt. Ce script contrôle les 5 points qui feraient tomber un examen sur un site cassé : la page d’accueil répond en https, l’extrait publicitaire est dans le HTML, aucun noindex sur la page d’accueil, aucun groupe de robots.txt qui interdit tout à Googlebot, au crawler AdSense ou à tous les robots, et un certificat qui a encore au moins 14 jours devant lui. Il demande Node 18 ou plus récent, n’a aucune dépendance, affiche une ligne par contrôle et sort avec le code 1 si l’un échoue : un planificateur peut ainsi vous alerter sur ce code de sortie.
// check-site.mjs : à lancer chaque jour pendant qu'un examen AdSense est en attente (Node 18+, aucune dépendance).
// Usage : node check-site.mjs https://example.com
import tls from 'node:tls';
const base = new URL(process.argv[2] || 'https://example.com');
const rows = [];
const check = (name, ok, detail = '') => rows.push({ name, ok, detail });
// 1. Page d'accueil : statut, URL finale, extrait, noindex
const home = await fetch(base, { redirect: 'follow' });
const html = await home.text();
check('homepage answers 200 over https', home.status === 200 && home.url.startsWith('https://'), `${home.status} ${home.url}`);
const id = html.match(/adsbygoogle\.js\?client=(ca-pub-\d{16})/);
check('AdSense snippet is in the HTML', Boolean(id), id ? id[1] : 'not found');
const metaNoindex = /<meta[^>]+name=["']robots["'][^>]*noindex/i.test(html);
const headerNoindex = /noindex/i.test(home.headers.get('x-robots-tag') || '');
check('homepage carries no noindex', !metaNoindex && !headerNoindex, metaNoindex ? 'meta tag' : headerNoindex ? 'X-Robots-Tag header' : '');
// 2. robots.txt : tout groupe pour *, Googlebot ou Mediapartners-Google qui interdit tout
const res = await fetch(new URL('/robots.txt', base));
const txt = res.ok ? await res.text() : '';
const groups = [];
let current = null;
for (const raw of txt.split(/\r?\n/)) {
const line = raw.replace(/#.*/, '').trim();
const m = line.match(/^([A-Za-z-]+)\s*:\s*(.*)$/);
if (!m) continue;
const field = m[1].toLowerCase();
if (field === 'user-agent') {
if (!current || current.rules.length) groups.push(current = { agents: [], rules: [] });
current.agents.push(m[2].toLowerCase());
} else if (current && (field === 'allow' || field === 'disallow')) {
current.rules.push([field, m[2]]);
}
}
const watched = ['*', 'googlebot', 'mediapartners-google'];
const blocking = groups.filter((g) => g.agents.some((a) => watched.includes(a)) && g.rules.some(([f, v]) => f === 'disallow' && v === '/'));
check('robots.txt does not disallow everything for the crawlers that matter', blocking.length === 0, blocking.map((g) => g.agents.join('+')).join('; '));
// 3. Certificat : jours restants
const days = await new Promise((resolve) => {
const socket = tls.connect({ host: base.hostname, port: 443, servername: base.hostname }, () => {
const cert = socket.getPeerCertificate();
socket.end();
resolve(Math.floor((new Date(cert.valid_to) - Date.now()) / 86400000));
});
socket.on('error', () => resolve(-1));
});
check('certificate has at least 14 days left', days >= 14, `${days} days`);
for (const r of rows) console.log(`${r.ok ? 'ok ' : 'FAIL'} ${r.name}${r.detail ? ' (' + r.detail + ')' : ''}`);
process.exitCode = rows.every((r) => r.ok) ? 0 : 1;
Le seuil de 14 jours et le choix des contrôles sont les nôtres. Lancez le script une fois à la main aujourd’hui, puis programmez-le tant que l’examen est ouvert.
Quand 4 semaines se sont écoulées
La barre des 4 semaines est le bord de la fourchette indiquée par Google : un examen qui l’a dépassée mérite un regard de votre côté avant que vous contactiez qui que ce soit. Lancez à la main le contrôle quotidien ci-dessus et lisez chaque ligne. Il confirme que le code publicitaire est toujours dans la page, que le site répond en https sans demande de mot de passe, que rien n’a ajouté de noindex et que robots.txt n’a pas changé sans que vous le sachiez.
Ouvrez ensuite le centre des règles de votre compte et lisez chaque message qui s’y trouve, puisque c’est là que la page d’aide de Google vous dit de résoudre les violations. Si tout est propre, utilisez les canaux d’aide fournis par Google dans le centre d’aide AdSense pour vous renseigner sur l’état de votre examen. Nous ne pouvons pas vous dire ce qu’ils répondront, et Google ne publie aucun délai de réponse. En attendant, la checklist des critères est le bon endroit pour confirmer que rien n’a dérivé de votre côté, et le vérificateur d’éligibilité AdSense vous dira en quelques minutes si le site réussit encore ce qu’une requête peut mesurer.
Réponses rapides
Un deuxième examen est-il aussi long que le premier ?
Google donne la même fourchette après une demande de nouvel examen : généralement quelques jours, dans certains cas 2 à 4 semaines. Il ne dit pas qu'un second examen est plus rapide : prévoyez donc toute la fourchette.
Plus de trafic accélère-t-il l'examen ?
Google ne relie pas le trafic à la durée de l'examen, et il ne publie aucun trafic minimum pour l'éligibilité. Nous n'avons rien trouvé dans sa documentation qui laisse penser qu'un plus grand nombre de visiteurs accélère un examen.