Shareable content without share buttons forces users to copy URLs manually from the address bar, which collapses sharing conversion rates — most readers who would have posted to X, LinkedIn, or a group chat simply don't. This kills organic distribution, which is the primary growth channel for blog posts, case studies, and product pages. Missing share affordances also break the user-experience expectation set by every mainstream content site and directly reduce referral traffic tracked in attribution analytics.
High because missing share buttons directly suppress organic distribution and referral traffic on content designed to be shared.
Add a share component to your content page template (for example src/components/share-buttons.tsx) that prefers the Web Share API on mobile and falls back to a copy-link button on desktop. Render it on every blog post, article, and product detail page. Minimal implementation:
async function handleShare(url: string, title: string) {
if (navigator.share) {
await navigator.share({ title, url });
} else {
await navigator.clipboard.writeText(url);
}
}
Also include explicit Twitter/X and LinkedIn intent links for users on desktop browsers that don't expose navigator.share.
ID: marketing-social-sharing.share-infrastructure.share-buttons-present
Severity: high
What to look for: Check for social share components or buttons on pages that contain shareable content — blog posts, articles, product pages, case studies. Look for: share button components in the component library, navigator.share() Web Share API usage, Twitter/X share link intents, LinkedIn/Facebook share URLs in link href attributes, or third-party share widget imports (e.g., AddThis, ShareThis). Also check whether the project uses canonical "Copy link" functionality. Count every page type (homepage, blog posts, product pages, landing pages) and enumerate which include social share buttons vs. which lack them.
Pass criteria: Shareable content pages (blog posts, articles, product detail pages, or similar) have at least one explicit share mechanism — a share button, Web Share API call, or social share link. At least 1 implementation must be confirmed.
Fail criteria: The project contains content pages that are meant to be shared (blog posts, articles, marketing pages) but has no social share buttons or Web Share API integration anywhere.
Skip (N/A) when: The project has no shareable content (utility tools, internal dashboards, API-only projects, authentication-gated tools with no public content). Signal: no blog route, no article route, no public content pages.
Detail on fail: "Blog post pages and marketing pages have no share buttons or Web Share API integration — users must manually copy and paste URLs to share content"
Remediation: Share buttons remove friction from the sharing process. For a modern implementation, use the Web Share API where available with a fallback:
async function handleShare(url: string, title: string) {
if (navigator.share) {
await navigator.share({ title, url })
} else {
await navigator.clipboard.writeText(url)
// Show "Link copied" toast
}
}
For platform-specific share buttons, construct the URLs as described in the share-url-encoding check. At minimum, include Twitter/X and LinkedIn for B2B or developer-focused content.