Blog
Measured, dated, sourced.
Notes on AI search, SEO and site security for people who ship with an AI coding agent. Every number was measured on a real site on the date shown.
Playbook·8 Sept 2026 · 4 min
32 long titles, and what shortening them did
Google cut 32 of 63 titles mid-sentence. What the check measures, the pixel rule behind it, what happened 27 days after the rewrite, what it did not fix.
Read the playbook →
The number
32 / 63
page titles Google would truncate, on one site, before the 4 September rewrite
0 after; impressions rose, clicks did not, for a reason that was not the title
Playbook
schema_invalid44 → 0
pages with structured data Google would reject, before and after two fixes on one site
Structured data Google rejects: the SoftwareApplication case
44 pages carried schema Google's validator refuses. What the check tests, the SoftwareApplication rule that catches SaaS sites, and the two ways out.
8 Sept 2026 · 3 min
Playbook
robots_ai_blocked2
crawlers that decide whether ChatGPT can cite you: OAI-SearchBot and ChatGPT-User, not GPTBot
robots.txt and the AI crawlers, who reads what
GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended: which affect training, which decide if you appear in an AI answer, what to write.
8 Sept 2026 · 3 min
Guidesearch-console
4
numbers worth reading in Search Console before anything else, and one to ignore until you split it
Read Search Console in ten minutes: four numbers, one trap
For someone who never opened Search Console: the four numbers that matter, the one that misleads, and two filters that turn a report into a decision.
8 Sept 2026 · 3 min
Explainerllms-txt
0
AI search engines that have documented reading llms.txt, as of September 2026
llms.txt, what it does and what it does not do
No AI search engine has documented reading llms.txt. What the file is for anyway, what we put in ours, and the one mistake to avoid.
8 Sept 2026 · 3 min
Playbook
hreflang_missing16
language pages on one site, checked for self-reference, x-default and return links, 0 issues
hreflang, the three rules Google enforces
Self-reference, x-default and return links: why one missing link makes Google ignore the whole set, and the layout-level fix for SvelteKit or Next.js.
8 Sept 2026 · 3 min
Explainersearch-console
18% → 6%
site-wide CTR over 28 days while clicks rose from 111 to 145 and impressions from 601 to 2,632
Your CTR fell while traffic grew, and that is fine
CTR fell from 18% to 6% on a site whose clicks rose 31%. Why the average lies, the brand and non-brand split that tells the truth, what to watch instead.
8 Sept 2026 · 3 min
Playbook
index_coverage19 / 63
content pages Google crawled and left out of its index, on one site, 4 September 2026
Crawled, currently not indexed: what to do with 19 pages
Google read 19 of 63 pages and left them out. What the status means, the four causes to check in order, why resubmitting is the wrong first step.
8 Sept 2026 · 3 min
Guidemcp
1
command to connect; the authorization happens in the browser, no key is copied
Connect Moonleap to Claude Code, Cursor or Codex
One command per client, one browser authorization, no API key to paste. What the agent sees, the protocol it follows, how to check the loop closed.
8 Sept 2026 · 3 min
Playbook
app_routes_indexable7
app routes that returned 200 to an anonymous request and carried no noindex, on one site, 4 September 2026
Your app routes answer 200 to anyone, Google can index them
Seven dashboard and settings routes rendered for anonymous visitors. What the check detects, why it is SEO and security at once, the auth guard fix.
8 Sept 2026 · 3 min
Playbook
sitemap_noindex63 → 61
sitemap URLs after removing two noindex pages, 7 Sept 2026
Your sitemap says index, the page says noindex
What the sitemap_noindex check detects, why the contradiction costs you, the two-line fix for SvelteKit, Next.js and Astro, and how to verify it.
7 Sept 2026 · 4 min
Field noteai-overview
0
clicks from 35 impressions at position 1.8, in 28 days
Ranking #2 with zero clicks: the AI Overview effect
Six queries on one site rank between positions 1.8 and 9 with zero clicks in 28 days. The Search Console numbers, what sits above them, what we did.
7 Sept 2026 · 5 min
Field notesecurity
8
issues in one repository that had passed every external check, 4 of them high
The leaks an external scanner cannot see
A repo checkup found a live token in git history, two secrets in AI agent transcripts, an unverified webhook and nine functions open to anon. What changed.
7 Sept 2026 · 5 min