Maksutov Design MAKSUTOV DESIGN
Technical SEO Static pages RU + EN Schema.org IndexNow

SEO Ayurveda Reader

Ayurveda Reader is a JavaScript app: a search engine sees a shell, and the text of the books appears only in the browser. I made sure that every chapter, encyclopedia article, home remedy and term has its own address with static HTML, a Russian and an English version, markup and a sitemap entry. Below is what exactly was done and what the checks show as of 15 October 2026.

Open the site ↗

01 / the task

All of the site's content lived inside the app — search engines were given a single page

9books: from the “Ashtanga Hridaya” to the “Rasaratna Samuccaya”
841chapters of classical texts
42,217verses in Sanskrit, transliteration and translation
2,507pages in the sitemap now — instead of 75 in July and 853 at the start of October

The app opens fast and reads well, but for search it is one address: verses, chapters and articles are loaded by a script. So for a query like “Ashtanga Hridaya chapter 1” or “Vata type” the site had almost no chance. The task: give the search engine the same texts as ordinary HTML pages, without breaking the app and without hand-making a second copy of the content.

  • One address instead of thousands: books, chapters and articles lived inside the app
  • No English version: the verses existed, but there was no language in the address or in the tags
  • Outdated figures in the home-page description: “36,786 shlokas from 7 samhitas”, “382 terms”, “208 articles”
  • Pages a search engine could learn about only from the sitemap, with no links from the home page

02 / timeline

How the site grew for search: from meta tags in June to 2,507 pages in October

DateWhat was doneResult
6–7 June 2026The ayurvedareader.ru domain in meta tags, JSON-LD (WebSite and a list of books), Open Graph, a preview image, verification files for Yandex Webmaster and Google Search Console, a Yandex Metrica counter with Webvisora base for indexing and measurement
4–11 JulyThe first static chapter pages and regeneration for the new content75 static pages by 31 July
11 AugustChapter pages regenerated to include translationspages match the content of the app
15 OctoberEnglish chapter pages, static pages of the encyclopedia, home remedies and glossary, an updated home page, IndexNow, Search Console2,507 addresses in the sitemap

03 / static pages

One script builds HTML for every chapter, article, remedy and term

851catalog and chapter pages in Russian: 841 chapters, 9 books and one catalog
287encyclopedia pages: 241 articles, 45 sections and an index
114home-remedy pages: 113 remedies and an index
397glossary terms — on one page per language

The pages are built by the generate-static-pages script from the same data files that the app reads, so the text on a page and in the app is the same. A page has the chapter title, Sanskrit with transliteration and the translation, breadcrumbs, an “Open in the interactive reader” link and a language switch; the reader itself still opens in one click.

Page typeRussian / EnglishExample titleMarkup
Book chapter841 / 841Ayushkamiya Adhyaya — the desire for long life | Sutrasthana | Ashtanga Hridaya SamhitaChapter (sa, en)
Book9 / 9a book page with a list of chapters—
Encyclopedia287 / 287Ayurveda Encyclopedia — 241 articlesArticle (on articles)
Home remedies114 / 114Ayurveda Home Remedies — 113 remedies—
Glossary1 / 1Ayurveda Glossary — 397 terms—

04 / English version

English pages and hreflang pairs: a search engine knows which version is for whom

46,988blocks translated into English: verses, comments, introductory paragraphs and headings
850English chapter and book pages in /en/chapters/
3hreflang links on every page: ru, en and x-default
0Cyrillic letters in the English text

Every Russian page has an English pair and a link back. They are written both in the page tags and in the sitemap, so for a query in English the search engine shows /en/, and for Russian — the Russian version. For a Madhava chapter without a single translated verse no English page is created: a link to a non-existent address does not appear.

  • English chapter and book titles instead of transliteration in headings
  • Sanskrit IAST next to the translation — verses read as in the Russian version
  • An “English version” / “Русская версия” switch on every page
  • The site in the sitemap with nested alternate links and no duplicates

05 / Pages

How one and the same book looks to a reader and to a search engine

ayurvedareader.ru
Reader home page
Reader home pageThe app: books on the left, cards on the right — what a person sees.
ayurvedareader.ru
Static chapter page
Static chapter pageThe same chapter for a search engine: title, Sanskrit, IAST, translation, a link to the reader.
ayurvedareader.ru
English chapter page
English chapter pageThe English pair: the same verses and a switch to the Russian version.
ayurvedareader.ru
Encyclopedia
EncyclopediaA section: a list of articles with links and counters.

06 / checks

150 random pages from the sitemap: the required tags are almost everywhere

150 / 150pages return 200 and have a unique title
150 / 150with one h1 and a description of at least 40 characters
150 / 150with a canonical to themselves and hreflang links
124 / 150with JSON-LD: list pages do not need markup yet

I picked 150 addresses from the sitemap at random and examined each page: response code, title, description, h1, canonical, hreflang, Open Graph and JSON-LD. This is a sample, not a full crawl of all 2,507 pages: a full crawl should be done after the next regeneration.

CheckResult
Response code 200150 of 150
Unique title150 of 150
Exactly one h1150 of 150
Description of 40+ characters150 of 150
Canonical equals the page address150 of 150
hreflang (ru, en, x-default)150 of 150
Open Graph149 of 150
JSON-LD124 of 150

07 / markup

What JSON-LD describes: books, chapters and questions

The home page has three blocks of markup. WebSite describes the site, ItemList lists all nine books — each as a Book with an author and languages, FAQPage — four reader questions with answers. On chapter pages the Chapter markup links a chapter to its book and states the languages: Sanskrit and Russian or English.

TypeWhere it is used
WebSitehome page, a description of the site and its built-in search
ItemList + Bookhome page: nine books with authors and languages
FAQPagehome page: 4 reader questions and answers
Chapterchapter pages: title, position in the book, the book, languages
Articleencyclopedia articles

08 / indexing

Sitemap, IndexNow and Search Console: how search engines learn about the pages

2,507addresses in the sitemap with no duplicates, all returning 200
2,507addresses sent to IndexNow — Yandex replied 202, the IndexNow service 200
6pages sent to Google for indexing through “URL Inspection”
1page was already in Google's index before the request

robots.txt points to the sitemap; Google accepted it on 15 October with the status “Success”. For Yandex the addresses went through IndexNow — a protocol that Yandex and Bing accept without a console. Google does not support IndexNow, so a “URL prefix” property verified with an HTML file was added to Search Console, and indexing requests were sent for six key pages.

PageWhat Google showed before the request
Home pagealready indexed, re-indexing of the updated version requested
/chapters/not indexed, Google did not know about it
/encyclopedia/not indexed, found through the sitemap
/remedies/not indexed, found through the sitemap
/glossary.htmlnot indexed, found through the sitemap
/en/chapters/not indexed, Google did not know about it

Yandex Webmaster still shows the old sitemap: the last load was on 9 October, 853 links, and the tool is temporarily read-only. The new 2,507 addresses reached it through IndexNow and it will pick up the sitemap on the next crawl.

09 / home page

The home page got corrected figures and links to the static sections

42,217verses instead of “36,786” in the description and markup
9books instead of “7 samhitas”
397glossary terms instead of “382”
241encyclopedia articles instead of “208”

A search engine takes the home page description and markup as the site's business card, so the outdated figures were fixed in the title, description, Open Graph and JSON-LD. Ordinary links to the chapter catalog, the encyclopedia, home remedies, the glossary and the English version were added to the footer: before, the static pages could be found only through the sitemap.

  • The home page now links to the chapter catalog, encyclopedia, remedies, glossary and English
  • The book list for search engines includes all nine, not seven
  • On a phone the footer does not break or shift

10 / result and next steps

Technically the SEO is ready; results in search still wait for the crawl

  • Positions and traffic cannot be named yet: the pages were only just submitted, and indexing takes days and weeks.
  • In 1–2 weeks open the “Pages” section in Search Console and see how many addresses are indexed.
  • Check Yandex Webmaster again: the number of sitemap links should grow from 853.
  • After the next page regeneration do a full crawl of all 2,507 addresses, not a sample.
  • Send changed pages to IndexNow after every regeneration.

11 / technology

What it is built from

  • Node.js scripts: generate-static-pages (the pages), indexnow (notifying search engines), deploy-static (uploading to the host)
  • Data: the same book files the app reads — pages and the app match in text
  • Beget hosting: static files without a server; the script and cache version changes on every release
  • Checks: a sample of 150 sitemap pages, comparing the sitemap with the server response

Discuss a project

Need SEO for your website?

Send the site address — I will run an audit, prepare a brief for the fixes and show what to fix first.

Order SEO