> ## Documentation Index
> Fetch the complete documentation index at: https://wiki.lumiweb.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# How to avoid getting your domain blocked

> Clean content, Cloudflare, a separate domain per project

Red warning screens and bans most often hit domains with cookie-cutter landing pages, copied content, and trigger words in the name. No one cleans that up for you — but you can cut the risk sharply before launch. Below is a practical checklist, from picking the name to designing the page.

<Note>
  At purchase the bot screens the name against Google Safe Browsing and scam/wallet blocklists and warns you if the domain is already flagged. The domain card shows a **«Блокировки: присутствуют/отсутствуют»** (Blocks: present/absent) line — that's the registrar-ban status, and you can re-check it with a button. The check doesn't fix your content: keeping the site clean is your job.
</Note>

## 1. Choosing a name

<AccordionGroup>
  <Accordion title="A name without alarming words" icon="signature">
    * The shorter and more neutral the name, the more trust it earns.
    * Don't put brands or trigger words in the domain: `verification`, `security`, `login`, `bank`, `google`, `paypal`, `coinbase`, `amazon`, and the like — anti-phishing bots ban those almost instantly.
    * Don't echo an already-banned domain in a new name (`example-app2.com` after `example-app.com` got blocked) — the link shows in the content, and the new domain follows the old one down.
  </Accordion>

  <Accordion title="A separate domain per project" icon="layer-group">
    Don't host several different projects on one domain, and don't reuse a domain that has already been blocked. One project, one domain: if something gets flagged, it won't drag the rest down with it. Prices start at **\$5/year**, so a dedicated domain per campaign is cheap insurance.
  </Accordion>

  <Accordion title="The subdomain trick" icon="sitemap">
    You can route traffic through a subdomain (`promo.example.com`) and keep an empty or neutral page on the root. Automated scanners take longer to find pages like these.
  </Accordion>

  <Accordion title="Private registrant data" icon="user-secret">
    For Lumi domains, WHOIS shows generated contact data — the bot registers under its own contact identity, so your real details never go public. There's no separate WHOIS-privacy toggle to flip: privacy is on by default.
  </Accordion>
</AccordionGroup>

## 2. Protecting traffic

<Steps>
  <Step title="Cloudflare and bots">
    Lumi domains have basic Cloudflare on from the start: bots are cut off, and a basic DDoS shield is active. Under heavy load, turn on **Under Attack** mode, plus **Bot Fight Mode** and WAF rules against data-center networks. SSL and protection settings are in [Cloudflare](/en/domains/cloudflare).
  </Step>

  <Step title="SSL on your own server">
    If your site runs on a VPS, install the certificate directly on the server instead of relying solely on a generic one from the CDN — that's true end-to-end encryption, and search engines and reputation systems treat it more favorably. Setup is in [SSL and Let's Encrypt](/en/vps/ssl).
  </Step>

  <Step title="Geo filter">
    Landing page aimed at a single country? Allow only that one and block the rest: Cloudflare → **Security Rules** → the *Block requests by geographical location* template. Fewer stray scanner hits from other regions.
  </Step>
</Steps>

<AccordionGroup>
  <Accordion title="Cloaking" icon="eye-slash">
    **Cloaking** means showing one page to the bots that inspect you and another to your target audience. There are ready-made services (Adspect, for example) — powerful, but expensive (on the order of \$500–1000/mo) and only worth it at large volumes.
  </Accordion>
</AccordionGroup>

## 3. Landing page design

The page will get blocked if it's a template or a copy of someone else's content, even on a clean domain. Make it unique:

<AccordionGroup>
  <Accordion title="Make the code unique" icon="code">
    Rename classes and ids to random ones, rearrange blocks, obfuscate the JS (with javascript-obfuscator, for example), and make images unique (strip metadata, change the size and quality). Afterward, check that everything still works.

    A trick to "glue" a word together from CSS so a simple parser can't read it:

    ```css theme={"system"}
    .promo::before { content: "Air"; }
    .promo::after  { content: "Drop"; }
    ```
  </Accordion>

  <Accordion title="Color randomization" icon="palette">
    A light visual variation — a small hue shift on each load. Add the script in `<head>`:

    ```html theme={"system"}
    <script src="/random-hue.js"></script>
    ```

    ```js theme={"system"}
    const angle = Math.floor(Math.random() * 10) + 1;
    document.documentElement.style.setProperty('filter', `hue-rotate(${angle}deg)`);
    ```
  </Accordion>

  <Accordion title="Don't infringe copyright" icon="copyright">
    Someone else's logo or materials used without permission are a common trigger for complaints and blocks. Remove or rework them.
  </Accordion>
</AccordionGroup>

<CardGroup cols={2}>
  <Card title="Already got a red warning?" icon="triangle-exclamation" href="/en/domains/google-cleanup">
    How to clear a Google and Cloudflare warning.
  </Card>

  <Card title="Cloudflare" icon="cloud" href="/en/domains/cloudflare">
    SSL, bot protection, redirects.
  </Card>
</CardGroup>
