Content Indexing API: Pages available offline. Report from RamblerFront # 9

Hello, my name is Antonina, I work as a frontend developer at Rambler & Co, in the Lenta.ru team.





The Content Indexing API is a new tool from Google that shows which pages are available offline. I'll cover how the Content Indexing API works, when it should be used, and how our team implemented it.





about the project

Lenta.ru β€” -. β€” ~7 ., 12 . 20% , 80% β€” , offline-. .





, :





Offline- Lenta.ru 

, offline-.





Lenta.ru? , . , offline- , - , .





offline- :





  1. : , , JavaScript ;





  2. : , , , .





CacheStorage, IndexedDB. m.lenta.ru :





  • ,





  • ( ) Service Worker,





  • CacheStorage,





  • IndexedDB.





Service Worker ( fetch), , , index.html SPA.





, , , . , ( ) – offline-.





, -. , offline-, β€” online.





, Content Indexing API

. offline-. , ? 





- . , , :





: , ?





, Content Indexing API. , , offline:





Content Indexing API

Content Indexing API β€” API, . β€” - , .





, offline. , - , .





Content Indexing API , . -, API.





( )

: - , , . .





, offline :





  1. .





  2. Downloads ( ).





  3. β€œExplore offline” (β€œ-”).





User path to indexed pages

. , offline Content Indexing API. β€” . β€” offline- .





( )

, API?





  1. - offline-.





  2. offline- .





offline- -. Content Indexing API β€” , , . 





:





Algorithm for indexing pages

. Content Indexing API :





navigator.serviceWorker.ready
  .then((registration) => {
    if (!registration.index) {
      return;
    }
    
    // (1)
  }
      
      



( (1) ):





registration.index.add({
	url: page.url, // required
  id: page.id, // required
  title: page.title, // required
  description: page.description, //required
  icons: [{ // required
    src: page.image_url,
    sizes: 64x64,
    type: 'image/png',
  }],
  // : 'homepage', 'article', 'video', 'audio', ''
  category: 'article', // optional
});
      
      



add



API. url



, id



, title



, description



, icons



category



. category



. category



β€” , : β€˜homepage’



, β€˜article’



, β€˜video’



, β€˜audio’



. , id



.





, . : , , .





offline-. , β€œ-”, , , . .





Lenta.ru β€” , , offline- . .





:





Algorithm for removing pages from indexing

, :





registration.index.getAll() // (1)
	.then((entries) => {
    entries.forEach((entry) => {
      registration.index.delete(entry.id); // (2)
    });
  });
      
      



(1) API getAll



. (2), id



, API delete



id



, ( , ).





, β€œ-” . offline-.





3 β€” , Content Indexing API. offline-, . 





Content Indexing API Lenta.ru

β€” , . Offline- 3- . , Lenta.ru ?





: Lenta.ru, , offline-. API : , - β€œ-” .





, . offline- , β€” 100 . β€” -10, .





API , ~100 , -10. :





  1. .





  2. , Content Indexing API . .





  3. , .





  4. , ( , β€” ).





  5. , .





C 10 . .





offline- , Content Indexing API. :





registration.index.add({
  url: `${page.url}?utm_source=offline`,
  id: page.id,
  title: page.title,
  description: page.description,
  icons: [{
    src: page.image_url,
    sizes: 64x64,
    type: 'image/png',
  }],
  category: 'article',
});
      
      



API url utm-, , Content Indexing API. . ( ) .





Content Indexing API , production. API MDN, , API Edge, Chrome Android WebView Android v.84 Opera Android v.60.





chromestatus Chrome Android Android WebView, Β«No signalΒ». Opera v.62 Android, Edge v.84. - β€” , .





Browser support for Content Indexing API, info from developer.mozilla.org
Content Indexing API, developer.mozilla.org

, , Content Indexing API. Lenta.ru. 





Lenta.ru Chrome Android 60% . 64%  Chrome Android v.84 . 39% Content Indexing API. 3 .





The number of Chrome users on Android v.84 (for example, Lenta.ru statistics)
Chrome Android v.84 ( Lenta.ru)

4 , Content Indexing API :





  1. SEO .





    , , Content Indexing API, SEO.





  2. , .





    , : , offline , ( ) .





  3. Content Indexing API .





    , . API , . , , - offline-.





  4. .





    API , : , . , . , Lenta.ru . offline-: , , PWA.





:





  1. , production.






  2. +1 
 .





  3. 
( Content Indexing API).






  4. .





:





  1. .






  2. .






  3. offline-, .






  4. ().





, Content Indexing API:





  1. - β€” .





  2. - offline-, .





Content Indexing API , offline. , production. API , β€” offline-. , offline- Content Indexing API β€” , .





, , , .





, . , , , , AMP offline.





.








All Articles