Before the audit, it's worth grounding everything in the story the Ahrefs history tells. Zoviz built real authority on the back of a fast backlink ramp and a content explosion in 2024–2025, then lost 61% of its organic traffic in five months while Domain Rating kept climbing. That pattern (authority up, traffic down) points away from link issues and straight at content quality and technical hygiene, which is what this audit targets.
Ordered by ratio of impact to implementation effort. The first three are cheap fixes with outsized SEO consequences; the last two are structural and will take coordination with engineering but directly address the traffic decline visible above.
The JSON-LD Product schema claims an AggregateRating of 4.86 stars from 4,261 reviews. None of that rating is visible on the page. No star widget, no review count, no numerical average, and no reviews section matching the numbers. The same 4.86 / 4,261 figures are then repeated across dozens of service pages.
Google's structured-data guidelines explicitly prohibit marking up content not visible on the page. Repeating an identical rating across many pages amplifies the signal from "oversight" to "systematic spam." Consequences escalate from loss of rich results to site-wide manual actions under Spammy structured markup. For a branding platform whose entire SEO funnel relies on Product rich snippets, this is the single most exposed risk on the site.
Either render real, per-page reviews into the DOM and let schema reflect that, or strip AggregateRating from pages that can't support it. Not both hidden and page-wide.
Observed redirect chain for https://zoviz.com/about/:
(a) The canonical English URL redirects server-side based on a language cookie (TdwVuGzjzMvXrmPN=ar). Google's hreflang guidance is explicit: don't auto-redirect by perceived language; use a banner. When Googlebot crawls from a non-English IP or re-enters with a stale cookie, the English canonical bounces to a locale variant, diluting its ranking signals and flattening hreflang clusters. (b) The first hop drops to plain HTTP. HSTS saves most visitors silently, but the chain itself is 4 hops instead of 1, wasting crawl budget and tripping every SEO crawler's redirect-chain warning.
Replace cookie-based 302 language redirects with a soft locale suggestion banner. Rewrite the trailing-slash edge rule to 301 directly to the final HTTPS URL in one hop.
/tr, /ar, /id, /pt) are systemically under-localizedCritical · Correlates with traffic loss
This is the issue most tightly correlated with the traffic decline shown earlier. /tr lost 86% of its traffic, /ar lost 53%, and both are homepages that cascade quality signals to their entire subdirectory. Manual inspection of those pages turns up a consistent pattern of half-localized content. The shell is translated, the substance isn't.
Every testimonial on /tr reads "John, Small Business Owner" and "Lisa, Graphic Designer" in English, which feels jarring to a Turkish reader and reads as a quality signal to Google's raters.
On both / and /tr, the "Social media profiles & covers" section contains text about multilingual logo support. The "Business cards" section contains text about logo creation speed. The translation pipeline carried the mismatch across languages.
The blog chrome on /tr is Turkish ("Tasarım", "8dakika okundu"), but every post title ("Best AI Image Editing Tools Online", "Best Free Poster Makers Online in 2026") stays in English. A user sees a page that half-speaks their language.
"Built Right In" was a marketing tagline on the English page, and translators treated it as a paragraph opener. Turkish readers now see "Doğrudan Entegre" starting a sentence, which no native speaker would write.
Every <img> on /tr keeps the same English alt text as /. App Store and Google Play badges use English alt on Turkish and Arabic pages, even though Apple and Google ship localized assets.
Taken together, this is the fingerprint of an automated translation pipeline injected into an English template without native-speaker review. Google's late-2025 and early-2026 core updates have both specifically targeted thin, programmatically-localized content, which is the most plausible explanation for the November 2025 peak and subsequent decline.
Audit the 12 locales top-to-bottom. Route content through native-language reviewers for the four worst-hit (TR, AR, ID, PT) first. Localize testimonials, alt text, app-store badges, and blog titles. Fix the headline/body mismatches at source so translations stop inheriting them.
static-0.xml lists only the 192 English URLs as <loc> entries. The 12 locales per URL exist only as hreflang alternates inside those English entries. Google tolerates this; Bing, Yandex, Baidu, and DuckDuckGo heavily prefer explicit <loc> for every indexable URL. With 192 pages × 12 locales, roughly 2,300 indexable URLs are being under-declared to every non-Google crawler, and localized pages get far less crawl priority even from Google.
Separately, robots.txt disallows three URLs that are still listed in the sitemap:
/hire-expert/website-creation/marketing-automationSearch Console flags these as "Submitted URL blocked by robots.txt", a self-inflicted crawl conflict.
Generate one <loc> per (page, locale) pair with a full hreflang cluster on each, or split into per-language sitemaps referenced from the index. Reconcile the three blocked URLs: decide whether they're indexable, then update one file, not both.
?srsltid, creating duplicate indexable URLsHigh · Indexation hygiene
Internal blog links are being written with a trailing ?srsltid query parameter. On a representative post, the link at XPath //*[@id="dynamic"]/div[2]/div[2]/div[1]/div[1]/div[3]/div[7]/p/a points to https://zoviz.com/blog/how-to-build-brand-awareness?srsltid=…, which Google will treat as a second, parameterized version of the canonical URL. The pattern is widespread inside the blog's internal-link graph.
srsltid is Google's Merchant Center click-tracking parameter; it's designed to appear on Google-hosted referral URLs, not on internal site links. When the site itself emits it, three things go wrong in sequence: (a) Google indexes both the clean and parameterized URLs, doubling the indexed footprint for every affected post; (b) ranking signals (links, engagement, dwell) split between the two URLs; (c) the resulting duplicate bloat sits precisely on the blog, the content surface most exposed to the Helpful Content algorithm's quality signals. At Zoviz's scale, this is not a cosmetic issue; it's quiet, cumulative index pollution.
Strip ?srsltid from internal link generation at the source template. Ensure every blog page emits a clean rel="canonical" pointing to the parameter-less URL. Add a URL-parameter rule classifying srsltid as tracking, not a content variant.
Before looking at specific attributes, the public field data makes the problem concrete. Google's Core Web Vitals Summary of this origin on phones as of 2026-04-11 (CrUX Vis) shows zoviz.com failing the CWV assessment at origin level on mobile. In other words, the CWV problem is not a one-page outlier. It is site-wide and already visible in the real-user data Google uses for ranking.
zoviz.com on mobile, 2025-06-22 to 2026-04-18. The vast majority of real-user sessions fall into the Poor band, a smaller share into Needs Improvement, and almost none into Good. The shape is stable across ten months, which rules out a one-off regression and points at a persistent, structural CWV problem.
The homepage-level cause is easy to spot: 101 of 120 images have no width attribute and 110 of 120 have no height. Without intrinsic dimensions, the browser reserves no space before load, so content jumps as images lazy-load, directly inflating CLS and producing visible jitter during first paint. Combined with the 4-hop redirect chain in issue #02, LCP also drifts in the wrong direction. Fix: add width and height to every <img>, or set aspect-ratio in CSS. Trivial template change with a measurable CWV impact.
The homepage jumps from <h2>Logo designs that match your industry</h2> directly to <h4>Real Estate logo</h4>. Breaks screen-reader navigation and dilutes topical structure. Change h4s to h3s.
/About and /Pricing return hard 404s. Low-impact, but a soft 301 to lowercase catches typos and copy-paste errors from email and docs.
One page audited against a GEO (Generative Engine Optimization) framework to show how the content layer scores in an AI-search world. The technical hygiene is decent; the content layer reads as a marketing brochure, not a searchable, chunkable topical resource. The single most telling finding: zero reasoning-reflective tokens ("because", "therefore", "as a result") across 1,993 words of body copy. Every claim is asserted without explanation. That is exactly the pattern AI models penalize as reward-hacked copy.
<section>, 0 <article>Tally · 10 fails · 7 partials · 0 passes out of 17
Head terms like name generator (526K GV, KD 86) and business name generator (183K GV, KD 84) are owned by Namelix, Shopify, and Looka. The real opening is splitting the generic page into many specific pages (by business sub-niche and by language), where KD drops to 0–15 while demand stays meaningful. All three recommendations below fit Zoviz's existing product (a multilingual name/logo generator already used in 100+ languages and scripts), so the marginal build cost is low.
43 distinct business types have search demand with keyword difficulty of 0–15. This is the single highest-leverage pattern because it maps directly onto Zoviz's core product. A user searching "bakery name generator" is a textbook buyer. The SERP for most of these is dominated by Shopify and Namelix with thin tool pages; a page with (a) a working generator, (b) 20+ example names in the niche, (c) a naming guide specific to that business type, and (d) related industry logo links back to /logo-ideas/[industry] will outperform them on depth.
| Sub-niche | Primary keyword | GV | Traffic potential | KD |
|---|---|---|---|---|
| Band / Music | band name generator | 21,000 | 21,000 | 6 |
instagram name generator | 17,000 | 52,000 | 13 | |
| Podcast | podcast name generator | 15,000 | 16,000 | 5 |
| TikTok | tiktok name generator | 7,800 | 32,000 | 3 |
| Book publishing | book name generator | 7,700 | 24,000 | 13 |
| Restaurant | restaurant name generator | 7,200 | 8,100 | 3 |
| Farm | farm name generator | 7,000 | 13,000 | 0 |
| Clothing brand | clothing brand name generator | 4,800 | 2,900 | 8 |
| Food truck | food truck name generator | 4,600 | 600 | 0 |
| DJ | dj name generator | 4,400 | 6,000 | 1 |
Full list (43 niches) available on request. Remaining 33 sit at KD 0–15 with combined GV ≈ 20,000.
A parallel dimension with even larger combined demand: 119 language/culture keywords at KD ≤ 15 totaling ~152K monthly searches. This pattern maps cleanly onto Zoviz's positioning: the platform already supports 100+ languages and scripts, so a /japanese-name-generator page is a native product surface, not a bolt-on. Intent is split (some visitors are founders, many are fiction writers, gamers, or worldbuilders), so conversion rates will be lower than Type 1, but at this scale the top-of-funnel value is substantial and the audience overlaps naturally with Zoviz's creative-tools cross-sell (logo, branding, AI image).
| Culture / language | Primary keyword | GV | Traffic potential | KD |
|---|---|---|---|---|
| Japanese | japanese name generator | 42,000 | 70,000 | 4 |
| German | german name generator | 7,100 | 13,000 | 4 |
| Russian | russian name generator | 6,900 | 15,000 | 2 |
| French | french name generator | 6,000 | 7,900 | 0 |
| Norse / Viking | viking name generator | 5,800 | 17,000 | 4 |
| Greek | greek name generator | 5,100 | 2,100 | 1 |
| Italian | italian name generator | 3,900 | 5,000 | 0 |
| Spanish | spanish name generator | 3,400 | 2,900 | 2 |
| Arabic | arabic name generator | 3,300 | 3,700 | 1 |
| British | british name generator | 2,800 | 1,300 | 1 |
Secondary expansion: gender-modifier children like /japanese-name-generator/male, /chinese-name-generator/female add another ~15,000 GV across ~30 pages.
Zoviz already ships the pattern (/logo-ideas/restaurant). The data shows 21 additional industry pages at KD 0–2: near-trivial to rank, near-zero competition. Total extra volume is smaller than Types 1 and 2 (~19K combined) but the conversion intent is the highest of the three: someone searching "bakery logo ideas" is in the middle of the purchase funnel for a logo tool. This is also the pattern most defensible against AI-search disintermediation. The page shows 40+ real logo examples plus the generator, which a raw LLM response cannot replace.
| Industry | Primary keyword | GV | Traffic potential | KD |
|---|---|---|---|---|
| Clothing brand | clothing brand logo ideas | 2,100 | 5,400 | 2 |
| Cafe | cafe logo ideas | 2,000 | 3,300 | 0 |
| Bakery | bakery logo ideas | 1,800 | 2,700 | 0 |
| Photography | photography logo ideas | 1,400 | 500 | 0 |
| Podcast | podcast logo ideas | 1,300 | 2,800 | 0 |
| Cleaning | cleaning logo ideas | 1,000 | 2,400 | 0 |
| Real estate | real estate logo ideas | 1,000 | 4,300 | 0 |
| Coffee shop | coffee logo ideas | 900 | 1,400 | 0 |
| Landscaping | landscaping logo ideas | 800 | 1,600 | 0 |
| Band | band logo ideas | 800 | 500 | 1 |
A pragmatic first quarter: ship the top 10 of Type 1 and the top 10 of Type 2 (20 pages) on a shared template with a rigorous content spec (one genuinely useful naming guide per page, localized testimonials, and schema that matches the DOM, avoiding the issue flagged in #01 above). Combined theoretical ceiling is ~180,000 global monthly searches, roughly double current organic traffic, before the Type 3 expansion and before any halo effect from the technical fixes.
Responding directly to the brief's third request: a project where I significantly grew organic traffic, with the starting point, the strategy, and the results in specific numbers. The screenshot is from Ahrefs because I no longer have Google Search Console access for the Wallgold property, but the shape of the curve and the ranking outcomes are consistent with what GSC showed while I was there.
Wallgold is an Iranian gold-trading and precious-metals platform. When I joined in April 2025, the product had effectively zero organic visibility in an already crowded market (MiliGold, Talasea, Hamrashgold, Taline, Goldika). SEO tickets sat at the bottom of a general engineering backlog and were regularly deprioritized. There was no Product SEO function.
A flat line. The Ahrefs estimate for monthly organic clicks hovered at or near zero from the launch of tracking through the end of October 2025. Competitor sites were already indexing and ranking for the category's highest-intent transactional keywords. The core problem was not a lack of content ideas, it was an execution bottleneck: the business had SEO needs but no dedicated surface to convert those needs into shipped product changes.
The decision I pushed for was structural rather than tactical. Instead of chasing keywords or running an audit-and-ticket cycle against the engineering team, I built a dedicated Product SEO function whose output was product changes, not recommendations. That function stood on three pillars.
Decoupled the Product SEO workflow from the general engineering roadmap. Instead of SEO tickets waiting in a shared backlog for months, the Product SEO team had its own design, dev, and deployment capacity. Time-to-market on an SEO change dropped from quarters to days.
Built an SEO-First architecture owned end-to-end by the Product SEO team: a Senior SEO Specialist leading a Technical Team (Senior WordPress dev + Technical Infrastructure Consultant), an Editorial team (gold market trader + Content Manager), a Product designer, and an off-site SEO consultant. Every new feature shipped with SEO in the design, not bolted on after.
Positioned Product SEO as the technical backbone for Marketing. Built the architecture for the Anjoman Ashbah (Ghost Association) community hub, the landing-page infrastructure for the Irancell and Japan-lottery campaigns, and the raffle systems for the Ghayesi and Japan live lottery shows (which needed to stay up under peak traffic).
Instead of hiring more specialists, I built berppy — a proprietary internal tool that replaced about 160 hours of monthly specialist work.
The real point is not "we use AI."
It's cost efficiency (one tool equals one less headcount) plus de-risking (almost zero deployment errors on the live site).
This is exactly what let a small Product SEO team ship at the velocity shown above.
The Ahrefs organic traffic curve tells the clearest version of the story. A flat line from April through October 2025, the first slow rise through November and December as the earliest shipped changes began to index, a breakout spike in late February 2026 when the Japan-lottery campaign landing-page infrastructure compounded with the earlier technical work, and a stable run-rate between 7,000 and 8,000 monthly organic clicks thereafter.
The ranking picture is where the strategy really shows. Across eleven of the category's highest-value transactional keywords (the "buy/sell water-gold" cluster in Persian), Wallgold sits at Rank 1 on Google Iran. The nearest competitor, MiliGold, is usually at 2 or 3 on the same terms. Taline, the weakest competitor in the set, bounces between 11 and 23. Ranking the entire priority keyword set at position 1 against a field of five established competitors is the part of the result I am most proud of, because it is the part that came from the product-led structure rather than from any specific content piece.
خرید طلا آبشده, خرید و فروش طلا آبشده, فروش طلا آب شده, and nine related variants). Wallgold holds Rank 1 on every keyword in the set. The nearest competitor, MiliGold, sits between 2 and 8; Hamrahgold between 3 and 5; Taline between 11 and 23. All rankings are on Google Iran, mobile.
Happy to walk through any of this in more detail. Thank you for the opportunity. The problem is a good one.