Case study
solarfuture.shop: full analysis
solarfuture.shop is a German Shopify store for balcony solar mounts that also sells on Amazon. I started the SEO work in May 2026 and took over the Google Ads account in August 2026.
Data: the store's entire Google Search Console history, 16 May – 21 September 2026. Only full Monday–Sunday weeks are used for the trend figures.
The results
Each figure compares the first three with the last three full weeks. Non-brand means search queries without the brand name.
Non-brand clicks per week
33.6 → 55.9
+66%
Non-brand impressions per week
411 → 2,082
about 5×
Market demand in the same period
−33%
Google Ads search volume for the main keyword, Germany
Ratgeber articles in Google's top 10
4
within three months, fully measured
“I never had time for SEO before. Sammy took it over completely, and we now show up for searches where we used to be invisible.”
Impressions per week
This is where the split is clearest: the brand block stays roughly flat, essentially all growth is non-brand.
Impressions per week
Blue = non-brand, orange = brand. Both include the estimated anonymous longtail (see methodology).
Clicks per week
Clicks per week
Blue = non-brand, orange = brand. Both include the estimated anonymous longtail (see methodology).
Show data table
| Week from | NB clicks | Brand clicks | NB impr. | Brand impr. | Avg. pos. |
|---|---|---|---|---|---|
| 16/05* | 7 | 6 | 91 | 102 | 5.3 |
| 18/05 | 14 | 47 | 240 | 275 | 5.6 |
| 25/05 | 49 | 61 | 515 | 361 | 8.6 |
| 01/06 | 38 | 25 | 478 | 249 | 8.5 |
| 08/06 | 37 | 23 | 406 | 286 | 7.5 |
| 15/06 | 39 | 29 | 608 | 287 | 7.4 |
| 22/06 | 30 | 34 | 670 | 321 | 8.4 |
| 29/06 | 60 | 26 | 1,027 | 320 | 9.5 |
| 06/07 | 74 | 28 | 1,408 | 356 | 8.9 |
| 13/07 | 50 | 20 | 1,089 | 292 | 7.1 |
| 20/07 | 67 | 23 | 901 | 307 | 6.4 |
| 27/07 | 40 | 52 | 1,082 | 398 | 7.6 |
| 03/08 | 34 | 94 | 1,476 | 384 | 6.7 |
| 10/08 | 57 | 28 | 1,869 | 416 | 7.8 |
| 17/08 | 79 | 26 | 1,626 | 366 | 7.0 |
| 24/08 | 57 | 34 | 1,688 | 329 | 8.9 |
| 31/08 | 62 | 29 | 1,648 | 392 | 8.5 |
| 07/09 | 52 | 24 | 2,136 | 362 | 8.4 |
| 14/09 | 53 | 31 | 2,464 | 482 | 7.2 |
| 21/09* | 6 | 5 | 311 | 92 | 6.1 |
* incomplete week (first week 2 of 7 days, last week 1 of 7 days), excluded from the trend. NB = non-brand, incl. estimated anonymous longtail.
For context: brand
Brand searches are driven mainly by Google Ads and seasonality, not by SEO. Brand clicks are noisy week to week and show no reliable trend.
Brand impressions per week
295 → 412
mild upward drift
Brand clicks per week
44.4 → 27.8
no significant trend (t = −0.39)
Ratgeber (guide) articles
4 Ratgeber articles reached Google's top 10 within three months. This figure is fully measured, with no estimate involved. That makes it the most reliable number in this analysis for real decisions; the non-brand estimate above is supporting context.
What's next: non-brand CTR is falling
Non-brand impressions grew roughly 5× while non-brand clicks grew about 65%, so a widening share of the growth is impressions without matching clicks. That is consistent with new long-tail phrasings (informational, comparison, "vs" queries) surfacing the site without converting yet, rather than the ranking work failing. The next step is a title and snippet review on the pages absorbing most of the new impressions. One example is the guide on balcony solar orientation and tilt angle, with 971 impressions in the week of 14–20 September alone.
Methodology and uncertainty
This section explains how the numbers above are produced and where their limits are. The short version: the direction is robust, individual weekly values are not.
The problem: anonymized queries
Google Search Console doesn't report rare queries individually, only as an anonymous remainder. To split brand from non-brand, that remainder has to be assigned. Is it almost always non-brand? Not almost always, but predominantly. A long query can contain the brand name and still fall under the anonymization threshold. This was checked two ways using the store's actual data.
1. Measuring it directly: not possible
Search Console allows a filter on the query dimension. If that filter could reach the anonymized rows, an exact split would exist. Test over a representative 4-week window (3–26 August):
- no filter: 356 clicks (the true total)
- filter "contains solarfuture": 85 clicks · filter "does not contain solarfuture": 71 clicks
- sum: 156 clicks, only 44% of the true total
The filter is subject to the same anonymization threshold. An exact split is not possible for this store, no matter how the question is asked.
2. The landing-page approximation
The page report is complete; page-level rows are not anonymized. So: for each page type, what share of the named clicks are brand searches? Computed across the full history (16 May – 26 August):
| Page type | Total clicks | named | anonymous | Brand share of named |
|---|---|---|---|---|
| Homepage | 493 | 331 | 162 | 97% |
| Category (/collections/) | 33 | 17 | 16 | 82% |
| Product pages | 544 | 245 | 299 | 15% |
| Ratgeber (blog) | 152 | 12 | 140 | 8% (only 12 named clicks) |
| Other (pages/, search, etc.) | 47 | 5 | 42 | 80% (only 5 clicks) |
This gives the assignment used in the charts: anonymous clicks on the homepage and category pages are treated as probably brand, everything else as non-brand. Weighted by how much traffic flows through each page type, roughly 90% of the anonymous pool is non-brand. Product pages alone carry 544 of the 1,269 page-attributed clicks, more than 40%.
3. Why the anonymous pool skews non-brand
The threshold cuts by rarity. Over the same 4-week window, the two groups of named queries differ sharply:
- Brand: 16 distinct queries, median 19.5 impressions per query
- Non-brand: 279 distinct queries, median 1 impression per query
A query with 19–20 impressions sits well clear of any threshold; one with a single impression sits right on it. The anonymous pool fills up mostly from the non-brand side because there are far more rare non-brand phrasings than rare brand ones.
Statistics
With the longtail included, non-brand growth that looks like noise in a query-only view becomes statistically real (linear regression over the full weeks):
- Non-brand clicks: +1.6/week, t = 2.51, R² 0.28, marginally significant
- Non-brand impressions: +114/week, t = 11.74, R² 0.90, clearly significant, roughly 5× over the period
- Brand clicks: t = −0.39, no real trend (noisy week to week)
- Brand impressions: +8.0/week, t = 4.22, R² 0.53, a mild upward drift, plausibly seasonal or ad-driven rather than SEO
Why a query-only view misses this: the query report is mostly head terms, and on this store those are overwhelmingly branded. The roughly 44% of clicks that show up as named queries hide almost all of the non-brand movement.
Residual uncertainty
- The split of the anonymous pool is an estimate via landing page, not a measurement. The direction is robust; individual weekly values are not.
- It assumes brand searches distribute across page types the same way among anonymous queries as among named ones. Plausible, not provable.
- Each week applies the all-history brand share per page type to that week's page totals rather than a fresh pull per week (Search Console's export limits make that impractical at this granularity). If a page type's query mix changes materially, individual weeks could be further off. Trust the trend over any single bar.
- Page-level and date-level totals differ slightly in Search Console (for example 86 vs. 84 clicks in the week from 14 September). This is a known reporting quirk, not a broken pull.
- The checks in sections 1–3 were run once, on data through 26 August. The page-type composition is structural and doesn't change week to week.
Data through 21 September 2026. Search Console reports with a lag of about two days; incomplete weeks are shown lightened and excluded from the trend.