PWA (Progressive Web App)

Une PWA (Progressive Web App, ou application web progressive) est une application web qui, grâce à un manifeste et à un service worker, peut être installée sur l'appareil comme une application native, fonctionner hors ligne et recevoir des notifications, tout en restant accessible par une URL dans un navigateur. Pour un moteur de recherche, une PWA est un site web comme un autre : son indexation dépend de ce que le serveur livre et de ce que le rendu JavaScript reconstruit, comme l'explique la définition du SEO JavaScript.

Définition détaillée de la PWA

MDN définit la PWA comme « une application construite avec les technologies de la plateforme web, qui offre une expérience utilisateur comparable à celle d'une application spécifique à une plateforme ». Elle s'exécute sur toutes les plateformes et tous les appareils à partir d'une seule base de code, et emprunte aux applications natives ce qui faisait leur avantage : une icône sur l'écran d'accueil, un lancement en plein écran sans barre d'adresse, un fonctionnement avec une connexion intermittente ou absente, des notifications, des tâches en arrière-plan.

Le mot « progressive » renvoie à l'amélioration progressive : la PWA reste un site web, servi en HTTPS, lisible dans n'importe quel navigateur. Les capacités supplémentaires ne s'activent que là où le navigateur et le système les prennent en charge. Le terme est apparu en 2015, proposé par des ingénieurs de Google ; la documentation la plus complète vit aujourd'hui sur web.dev (cours « Learn PWA ») et sur MDN.

Une PWA n'est pas une architecture de rendu. Elle peut être une SPA en rendu client, un site en rendu serveur ou un site statique : les deux briques qui la définissent s'ajoutent à n'importe laquelle de ces bases.

Les deux briques techniques

Le manifeste d'application web

Le manifeste est un fichier JSON, spécifié par le W3C (« Web Application Manifest », dont la version de travail en cours date du 13 août 2026), qui décrit l'application au système d'exploitation : son nom (name, short_name), ses icônes, l'URL de démarrage (start_url), le mode d'affichage (display : fullscreen, standalone, minimal-ui ou browser), le périmètre d'URL qu'elle couvre (scope), ses couleurs de thème et de fond, son orientation, ses raccourcis. Il est déclaré dans chaque page HTML par <link rel="manifest" href="app.webmanifest">, l'extension recommandée étant .webmanifest avec le type application/manifest+json. Sans manifeste, un site ne peut pas être installé comme application.

Le service worker

Le service worker est un script que le navigateur exécute dans un fil d'exécution séparé, sans accès au DOM, et qui se place entre l'application et le réseau. Une fois enregistré, installé et activé, il intercepte les requêtes émises par les pages de son périmètre (un service worker situé à /app/sw.js contrôle les URL sous /app/) et décide de la réponse : servir une copie mise en cache, interroger le réseau, ou fabriquer une réponse. C'est lui qui rend possible le fonctionnement hors ligne, le chargement instantané des ressources déjà vues, et la réception des notifications push quand l'application est fermée. Il ne fonctionne qu'en HTTPS, et le navigateur en contrôle l'activation et l'arrêt.

L'installation selon les plateformes

Les critères d'installation sont fixés par chaque navigateur. Pour Chrome, web.dev les résume ainsi : une page servie en HTTPS, un manifeste contenant un nom ou un nom court, des icônes de 192 et 512 pixels, une start_url et un mode d'affichage parmi fullscreen, standalone, minimal-ui ou window-controls-overlay, sans prefer_related_applications à true. Chrome ajoute une condition d'engagement : l'utilisateur doit avoir cliqué sur la page et y avoir passé au moins 30 secondes. Le service worker ne figure plus dans cette liste, et Chrome laisse l'utilisateur installer un site même s'il ne remplit pas tous les critères. Sur Android, Chrome génère un paquet applicatif (WebAPK) qui donne à la PWA le statut d'une application installée ; sur ordinateur, Chrome et Edge affichent un bouton d'installation dans la barre d'adresse.

Sur iOS et iPadOS, il n'existe pas d'invitation automatique : l'utilisateur ajoute le site à l'écran d'accueil depuis le menu de partage de Safari, et le manifeste, s'il déclare un affichage standalone ou fullscreen, transforme ce raccourci en application ouverte hors du navigateur. Apple a ajouté les notifications push à ces applications avec iOS et iPadOS 16.4, annoncés le 16 février 2023. Une PWA peut aussi être empaquetée pour les boutiques d'applications, mais ce n'est pas nécessaire : sa distribution première est l'URL.

Ce que la PWA change pour le SEO

Rien dans le manifeste ni dans le service worker n'est lu comme un signal de classement. Une PWA est indexée comme un site : chaque écran doit avoir sa propre URL, accessible par une requête HTTP ordinaire, reliée par de vrais liens. Les points de vigilance sont ceux de l'architecture sous-jacente, avec deux spécificités.

  • Le modèle « app shell ». Beaucoup de PWA servent une coquille d'interface, mise en cache par le service worker, et remplissent le contenu par des appels à une API. La documentation Search Central décrit ce cas : le HTML initial ne contient pas le contenu réel et Google doit exécuter le JavaScript pour le voir. Le contenu passe alors par la file de rendu, avec ses délais, et reste invisible pour les robots qui n'exécutent pas JavaScript.
  • Le cache du service worker ne sert pas aux robots. Le service de rendu de Google charge chaque URL à neuf et n'en conserve aucun état (stockage local et cookies effacés entre deux chargements). Ce qu'un utilisateur régulier obtient depuis le cache de son service worker, le robot doit l'obtenir du serveur. Une page dont le contenu ne serait complet qu'après une première visite n'est jamais complète pour Googlebot.
  • Le hors ligne n'est pas une page. La page de repli affichée sans connexion doit répondre en code HTTP approprié si elle est servie par le serveur, ou rester hors du périmètre indexable, pour ne pas être prise pour un contenu réel.
  • Les métadonnées et les liens restent des balises HTML : title, meta description, canonical, données structurées et ancres <a href>. Un routage qui change de vue par un gestionnaire d'événement sans lien ne laisse rien à suivre au crawl.

L'apport de la PWA au référencement est indirect : un service worker bien configuré accélère les navigations suivantes et réduit le trafic réseau, ce qui se lit dans les Core Web Vitals mesurés sur le terrain, et une application installée revient sans passer par le moteur, ce qui compte pour la fidélisation, pas pour l'acquisition.

PWA, AMP et application native

PWA et AMP

L'AMP (Accelerated Mobile Pages) est un format HTML restreint, lancé par Google en 2015, dont les pages étaient servies depuis le cache de Google et, un temps, seules admises dans le carrousel « À la une » de la recherche mobile. Google a annoncé le 10 novembre 2020 que les pages non AMP deviendraient éligibles à ce carrousel avec le déploiement du signal d'expérience de page, alors prévu pour mai 2021 ; l'AMP a perdu depuis l'essentiel de son intérêt. La PWA ne restreint rien : elle ajoute des capacités à un site ordinaire, sans cache tiers ni format imposé. Les deux ont coexisté (des sites AMP servant de porte d'entrée vers une PWA), mais la comparaison n'a plus lieu d'être.

PWA et application native

Une application native est compilée pour un système, distribuée par une boutique, et dispose de tout ce que ce système autorise. Une PWA est un site : une seule base de code, pas de validation par une boutique, une mise à jour immédiate pour tous, une découverte par les moteurs et le partage d'URL, mais un accès aux capacités de l'appareil limité à ce que le navigateur expose, et des différences de prise en charge entre plateformes, iOS en particulier. Le choix dépend du besoin : un contenu à trouver et à partager penche vers la PWA, un usage intensif de capteurs ou de calcul vers le natif.

Vérifier une PWA

Côté application, les outils de développement de Chrome (panneau « Application ») affichent le manifeste tel qu'il est interprété, l'état du service worker et le contenu de ses caches ; Lighthouse a proposé jusqu'en 2024 une catégorie d'audit PWA, retirée dans sa version 12 pour s'aligner sur les nouveaux critères d'installation de Chrome. Côté moteur, la méthode est celle de toute page JavaScript : l'outil d'inspection d'URL de la Search Console montre le HTML rendu par Google et les ressources chargées, et un parcours du site avec JavaScript désactivé montre ce qu'un robot sans rendu obtient réellement du serveur.

Sources :

FAQ

Une PWA est-elle mieux référencée qu'un site classique ?

Non, pas en tant que telle. Le manifeste et le service worker ne sont pas des signaux de classement. Une PWA est indexée comme un site web : ce qui compte, c'est que chaque écran ait une URL, que le contenu soit présent dans le HTML servi ou reconstruit au rendu, et que les liens soient de vraies ancres.

Googlebot utilise-t-il le service worker ?

Google charge chaque URL sans conserver d'état entre deux chargements. Le contenu doit donc être disponible depuis le serveur, pas seulement depuis un cache constitué lors d'une visite précédente. Le service worker sert aux utilisateurs, pas aux robots.

Faut-il un service worker pour qu'une PWA soit installable ?

Plus dans Chrome : les critères listés par web.dev sont le HTTPS, un manifeste avec nom, icônes de 192 et 512 pixels, start_url et mode d'affichage, plus une condition d'engagement de l'utilisateur. Le service worker reste indispensable pour le hors ligne et les notifications, qui font l'intérêt d'une PWA.

Les PWA fonctionnent-elles sur iPhone ?

Oui, avec des limites. L'installation passe par « Sur l'écran d'accueil » dans le menu de partage de Safari, sans invitation automatique. Depuis iOS 16.4 (annoncé en février 2023), une application ajoutée à l'écran d'accueil peut recevoir des notifications push, à condition que l'utilisateur les autorise après une action de sa part.

Quelle est la différence entre une PWA et une SPA ?

La SPA est une architecture : un seul document HTML dont le contenu est mis à jour par JavaScript. La PWA est un ensemble de capacités (installation, hors ligne, notifications) apportées par un manifeste et un service worker. Une PWA est souvent une SPA, mais un site en rendu serveur ou statique peut aussi être une PWA.

En résumé

  • PWA : une application web installable, capable de fonctionner hors ligne et de recevoir des notifications, construite avec les technologies du web et accessible par une URL.
  • Deux briques : le manifeste d'application web (JSON déclaré par link rel=manifest, spécification W3C) et le service worker (script intermédiaire entre l'application et le réseau, HTTPS obligatoire).
  • Installation : critères propres à chaque navigateur ; sur Chrome, HTTPS, manifeste complet et engagement de l'utilisateur ; sur iOS, ajout manuel à l'écran d'accueil, notifications push depuis iOS 16.4.
  • SEO : aucun signal de classement propre ; une PWA est indexée comme un site, avec les enjeux du SEO JavaScript (app shell, rendu, liens, métadonnées) et sans bénéfice du cache du service worker pour les robots.
  • Différences : l'AMP était un format restreint lié à la recherche Google, l'application native est compilée et distribuée par une boutique ; la PWA reste un site enrichi.

Abondance c'est aussi des audits SEO, un service de contenus et des formations en e-learning !

Lexique Abondance.com

Publié le Mis à jour le

Victor Lerat

Victor Lerat

Directeur & Consultant SEO chez Abondance

Consultant SEO, Victor Lerat dirige Abondance depuis sa reprise par le groupe KHUMBU en 2023. Co-fondateur de l'agence KHOSI à Nantes, il accompagne marques et e-commerçants sur leur visibilité dans les moteurs de recherche et les moteurs de réponse IA, avec une appétence particulière pour la donnée : logs serveur, crawl et analytics.

Les outils SEO pour vous aider