LaunchRanked

We pointed Claude Code at our site. Here's what it fixed.

We ran LaunchRanked's MCP checks on launchranked.com from Claude Code, fixed what they found in our Next.js code, and checked again. The real results.

Published 5 min readBy the LaunchRanked team

  • technical seo
  • ai search
  • llms.txt

This week we shipped LaunchRanked as an MCP server, so AI assistants like Claude, Cursor and Codex can run our SEO checks. Before telling anyone to point it at their site, we pointed it at ours.

The setup was the one we recommend: Claude Code working in the launchranked.com repository, calling LaunchRanked's MCP tools. It ran the checks on the live site, traced each finding to the code, fixed it, and checked again after the deploy.

Short answer: 14 checks on six pages found three real problems, all fixed in three files: a docs page title and description that were too long, 15 list items in our llms.txt without links, and one URL listed in two sitemaps. The re-check after deploy came back clean for all three. The rest we left alone on purpose, and we explain why below.

What we ran

One page per template, not every page: the home page, pricing, a blog post, the free tools hub, the MCP docs page and the launch page. The tools:

Check Pages What it looks at
audit_page all six Indexability, title, description, headings, canonical, Open Graph, JSON-LD, links
audit_ai_search home, blog post AI crawler access in robots.txt, llms.txt, markdown versions, date signals
check_structured_data home, blog post JSON-LD validity and rich-result requirements
check_llms_txt site The llms.txt file's structure and links
check_sitemap site Every sitemap listed in robots.txt
check_links home Broken and redirecting links
check_page_speed home PageSpeed Insights, mobile

Five of the six pages scored 100/100 on the page audit, and every AI crawler we check was allowed in robots.txt. That's expected on a site built by people who write about this. The interesting part is what was left.

The three fixes

1. A title and description that were too long

The MCP docs page scored 92/100, with two warnings:

Title tag: 68 characters: "LaunchRanked MCP server: ChatGPT, Claude, Cursor, Codex and OpenClaw" Fix: Google cuts titles at about 600px (roughly 60 characters). Put the important words first.

Meta description: 235 characters. Fix: Snippets are cut at about 155–160 characters. Tighten it.

The embarrassing detail: we had made that title longer the same morning, when we added two more assistants to it. Claude Code rewrote both in the page's metadata:

  • Title: "LaunchRanked MCP server: ChatGPT, Claude, Cursor, Codex and OpenClaw" (68) became "LaunchRanked SEO MCP server for ChatGPT, Claude and Cursor" (58).
  • Description: 235 characters became 150, keeping every assistant's name.

Our llms.txt is generated from the site's page registry, and most of it was fine. Two hand-written sections, "Key facts" and "Pricing", were plain bullets:

- Launch platform: free product launches with a permanent, SEO-ready product page and a weekly leaderboard.

The llms.txt format expects each list item to be a link followed by notes, - [name](url): notes, so an agent can follow it. The checker flagged eight items and stopped listing there; in total, 15 bullets across the two sections had no link. The fix gives each one a page:

- [Launch platform](https://launchranked.com/launch): free product launches with a permanent, SEO-ready product page and a weekly leaderboard.

One decision in that fix is worth copying. Some plans' buttons in our code point into the signed-in app, which an AI agent can't open. So instead of reusing those links, Claude Code mapped every plan to its public page: launch plans to /launch, directory plans to /directory-submission, and so on.

3. One URL in two sitemaps

check_sitemap read our three sitemaps (1,199 unique URLs) and found one warning:

Duplicate URL (warning, 1 URLs) Fix: List each URL once across all your sitemaps.

The cause was structural. Our main sitemap lists every page in the site's page registry, and the directories hub is in that registry. The directories sitemap also lists the hub, with a last-modified date taken from the directory data, which is the better date. So the main sitemap now leaves that URL out:

const IN_OTHER_SITEMAPS = new Set(["/directories"]);

export default function sitemap(): MetadataRoute.Sitemap {
  return [...allPages(), ...blogPageEntries()].filter((p) => !IN_OTHER_SITEMAPS.has(p.path)).map((p) => ({

The re-check after deploy

We deployed, then ran the same checks on the same URLs:

Check Before After
Page audit, MCP docs 92/100, 2 warnings 100/100
llms.txt 8 warnings shown 0 warnings
Sitemaps 1 warning, sitemap.xml 704 URLs 0 warnings, 703 URLs
PageSpeed, mobile 94, LCP 2.7 s 92, LCP 2.4 s

The PageSpeed row is a reminder that lab scores move between runs. We changed nothing about performance, and the score dropped while the largest contentful paint got faster.

The whole loop, including one deploy, took under ten minutes.

What we left alone, and why

A checker's job is to list everything. Not everything it lists needs a fix.

  • "Missing aggregateRating or review" on our SoftwareApplication markup. Google's software app rich result wants ratings or reviews. We don't have genuine ones to mark up, and inventing them breaks Google's structured data rules. We'd rather go without the rich result.
  • An FAQPage note. The checker notes that Google stopped showing FAQ rich results in May 2026. The markup is still valid and harmless, so it stays.
  • A "broken" footer link to rareui.com. Our link checker got a 403, and a headless browser got a "Vercel Security Checkpoint" page. That's a site blocking automated traffic, not a dead link.
  • No llms-full.txt and no markdown versions of pages. Both are optional, and the checker lists them as notes, not warnings. They're the next thing we'd add for AI agents, since our blog is already written in markdown.
  • PageSpeed opportunities. Render-blocking requests (an estimated 500 ms) and image delivery (about 119 KiB) are real, but they're a performance pass of their own, not a quick fix.

This is also where a person should stay in the loop. Our Claude Code plugin's audit command tells the agent not to change anything that can remove pages from search, such as noindex tags, robots.txt Disallow rules or canonicals, and not to rewrite page copy. It lists those for you to decide instead.

Run it on your own site

You need a free LaunchRanked account and an assistant that supports MCP. The setup guide covers each one. In short:

  • Claude Code: install the plugin with /plugin marketplace add https://launchranked.com/claude/marketplace.json, then /plugin install launchranked@launchranked, and run /launchranked:seo-audit.
  • Cursor: use the "Add LaunchRanked to Cursor" link in the guide, then ask the agent to audit your production URL.
  • Codex: codex mcp add launchranked --url https://launchranked.com/mcp.

Then ask for what we asked for: audit one URL per template, fix the causes in the code, and check again after you deploy.

Frequently asked questions

Can an AI coding agent do technical SEO on its own?

It can do the mechanical part well: run checks on the live site, trace each finding to the file that causes it, and fix titles, descriptions, sitemaps, llms.txt or structured data. Decisions that can remove pages from search, like noindex, robots.txt Disallow rules or canonical changes, and rewriting page copy should stay with a person.

Why run the checks on the live site instead of localhost?

Search engines and AI crawlers only ever see production, and a hosted checker can't reach your localhost. Verify local changes with a build and the rendered HTML, then deploy and run the same checks on the same URLs.

Do I need a paid LaunchRanked plan to do this?

No. The checks work with a free LaunchRanked account, with the same per-minute fair-use limits as the free tools on the site. Domain Rating lookups have a daily limit, and Autopilot adds AI visibility results for your own sites.

  • 5 min read

    What is llms.txt, and do you need one?

    llms.txt is a markdown file that summarizes your site for AI agents. What the spec says, who reads it, what Google says, and whether it's worth an hour.