My porn website built with Claude AI

[Matomo check-in] First 17 days of analytics - self-hosted FR adult tube

Installed Matomo on day one so I'd have clean first-party data from the start. Here's what 17 days looks like.

Traffic overview

~1,100 visits total, ~65/day average
4 min 26s average session duration people are actually watching
57% bounce rate normal for a tube (land, watch, leave)
6.4 actions per visit for those who stay they're browsing around

Audience

75% France, rest split across French-speaking countries (Belgium, Réunion, Canada) and 51 countries total
Geographically well-targeted, the niche is working

Traffic sources - the honest picture

71% social (one account driving almost all of it)
25% direct (bookmarks / return visitors, good sign)
4% organic search

- The 4% organic is the number to watch. It's expected at 3 weeks old Google hasn't had time to crawl and index properly. But it also means everything we've built on the SEO side (clean tag taxonomy, 74 indexed tag pages, deduplicated titles, sitemap fixes) is a 2-3 month bet, not an immediate win.
- The 71% social dependency is the uncomfortable truth. One platform ban = losing most traffic overnight. Diversifying into organic is the priority, not a nice-to-have.

Internal search

241 internal searches, 126 unique queries visitors are actively looking for specific content. This is useful: it tells me what to prioritize in the catalog.

Bottom line

Healthy engagement metrics, well-targeted audience, organic still near zero. Nothing alarming for a site this young, but the SEO work needs to compound before it shows up here.
Will recheck in 30 days and see if the tag pages start pulling organic.
 
I see you're making progress. Stats look great.

Best of luck.
 
Anticipated future challenges :

1. Short term: traffic. The content engine is running (nearly 9,000 videos imported, with automated imports every 4 hours), but attracting qualified visitors remains the real challenge. I am just starting to automate posting on X to complete the loop.

2. Medium term: reliance on external embeds. If a platform changes its embedding policy or gets blocked in France (as is already the case for PornHub or RedTube), I could lose those videos overnight. There is no real solution to this other than diversifying sources.

3. Long term: if traffic increases significantly, I will need to consider using a CDN, a caching strategy, and potentially self-hosting at least some of the content. For now, Cloudflare handles caching, but only in a basic way.
I like the way you highlighted the anticipated future challenges. It shows a lot of transparency and organization.
 
Numbers look good for a fresh 1 month old porn site mate, keep going as this looks very interesting
 


[Progress update] 07/16/2026 - import filtering & cleanup (self-hosted FR adult tube)

Short but necessary session — spent most of it tightening the import pipeline after noticing garbage slipping through daily.

The problemWith 2 videos imported per run, every bad import is 50% of the day's content. I was seeing: sub-60-second teasers, promotional content for other sites, AI-generated videos (some in Spanish), trailers labeled "bande annonce", and recurring junk from the same sources showing up every single run.

What I fixed !
  1. Hard duration filter. Added MIN_DURATION = 60 to both import scripts. Anything under a minute is skipped before any other check. Eliminated the manual DELETE cycle I was doing every morning.
  2. Two-layer exclusion system. The existing filter ran on the original English title. Problem: some junk only reveals itself after translation (AI labels, French promo phrases). Added a second filter that runs on the translated French title specifically — catches [Généré par IA], bande annonce, à ne pas manquer and similar patterns that would never appear in the English source.
  3. Expanded blocklist. Added recurring offenders identified from the import logs: a specific search query that kept returning promo content, a studio name, a recurring AI World Cup fantasy series, and two actress names that kept slipping past the language filter.
LessonOn a small-volume import (2 videos/day), quality control matters more than quantity. One bad video is 50% of your daily output. Worth spending time on the filter rather than cleaning up manually every day.

Pipeline is tighter now, will monitor the next few days to see if anything still slips through.
 
Back
Top