Audits SEO du contenu enregistré
Utilisez Sites → site → SEO pour inspecter les pages enregistrées dans les langues activées du site, comparer les métadonnées et vérifier les liens internes. À partir de CMS 1.116.0, Lancer un nouvel audit envoie une succession de requêtes courtes depuis cet écran. Gardez l’onglet ouvert jusqu’à la fin. Cron n’est pas nécessaire. Rouvrir l’espace ou choisir Actualiser les résultats lit uniquement la progression enregistrée. Choisissez Exécuter sur cet écran pour reprendre un travail interrompu. Les constats servent de guide. Ils ne publient, redirigent, suppriment ou réécrivent jamais le contenu et ne bloquent jamais sa publication.
Pour une seule page, utilisez Pages → page → Gestion de la page → Contrôle SEO. Le contrôle affiche le titre et la description rendus, leur provenance de la traduction ou du repli du site et des exemples de rendu en nombre limité. Quand la source est connue, les liens de modification ouvrent le champ de traduction concerné, l’éditeur de blocs ou les paramètres d’en-tête du site. Les liens de bloc conservent la langue de contenu sélectionnée. Enregistrez dans l’éditeur habituel et relancez le contrôle. Un avertissement de modification des sources indique que les anciens résultats doivent être vérifiés à nouveau. Si le contrôle d’actualité est indisponible, il ne confirme pas que les résultats sont à jour.
Le lancement ou la reprise d’un audit manuel ouvre la boîte de dialogue de progression native. Gardez l’onglet ouvert. Suspendre et quitter, la touche Échap et la commande de fermeture attendent la fin de l’étape en cours et vérifient que la suspension est enregistrée. Si la confirmation est indisponible, choisissez Voir les résultats avant de relancer. Les effets déjà réalisés restent enregistrés. Les résultats finaux restent visibles jusqu’à ce que vous fermiez la boîte de dialogue ou consultiez les résultats. Le temps écoulé concerne uniquement cette session sur l’écran.
Traitement et périmètre
Les audits manuels avancent en continu grâce à des requêtes autorisées du panneau, sans attendre un déclenchement par minute. Quitter l’écran arrête les étapes suivantes et conserve la progression enregistrée. Pour une poursuite indépendante, activez la tâche SEO dans Maintenance → Tâches et automatisation et suivez les instructions d’hébergement facultatives. Le compte d’hébergement doit disposer de cron avec PHP CLI, d’un planificateur géré ou du déclencheur HTTP authentifié pris en charge pour les travaux compatibles web. Cette fonctionnalité ne nécessite pas de processus de file d’attente permanent. La commande CLI existante fait également avancer le traitement lorsqu’elle est appelée explicitement :
php artisan webblocks:seo:work
Le total de progression comprend chaque couple page native/langue et un contrôle distinct des définitions de navigation pour chaque langue. Il reste provisoire pendant la préparation de l’inventaire. Suspendre et Reprendre préservent la progression. Réessayer les contrôles incomplets examine de nouveau les observations indisponibles ou partielles. Les baux de processus à expiration permettent de reprendre un travail interrompu. Une modification de la source exige un nouvel audit. Une seule exécution active est admise par site. Le processus d’arrière-plan conserve dix exécutions récentes en purgeant les observations plus anciennes. Le lancement d’une exécution n’attend jamais la suppression en cascade de l’historique. Les anciennes lignes peuvent subsister jusqu’à l’avancement du processus.
L’aperçu enregistré comprend les blocs en brouillon qui appartiennent à la page et le contenu publié des emplacements partagés. Les pages en brouillon, en révision, publiées et archivées peuvent figurer dans l’audit. Les pages sources d’emplacements partagés et les révisions candidates à la restauration ne constituent pas des cibles autonomes. Les traductions de page manquantes donnent lieu à des suggestions éditoriales. L’absence d’une ligne de traduction d’un bloc et le repli vers la description du site sont des suggestions distinctes. Elles ne démontrent pas la fidélité intégrale de la traduction champ par champ.
L’audit enregistre ses heures de contrôle, la version du CMS, la version des sources et le périmètre déclaré. Une exécution partielle, échouée, en file d’attente ou périmée n’est pas un résultat complet. Les modifications de contenu via Laravel invalident la génération enregistrée. Ce mécanisme est prudent : une modification sur un autre site peut aussi périmer une exécution. Les données d’un prestataire externe qui changent indépendamment, les modifications directes en base hors de Laravel et les changements non versionnés de l’environnement d’exécution nécessitent un nouveau contrôle explicite.
Examiner les constats
Utilisez les onglets Constats, Pages et langues et Liens internes. Les filtres portent sur l’identifiant de page source, la langue, l’état de publication, la catégorie et le code du constat et le résultat du lien. L’identifiant de page 0 sélectionne les unités de travail des définitions de navigation. Sélectionnez une exécution antérieure dans le filtre d’historique.
Les constats techniques et les suggestions éditoriales sont séparés des observations non vérifiées. Les pages d’une même langue dont les titres ou descriptions rendus et normalisés correspondent sont à examiner, y compris celles dont les états de publication diffèrent. Déterminez si la duplication est volontaire avant de modifier le contenu. Une description commune à tout le site produit souvent des descriptions identiques. Une traduction propre à la page peut être plus utile.
Les observations sur les liens indiquent la page source et sa langue, le bloc ou l’élément de navigation si disponible, le texte du lien, son emplacement dans le rendu, sa cible native et une URL actuelle suggérée lorsqu’elle peut être déterminée. Ouvrez l’emplacement de modification pour vérifier la source réelle. L’analyse respecte les domaines configurés du site, les préfixes de langue et les préfixes de montage publics en sous-répertoire.
Les résultats distinguent les cibles natives manquantes, les cibles non publiées ou à accès restreint, les différences de langue et les anciennes adresses natives ou adresses non canoniques. Une différence de langue peut être volontaire. L’absence de cible native ne prouve pas une erreur HTTP 404 en production, car une route d’extension ou une redirection peut gérer l’adresse. L’historique de Redirect Manager n’est pas inspecté. Les préfixes de détail et les modèles de Pages automatiques exigent une inspection qui tient compte des enregistrements. Ils sont signalés comme hors périmètre de ces contrôles natifs. Une ligne native conservée ne peut pas prendre priorité sur un préfixe automatique actif.
Les définitions de navigation sont répertoriées séparément des liens effectivement rendus sur une page. Une définition ne prouve pas que son menu est placé. La suggestion aucun lien entrant signifie qu’aucun lien provenant d’une autre source native publiée et inspectée n’a été trouvé pour ce couple page/langue. Les liens vers soi-même, les sources en brouillon, les branches de blocs en brouillon, les pages sources à accès restreint et les définitions de navigation non placées ne comptent pas. L’analyse peut omettre de véritables sources. Vérifiez donc son périmètre avant d’ajouter des liens ou de modifier le contenu.
L’inspection HTML est limitée à 2 MiB et à 20 000 éléments. Chaque page consigne jusqu’à 2 000 liens rendus et chaque langue jusqu’à 2 000 définitions de navigation visibles. Toute troncature est signalée et produit des observations partielles. Les observations sur les liens omettent les chaînes de requête, les fragments et les identifiants présents dans les URL. Les cibles externes, le statut HTTP en production, les chaînes de redirection, robots.txt, l’inclusion dans le plan de site, les scripts, le contenu des iframes, l’indexation et les performances dans Google ne sont pas contrôlés. Les constats ne constituent ni une note de classement ni une garantie de gain de trafic.
Internal Content API
Tous les points de terminaison de l’audit exigent content.read. L’accès par session ou par jeton personnel exige aussi cms.pages.read, cms.navigation.read et cms.shared-slots.read pour le site. Les capacités des jetons et les listes de sites autorisés fixent les limites maximales. L’audit demandé doit appartenir au site indiqué dans l’URL.
| Opération | Point de terminaison | Comportement |
|---|---|---|
| Lire les résultats | GET /webadmin/api/sites/{site}/seo-audits | Lecture passive de la dernière exécution, de l’historique et des observations paginées |
| Demander une exécution | POST /webadmin/api/sites/{site}/seo-audits | Renvoie 202 avec l’exécution en file d’attente ou l’exécution active existante, sans inspection pendant la requête |
| Suspendre / resume / retry | POST /webadmin/api/sites/{site}/seo-audits/{seoAudit}/{action} | action vaut pause, resume ou retry. Les transitions invalides renvoient 409 |
| Vérifier l’actualité du rapport de page | GET /webadmin/api/pages/{page}/seo-check/freshness?locale=en&source_version=... | Applique les règles d’accès du contrôle individuel de page et renvoie stale sans rendu |
Les filtres de résultats sont audit, locale, page_id, status, category, code et link_state. per_page accepte les valeurs de 1 à 100 et vaut 25 par défaut. pages_page, findings_page et links_page paginent indépendamment les trois collections d’observations. Les réponses sont privées, sans mise en cache et non indexables. audit.complete vaut true uniquement pour une exécution terminée et à jour dans le périmètre déclaré. publication_blocked reste à false. Les lignes de liens exposent is_public_source, ce qui permet aux consommateurs de distinguer les observations issues du seul contenu enregistré des sources entrantes publiées.
Consultez API de contenu interne pour la modification habituelle des pages, traductions et blocs, et Champs SEO, image de partage et favicon pour la rédaction des métadonnées.