If your side project lets strangers post anything, set up for spam and abuse before it arrives: write short content rules, limit what brand-new accounts can do, mark user links rel="ugc nofollow", keep new user pages out of search until they earn trust, put a report button on every piece of user content, and spend ten minutes a day hiding first and deciding later. Then cover the legal basics that apply to small sites too. None of this needs a trust and safety team, just a few defaults you set this week.
This is for people with a day job building a side project with user-generated content: comments, profiles, public pages, uploads, links, listings, a small directory or a pastebin-style tool. Laws, tools and docs linked here were checked in October 2026. The legal section is general information, not legal advice. The worked example near the end is made up and labelled.
What abuse shows up first when users can post?
Usually not the dramatic stuff. The first visitors to find your open form are bots and people who want a free link or a free page on your domain. Roughly in order:
Link and SEO spam: profiles, comments and listings that exist only to hold a link to a casino, an essay mill or a pill shop.
Scam and phishing pages: a public page or upload on your clean domain pretending to be a bank or a delivery company.
Copyright complaints: someone uploads a photo, ebook or font they do not own, and the owner emails you.
Harassment: posts aimed at a real person, sometimes with their address or phone number.
Adult content where you never meant to host it.
Illegal content: rare on a tiny site, but the case you must handle correctly the first time.
Google's spam policies describe user-generated spam as spammy content added by users through a channel meant for user content, often without the owner noticing. If it piles up, your own pages pay for it in search.
What should your content rules say?
Write them before you need them, in plain words, on one short page linked from the signup form and the footer. Google's guide to preventing user-generated spam suggests the same: publish a clear abuse policy and tell users about it, for example during sign-up. Six rules are enough for content moderation for small sites:
No spam, including posts that exist mainly to carry a link.
No scams, phishing, malware or pretending to be another company.
Only post things you have the right to share.
No harassment, threats or other people's private details.
No sexual content (or say exactly where it is allowed).
Nothing illegal. We remove it and report it where the law requires.
Add one sentence saying you can remove content or close accounts that break the rules or put the service at risk. The legal wording belongs in your terms, and writing terms of service as a solo founder covers acceptable use clauses properly. Do not paste a giant platform's policy you will never enforce.

How do you stop user-generated content spam before it gets posted?
Spam is cheap to send, so small amounts of friction work. Google notes that even an unusual challenge before posting may put spammers off. Pick what fits:
Limits for brand-new accounts. No links in the first few posts or the first day, a low posting rate, and links allowed only after a first post you approved. Spammers lose the one thing they came for.
Manual approval for first posts while volume is low. Slow, but very effective.
A honeypot field: a hidden input that humans never see and simple bots fill in. Reject anything that has it filled.
A bot check on signup and posting. Cloudflare Turnstile is free and usually invisible; hCaptcha is another option. Verify the token on the server. Setup and rate limits are covered in this small defense stack against fake signups, so I will not repeat them.
Upload limits: only the file types you need, a size cap, and never serve uploads as HTML from your main domain.
Short blocklists of domains and phrases you have already removed. When one spam profile appears, the next ten usually share a domain, a phrase or an IP range.
Also record form completion time, IP range, user agent and username at signup. Google suggests these signals as the start of a simple reputation system, and they make blocklists easier later.
Should user links use rel ugc, nofollow or neither?
Mark them. Google's page on qualifying outbound links recommends rel="ugc" for user-generated links such as comments and forum posts, and allows combined values, so rel="ugc nofollow" on every user link is a safe default. Google also says you might drop it for members with a long record of good contributions.
Spammers also want the page itself in search. Google's prevention guide suggests a noindex robots tag on content from new users without a reputation, allowing indexing later, and noindex by default for pages made for direct sharing rather than search. For most side projects: new profiles and pages stay noindex, and only pages you would be proud to rank get indexed.
How do you catch phishing and malware links?
Check every submitted URL against a list of known bad sites when it is posted and again later, because a link can turn bad after you approve it. Google's Safe Browsing API is for non-commercial use only. If your project makes money, Google points you to the Web Risk API; check its pricing before you rely on it.
If users get their own subdomains, like name.yourproduct.com, decide one more thing early. A phishing page on a user subdomain can hurt your main domain's reputation, and browsers may treat those subdomains as one site for cookies. The safer pattern is serving user content from a separate domain from your app and login. The Public Suffix List guidelines say owners of domains that give subdomains to mutually untrusting parties may want to be added to the list's private section. Read them first; it is not a quick toggle.
What does a report abuse button need?
Put a report abuse button on every post, profile, page and upload, and an address like abuse@yourdomain in the footer and on the rules page. Keep the form short:
The exact URL, prefilled from the page they were on.
A reason from your rules list, plus a free text box.
An optional email, so you can reply.
That lines up with what the EU's Digital Services Act expects a notice to contain: a reason, the exact location, contact details where needed and a good-faith statement. If someone leaves an email, send an automatic "we got it" and a short note once you decide.

How do you triage reports during a day job?
Give it ten minutes a day at a fixed time, usually lunch or right after work. If you set up alerts while monitoring your side project during your day job, send new reports to the "tonight" channel, not the "interrupt me now" one.
The rule that makes this work on a phone is hide first, decide later. Build two actions you can tap from your phone: hide this item, and limit this account (no new posts, no links). Hiding is reversible; deleting and banning are not. Review hidden items in the evening.
Keep a one-sheet abuse log: date, URL, type, reporter, action, evidence kept, reported onward to whom, status. After a month it shows which feature attracts abuse. The exception to "later" is a credible threat to a person or anything involving children. Those get handled the moment you see them, as in the table below.
Should you ban, limit or shadow-limit repeat offenders?
Start with limits. A limited account can log in and read but cannot post links or publish. That stops most spam without a fight and is easy to undo when you are wrong.
Some builders use shadow limits, where a spammer's posts look normal to them but nobody else sees them. Keep that for obvious spam operations. In the EU, the DSA requires hosting services to give affected users a clear statement of reasons when they remove or restrict content, with an exception for deceptive high-volume commercial content. Real users who broke a rule once deserve to know anyway. Keep outright bans for spam operations, scams and harassment, and offer an appeal: one email saying what was removed, which rule it broke and how to reply.
Which abuse types need which first action?
Type | First action | Keep evidence? | Report to whom |
|---|---|---|---|
Link or SEO spam | Hide, limit account, blocklist the domain | No, a log line is enough | Nobody |
Phishing or malware page | Hide at once, disable account | Yes: URL, time, account, screenshot | Optionally the impersonated company's abuse contact |
Copyright complaint | Remove or disable the item named in the notice | Yes: the notice and what you removed | Tell the uploader; follow your DMCA process |
Harassment or private details | Hide now, limit or ban the poster | Yes: URL, account, time | Police if there is a credible threat to someone's safety |
Unwanted adult content | Hide, limit account | No | Nobody, unless a minor may be involved |
Suspected child sexual abuse material | Disable access. Do not open, download or share it | Follow the hotline's guidance; never copy it yourself | NCMEC CyberTipline (US providers); IWF or your national INHOPE hotline elsewhere |
What are the legal basics for a small site with user content?
General information as of October 2026, not legal advice. As the project grows, talk to a lawyer where you live.
US copyright and the DMCA agent
For the DMCA safe harbor on content users post, US service providers must designate a DMCA agent: publish the agent's contact details on the site and register them in the Copyright Office DMCA designated agent directory. The Copyright Office FAQ lists a $6 fee per designation, and a designation expires after three years unless you renew it by amending or resubmitting. When a valid takedown notice arrives, act quickly on the named material. Section 230, the US law that generally stops you being treated as the publisher of what users post, does not cover intellectual property, so it does not replace this.
Child sexual abuse material
Never investigate it yourself: do not download it, forward it or keep a copy as evidence. Disable access and report. US providers must report apparent child sexual abuse material they learn about to the NCMEC CyberTipline. Elsewhere, the UK's Internet Watch Foundation and national hotlines in the INHOPE network take reports. Look up yours today.
EU Digital Services Act
If people in the EU use your service, the Digital Services Act applies in layers. Every hosting service, whatever its size, needs an easy electronic way to report illegal content, must confirm receipt when the reporter left contact details, and must tell them the decision. Article 19 exempts micro and small enterprises from the extra rules for online platforms unless they are designated very large. A one-person project is very likely micro, but notice and action still applies.
UK Online Safety Act
If UK users can post or share content on your service, it may be an in-scope user-to-user service whatever its size. Ofcom's page on illegal content duties says in-scope services must complete a written illegal content risk assessment within three months of launching and keep it up to date. Ofcom says a small service that reasonably finds its risk low is mainly expected to have clear terms, a way to report illegal content, quick takedown and a named person responsible. Use Ofcom's regulation checker rather than guessing.
Can abuse on your site get your whole project taken down?
Yes, and people forget this one. Your host, CDN or registrar receives abuse reports about phishing and malware on your domain, and some will suspend the whole account or domain if you do not respond. Publish your abuse address so reports reach you first, and answer provider abuse emails the same day. The wider risk of one provider freezing everything is covered in protecting an indie SaaS from account lockouts.
Search matters too. Google's spam policies say a significant volume of valid copyright removal requests about a site can lead it to demote other content from that site.
What separates a weak setup from a better one?
Weak | Better |
|---|---|
No rules until something goes wrong | Six plain rules linked at signup |
New accounts can post links right away | Links allowed after a first approved post |
User links are plain links |
|
Every new profile is indexed | New pages noindex until the user has a track record |
Reports reach you by luck | Report button on every item plus an abuse address |
Delete or ban from your phone in a hurry | Hide or limit first, decide in the evening |
No record of what you removed | One-sheet abuse log with evidence and outcome |
User pages on the same domain as login | User content on a separate domain |
A made-up example: Henrike and Larkpaste
This example is invented. Henrike is a hospital pharmacist who builds in the evenings. Her side project, Larkpaste, lets birdwatchers paste the day's sighting list, add photos and get a public page to share with their local group.
A week after a mention on a birding forum, new profiles appeared with bios full of essay-service links. Then a reader emailed: one Larkpaste page linked to a fake bank login. With no report button and no rules page, Henrike found out by luck.
That weekend she wrote six rules, added a report link to every page, and stopped new accounts posting links until she approved their first list. She added rel="ugc nofollow" to user links, noindex on new pages, a honeypot and Turnstile on signup, and URL checks on save and nightly. Her phone view got two buttons: hide page and limit account. She clears the queue at lunch and logs every action. Because some users are in the UK, she ran Ofcom's regulation checker and wrote her risk assessment down.
Spam did not stop. It stopped being visible.
When should you close signups, go invite-only or remove a feature?
Slow down when abuse grows faster than ten minutes a day can handle, or one feature fills most of your log. From lightest to heaviest:
Turn off the abused feature (often links or uploads) for new accounts only.
Approve every new account for a while.
Go invite-only, with existing users inviting new ones.
Remove the public part and keep the tool private, if public pages were never the point.
None of these is a failure. A small, clean product beats a bigger one you spend every evening cleaning.
A 7-day plan to get abuse under control
Day | Task | Done when |
|---|---|---|
1 | Write the rules page; link it from signup and the footer | Six rules are live |
2 | Add a report button to every user item and an abuse address | A test report reaches you |
3 | Add | View source on a new page confirms both |
4 | Add new-account limits, a honeypot and a bot check on signup | A fresh test account cannot post a link |
5 | Build phone-friendly hide and limit actions; start the abuse log | You hid and restored a test item from your phone |
6 | Check legal basics: DMCA agent, EU and UK duties, your child abuse hotline | Notes saved with links and dates |
7 | Check submitted URLs with Safe Browsing or Web Risk; plan a separate domain for user pages | Known bad URLs are rejected on save |
Timings are suggestions. If spam is already arriving, do days 1 to 3 first.
FAQ
Should I use AI to moderate user posts?
It can help sort a queue once you have one, but do not let it delete or ban on its own at first. Use it to flag, and keep hiding first.
What is the cheapest way to stop link spam?
Do not let brand-new accounts post links, and mark every user link rel="ugc nofollow". Most link spammers leave once the link is worth nothing.
Do I need a DMCA agent if I am not in the US?
The designated agent system is part of US law and protects against US copyright claims. If you have many US users or host files and images, ask a lawyer whether the small fee is worth it for you.
Keep the doors open, but watch them
Letting users post is what makes many side projects worth visiting. Set the defaults this week, give abuse ten minutes a day, and when your project is ready for more eyes, share it on SideHunt.