← all days
AMBER

2026-07-09

TL;DR

What moved and why

UK — slow bleed on city heads (likely competitive, day 1 of tracking). Since early June: birmingham escorts ~6→12, sheffield ~12→18, crewe ~4→17, basildon ~5→18, with the pattern concentrated in mid-size-city head terms while long-tail suburb terms hold. No on-site changes coincide (snapshots start today, but canonicals/robots/status are all clean now), the other five markets don't share the pattern, and adultwork.com's improvement mirrors our decline almost keyword-for-keyword. Verdict: competitive displacement, likely — I'll compare their city-page templates against ours tomorrow if the slide continues.

DE — head-term surge (confirmed, positive). The gains cluster on transactional city terms (sex/huren/sextreffen + city). Average position 6.3 → 6.0 in two weeks with top-3 count rising. Whatever changed in Google's weighting here, DE pages are winning it — worth noting these are root-path pages (/huren/berlin/), not the /de/ subfolder pattern.

AT — June dip fully recovered (4.6 → 5.1 → 4.8). Reads as SERP volatility, closed.

IT — stabilized after sliding through June (8.3 → 9.5 → 8.9). Only 172 of 330 tracked keywords rank at all — this market is thinner than its keyword count suggests. Watching.

BR — young and climbing: 44 → 69 ranking keywords in a week, avg 11.0. Normal for a market indexed only since mid-June. No action needed; growth is the signal to watch.

AU — quietly the good news story: 6.7 → 6.2 since June, top-10 count at its 90-day high.

Investigations

  1. TrueRanker API off-by-one (confirmed, worked around). For any API request, the last day of the returned range carries each keyword's data shifted to the row above ("huren oberhausen"'s URL appears on "shemale sex", etc.). Verified by re-pulling identical dates in different range positions. This also invalidates the API's cann and ov fields (only emitted on that corrupted final day). Collector now discards final days and overlaps chunks; cannibalization is derived from our own URL-swap history instead. Worth reporting to TrueRanker support with the repro.
  2. Full snapshot sweep of all 1,089 ranking URLs: two 404s (below), zero fetch failures, zero noindex, 2 canonical mismatches (both trivial trailing-variant cases), no meaningful redirect chains.
  3. Dead pages still ranking: au/escort/erotic-massage/australia/stussy-babe41/ holds #9 for "Warragul escorts" and it/escort/italia/vera-ragazza10/ holds #7 for "escort policoro" — both 404 (deleted profiles). Google will drop these within days-to-weeks and the rankings will be lost rather than transferred.
  4. hreflang absence: no link-tag or sitemap hreflang anywhere. With AT (/at/, German) vs DE (root, German) and UK/AU both English, cross-country URL bleed is a standing risk — I'll start measuring whether wrong-market URLs actually rank before calling this urgent.

Opportunities

DE striking distance is loaded: "sextreffen hamburg" #12 (33k vol), "huren berlin" #9 (27k), "huren hamburg" #8 (27k), "sex ingolstadt" #9 (18k) — all trending up on their own. These are positions where small pushes (internal links from the surging München/Berlin cluster, freshness) buy disproportionate traffic.

Recommendations

  1. 301 the two dead profile URLs to their city pages (/au/escort/warragul/-equivalent and the Policoro city page) before Google drops them — cheap, urgent, preserves the equity.
  2. Look at adultwork.com's UK city pages this week (what changed vs ours) — that's where the UK bleed is going.
  3. Internal-link push on the DE striking-distance set while the market has momentum.
  4. Report the API bug to TrueRanker — repro: request any range, compare the final day's URLs against the same day pulled mid-range.
  5. Hreflang: hold until I've measured actual cross-market bleed (on the watchlist).

Watchlist