The mistakes I made coding my websites with AI
A forgotten Disallow, canonicals pointing home, a noindex Google kept, made-up numbers, an API key in Git: the mistakes I found on my AI-coded websites.
Too long to read?
Send it to your agent.
It checks your site with my guide and tells you what to fix.
Check my website by following this guide: https://alexisamz.com/agents/audit-site.md Read it fully before acting, then ask me for my website address.

Coding with an AI is fast. But it doesn't check what you don't ask it to. Here are the mistakes I made or found on my own sites, what they cost, and how I catch them now.
On the Google side
The forgotten Disallow
One of my sites had been blocking every search engine since development: a Disallow: / line in robots.txt. The site worked perfectly. It was just invisible, and nothing warns you.
The canonical pointing to the homepage
The canonical tag tells Google "the real page is this one". On the salon's site, the booking and cancellation pages all pointed to the homepage. Google will never index them that way. AI often puts the same canonical everywhere when you don't tell it otherwise.
The "temporary" noindex
I had set 9 languages to noindex while I improved them. I removed it, but Google had kept the old version: 28 pages stayed blocked in its results. Removing a noindex isn't enough, you have to ask Google to come back (how I found out).
The site in 11 languages, translated too fast
It's tempting: AI translates everything in a minute. But Google sees near-duplicates and only keeps some of them. Better fewer languages, properly proofread.
Changing domains without page-by-page redirects
Redirecting the whole old site to the new homepage means losing every page. Each old address must lead to its equivalent.
On the design side
My portfolio was rated 35% "AI-made" by an online detector. The biggest culprit: emoji and arrows used instead of real icons, which these detectors weigh very heavily. After a pass of Impeccable and my own rules, 12%.
The sneakiest part is numbers. AI happily makes up a "2,000+ users" or a customer review to fill a section. On a real site, that's a lie. I now reread every number and every promise before publishing.
On the security side
The key pasted in the wrong place
I did it: pasted an API key into a chat. A key that goes through a chat, a versioned file or a message must be treated as exposed, and regenerated.
The key deleted but still in Git
Deleting a key from the code doesn't erase it from the Git history. If it was ever committed, anyone with access to the repository can read it. You have to change it.
The skill that checks before every release
For all this, I wrote amz-security-audit. It runs a full audit without breaking anything:
- it maps the project's entry points (pages, APIs, webhooks, scheduled jobs) and checks that authorization is enforced server side on every sensitive route;
- it screens dependencies with the project's audit tool (
npm auditor equivalent), separating what's really exploitable from what's only used at build time; - it looks for secrets in the code and across the whole Git history;
- on the live site, and only if it's yours, it runs read-only tests: security headers, cookies, private routes without login, CORS, sensitive files.
Two principles I built into it. It only marks an issue as "confirmed" if it actually reproduced it: a /.env that returns 200 is often just the homepage served by the router, so it checks the content before crying wolf. And it says what it couldn't check, instead of pretending everything is covered.
My checklist before every release
- robots.txt doesn't block anything important.
- Every important page has a self-referencing canonical and no
noindex. - The sitemap contains all those pages, and only them.
- No made-up number, review or feature in the copy.
- No key in the code or in the history, and the security audit has passed.
Last post in the series: my deals on paid SEO tools.
Website, photo shoot or video.
Let's talk.