My porn website built with Claude AI

Pretty impressive build tbh. The tech seems solved, but traffic, age-verification laws and relying on third-party embeds look like the real risks now. Curious how many pages Google keeps indexed after a few weeks.
I believe the infrastructure is strong and properly in place. The business model, although specific, is flexible enough to adapt quickly. As for Google, having the homepage indexed is a solid start, and if the deeper pages are well-organized, they might stay visible for longer than expected.
 
[Progress update] 07/03/2026 and 07/04/2026 - dev day (self-hosted FR tube)

Long session, several fronts tackled. Sharing in case it helps someone running a scripted tube.

1. Telegram bot got compromised. My alert bot's token was hardcoded in a shell script and leaked, someone used it to blast my contacts with a fake crypto giveaway scam (the classic "Elon giving away $2500" pointing to a scam site). Deleted the bot in BotFather (kills the token instantly), scrubbed the token everywhere, cleaned bash/nano history. Bonus: this solved a "mystery cron" I'd been ignoring for days, turned out to be that same alert script. Lesson: never hardcode tokens. Rotate + move to env files. Also enable 2FA + kill unknown sessions on the account.

2. Content cleanup. Purged a bunch of non-FR / studio content that slipped through my language filter. Watch out for broad LIKE '%XX%' deletes, one 2-letter pattern matched 1500+ legit videos. Always SELECT before you DELETE.

3. Import blocking. Added the offending studio/keywords to my exclusion list. Key lesson: I'd deleted the videos earlier but forgot to block the term at import → they came back every single cron run. Deleting without blocking is pointless.

4. Auto-categories (the big one). My import wasn't assigning categories at all, so everything defaulted to "Amateur". Built a keyword→category mapping and patched the import. Then discovered my category table had no unique constraint (autoincrement PK only) → INSERT IGNORE wasn't ignoring anything, created dupes. Cleaned 337 duplicate pairs, added the unique key, backfilled the whole catalog. One empty category went from 0 → 531 videos.

5. Category display bug. Turned out my category page reads from the tags table while the card badges read from the categories table, two parallel systems, never synced. Classic legacy mess. Quick-fixed by syncing the tag, proper refactor is on the backlog.
Backlog: second import script has the same 2 holes (no filter, no categories), unify the tags/categories architecture, review preview/teaser content, get remaining secrets out of code, fix cache rule ordering.
Two dev gotchas that cost me time: heredoc (cat << EOF) doesn't paste right in my SSH client, pastes the first line as text. Had to use nano. And in nano, after Ctrl+O you MUST hit Enter and see "Wrote X lines" or it silently doesn't save. Lost a couple edits to that.

Solid progress overall. The critical stuff (the security incident + import blocking) is stable. Rest is documented for next session.
 
Last edited:
We'll need to be patient. In the meantime, I'm going to add some CrakRevenue widgets to diversify the advertisers. :)
 
We'll need to be patient. In the meantime, I'm going to add some CrakRevenue widgets to diversify the advertisers. :)
Sounds interesting! I'm curious to see how your project turns out. Is this your first time owning an adult website, or do you already have experience in this niche?

Right now I'm working with Claude on my new CMS Version 2. It's much more optimized than Version 1 because I learned a lot from building the first one. With CMS Version 1, I managed to grow my network to around 45,000 daily visitors before my domains were suspended, which caused me to lose a large amount of traffic.

It was a big mistake buying unusual domain extensions. It was the first time something like that happened to me, but I'm still learning.
 
Very nice... By the way can I fap there if I don't understand French?
 
Sounds interesting! I'm curious to see how your project turns out. Is this your first time owning an adult website, or do you already have experience in this niche?
I know this field very well, having managed my own content (produced and directed) a few years ago. Back then, you needed a graphic designer, a developer, etc... Today, I see that you can do it all on your own. However, I still make a point of staying in close contact with someone who builds adult sites using these same AI tools.
 
Nice progress log. The token leak part is exactly why I hate quick cron scripts... they become production before you notice.

For SEO I’d watch the thin-page issue more than just indexed count tbh. 9k dynamic video pages with translated titles + embeds can get crawled and then dropped if there’s not enough unique FR text around them. Strong category pages, related searches, decent internal linking, maybe short auto descriptions can help a bit.

Also test CrakRevenue slowly against Exo. Too many widgets/pop stuff early can mess up UX before you even know what traffic is worth.
 
For SEO I’d watch the thin-page issue more than just indexed count tbh. 9k dynamic video pages with translated titles + embeds can get crawled and then dropped if there’s not enough unique FR text around them. Strong category pages, related searches, decent internal linking, maybe short auto descriptions can help a bit.
Good call, that's exactly what I'm seeing in GSC, a big chunk sitting in "Discovered/Crawled - currently not indexed", which lines up with the thin-page thing you're describing. Already started beefing up the category pages (proper structure, more internal linking) and I've got related-videos blocks on the video pages. Next step is auto-generating short unique FR descriptions per video since I already have the pipeline for it. Domain's still young too so I'm assuming part of it sorts itself out as it ages. Appreciate the input
 
Sounds interesting! I'm curious to see how your project turns out. Is this your first time owning an adult website, or do you already have experience in this niche?

Right now I'm working with Claude on my new CMS Version 2. It's much more optimized than Version 1 because I learned a lot from building the first one. With CMS Version 1, I managed to grow my network to around 45,000 daily visitors before my domains were suspended, which caused me to lose a large amount of traffic.

It was a big mistake buying unusual domain extensions. It was the first time something like that happened to me, but I'm still learning.
where do u gt traffic? Google?

Also are u into OF leaks?
 
For API tokens try using Cloudflare worker and keep rotating it there inside cloudflare. That way it's easier to edit it from inside clouldflare everytime
 
where do u gt traffic? Google?

Also are u into OF leaks?
My traffic comes from Google and my X account (formerly Twitter) as for OF leaks, I don't know what that means?
 
where do u gt traffic? Google?

Also are u into OF leaks?
Not sure if that question was for me, but just in case:

Most of my traffic comes from search engines. When I started, I used social platforms like X.com and Reddit, but all of my Reddit accounts eventually got banned, so now I'm almost entirely dependent on organic traffic.

If you have a good script and a solid strategy, it's actually possible to grow in the adult niche easily, but you need to be different than others. I tried using the same scripts that everyone else uses: WP-Script, KVS, AVS, etc, but the results were really bad. That's why I created my own CMS (Version 1). Now I'm building CMS Version 2, where I'm fixing all the issues I had in Version 1. This new script is designed specifically for managing and scaling a large number of websites.

I've been in the adult industry for a long time, although I took a break for a few years to focus on blogs. Now I'm back because the adult niche is much easier to monetize over the long term through revshare programs.

I think the biggest mistake most people make in this niche—including myself in the past—is focusing on growing one or two big websites and putting all their eggs in one basket. Instead, if you build websites that each make $3–$5 per day, and you have 100 or even 1,000 of them, your business becomes much safer and more stable in the long run.

That's exactly what my new CMS Version 2 is being built for: creating and managing websites at scale.

Not sure if I will start a journey about this
 
@zocx could you please contact me via private message?
 
[Progress update] 07/06/2026 + 07/10/2026 - more scripting, scheduled publishing, import overhaul (self-hosted FR tube)

Two more sessions worth of work. Picking up where I left off.

1. Eporner import was silently broken

Videos were importing fine (no errors, script completed normally) but never showing up in the "recent" feed. Root cause: the script was storing the *original publication date from the Eporner API* as upload_date instead of NOW(). So a video imported today would get a 2019 date and sink to the bottom of every chronological sort. Classic invisible bug no crash, no log, just wrong data. Fixed by forcing NOW() at insert. Then backfilled the existing 743 eporner videos with dates spread over the last 60 days using a ranked UPDATE JOIN. Lesson: a script that completes without errors isn't necessarily doing what you think.

2. Scheduled publishing for Bunny videos

Added a publish_at datetime field to the admin form. If you set a future date, the video is inserted in the DB but filtered out everywhere on the public site until that date/time hits homepage, categories, search, sitemap, and direct URL (returns 410 before publish time). Zero manual action needed at publish time, the WHERE upload_date <= NOW() filter handles it automatically. Also added a real-time server clock display in the admin form so I stop getting confused between UTC and local time (server runs UTC, I'm UTC+2 in summer).

3. Eporner import: exclusion filter + INSERT IGNORE

Second import script had two known holes I'd documented and kept ignoring. Finally patched both: added the same exclusion list I had on xvideos (studios, US actresses, webcam content, AI-tagged stuff), and fixed a bare INSERT INTO on the tags table that had been quietly time-bombing since I added a unique constraint a few sessions ago. Would have blown up as a 500 the next time a tag duplicate hit. Also removed "french webcam" from the search queries since I killed that category entirely.

4. Import rate limiting

Both scripts now cap at 2 new videos per run. Eporner runs at 3am, xvideos at 4am → 4 new videos/day total. Controlled trickle instead of bulk imports I then have to manually review and clean. The scripts stop immediately when the cap is hit, no waiting for the full query cycle to finish.

Ongoing backlog:
- ~300-400 xvideos with non-unique translated titles (e.g. "Porno amateur français" ×39 different videos) need unique descriptions to fix thin-content signals. GSC is showing a lot of "crawled, not indexed" which lines up with this.
- Tags vs categories architecture still unresolved (two parallel systems, categories page reads tags, card badges read categories).
- Secrets still hardcoded in too many places.
- Waiting on ad network approval for a cam widget.

Dev note for anyone doing the same: If a DELETE fails with `Lock wait timeout exceeded`, an import script is probably holding a table lock. `ps aux | grep import`, kill the PID, then retry. Also: for PHP files with many SQL queries to touch, generating the full corrected file and uploading via FTP is faster and safer than trying to do 5 nano edits in a row too many ways to accidentally merge lines or leave stray characters.
 
ZOCX - "if you build websites that each make $3–$5 per day, and you have 100 or even 1,000 of them, your business becomes much safer and more stable in the long run."

What structure of a website would you use to build a site that can earn $3-5/day? A blog, a freesite, a tube, etc? And would you have to update it? How would you monetize it, cams?
 
ZOCX - "if you build websites that each make $3–$5 per day, and you have 100 or even 1,000 of them, your business becomes much safer and more stable in the long run."

What structure of a website would you use to build a site that can earn $3-5/day? A blog, a freesite, a tube, etc? And would you have to update it? How would you monetize it, cams?
Most of them will be tube sites.

After I came back to the adult industry 1–2 years ago, following a long break from this niche, I built my own CMS (adult script). Using my script, I managed to reach a peak of 50,000 unique visitors per day across five websites. Unfortunately, because I used some bad domain (it.com worst domains) extensions, a few of my domains were suspended, and I lost a large portion of my traffic since some of the domains were down for about two weeks.

Even so, building this CMS helped me understand how Google works in the adult niche. It allowed me to test what works and what doesn't. My new CMS Version 2 is designed for quickly building unique websites, including tube sites, gallery sites, adult directories, and more. It's fully automated and built for creating websites at scale.

As for monetization, I'll mainly use ad networks like ExoClick and PopAds, while affiliate income will come from revshare programs Stripcash, Awempire, Chaturbate, etc. The goal is to maximize the revenue of each website. Some sites will naturally make more money than others, not only because of traffic but also because of the niche. For example, niches like amateur and MILF usually pay much better than others.

Based on my calculations, if a website reaches around 1,500 unique visitors per day (most websites can reach this amount in 3/6 months if they are build good), it can earn about $3 per day. Of course, it depends on the traffic's GEO—if it's Tier 1 traffic, earning $3–$5 per day is much easier. Another advantage is that while your websites are still small, they're mostly ignored by competitors and aren't heavily affected by Google's major updates, so you stay under the radar.
 
[Progress update] 07/14/2026 - SEO & monetization day (self-hosted FR tube)

Solid session today, several fronts closed.

1. Tag coverage from 0 to 74 clean tags across 5,272 videos.
My xvideos imports had no tags at all. Built a taxonomy-based tagger (whitelist of 74 allowed tags, two signal sources: original search query + French title regex) and assigned 12,098 tag/video associations in one shot. 277 videos (5%) had no exploitable signal and stayed untagged acceptable. The sitemap tag limit also went from 30 to 100, so Google now sees 74 substantial listing pages instead of 30. Every tag page has real content (minimum 5 videos, most have hundreds).

2. Duplicate titles - 199 videos disambiguated.
Had ~300 videos sharing generic titles like "Porno amateur français" (×39 different videos). Strategy: only touch recent imports (id > 15,000, not yet indexed) and leave older ones alone to protect existing rankings. New title format: {original title} ; {most specific tag} ({duration}), with #{id} appended on collision. Priority tag order goes from most specific (québécoise, beurette, casting, anal...) down to generic (amateur). Ran a dry-run first, checked the output, then applied.

3. Removed 262 sub-60-second clips.
Teasers and extracts under a minute were polluting the catalog. Bad for bounce rate, bad quality signal for Google. Cleaned them out in one DELETE.

4. Cam monetization - StripChat Revshare Lifetime live.
StripChat DOI got rejected (high sensitivity offer). Checked what was already approved on my account, Revshare Lifetime was green. 16.25% lifetime commission on all spending. Integrated the Live Cam Widget (6 French-speaking female models, transparent background) directly under the video player. Placement chosen for maximum intent visitor just watched, cam is right there.

5. Embed accessibility - false alarm confirmed.
Had a scare thinking XVideos embeds were being blocked (was seeing connection errors). Deployed a lightweight probe: each visitor's browser silently tests if it can reach XVideos/Eporner favicons and reports back via sendBeacon. After 48h and 47 French visitors: 100% XVideos pass, 100% Eporner pass. The error I was seeing came from Thai ISP filtering (I'm based in Thailand) not a real issue for French visitors. Removed the probe once confirmed.

Backlog for next session:
  • Tags are clickable links on video pages ✅ (confirmed) listing pages are usable
  • Watch for false positives in the title cleaning regex (^[A-Za-z]{1,3}\s+ might clip legitimate French beginnings like "Je", "Un")
  • Older duplicate titles (id ≤ 15,000) left untouched intentionally revisit once GSC confirms indexing status
  • CSP still in report-only frame-src only covers Bunny, need to add XVideos + Eporner before switching to enforced mode
 
Back
Top