Case study · my own store
Krasnodarflora: SEO for my own store, with every number in the open
This is my flower delivery store in Krasnodar, Russia. Ten years in search, 200+ orders a month, 991 reviews on the site. Here I show what usually gets hidden: what an agency left behind, what a Google update drop really looks like, and what I'm doing to win it back.
- 10 yrs
- the store has lived in search
- 200+
- orders per month
- 4.8
- rating on 2GIS maps, 99 votes
- 991
- reviews on the store site
My own business instead of someone else's portfolio
Krasnodarflora is not a client project. It's a business where I answer for everything: flower purchasing, florists, couriers, the site and its marketing. Every SEO mistake here costs me real money, not a line in someone's report.
For years the site was handled by an external agency. In June 2026 I took SEO in-house and started with a full audit: 12 reports, 65+ findings, from junk pages in the index to incomplete structured data.

What the audit showed
Everything below can be verified in the site code and webmaster panels. These are the highlights.
- 01
Organic traffic flat for four years
From July 2022 to June 2025 search traffic hovered around five thousand visits a month, seasonal March peaks aside. Years of paid SEO didn't move the line.
- 02
May 2026: the Google core update
After the update, Google traffic nearly halved year over year: from 4,079 visits in June 2025 to 2,001 in June 2026. Updates don't forgive a weak foundation.
- 03
Hundreds of junk pages in the index
Empty sections, duplicates and auto-generated filter pages were eating crawl budget. I removed 300+ of them with proper 301 redirects.
- 04
Template-generated titles
Titles were assembled by a generator, duplicated each other and got truncated in results. Key pages are now rewritten by hand for real queries.
- 05
Analytics was lying
Up to 97 percent of "direct visits" turned out to be bots without JavaScript. Until that was filtered out, any conclusion drawn from analytics was garbage.
- 06
Ratings without a backbone
Product markup was incomplete, and I rejected the idea of painting fake scores outright. Storefront ratings are now computed from confirmed orders.
What got done in the first weeks
The order is simple: foundation first, then content, then growth.
Technical foundation
- 300+ junk pages removed with 301 redirects
- Canonicals for filters and product duplicates
- A curated sitemap instead of auto-generation
- Bot filtering in analytics and scraper protection
Structure and content
- A delivery hub section with internal linking
- SEO copy and FAQ for 62 catalog sections
- 334 product descriptions rewritten without AI clichés
- Tag chips to catch long-tail queries
Commercial pages
- Product card and catalog listing redesign
- Honest ratings and order counters on the storefront
- Per-stem prices with quantity discounts
- Speed: script cleanup, self-hosted fonts
Local search
- 2GIS and Yandex Business: profiles, photos, review replies
- A 4.8 rating across 99 votes on 2GIS
- A bouquet photo before delivery as a public promise
Where the project stands now
Orders hold at around two hundred a month despite the Google drop: Yandex, maps, direct demand and repeat customers carry the business. Every fourth order comes from a returning buyer.
The technical debt is closed, content rewritten, analytics cleaned. Now comes the slowest part: winning positions back after the update. I'll publish checkpoint snapshots here as they come.
A flat plateau under the agency, seasonal March peaks, and the drop after the May 2026 Google update. I publish this chart because this is the reality I work with.
Data: Yandex.Metrica, counter 42046359 · July 2022 · June 2026
Show data as a table
| Search visits | |
|---|---|
| 07.22 | 5 010 |
| 08.22 | 5 474 |
| 09.22 | 5 051 |
| 10.22 | 5 695 |
| 11.22 | 6 301 |
| 12.22 | 5 697 |
| 01.23 | 5 221 |
| 02.23 | 7 426 |
| 03.23 | 11 457 |
| 04.23 | 4 653 |
| 05.23 | 5 130 |
| 06.23 | 4 404 |
| 07.23 | 4 402 |
| 08.23 | 4 582 |
| 09.23 | 4 884 |
| 10.23 | 4 477 |
| 11.23 | 4 863 |
| 12.23 | 4 346 |
| 01.24 | 3 938 |
| 02.24 | 6 703 |
| 03.24 | 12 341 |
| 04.24 | 4 584 |
| 05.24 | 5 333 |
| 06.24 | 4 451 |
| 07.24 | 4 440 |
| 08.24 | 5 042 |
| 09.24 | 5 010 |
| 10.24 | 5 204 |
| 11.24 | 5 411 |
| 12.24 | 4 827 |
| 01.25 | 4 830 |
| 02.25 | 7 166 |
| 03.25 | 11 306 |
| 04.25 | 4 796 |
| 05.25 | 6 674 |
| 06.25 | 6 127 |
| 07.25 | 6 035 |
| 08.25 | 6 119 |
| 09.25 | 4 695 |
| 10.25 | 4 468 |
| 11.25 | 4 526 |
| 12.25 | 4 505 |
| 01.26 | 4 181 |
| 02.26 | 5 666 |
| 03.26 | 8 682 |
| 04.26 | 3 706 |
| 05.26 | 3 752 |
| 06.26 | 2 868 |
Yandex grew from 566 visits in July 2024 to 2,575 at the March 2026 peak. Google lost half after the update. Betting on one engine is a risk, and diversification is how I remove it.
Data: Yandex.Metrica, counter 42046359 · July 2024 · June 2026
Show data as a table
| Yandex | ||
|---|---|---|
| 07.24 | 566 | 3 858 |
| 08.24 | 629 | 4 397 |
| 09.24 | 649 | 4 337 |
| 10.24 | 686 | 4 507 |
| 11.24 | 788 | 4 607 |
| 12.24 | 1 033 | 3 767 |
| 01.25 | 1 191 | 3 614 |
| 02.25 | 1 445 | 5 688 |
| 03.25 | 2 421 | 8 860 |
| 04.25 | 1 169 | 3 606 |
| 05.25 | 2 308 | 4 342 |
| 06.25 | 2 034 | 4 079 |
| 07.25 | 2 246 | 3 762 |
| 08.25 | 1 915 | 4 174 |
| 09.25 | 1 344 | 3 313 |
| 10.25 | 1 214 | 3 223 |
| 11.25 | 1 238 | 3 274 |
| 12.25 | 1 363 | 3 130 |
| 01.26 | 1 229 | 2 934 |
| 02.26 | 1 648 | 3 995 |
| 03.26 | 2 575 | 6 076 |
| 04.26 | 1 114 | 2 574 |
| 05.26 | 822 | 2 907 |
| 06.26 | 856 | 2 001 |

Honest status
What I'm not claiming yet: that traffic has grown. Positions start moving in month three after technical work, and the first checkpoint for this project lands in September 2026. Its numbers will appear here, whatever they are.
Questions, answered
Why publish a case study with falling traffic?
Because it's true, and because I sell a method, not fairy tales. The May 2026 Google update hit a huge number of stores. The difference is that I show, on my own numbers, what to do about it.
How is this case useful to me as a client?
You see how I work when my own money is on the line: diagnosis, priorities, technical work, content, local search. Client projects get exactly the same method.
What do honest ratings mean?
Scores on the store site are computed from confirmed orders. Faking reviews would have been easy, but it's a time bomb, and I offer clients the same principle.
Can these numbers be checked?
The store is public: krasnodarflora.ru. Reviews and map ratings on 2GIS and Yandex Maps are public too. The charts are built from a Yandex.Metrica export, the counter ID is right under them.
Want the same breakdown of your site?
I'll start with a free review: where you stand, what's holding you back, and what to fix first. No top-1-by-Friday promises.