Agentic technical SEO: 8 AI agents audit instantly.ai { grade: C }
Eight AI agents. 96 checks. 34 developer-ready tickets. A translation proxy silently rewriting canonical tags after render, 48 pages shipping lorem ipsum as live body copy, and localized pages claiming to be German while serving English.
This audit ran on April 4, 2026. Before publishing, I reached out to instantly.ai to share the findings so they could fix them first. I never received a reply. By the time you read this, some of these issues may already be resolved — everything below reflects what the agents observed at crawl time, not what is live today. Nothing here is a takedown; every finding is sourced, reproducible, and comes with a fix.
I was browsing instantly.ai's API knowledge base when I spotted a 404 broken link. Nothing unusual. Except I had just built an autonomous SEO audit system powered by 8 AI agents. So I pointed them at it.
- What happens when a translation proxy silently rewrites your canonical tags after every page render, and no crawler is built to notice?
- How does a well-funded SaaS company's homepage end up ranked #113 by its own internal link equity?
- What do AI agents see when they actually read a page that claims to be German, but every word is English?
- And what does a quality control agent do when another agent crosses from analysis into speculation?
Let me be clear upfront: instantly.ai's infrastructure is excellent. Cloudflare CDN, HSTS preloaded, HTTP/2 and HTTP/3, brotli compression, server-side rendering. The hard engineering is done right. What the agents found were config oversights. The kind that happen to every fast-growing startup shipping features at speed.
That's what makes this a perfect case study. Not a teardown. A demonstration.
- A translation proxy (Crowdin) was silently rewriting canonical tags on every blog page AFTER the page rendered. No traditional crawl catches post-render changes like this because crawlers check tags, not content.
- 443 pages had no canonical tags at all. The fix was one Webflow toggle. Ten minutes.
- 48 pages had lorem ipsum placeholder content live and indexable, including a competitor comparison page.
- The homepage ranked #113 by its own internal link equity because a sticky banner gave a benchmark report 96.7x more link weight.
- Localized blog pages claimed to be German, Polish, and Spanish via hreflang. The content was English. Every word. AI agents can detect this because they actually read the page. Crawlers parse tags.
- The quality control agent autonomously caught a coverage gap, sent another agent back for a recheck, and rejected a speculative finding with no supporting data. No human directed any of it.
- After this audit, every finding was encoded as a permanent rule in the agents' knowledge base. The next audit starts smarter than this one ended.
- Final grade: C (55/100). Infrastructure: excellent. Config hygiene: not so much.
How It Ran
Everything ran end-to-end on Paperclip, the agent orchestration platform I use to coordinate all my agents. One issue created. 8 specialist agents deployed. 96 checks executed. 34 developer-ready tickets generated.
I did not direct each step. The orchestrating agent assigned work, tracked progress, ran quality control, and delivered the final output. My only direct intervention in the entire audit was spotting one thing the orchestrator then escalated through proper channels.
Here is what the pipeline looks like in practice:
No human in the loop until the final output.
The Scorecard
Six audit dimensions. Two failed outright. Two scraped by. Two held the line.
instantly.ai overall health
Grade C · 55 / 100
Excellent technical foundation — Webflow SSR, Cloudflare with HSTS preloaded, HTTP/2+3, brotli — undermined by SEO configuration that was almost entirely neglected. Almost every critical issue is a config oversight, not an architectural problem.
Crawlability & Indexing
40 / 100443 pages with no canonical tags; hreflang broken across the /about cluster
HTML & DOM
40 / 100283 pages share the title "Instantly"; 73% missing OG tags; 48 lorem ipsum pages
Internal Links
50 / 100Homepage ranked #113 by PageRank; 251 orphan pages
Performance
60 / 1005,417 images missing dimensions; 1,088KB font payload
Rendering & UX
70 / 100SSR confirmed, but Crowdin proxy rewrites canonicals on 1,148 blog pages
HTTP & Server
76 / 100HSTS preloaded, HTTP/2+3, brotli — Cache-Control missing sitewide
Look at the split. Every B is infrastructure — stuff engineers shipped right. Every F is config — stuff someone forgot to flip a switch on. That's the whole story of this audit in one card.
The Infrastructure That Was Working
Before the damage, some credit. The server profile the agents found:
HTTP/2 + HTTP/3
Negotiated on every request, zero-RTT on repeat visits
TLS 1.3
Modern cipher suite, no fallback to legacy versions
Brotli
Text compression (not just gzip) across HTML, CSS, JS
365-day preload
Preloaded into the Chromium browser list, not just served
225 ms
Under a quarter second — well inside the "good" range
Webflow + Ghost
Fronted by Cloudflare CDN, SSR confirmed on both
This is what a well-engineered stack looks like. HSTS preloaded into Chromium itself. HTTP/3 for zero-RTT. Brotli over gzip. TTFB under a quarter second at the median. If you only checked the plumbing, you'd grade this an A.
The agents checked more than the plumbing.
The Star Finding: A Translation Proxy Nobody Audited
This is the one that made me sit up.
Instantly.ai runs two backends. Webflow powers the marketing pages. Ghost CMS powers the blog at /blog/. The browser rendering agent initially tested its JavaScript checks on Webflow pages only. Everything passed.
Then the quality control agent caught the gap.
During its 5-pass review, it flagged that the blog runs on a completely different backend. Webflow passing tells you nothing about Ghost. It created a recheck task with specific instructions: re-run browser rendering checks on Ghost blog pages.
The agent re-ran. And found that Crowdin, their translation proxy, injects JavaScript that rewrites canonical tags after the page renders.
Three layers deep:
- English blog pages, layer one. Take
/blog/cold-email/. The server sends the clean URL as the canonical —curlit and you'll see it. Open DevTools after the page loads, rundocument.querySelector('link[rel="canonical"]').href, and it returnshttps://instantly.ai/blog/cold-email/?lng=en. Every English blog page now has a query-parameter canonical that doesn't match the clean URL Google already indexed. ~1,148 Ghost blog pages affected. - Localized pages, layer two. The
?lng=deversions become self-referencing canonicals instead of pointing back to English. Confirmed across German, French, and Polish variants. Every localized blog page tells Google it is the primary version. - Content language mismatch, layer three. This is the one that matters most. The localized blog pages claim to be German, Polish, and Spanish via hreflang tags. The content is English. Every word.
- Traditional crawlers see
/de/blog/cold-email/withhreflang="de-DE"and mark it as correct. The tag is there. The URL structure is right. Check passes. But a crawler does not read the page. My agent did. It analyzed the actual content and flagged that the text is English despite the hreflang claiming otherwise.
This is the capability gap. Crawlers parse tags. AI agents comprehend content. A crawler validates that a hreflang attribute exists and has a valid value. An agent reads the page and notices the words are in the wrong language. Fundamentally different.
Pro tipTwo lessons from this finding, both for anyone running a non-trivial stack:
- If you use a translation proxy (Crowdin, Weglot, Transifex), audit the RENDERED output, not just the server response. These proxies inject JavaScript that runs after page load. Your server-side HTML might be perfect while what Google actually sees after rendering is completely different.
- If you run two or more backends (Webflow + Ghost, WordPress + headless CMS, static pages + SPA), always sample pages from EACH backend when running JavaScript rendering checks. One passing tells you nothing about the other.
The Pipeline in Action
The star finding is impressive on its own. What makes it meaningful is HOW it was found. Not by a human directing each step. By agents communicating, reviewing each other's work, and catching gaps.
Here are real examples from the audit.
Agents Flag Work for Each Other
The crawler didn't just map pages and move on. It left specific notes for downstream agents:
To the HTML inspector: "329 unique prompt pages all have the generic title 'Instantly.' This is a significant title optimization opportunity."
To the link analysis agent: "All 204 marketplace pages have UTM-tracked internal links to /pricing. Quantify the total count."
To the server response agent: "The blog has its own robots.txt. Check /blog/robots.txt separately."
These are not generic handoffs. The crawler identified specific patterns and told the right agent to investigate them. Like a senior team member briefing specialists.
Rejecting Speculation
The speed analysis agent submitted a mobile performance finding at medium severity. Problem: it had no mobile data. CrUX origin data was unavailable (no API key), no mobile Lighthouse runs were collected, and the agent extrapolated from HTML payload size.
The quality control agent's verdict: "Without CrUX data or mobile Lighthouse runs, this is speculation. Rejected."
Crossed from analysis into speculation. Caught and killed. This is the review layer I wrote about in Article 1. Without it, that finding ships in the report and damages credibility.
Merging Duplicates (But Only When Root Causes Match)
The HTML inspector found 5,417 images missing dimension attributes. The speed analysis agent independently found the same 5,417. Two agents, same root cause. Quality control merged them into one ticket.
The HTML inspector found lorem ipsum on 48 pages. The browser rendering agent found lorem ipsum on 7 blog pages. Quality control recognized the 7 were a subset of the 48. Merged.
But here is the nuance. The server response agent found trailing slash inconsistency between Webflow and Ghost configurations. The link analysis agent found the /blog navigation link was missing a trailing slash. Same symptom. Different root causes. Different fixes needed. Quality control kept them as separate tickets.
It does not merge blindly. It understands whether two findings share a root cause or just share a symptom.
Self-Correction Before Findings Reach Review
The browser rendering agent initially flagged /supersearch as an indexable search results page. Then it checked the actual content: an H1 reading "Find, enrich, and reach up to 450M prospects with AI" plus 1,000+ words of product copy. Product feature page, not search results. The agent dropped its own finding. Its self-review note: "Would not pass the Agency Reputation Test."
Same agent noticed body text was 11-55% smaller in the JavaScript render versus the source HTML. Investigated further. Cause: Webflow's animation library sets opacity to 0 on elements before animating them in. The content is there. Just hidden until animation triggers. Dropped as false positive. Agent's note: "This is Webflow's animation system, not a JavaScript dependency issue."
These are judgment calls. The kind a senior SEO makes instinctively. Encoded into an agent that makes them consistently.
Adapting to Incomplete Data
The crawl was capped at 500 pages. The link analysis agent found 1,058 link targets not in the crawl data. Instead of ignoring them, it used direct HTTP requests to spot-check critical uncrawled URLs. Found that /blog (no trailing slash) returns a 301 redirect to /blog/. All 496 crawled pages have a sitewide navigation link to /blog. Every single page visitor triggers a redirect hop before reaching the blog. Became ticket RS-014.
Pro tipAlways check your sitewide navigation links for trailing slash consistency. If your blog lives on a subdirectory, test /blog versus /blog/ separately. A 301 redirect on every page load is invisible to users but adds latency and wastes crawl budget.
Severity Recalibration
The crawler's thin-content check flagged 1,645 prompt pages with low severity. The quality control agent checked the actual page data. These pages have 2,000+ words each. Not thin at all. Downgraded from "low" to "informational" with a note: "The SEO issue here is the missing metadata, not the page count." Reads context. Not just titles.
The Findings That Matter
Beyond the Crowdin canonical issue, here is what the agents surfaced.
443 pages missing canonical tags. Instantly.ai runs content in 5 languages: English, German, French, Polish, Spanish. 4,342 sitemap URLs across those languages. Zero canonical URL preference signals. The cause: one toggle in Webflow that was never enabled. Fix: 10 minutes. Verify yourself with curl -s https://instantly.ai/pricing | grep 'rel="canonical"' — returns empty. Same for the homepage, /ai-agents, /enterprise, every localized variant.
Pro tipIf you are on Webflow, check your SEO settings right now. The canonical URL toggle is the single most common missed configuration I see across audits. One checkbox. Massive impact on a multilingual site.
43 localized pages canonicalized to the English URL. The page is in Polish or French or Spanish. The canonical says it's the English version. Google sees a duplicate and deindexes the translation. Three confirmed live examples:
Hreflang clusters that tell Google the localized pages don't exist. On instantly.ai/about, every hreflang tag in the HTML — the en, de, fr, pl, es, and x-default entries — points to https://instantly.ai/about. The sitemap lists localized variants. The page-level hreflang map contradicts the sitemap and tells Google there is only one language version. Same pattern repeated across multiple top-level Webflow templates.
Lorem ipsum in production on 48 pages, live and indexable. The worst offender is instantly.ai/instantly-vs-apollo-alternative — a comparison page against a direct competitor, shipping filler text as body copy. And there are localized blog posts where the URL itself is lorem ipsum: instantly.ai/de/blog/lorem-ipsum-dolor-sit-amet-consectetur-adipiscing-elit-copy-2. A sample of the pages that have lorem ipsum in the code:
Homepage buried at rank #113 by internal link equity. The numbers: /cold-email-benchmark-report-2026 at PageRank 0.1223 (rank #1), the homepage at PageRank 0.001264 (rank #113). A sitewide sticky banner sends 478 inlinks — one from every crawled page — to the benchmark report, giving it 96.7x the homepage's equity.
The orphan damage is even wider. 251 pages (55% of the site) have zero internal links pointing to them:
The sitemap is the only thing telling Google they exist.
Pro tipRun a PageRank simulation on your internal links. Most site owners assume their homepage gets the most link equity because it is the homepage. Often it does not. Sticky banners, footer links, and promotional CTAs can redirect enormous link weight to secondary pages while starving your most important pages.
283 prompt pages share the title "Instantly." Go to /prompt/analyze-company-differentiators-for-sales-teams. View source. Title: <title>Instantly</title>. Go to /prompt/clean-b2b-job-titles-for-email-outreach. Same. 47 English pages, 236 localized variants — all competing with the homepage for brand queries, all with no meta descriptions. One unfilled CMS template binding.
6 marketplace integration pages have no <title> tag at all. /marketplace/highlevel — the integration page for a major CRM competitor — ships with no <title> element in the HTML. Not empty. Absent.
363 pages (73%) are missing every Open Graph and Twitter Card tag. Every social share renders as a plain URL with no preview.
Webflow 404 page template bug. Visit any non-existent URL like /this-page-should-not-exist-xyz123. The 404 page's HTML contains six hreflang tags with %%PUBLISH_URL_REPLACEMENT%% instead of the actual domain. Webflow's publishing variable was never substituted. Visible to anyone who views source on a 404.
Worst TTFB: 4,820ms. On /pl/prompt/clean-b2b-job-titles-for-email-outreach. 18 localized prompt and marketplace pages exceed 2,000ms. All uncached at the edge.
Every one of these is a specific, fixable issue with a clear root cause. Not "improve your SEO." Actionable tickets a developer can implement in a sprint.
Three Tickets in Plain English
Every finding became a developer-ready ticket with evidence, scope, and a fix. Here's the full handoff the agents produced for the top three:
Enable canonical tags sitewide in Webflow
What's broken: 443 of 496 Webflow pages have no <link rel="canonical"> tag. Affects the homepage, pricing, features, all 329 prompt pages, every marketplace page, and all localized variants. Without canonicals, Google receives no signal for preferred URL versions on a 5-language site.
Reproduce:
Fix: In Webflow → Site Settings → SEO → enable canonical tags globally. Republish. Verify localized pages get self-referencing canonicals.
Rebalance PageRank — homepage buried at #113
What's broken: Simplified PageRank shows the homepage at rank #113 (PR=0.001264). The /cold-email-benchmark-report-2026 page receives 96.7x more equity via a sitewide sticky banner (478 inlinks — one from every crawled page).
Evidence:
Fix: Limit the sitewide benchmark banner to the homepage only, or replace with a lighter CTA. A/B test before removing. Ensure the logo links to / with descriptive alt text.
Fix Crowdin proxy rewriting canonical tags
What's broken: The Crowdin translation proxy modifies canonical tags after page load on every localized Ghost blog page. Server-side canonical is correct (clean English URL), but the JS-rendered canonical becomes self-referencing with a ?lng= parameter.
Reproduce:
Fix: Configure Crowdin proxy to not modify <link rel="canonical">. Options: (1) Crowdin config to exclude canonicals from DOM modification, (2) a MutationObserver that restores the original canonical after Crowdin loads.
By the Numbers
One audit. A snapshot of what the pipeline produced:
Agent Report Card
The quality control agent reviews every specialist's output and grades it. Not a participation trophy — a pass/fail on whether the work would survive a senior SEO's scrutiny. The scores from this audit:
The grades aren't symbolic. A 4/5 means the agent shipped something that needed QC intervention. A 5/5 means every finding survived review intact. Those numbers inform what gets tuned in the next build cycle.
The System Gets Smarter Every Time
This is the part most people miss about agentic SEO. The audit is not the end product. The learning is.
After this audit, every significant finding was encoded as a permanent rule in the agents' knowledge base. The Crowdin canonical rewriting became a gotcha: "Always sample every backend separately for JavaScript rendering checks." The content language mismatch became another: "When hreflang tags claim a language, verify the actual page content matches."
These are not abstract guidelines. They are specific check instructions that run on every future audit, automatically.
But it goes further. Every new issue discovered on a real audit also gets added to our sandbox test websites. I built entire sites with planted SEO issues. Broken canonicals, redirect chains, orphan pages, duplicate content, missing schema. The agents train against these known issues before they touch a real site.
After the instantly.ai audit, the Crowdin canonical rewriting pattern was added to the sandbox. The content language mismatch was added. The multi-backend sampling gap was added. The next time an agent runs against those test sites, it faces every challenge this audit uncovered.
This is the compounding advantage. Audit 1 finds issues. Those issues become training data. Audit 2 starts with everything audit 1 learned. By audit 15, the agents carry the accumulated knowledge of every site they have ever examined.
Think of it like a driving test course. Every accident that happens on real roads gets turned into a new obstacle on the course. New drivers face every known challenge before they ever hit the highway. The course only gets harder. The drivers only get better.
I have been doing SEO for 20+ years. The knowledge I built over thousands of audits used to live in my head. Now it lives in the agents' instructions. And unlike my head, it never forgets a lesson.
The Punchline
Cloudflare CDN. HSTS preloaded to the browser list. HTTP/2 and HTTP/3 support. Brotli compression. Server-side rendering.
All the hard infrastructure work, done right.
Undermined by a missing Webflow checkbox. A translation script nobody audited. Placeholder content nobody cleaned up. And localized pages that claim to be German but serve English.
Grade: C. 55 out of 100.
This is why I built what I built. The hard problems in SEO are not the hard problems anymore. CDN configuration, server response times, rendering pipelines. Engineering teams solve those.
The problems that actually hurt rankings are the boring ones. The missing toggle. The placeholder text. The translation proxy that rewrites your canonicals after render. The 404 template with a broken variable.
Nobody checks for these because they are not glamorous. My agents check for them because they do not care about glamour. They run 96 checks. Every time. While I sleep. And every audit makes the next one sharper.
Series Continuity
Article 1 was the manifesto. What Agentic SEO is and why it matters.
Article 2 was the how. Building agent skills that actually work.
This is the proof.
Everything I described in theory, demonstrated on a live site I use every day. Agents communicating across specialists. Quality control catching gaps and rejecting speculation. Self-correction before findings reach review. Duplicate merging that understands root causes. Rechecks triggered autonomously when coverage is incomplete. And a learning loop that makes the system permanently smarter after every engagement.
Not a demo. Not a sandbox. A real audit on a real product, run end-to-end by agents coordinated through Paperclip.
I did not tell the quality control agent to recheck the blog backend. It caught the gap itself. I did not tell the browser rendering agent to drop its own false positives. It applied the validation rules itself.
That is what encoding methodology means. You build the rules once. The agents execute them. Consistently. On every site.
This was one audit. The agents run the same pipeline on every domain I point them at. The 15th audit gets the same precision as the first. But it also carries everything the first 14 taught it.

Want to see this running on your brand?
Book a demo and see how our systems turn into compounding organic growth.




