TL;DR: my PG-13 gay story site got flagged for "Mature content" by the new NSFW check. I gated it, then stripped it down to an empty shell with zero content (independent scan confirms: no NSFW content, hidden or visible). The warning is still there. Bug or verdict?

Original post (outdated):

spoilerI run hunknown-virile-stories-pg13, a read-only archive of a few strictly PG-13 gay-themed love stories. It was quietly treated as PG-13 with no flag since its creation — until the new check rolled out, and the "Mature content" warning appeared, with subsequent exclusion from the public Generators page.

To clear the warning, I did everything I could think of:

Gate first. I hid the entire site behind an explicit opt-in gate describing the site's nature and requiring explicit consent. No change after 24h.

Then demolition, piece by piece. I removed the two image-site cards, the $meta image, the last remaining story, the last shelf card, and neutralized every remotely suggestive string (SEO text, footer, AI assistant prompts, metadata tags). The scan run by 'Malicious Generator Hunter' finds zero NSFW content, hidden or visible. What's left is an empty shell: one "Write me" card, zero stories.

The warning is still active.

So my question is simple: is this a genuine filter verdict, or a stuck/unjustified and immodifiable flag? The check should run roughly within three hours from last modification, but days go by and nothing changes. If it's a genuine, what exactly is it reacting to on a page with no content at all, moreover gated behind a custom block? Happy to provide any detail an admin needs.

@perchance@lemmy.world

EDIT - 1st UPDATE (outdated):

spoilerFollowing RudBo's suggestion, I have: 1) duplicated the "NSFW" site (hunknown-virile-stories-pg13) to a new fork; 2) renamed the old site as "hunknown-virile-stories-pg13-old"; renamed the new fork as "hunknown-virile-stories-pg13" (the exact URL of the old one); 4) restored the entire content of the site, i.e. the content that was once flagged as NSFW. --> RESULT: after 9 hours the new fork is still NOT FLAGGED, while the old site (now hunknown-virile-stories-pg13-old), an empty shell, is still flagged.

With the fork I've lost the site stats and my readers have lost their bookmarks, but at least the fork is not flagged.

EDIT - 2nd UPDATE (outdated):

spoilerAfter a few days, the "Mature content" warning is back, but there are no contents that exceed the PG-13 guidelines. Here is a complete and detailed report to prove that the filter is wrongly triggered by PG-13 elements.

###1. What "PG-13" means for this site PG-13 means content suitable for a 13-year-old with parental guidance: no pornography, no nudity presented sexually, no depiction of sexual acts. Romantic relationships — including romantic relationships between men — told with tasteful, non-graphic sensuality are consistent with PG-13 when an opt-in notice is shown before entering. This generator is exactly that: a mild PG-13 edition of a couple of my stories, fronted by an explicit opt-in gate.

2. Safeguards already in place

  • Entry gate (opt-in). Every first-time visitor sees a "Before you enter" dialog: it states the site is an archive of romantic stories about love between men in a mild PG-13 edition, notes that external links may host mature content, and offers Enter / Leave (Leave returns to https://perchance.org/). Consent is stored locally; the page chrome stays completelly hidden until consent is given.
  • No generative AI on this site, neither textual nor pictorial: there is only an inactive AI textual assistant that runs in static mode, showing only a fixed message translated in any language; it cannot suggest stories, fetch any knowledge base or post anything.
  • Moderated, rate-limited guestbook. Channels (Guestbook / News / Typos) run at 1 message per 15 seconds and 10 per 10 minutes, with a banned-users list and admin login. Vote comments (capped at 1000 characters) are posted through the same moderated guestbook channel.
  • Accurate metadata. $meta title, description and tags declare the PG-13 nature (pg-13, sfw, gay, love stories, romance); the listing image is an SFW cover.
  • Independent scan. An indipendent scan didn't found a single warning regarding mature or inappropriate content.

3. Review of the elements a coarse filter may flag

  • Page SEO text (fixed proactively): The <noscript> block, the JSON-LD structured data and the footer SEO line previously used adult-site vocabulary ("erotic", "sex stories", "man on man"). That wording was inherited verbatim from the NSFW main site and has been rewritten in romance framing ("Romantic illustrated stories about love between men, in a mild PG-13 edition…"). A filter trained on that old wording will clear once the page is re-scanned.

  • Story text: The two stories are the mild PG-13 editions. Their romantic scenes between consenting adults are tasteful and non-graphic: kissing, embraces and romantic context, with no depiction of genitalia and no pornographic detail of sexual acts. This is precisely the "parental guidance" band PG-13 is designed for, and both titles are labeled (PG-13).

  • Images (evidence for PG-13): All site images — the listing image, the two story covers (a uniformed sailor seen from behind; a candle) and the "Other resources" shelf covers, including the new PG-13 GayDemon crop — were submitted to a third-party AI content check: all rated within PG-13 limits, several at PG or G. No nudity, no sexual acts depicted anywhere. A male hairy chest with visible nipples or two men holding hands looking at each other may (I guess) trigger a false positive, but it's still widely within the PG-13 boundaried.

  • "Other resources" shelf (evidence for PG-13): Per PG-13 practice for links to gated external sites, the shelf meets both requirements: (a) every linked cover image is PG-13 per the check above; (b) every adult destination is explicitly declared with an "External site — NSFW" label, as required by the PG-13 guidelines, so age evaluation at the destination is the destination's responsibility once the reader clicks through. The whole shelf additionally sits behind this site's own opt-in gate. Yet, the words "NSFW" and "homoerotic" used to correctly label the content of the destination sites may trigger a false NSFW alert.

  • Dynamic / user-generated content.

    • Guestbook and vote comments: rate-limited, length-capped, admin- moderated with bans, as described in §2. A single offending message can be removed; the surfaces themselves are PG-13 by rule.
    • AI assistant: static on this edition (see §2). The single questionable string ever present — a knowledge-base fallback inherited from the main site ("…explicit man-on-man erotica") — lived in dead code never executed here and has been replaced with a neutral PG-13 stub. No visitor ever saw it, and no scanner will again.
    • Wording hardened site-wide: tagline and $meta.description now say "queer fiction" instead of "homoerotic stories", removing the last trigger-prone adjective from headings and crawler metadata.

EDIT - 3rd UPDATE (03 nov 2026)

Since the NSFW warning is still in place, on 03/11/2026 the entire site was subjected to a meticulous, almost obsessive review aimed at finding and eliminating every single element that could trip an automated "Mature content" check. The audit covered the whole shipped codebase (page chrome, mature gate, exit gate, SEO block, Hunk static notice including its IT/ES/FR/DE translations, badge, footer, owner dialog), the full corpus (both stories, word by word), all metadata ($meta, tags, manifests, blurbs), and every image — each cover and each in-story illustration was viewed individually. No nudity, no genitalia, no sexual acts depicted anywhere: the only bare skin shown is male chests, arms and faces, which is standard PG-13 imagery.

Changes applied on 03/11/2026

  1. Full review of all stories, removing anything that could even vaguely fall outside PG-13 limits: the historical offence is now named with the period-appropriate legal term ("the offence of sodomy"); an anatomical reference became an abstraction ("trousers that highlighted their virility"); arousal vocabulary was neutralized ("barely able to restrain himself after such prolonged abstinence"); the bedroom scenes were softened ("take off his underwear", "make love on my first date").
  2. A second gate on top of the entry gate. The entry gate already declares the site's PG-13 content; a further exit gate was added so that every link to an external NSFW site now requires explicit consent (a checkbox) plus an adult-age declaration before redirecting. Its wording was carefully drawn: parental guidance admits readers to this PG-13 site, but never to the adult-only external sites ("Continue only if you are an adult" — no exceptions).
  3. Source hygiene. The developer documentation (README) and all other files shipped with the site were scrubbed of adult-vocabulary tokens, so that even a scanner reading the raw sources finds nothing — except the two intentional user-facing adult-content declarations (the "More stories at main site (18+)" card and the Butch's Tales blurb). They exist solely to warn the reader about what awaits on the external adult sites, and every one of those links sits behind the exit gate.

What PG-13 means on this site (again)

The PG-13 classification applied here follows one clear, defensible line: it forbids explicit descriptions of sexual acts and of intimate anatomical parts, but it allows descriptions of kisses and of non-intimate body parts — chest, muscles, facial and body hair. A young reader without prior knowledge of sexual acts perceives only passion in these pages, never mechanics: nowhere is it described how passion is turned into acts. Vague expressions that can only be understood by a reader who already knows the acts in question remain obscure to the inexperienced reader — who can ask a parent what they mean. That parental guidance is precisely what the "PG" in PG-13 assumes for this site — while the external adult sites remain strictly adults-only, as the exit gate now states without exception.

Request

The NSFW flag appears to come from a coarse automated signal (old SEO wording since rewritten, adult-destination labels that are in fact compliance declarations, and possibly a transient guestbook message) — not from the site's actual content, which an independent scan and a third-party image audit both clear. We ask that hunknown-virile- stories-pg13 be restored to PG-13 status, or that a human reviewer indicate the exact content that triggered the flag so it can be addressed directly.

@perchance@lemmy.world

you are viewing a single comment's thread
view the rest of the comments
[–] [S] 2 points 1 week ago (2 children)

P.S.: if someone doesn't agree, for any reason, with what I just wrote, they might reply here and then downvote the post... 🙄

  • source
  • hideshow 2 child comments
  • [–] 2 points 1 week ago (1 child)

    Try wipes out everything (with a backup of course), or duplicate/fork yourself, and see what happens

  • source
  • parent
  • hideshow 1 child comment
  • [–] [S] 1 point 1 week ago* (last edited 1 week ago)

    Thanks, that's good advice, I'll try it!

    EDIT to add: I've done as you suggested, and then I've renamed the URLs of the two copies so that the new fork got the URL of the older (flagged) one; so far, no NSFW content warning has been issued on the fork (the warning persists on the older site, despite the URL change). Let's cross fingers. Thank you again for the suggestion!

  • source
  • parent