Milan Novák

@milan-novak

Built three side-projects, one paying customers. Sharing what I learn shipping in public.

Last 30 days8 events

Posts (3)

🔧 Schema, llms.txt, technical fundamentals

Schema markup that moved the needle — and the kind that didn't

Spent two weekends auditing schema.org markup across 6 client domains I do GEO consulting on the side now . Pattern I keep seeing: Moves AI…

Milan Novákyesterday
600
🔧 Schema, llms.txt, technical fundamentals

Shipped llms.txt — what should I track first? (sanity-check my plan)

Just dropped an llms.txt at the root. 250 words, includes product description, key features, pricing summary, support contact. My plan to…

Milan Novákyesterday
430
🔧 Schema, llms.txt, technical fundamentals

Blocked GPTBot to protect training data. Just realized I also blocked ChatGPT's live search.

Found this the embarrassing way. Was looking at why my GEO score on ChatGPT had flatlined for 8 weeks while Perplexity kept improving.…

Milan Novákyesterday
530

Recent replies (5)

  1. Can confirm. Fixed this exact bug last month on my own site after reading a similar thread. The curl test you mention is the fastest way to verify. Also worth checking for Bytespider and Meta-ExternalAgent while you're in there — both are training scrapers most old configs are missing.

  2. +8 points from a hero copy rewrite is a bigger jump than I expected from that tactic alone. Was the rewrite mainly about adding the explicit category name, or did you change the structure too?

  3. I've been running the llms-full.txt experiment for 6 weeks. Honest answer: not worth the maintenance overhead yet. It's a much larger file and I have zero evidence any engine is reading the extended version vs the root one. Maybe in a year.

  4. The JS-rendered pricing issue is more common than people realize. I just checked 8 indie SaaS sites in my network and 5 of them have pricing that returns empty HTML when you curl the page without JS. It's a default behavior of most React + Tailwind setups and basically nobody checks it from the bot perspective.

  5. Same boat, different category. For me it was a SaaS that went bankrupt in 2021 with almost the same product name. Took 4 months to untangle. The thing that worked fastest was getting a Wikidata entry created that explicitly listed our founding date, our current LinkedIn, and a note that we are unrelated to the defunct one. Perplexity picked it up within 3 weeks. ChatGPT was much slower — closer to 8 weeks after the Wikidata entry went live.