Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when applies to any site with more than 20 pages. Use when auditing site architecture, investigating why certain pages underperform in search, or after a site migration.
.claude/skills/thedaviddias-weak-internal-links/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -2% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 17% | 0% |
| case-04 | ✓→✓ | = Same ✓ | -16% | 0% |
Internal links are how search engines discover pages and how PageRank flows through a site — pages with few internal links are effectively demoted in the crawl priority queue.
Crawl the site and build an internal link graph. Identify pages that: (1) receive 0 dofollow internal links (orphan pages), or (2) receive only 1 dofollow internal link. Cross-reference with performance data from Google Search Console to identify underperforming important pages.
For pages with weak internal linking: identify 3–5 topically relevant pages on the site and add contextual internal links from those pages to the underlinked page. Use descriptive, keyword-relevant anchor text. Prioritize linking from high-authority pages (homepage, cornerstone content).
Explain how internal links distribute PageRank across a site, why orphan and weakly-linked pages are harder to discover and rank, and how to build a deliberate internal linking strategy based on content hierarchy.
Review metadata generation, rendered HTML, structured data, and response headers related to Weak Internal Links. Flag exact routes or templates where search-facing output violates the rule, and describe how to verify the final page output.
For full implementation details, code examples, and framework-specific guidance, see references/rule.md.
Rule page: https://frontendchecklist.io/en/rules/seo/weak-internal-links
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-02 | fail→pass | 11,585 | 10,646 | -8% | 1 | 1 | 0% | 1,964 | 2,110 | +7% | 0 | 0 | — |
case-03 | fail→pass | 12,315 | 9,000 | -27% | 1 | 1 | 0% | 1,975 | 1,936 | -2% | 0 | 0 | — |
case-01 | fail→fail | 20,821 | 17,172 | -18% | 1 | 1 | 0% | 3,847 | 3,910 | +2% | 0 | 0 | — |
case-04 | pass→pass | 10,915 | 6,951 | -36% | 1 | 1 | 0% | 1,939 | 1,622 | -16% | 0 | 0 | — |
case-05 | pass→pass | 14,151 | 12,865 | -9% | 1 | 1 | 0% | 2,579 | 2,693 | +4% | 0 | 0 | — |
case-06 | pass→pass | 10,433 | 8,517 | -18% | 1 | 1 | 0% | 1,686 | 1,798 | +7% | 0 | 0 | — |
case-07 | pass→pass | 12,730 | 9,687 | -24% | 1 | 1 | 0% | 1,995 | 1,905 | -5% | 0 | 0 | — |
case-08 | pass→pass | 12,893 | 9,281 | -28% | 1 | 1 | 0% | 2,011 | 1,845 | -8% | 0 | 0 | — |
case-09 | fail→pass | 12,153 | 12,804 | +5% | 1 | 1 | 0% | 2,017 | 2,443 | +21% | 0 | 0 | — |
case-10 | pass→pass | 12,859 | 14,189 | +10% | 1 | 1 | 0% | 2,236 | 2,649 | +18% | 0 | 0 | — |
case-11 | fail→pass | 14,360 | 13,291 | -7% | 1 | 1 | 0% | 2,413 | 2,825 | +17% | 0 | 0 | — |
case-12 | pass→pass | 15,279 | 9,415 | -38% | 1 | 1 | 0% | 2,735 | 2,140 | -22% | 0 | 0 | — |
case-13 | pass→pass | 10,233 | 6,437 | -37% | 1 | 1 | 0% | 1,603 | 1,488 | -7% | 0 | 0 | — |
case-14 | pass→pass | 11,384 | 10,900 | -4% | 1 | 1 | 0% | 1,775 | 2,282 | +29% | 0 | 0 | — |
case-15 | pass→pass | 11,222 | 8,455 | -25% | 1 | 1 | 0% | 1,782 | 1,745 | -2% | 0 | 0 | — |
case-16 | pass→pass | 12,087 | 10,569 | -13% | 1 | 1 | 0% | 1,763 | 2,095 | +19% | 0 | 0 | — |
case-17 | pass→pass | 16,313 | 15,592 | -4% | 1 | 1 | 0% | 2,740 | 2,779 | +1% | 0 | 0 | — |
case-18 | pass→pass | 15,331 | 12,106 | -21% | 1 | 1 | 0% | 2,480 | 2,328 | -6% | 0 | 0 | — |
case-19 | pass→pass | 13,059 | 7,468 | -43% | 1 | 1 | 0% | 2,144 | 1,542 | -28% | 0 | 0 | — |
case-20 | pass→pass | 9,757 | 9,922 | +2% | 1 | 1 | 0% | 1,703 | 2,229 | +31% | 0 | 0 | — |
case-21 | fail→fail | 16,611 | 10,230 | -38% | 1 | 1 | 0% | 2,969 | 2,323 | -22% | 0 | 0 | — |
case-22 | pass→pass | 10,844 | 9,177 | -15% | 1 | 1 | 0% | 2,274 | 2,166 | -5% | 0 | 0 | — |
case-23 | pass→pass | 8,496 | 7,220 | -15% | 1 | 1 | 0% | 1,677 | 1,721 | +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 +17 percentage points is the difference between those two pass rates over the 23 comparable cases.
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.