Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when auditing a site for accidental noindex directives, investigating why important pages are not appearing in Google Search, or reviewing CMS settings that control indexing at the page or category level.
.claude/skills/thedaviddias-indexability/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 3% | 0% |
| case-01 | ✓→✗ | ▼ Worse | 23% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 22% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 38% | 0% |
A page blocked from indexing cannot appear in search results, regardless of its content quality or backlinks. Accidentally blocking key landing pages, product pages, or blog posts is one of the most impactful technical SEO errors — often silently losing significant organic traffic.
noindex, robots.txt, or X-Robots-Tag headersFor each important page (homepage, key landing pages, product pages, top blog posts): (1) Check <meta name='robots' content='...'> — does it contain noindex? (2) Check X-Robots-Tag HTTP response header — does it contain noindex? (3) Check robots.txt — is the URL's path blocked by a Disallow rule? (4) In Google Search Console, use URL Inspection to confirm the page is indexed. Flag any important page with any form of noindex or robots.txt block.
<meta name='robots' content='noindex'>:content='index, follow'.robots: { index: false } from the page's metadata.X-Robots-Tag: noindex HTTP header:vercel.json headers configuration.A page that cannot be crawled or indexed cannot rank, no matter how good its content or how many links point to it. Google explicitly states that noindex and robots.txt blocks prevent pages from appearing in search results. Accidental indexing blocks are among the most common causes of sudden, unexplained drops in organic search traffic.
Parse every page's HTML for <meta name='robots'> or <meta name='googlebot'> tags containing noindex. Check HTTP response headers for X-Robots-Tag with noindex. Cross-reference with robots.txt Disallow patterns. Flag any route in the application where noindex is set unconditionally (rather than conditionally for draft/private content).
For full implementation details, code examples, and framework-specific guidance, see references/rule.md.
Rule page: https://frontendchecklist.io/en/rules/seo/indexability
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→fail | 8,225 | 5,620 | -32% | 1 | 1 | 0% | 1,618 | 1,986 | +23% | 0 | 0 | — |
case-02 | pass→pass | 10,204 | 10,025 | -2% | 1 | 1 | 0% | 2,080 | 2,529 | +22% | 0 | 0 | — |
case-03 | pass→pass | 8,728 | 7,012 | -20% | 1 | 1 | 0% | 1,656 | 2,280 | +38% | 0 | 0 | — |
case-04 | pass→pass | 9,239 | 4,356 | -53% | 1 | 1 | 0% | 1,667 | 1,446 | -13% | 0 | 0 | — |
case-05 | pass→pass | 6,342 | 7,093 | +12% | 1 | 1 | 0% | 1,349 | 1,985 | +47% | 0 | 0 | — |
case-06 | fail→pass | 8,940 | 4,866 | -46% | 1 | 1 | 0% | 1,648 | 1,687 | +2% | 0 | 0 | — |
case-07 | pass→pass | 7,608 | 6,101 | -20% | 1 | 1 | 0% | 1,607 | 1,991 | +24% | 0 | 0 | — |
case-08 | pass→pass | 8,505 | 8,660 | +2% | 1 | 1 | 0% | 2,014 | 2,640 | +31% | 0 | 0 | — |
case-09 | pass→pass | 10,156 | 4,840 | -52% | 1 | 1 | 0% | 1,816 | 1,673 | -8% | 0 | 0 | — |
case-10 | pass→pass | 11,261 | 8,876 | -21% | 1 | 1 | 0% | 2,094 | 2,380 | +14% | 0 | 0 | — |
case-11 | pass→pass | 2,275 | 1,527 | -33% | 1 | 1 | 0% | 419 | 936 | +123% | 0 | 0 | — |
case-12 | pass→pass | 10,990 | 7,835 | -29% | 1 | 1 | 0% | 2,215 | 2,071 | -7% | 0 | 0 | — |
case-13 | pass→pass | 10,812 | 7,070 | -35% | 1 | 1 | 0% | 1,729 | 2,022 | +17% | 0 | 0 | — |
case-14 | pass→pass | 19,485 | 10,270 | -47% | 1 | 1 | 0% | 2,190 | 2,513 | +15% | 0 | 0 | — |
case-15 | pass→pass | 16,179 | 16,820 | +4% | 1 | 1 | 0% | 1,542 | 953 | -38% | 0 | 0 | — |
case-16 | pass→pass | 14,650 | 18,004 | +23% | 1 | 1 | 0% | 1,916 | 2,263 | +18% | 0 | 0 | — |
case-17 | pass→pass | 10,212 | 6,962 | -32% | 1 | 1 | 0% | 1,808 | 1,921 | +6% | 0 | 0 | — |
case-18 | pass→pass | 3,839 | 2,993 | -22% | 1 | 1 | 0% | 505 | 1,059 | +110% | 0 | 0 | — |
case-19 | fail→pass | 15,977 | 12,905 | -19% | 1 | 1 | 0% | 2,901 | 2,981 | +3% | 0 | 0 | — |
case-20 | pass→pass | 8,483 | 6,067 | -28% | 1 | 1 | 0% | 1,442 | 1,768 | +23% | 0 | 0 | — |
case-21 | pass→pass | 12,205 | 11,826 | -3% | 1 | 1 | 0% | 2,328 | 2,785 | +20% | 0 | 0 | — |
case-22 | pass→pass | 12,220 | 12,847 | +5% | 1 | 1 | 0% | 2,046 | 3,034 | +48% | 0 | 0 | — |
case-23 | pass→pass | 10,263 | 7,472 | -27% | 1 | 1 | 0% | 1,942 | 2,001 | +3% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +4 percentage points is the difference between those two pass rates over the 23 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.