Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when applies to contact pages, business listing pages, headers/footers, and any page displaying a phone number or email address. Use when auditing contact UX or schema-marked LocalBusiness pages.
.claude/skills/thedaviddias-tel-mailto/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-11 | ✗→✓ | ▲ Improved | -3% | 0% |
| case-01 | ✓→✓ | = Same ✓ | 31% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 20% | 0% |
| case-19 | ✓→✓ | = Same ✓ | 7% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 51% | 0% |
On mobile devices, tel: and mailto: links trigger the native phone dialer and email client with one tap; plain-text contact info forces copy-paste and measurably reduces contact conversion rates.
<a href="tel:+15551234567"> for click-to-call on mobile devices<a href="mailto:contact@example.com"> for one-click email composetel: links: + followed by country code and number, no spaces or dashesScan the HTML for phone numbers (patterns like \+?[0-9\s\-().]{7,}) and email addresses ([\w.-]+@[\w.-]+\.[a-z]{2,}). Verify that phone numbers are wrapped in <a href="tel:..."> and emails in <a href="mailto:...">. Flag any that appear as plain text.
Wrap each phone number in an anchor tag: <a href="tel:+15551234567">+1 (555) 123-4567</a>. Wrap each email in: <a href="mailto:contact@example.com">contact@example.com</a>. Format tel: values using E.164 (+country]number]) without spaces.
Explain how tel: and mailto: URI schemes work in HTML, why E.164 format is required for international compatibility, and how these links improve mobile UX and contact conversion rates.
Review metadata generation, rendered HTML, structured data, and response headers related to Tel & Mailto 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/tel-mailto
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→pass | 4,180 | 2,911 | -30% | 1 | 1 | 0% | 802 | 1,050 | +31% | 0 | 0 | — |
case-02 | pass→pass | 7,644 | 6,600 | -14% | 1 | 1 | 0% | 1,435 | 1,726 | +20% | 0 | 0 | — |
case-19 | pass→pass | 13,390 | 12,583 | -6% | 1 | 1 | 0% | 2,392 | 2,571 | +7% | 0 | 0 | — |
case-03 | pass→pass | 3,001 | 2,319 | -23% | 1 | 1 | 0% | 561 | 849 | +51% | 0 | 0 | — |
case-04 | pass→pass | 6,049 | 5,058 | -16% | 1 | 1 | 0% | 1,141 | 1,474 | +29% | 0 | 0 | — |
case-05 | pass→pass | 12,163 | 7,144 | -41% | 1 | 1 | 0% | 2,087 | 1,765 | -15% | 0 | 0 | — |
case-06 | pass→pass | 7,676 | 5,287 | -31% | 1 | 1 | 0% | 1,178 | 1,236 | +5% | 0 | 0 | — |
case-07 | pass→pass | 15,507 | 8,475 | -45% | 1 | 1 | 0% | 3,155 | 2,333 | -26% | 0 | 0 | — |
case-08 | pass→pass | 13,527 | 7,589 | -44% | 1 | 1 | 0% | 2,392 | 1,933 | -19% | 0 | 0 | — |
case-09 | pass→pass | 8,046 | 2,949 | -63% | 1 | 1 | 0% | 1,598 | 1,056 | -34% | 0 | 0 | — |
case-10 | pass→pass | 1,936 | 2,521 | +30% | 1 | 1 | 0% | 352 | 885 | +151% | 0 | 0 | — |
case-11 | fail→pass | 13,773 | 10,685 | -22% | 1 | 1 | 0% | 2,461 | 2,380 | -3% | 0 | 0 | — |
case-12 | pass→pass | 3,304 | 3,729 | +13% | 1 | 1 | 0% | 606 | 1,160 | +91% | 0 | 0 | — |
case-13 | pass→pass | 7,951 | 5,469 | -31% | 1 | 1 | 0% | 1,514 | 1,495 | -1% | 0 | 0 | — |
case-14 | pass→pass | 2,788 | 2,911 | +4% | 1 | 1 | 0% | 445 | 931 | +109% | 0 | 0 | — |
case-15 | pass→pass | 4,441 | 3,783 | -15% | 1 | 1 | 0% | 801 | 1,117 | +39% | 0 | 0 | — |
case-16 | pass→pass | 11,697 | 9,883 | -16% | 1 | 1 | 0% | 2,213 | 2,203 | -0% | 0 | 0 | — |
case-17 | pass→pass | 15,835 | 8,565 | -46% | 1 | 1 | 0% | 2,772 | 2,018 | -27% | 0 | 0 | — |
case-18 | pass→pass | 16,157 | 10,581 | -35% | 1 | 1 | 0% | 2,866 | 2,495 | -13% | 0 | 0 | — |
case-20 | pass→pass | 10,364 | 8,024 | -23% | 1 | 1 | 0% | 1,917 | 1,914 | -0% | 0 | 0 | — |
case-21 | pass→pass | 6,604 | 4,779 | -28% | 1 | 1 | 0% | 1,318 | 1,345 | +2% | 0 | 0 | — |
case-22 | pass→pass | 7,137 | 5,350 | -25% | 1 | 1 | 0% | 1,344 | 1,362 | +1% | 0 | 0 | — |
case-23 | pass→pass | 2,670 | 2,628 | -2% | 1 | 1 | 0% | 440 | 956 | +117% | 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.
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.