From zero to 2,000 search impressions a day in three weeks
VITAS-M Laboratory has sold screening compounds and building blocks to drug discovery labs since 1998, their catalogue runs to 1.4 million molecules, and until this August almost none of it was reaching Google, which for a supplier whose buyers search by structure is the same as not existing. We built them a new site where every molecule has its own page, and this is what Search Console showed over the first 39 days.
By Evdokiia Petrovskaia, Director, Dubir GroupFigures checked
- 2,458impressions in one day, 9 September 2026
- 957pages shown in Google results, from a standing start
- 16 daysfrom the first impression to the first 1,000-impression day

The short version is that the first impression came on 16 August 2026, by 1 September 2026 the site was over 1,000 a day and on 9 September 2026 it peaked at 2,458, which is day 24if you're counting. 26,465 impressions across 957 different pages, 94% of them on molecule pages, so the traffic is landing where the products are and not on the about page.
The client and the problem
A chemist who needs a compound doesn't go looking for a supplier, they paste the SMILES string or the IUPAC name or the CAS number into Google and see who has it, and if your catalogue is a PDF, or a search box behind a login, or a page that only fills in after the JavaScript runs, you aren't in that list and the order goes to whoever is.
Vitas-M had the harder version of this problem, 1.4 millioncompounds with a dozen identifiers each, sitting in a database the old site could search but Google couldn't see. Zero impressions, because there was nothing to show.
What we built
- One page per molecule, all 1.4 million of them, at a stable URL keyed on the catalogue ID, with the name, synonyms, SMILES, InChI, InChIKey, CAS, formula and molecular weight in the visible text, a 2D structure, a 3D view, and MOL and SDF files to download.
- A schema.org
MolecularEntitygraph on every page carrying the same identifiers as machine-readable fields, breadcrumbs, and an Organization and WebSite with a SearchAction on the home page so the site search shows up as one. - A sitemap index, 28 files at 50,000 URLs each, because a crawler that has to find 1.4 million pages link by link gives up somewhere in the tens of thousands.
- HTML that's complete before any script runs, so Googlebot, Bingbot and the AI engines' fetchers read the same text a person does. Sounds obvious, it's the single most common thing we find broken.
- A robots.txt that lets search and AI bots in by name and carries content signals, and an llms.txt that describes the site in plain text for the answer engines.
- Three free calculators, concentration, mass and volume, plus a small articles section, so there's something on the site a chemist might link to and not only look up.
What Search Console showed
Google Search Console, web search, all countries, impressions per day from the day the property was created to the last day with final figures.
| Week from | Impressions | Average position |
|---|---|---|
| 13 August 2026 | 49 | 27.7 |
| 20 August 2026 | 757 | 33.9 |
| 27 August 2026 | 5,282 | 13.1 |
| 3 September 2026 | 11,904 | 8.7 |
| 10 September 2026 | 3,106 | 9.9 |
| 17 September 2026 | 5,367 | 7.2 |
The dip in the week of 11 September is real and we left it in. Google re-crawled and re-evaluated a big batch of freshly indexed pages, daily impressions fell under 100 for two days, then climbed back through 1,000 inside a week and at a better average position than before, 7.5 over the last seven days against 9.5over 28. New sites do this, it's unnerving the first time you watch it and it's normal. A chart that only goes up is a chart somebody cropped.
Where the impressions come from
921 of the 957 pages that appeared are molecule pages and they took 94% of the impressions. The queries look like a chemist at a bench typed them, because one did:
| Query type | Example | Typical position |
|---|---|---|
| Quoted IUPAC name | "7-bromo-2-(4-methoxyphenyl)" benzoxazole | 4.7 |
| Name plus a technique | "1-(3-chlorophenyl)-2-isopropenylcyclopropane" nmr | 5.9 |
| SMILES string | "brc1ccc(cc1)nc1coc2c1c(=o)oc1c2cccc1" | 1.8 |
| SMILES plus a reagent | "brc1ccc(-c2ncc[nh]2)cc1" "nabht" | 8.1 |
| Brand | vitas-m | 4.7 |
Of the 1,103 distinct queries Search Console will show us, 971 had the site on the first page and 44 in the top three, and since Search Console hides the rarest queries the real count is higher. 90% of the impressions came from the United States.
What comes next
Two things. Position six to nine on an identifier query means the page sits under PubChem, ChemSpider and two or three reagent houses, and the way a supplier page moves up that list and gets chosen from it is a snippet that says the one thing those don't, in stock, this purity, this price, this delivery. That's title and description work on the molecule template, it's the next sprint, and honestly it should have been in the first one.
The other open number is coverage, 957 pages showing out of 1.4 million is under a tenth of a percent. Google indexes a new site in batches and the batches grow as the site earns trust and links, the sitemaps are in place, the rest is time plus the pages other chemists decide to link to, which is what the calculators and the articles are for.
What carries over to your catalogue
None of this is chemistry-specific, it's the general shape of a catalogue that search engines and answer engines can read. One page per item, the identifiers a buyer types in the visible text, the matching schema.org type in JSON-LD, a sitemap that lists everything, HTML that's finished before any script runs, a robots file that lets the crawlers in. Parts, reagents, cultivars, ISBNs, tariff codes, if your buyers search by a code then the code needs a page.
We do this as a fixed-price build, the scope and the price are on the AI visibility and SEO page.
Questions, answered
What is a search impression, and why count those instead of visits?
An impression is one appearance of a page in a Google results list, counted by Search Console every time the page is shown. For a new site it's the first honest signal you get, because it means Google has indexed the page, matched it to a query and ranked it high enough to show, and everything else a site earns from search, visits, enquiries, orders, is downstream of that.
How did a brand-new site get 957 pages into Google in three weeks?
By giving Google nothing to guess at. Every molecule has its own page at a stable URL with the name, SMILES, InChI, InChIKey and catalogue ID in the visible text and again in MolecularEntity structured data, a sitemap index lists all 1.4 million pages in files of 50,000, and robots.txt lets every crawler in. After that Google indexes at its own pace, which was 957 pages by the third week and still rising.
Would this work for a catalogue that isn't chemistry?
The pattern is the same for any catalogue where buyers search by an identifier, part numbers, CAS numbers, ISBNs, model codes, cultivar names, tariff codes. One page per item, the identifiers in the text, the matching schema.org type in JSON-LD, a sitemap that lists everything and a site that renders without JavaScript. What changes between industries is the schema type and how dirty the data is.
Does this count as AI visibility, or only Google?
Both read the same pages. ChatGPT, Perplexity and Claude fetch a page over the web and parse the text and the structured data, so the work that got these pages into Google is the work that lets an answer engine quote them, and the site also ships an llms.txt and names the AI crawlers in robots.txt. What we can't show yet is a citation count, because none of the engines publish one.
Have a catalogue nobody can find?
Send us the URL and we'll tell you on the first call whether it's a rebuild, a fix, or already fine, and roughly what the chart would look like either way.