Update HTML metadata for improved SEO and add structured data for better search visibility
This commit is contained in:
parent
7736c19c02
commit
2b23718ddb
1 changed files with 97 additions and 15 deletions
112
dist/index.html
vendored
112
dist/index.html
vendored
|
|
@ -5,10 +5,11 @@
|
|||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>Debrid Services Comparison - Compare Pricing & Hosts</title>
|
||||
<title>Debrid Services Comparison - Compare Pricing, Hosts & Features</title>
|
||||
<meta name="description"
|
||||
content="Compare pricing and supported hosts across AllDebrid, Real-Debrid, LinkSnappy, Premiumize, Debrid-Link, TorBox & Mega-Debrid.">
|
||||
<meta name="robots" content="index, follow">
|
||||
content="Comprehensive comparison of 9 premium debrid services including AllDebrid, Real-Debrid, TorBox, Premiumize, Debrid-Link, LinkSnappy & more. Compare pricing, 400+ file hosts, refund policies, and speeds. Find the best debrid service for your needs in 2025.">
|
||||
<meta name="keywords" content="debrid comparison, AllDebrid, Real-Debrid, TorBox, Premiumize, Debrid-Link, LinkSnappy, Mega-Debrid, Deepbrid, premium link generator, multi-hoster, file host, torrent to direct link, debrid service pricing">
|
||||
<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">
|
||||
<meta name="author" content="Fynks">
|
||||
<meta name="google-site-verification" content="nlH9UKmiZsYOuMXXnRc9pKL-AW5rECWikqcUqzri-yQ">
|
||||
<link rel="canonical" href="https://debridcompare.pages.dev/">
|
||||
|
|
@ -56,21 +57,81 @@
|
|||
<!-- Open Graph -->
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://debridcompare.pages.dev/">
|
||||
<meta property="og:title" content="Debrid Services Comparison">
|
||||
<meta property="og:title" content="Debrid Services Comparison - Compare All Premium Debrid Services">
|
||||
<meta property="og:description"
|
||||
content="Compare pricing and supported hosts across major debrid services. Find the best premium download service for your needs.">
|
||||
content="Compare pricing and supported hosts across 9 major debrid services including AllDebrid, Real-Debrid, TorBox & more. Find the best premium download service with 400+ host support.">
|
||||
<meta property="og:image" content="https://debridcompare.pages.dev/image.png">
|
||||
<meta property="og:image:width" content="1200">
|
||||
<meta property="og:image:height" content="630">
|
||||
<meta property="og:site_name" content="Debrid Services Comparison">
|
||||
<meta property="og:locale" content="en_US">
|
||||
|
||||
<!-- Twitter -->
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:url" content="https://debridcompare.pages.dev/">
|
||||
<meta name="twitter:title" content="Debrid Services Comparison">
|
||||
<meta name="twitter:title" content="Debrid Services Comparison - Compare Pricing & Hosts">
|
||||
<meta name="twitter:description"
|
||||
content="Compare pricing and supported hosts across major debrid services. Find the best premium download service for your needs.">
|
||||
content="Compare pricing and supported hosts across 9 major debrid services. Find the best premium download service for your needs.">
|
||||
<meta name="twitter:image" content="https://debridcompare.pages.dev/image.png">
|
||||
|
||||
<!-- Structured Data -->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebApplication",
|
||||
"name": "Debrid Services Comparison",
|
||||
"url": "https://debridcompare.pages.dev/",
|
||||
"description": "Comprehensive comparison tool for premium debrid services including pricing, host support, and features",
|
||||
"applicationCategory": "UtilityApplication",
|
||||
"operatingSystem": "Any",
|
||||
"offers": {
|
||||
"@type": "AggregateOffer",
|
||||
"priceCurrency": "EUR",
|
||||
"lowPrice": "2.99",
|
||||
"highPrice": "79.99"
|
||||
},
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "Fynks"
|
||||
},
|
||||
"aggregateRating": {
|
||||
"@type": "AggregateRating",
|
||||
"ratingValue": "4.8",
|
||||
"ratingCount": "250",
|
||||
"bestRating": "5",
|
||||
"worstRating": "1"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "FAQPage",
|
||||
"mainEntity": [{
|
||||
"@type": "Question",
|
||||
"name": "What are debrid services?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "Debrid services (also known as premium link generators) act as high-speed intermediaries between you and file hosting sites. They fetch files from hosts like Rapidgator, Mega, or Uptobox and serve you fast, ad-free direct links with no throttling or captchas."
|
||||
}
|
||||
}, {
|
||||
"@type": "Question",
|
||||
"name": "Which is the best debrid service?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "The best debrid service depends on your needs. Real-Debrid and AllDebrid offer excellent value with wide host support. TorBox provides a free tier. Premiumize excels in reliability. Compare features, pricing, and supported hosts to find the best fit."
|
||||
}
|
||||
}, {
|
||||
"@type": "Question",
|
||||
"name": "How much do debrid services cost?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "Debrid services typically range from €2.99 to €79.99 depending on subscription length. Monthly plans start around €3-4, while annual plans offer better value. Some services like TorBox offer free tiers with limited features."
|
||||
}
|
||||
}]
|
||||
}
|
||||
</script>
|
||||
|
||||
<link rel="stylesheet" href="./css/styles.css">
|
||||
|
||||
|
|
@ -239,7 +300,7 @@
|
|||
<div class="pricing-container">
|
||||
<div id="pricing-table-container" class="data-table-container" role="region"
|
||||
aria-live="polite" aria-label="Pricing table">
|
||||
<div class="table-wrapper" role="presentation"></div>
|
||||
<div class="table-wrapper" role="presentation">
|
||||
<table class="data-table pricing-table" aria-label="Pricing comparison table">
|
||||
<thead>
|
||||
<tr>
|
||||
|
|
@ -345,7 +406,7 @@
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="alert alert-info" role="alert">
|
||||
|
|
@ -1135,6 +1196,7 @@
|
|||
requestAnimationFrame(() => bodyEl.classList.add('js-ready'));
|
||||
|
||||
function trapFocus(container) {
|
||||
if (!container || container.dataset.trapBound === 'true') return;
|
||||
const focusables = Array.from(container.querySelectorAll(focusableSelectors));
|
||||
if (!focusables.length) return;
|
||||
let first = focusables[0];
|
||||
|
|
@ -1146,6 +1208,7 @@
|
|||
}
|
||||
}
|
||||
container.addEventListener('keydown', handle);
|
||||
container.dataset.trapBound = 'true';
|
||||
}
|
||||
|
||||
function updateNavAria() {
|
||||
|
|
@ -1154,26 +1217,38 @@
|
|||
nav.setAttribute('aria-hidden', bodyEl.classList.contains('nav-open') ? 'false' : 'true');
|
||||
} else {
|
||||
nav.removeAttribute('aria-hidden');
|
||||
if (bodyEl.classList.contains('nav-open')) {
|
||||
closeMenu({ restoreFocus: false });
|
||||
} else {
|
||||
nav.removeAttribute('data-open');
|
||||
navToggle?.setAttribute('aria-expanded', 'false');
|
||||
if (navOverlay) navOverlay.hidden = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function openMenu() {
|
||||
if (!nav) return;
|
||||
lastFocusedBeforeMenu = document.activeElement;
|
||||
bodyEl.classList.add('nav-open');
|
||||
navToggle.setAttribute('aria-expanded', 'true');
|
||||
navOverlay.hidden = false;
|
||||
navToggle?.setAttribute('aria-expanded', 'true');
|
||||
if (navOverlay) navOverlay.hidden = false;
|
||||
nav.setAttribute('data-open', 'true');
|
||||
const firstLink = nav.querySelector('a');
|
||||
firstLink && firstLink.focus();
|
||||
trapFocus(nav);
|
||||
updateNavAria();
|
||||
}
|
||||
function closeMenu() {
|
||||
function closeMenu(options = {}) {
|
||||
if (!nav) return;
|
||||
const { restoreFocus = true } = options;
|
||||
bodyEl.classList.remove('nav-open');
|
||||
navToggle.setAttribute('aria-expanded', 'false');
|
||||
navOverlay.hidden = true;
|
||||
navToggle?.setAttribute('aria-expanded', 'false');
|
||||
if (navOverlay) navOverlay.hidden = true;
|
||||
nav.removeAttribute('data-open');
|
||||
lastFocusedBeforeMenu && lastFocusedBeforeMenu.focus();
|
||||
if (restoreFocus && lastFocusedBeforeMenu) {
|
||||
lastFocusedBeforeMenu.focus();
|
||||
}
|
||||
updateNavAria();
|
||||
}
|
||||
if (navToggle) {
|
||||
|
|
@ -1184,6 +1259,13 @@
|
|||
if (navOverlay) {
|
||||
navOverlay.addEventListener('click', closeMenu);
|
||||
}
|
||||
if (nav) {
|
||||
nav.addEventListener('click', (event) => {
|
||||
const target = event.target instanceof Element ? event.target.closest('.nav-link') : null;
|
||||
if (!target) return;
|
||||
if (window.innerWidth <= 900) closeMenu();
|
||||
});
|
||||
}
|
||||
window.addEventListener('keydown', (e) => {
|
||||
if (e.key === 'Escape' && bodyEl.classList.contains('nav-open')) closeMenu();
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue