Showing source for: https://addictiontreatments101.com/article.html?slug=addiction-treatment-center-coldsprings
Duration: 0.758134s
Server: cloudflare
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Addiction recovery and treatment article from AddictionTreatments101.">
<meta name="theme-color" content="#0e65a8">
<title>Article | AddictionTreatments101</title>
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.webp">
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.webp">
<link rel="stylesheet" href="assets/styles.css?v=20260826restore">
<style id="footer-text-placement-at101-fix">
/* Footer text placement ref: addictiontreatments101.com */
@media (max-width:991.98px){
.site-footer,
footer.footer,
.footer:not(.copyright){
padding:44px 20px 20px!important;
text-align:left!important;
box-sizing:border-box!important;
}
.site-footer .page-width,
.site-footer .page-width.footer-grid,
.footer .footer-wrap,
.footer .footer-wrap.footer-grid,
.footer .wrap,
.footer .wrap.footer-grid,
footer .footer-content{
width:100%!important;
max-width:100%!important;
margin-inline:0!important;
padding-left:0!important;
padding-right:0!important;
box-sizing:border-box!important;
text-align:left!important;
justify-items:start!important;
align-items:start!important;
}
.site-footer .footer-brand,
.site-footer .footer-column,
.footer .footer-main,
.footer .footer-col,
footer .footer-brand,
footer .footer-section,
footer .rehab-footer-brand,
.footer-wrap:has(img.pw-footer-logo),
.footer-main:has(img.pw-footer-logo),
.footer-brand:has(img.pw-footer-logo){
display:flex!important;
flex-direction:column!important;
text-align:left!important;
align-items:flex-start!important;
justify-content:flex-start!important;
justify-items:start!important;
padding-inline:0!important;
margin-inline:0!important;
}
.site-footer .footer-bottom,
.footer .footer-bottom,
.footer .wrap.footer-bottom,
.footer .footer-wrap.footer-bottom,
footer .footer-bottom,
.site-footer .page-width.footer-bottom{
width:100%!important;
max-width:100%!important;
margin-inline:0!important;
padding-left:0!important;
padding-right:0!important;
text-align:left!important;
box-sizing:border-box!important;
}
}
@media (max-width:700px){
.site-footer .footer-grid,
.footer .footer-grid,
.footer .wrap.footer-grid,
.footer .footer-wrap.footer-grid,
footer .footer-content{
display:grid!important;
grid-template-columns:1fr 1fr!important;
gap:26px 20px!important;
text-align:left!important;
justify-items:start!important;
align-items:start!important;
}
.site-footer .footer-brand,
.site-footer .footer-main,
.footer .footer-main,
footer .footer-brand,
footer .rehab-footer-brand,
footer .footer-content .footer-section:first-child{
grid-column:1/-1!important;
}
.site-footer .footer-column,
.footer .footer-col,
footer .footer-section{
gap:9px!important;
}
.site-footer .footer-bottom,
.footer .footer-bottom,
.footer .wrap.footer-bottom,
.footer .footer-wrap.footer-bottom,
footer .footer-bottom,
.site-footer .page-width.footer-bottom{
flex-direction:column!important;
gap:8px!important;
margin-top:30px!important;
padding-top:16px!important;
}
.site-footer .footer-bottom p,
.footer .footer-bottom p,
.footer .wrap.footer-bottom p,
footer .footer-bottom p,
.site-footer .footer-bottom p:last-child,
.footer .footer-bottom p:last-child,
footer .footer-bottom p:last-child{
text-align:left!important;
}
}
</style>
<style id="at101-services-header-dropdown-v1">
/* Shared Services dropdown. Keep the original AddictionTreatments101 header dimensions. */
.header .nav > a,.header .at101-services-link{position:relative!important}
.header .nav > a::after,.header .at101-services-link::after{content:""!important;position:absolute!important;left:50%!important;right:50%!important;bottom:2px!important;height:2px!important;background:#167fc4!important;transition:left .18s ease,right .18s ease!important}
.header .nav > a:hover::after,.header .nav > a:focus-visible::after,.header .nav > a.active::after,.header .at101-services-link:hover::after,.header .at101-services-link:focus-visible::after,.header .at101-services-link.active::after{left:0!important;right:0!important}
.header .at101-services-group{position:relative;display:flex;align-items:center;justify-content:center;min-width:0}
.header .at101-services-link{display:inline-flex!important;align-items:center!important}
.header .at101-services-toggle{appearance:none;-webkit-appearance:none;border:0;background:transparent;color:#18394e;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:18px;height:36px;margin:0;padding:0 0 0 4px}
.header .at101-services-toggle:hover,.header .at101-services-toggle:focus-visible,.header .at101-services-group.is-open>.at101-services-toggle{color:#0e65a8}
.header .at101-services-caret{display:block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;transition:transform .18s ease}
.header .at101-services-group.is-open .at101-services-caret{transform:rotate(180deg)}
.header .at101-services-menu{position:absolute;z-index:5000;top:calc(100% + 12px);left:50%;transform:translateX(-50%);width:230px;padding:9px;background:#fff;border:1px solid #d9e3ea;border-radius:12px;box-shadow:0 16px 36px rgba(8,46,74,.16);opacity:0;visibility:hidden;pointer-events:none}
.header .at101-services-menu a{position:relative!important;display:block!important;width:100%!important;padding:10px 12px!important;margin:0!important;border-radius:8px!important;color:#18394e!important;text-decoration:none!important;text-transform:none!important;letter-spacing:0!important;white-space:nowrap!important;font-size:14px!important;font-weight:800!important;line-height:1.2!important;text-align:left!important}
.header .at101-services-menu a::before,.header .at101-services-menu a::after{content:none!important;display:none!important}
.header .at101-services-menu a:hover,.header .at101-services-menu a:focus{background:#eef8fd!important;color:#0e65a8!important}
@media(min-width:992px){.header .at101-services-group:hover>.at101-services-menu,.header .at101-services-group:focus-within>.at101-services-menu,.header .at101-services-group.is-open>.at101-services-menu{opacity:1;visibility:visible;pointer-events:auto}}
@media(max-width:991.98px){
.header .nav > a::after,.header .at101-services-link::after{display:none!important}
.header .at101-services-group{display:grid!important;grid-template-columns:minmax(0,1fr) 42px!important;width:100%!important;justify-content:stretch!important}
.header .at101-services-link{width:100%!important}
.header .at101-services-toggle{width:42px!important;height:42px!important;margin:0!important;padding:0!important}
.header .at101-services-menu{grid-column:1/-1;position:static!important;transform:none!important;width:100%!important;display:none;opacity:1!important;visibility:visible!important;pointer-events:auto!important;box-shadow:none!important;border-radius:8px!important;margin:0 0 8px!important}
.header .at101-services-group.is-open>.at101-services-menu{display:block!important}
}
</style>
<style id="at101-root-mobile-nav-fix-v2">
/* ===== COMPACT MOBILE NAV FOR MAIN SITE PAGES ===== */
@media(max-width:980px){
/* Unified AT101 header */
#at-site-header .at-header-inner{
position:relative!important;
min-height:72px!important;
}
#at-site-header .at-menu-btn{
display:block!important;
margin-left:auto!important;
}
#at-site-header .at-call-btn{
display:none!important;
}
#at-site-header .at-nav{
display:none!important;
position:absolute!important;
top:100%!important;
left:-16px!important;
right:-16px!important;
width:auto!important;
height:auto!important;
min-height:0!important;
max-height:none!important;
margin:0!important;
padding:10px 16px 14px!important;
background:#fff!important;
border-top:1px solid #d8e1e7!important;
border-radius:0 0 14px 14px!important;
box-shadow:0 12px 24px rgba(20,56,83,.14)!important;
flex-direction:column!important;
align-items:stretch!important;
justify-content:flex-start!important;
gap:0!important;
z-index:9999!important;
}
#at-site-header .at-nav.is-open{
display:flex!important;
}
#at-site-header .at-nav-link{
display:flex!important;
align-items:center!important;
width:100%!important;
min-height:44px!important;
height:auto!important;
margin:0!important;
padding:0 10px!important;
}
#at-site-header .at-nav-link:after,
#at-site-header .at-services-link:after{
display:none!important;
}
#at-site-header .at-services-group{
display:grid!important;
grid-template-columns:minmax(0,1fr) 44px!important;
width:100%!important;
height:auto!important;
min-height:44px!important;
margin:0!important;
padding:0!important;
align-items:center!important;
}
#at-site-header .at-services-link{
display:flex!important;
align-items:center!important;
width:100%!important;
min-height:44px!important;
margin:0!important;
padding:0 10px!important;
}
#at-site-header .at-services-toggle{
display:flex!important;
align-items:center!important;
justify-content:center!important;
width:44px!important;
height:44px!important;
margin:0!important;
padding:0!important;
}
#at-site-header .at-services-menu{
grid-column:1/-1!important;
position:static!important;
top:auto!important;
left:auto!important;
display:none!important;
width:100%!important;
min-width:0!important;
margin:0 0 6px 10px!important;
padding:3px 0 5px 12px!important;
opacity:1!important;
visibility:visible!important;
pointer-events:auto!important;
border:0!important;
border-left:3px solid #d8f3ff!important;
border-radius:0!important;
box-shadow:none!important;
}
#at-site-header .at-services-group.is-open > .at-services-menu{
display:block!important;
}
#at-site-header .at-services-menu a{
display:flex!important;
align-items:center!important;
width:100%!important;
min-height:42px!important;
margin:0!important;
padding:0 10px!important;
}
/* Older header markup fallback */
.header .header-inner{
position:relative!important;
min-height:68px!important;
}
.header .menu-btn{
display:block!important;
margin-left:auto!important;
}
.header .header-actions{
display:none!important;
}
.header .nav{
display:none!important;
position:absolute!important;
top:100%!important;
left:0!important;
right:0!important;
width:100%!important;
height:auto!important;
min-height:0!important;
max-height:none!important;
margin:0!important;
padding:10px 14px 14px!important;
background:#fff!important;
flex-direction:column!important;
justify-content:flex-start!important;
align-items:stretch!important;
gap:0!important;
border-top:1px solid #eee!important;
border-radius:0 0 14px 14px!important;
z-index:9999!important;
}
.header .nav.open{
display:flex!important;
}
.header .nav > a{
display:flex!important;
align-items:center!important;
width:100%!important;
min-height:44px!important;
margin:0!important;
padding:0 10px!important;
}
.header .nav .services-menu{
width:100%!important;
height:auto!important;
margin:0!important;
}
.header .nav .services-menu > summary{
display:flex!important;
align-items:center!important;
width:100%!important;
min-height:44px!important;
margin:0!important;
padding:0 10px!important;
}
.header .nav .services-dropdown{
position:static!important;
width:100%!important;
min-width:0!important;
margin:0 0 6px 10px!important;
padding:4px 0 5px 12px!important;
transform:none!important;
border:0!important;
border-left:3px solid #d8f3ff!important;
border-radius:0!important;
box-shadow:none!important;
}
.header .nav .services-dropdown a{
display:flex!important;
align-items:center!important;
min-height:42px!important;
margin:0!important;
padding:0 10px!important;
}
}
</style>
</head>
<body>
<div class="topbar">National Addiction Helpline provides confidential support. Call <a href="tel:+18006151067">1(800) 615-1067</a><span class="heart">♥</span></div>
<header class="header">
<div class="wrap header-inner">
<a class="logo" href="/" aria-label="National Addiction Helpline home"><img src="/assets/logo.webp" alt="National Addiction Helpline"></a>
<button class="menu-btn" type="button" aria-expanded="false" aria-label="Open navigation"><span></span><span></span><span></span></button>
<nav class="nav" aria-label="Primary navigation">
<a href="/">Home</a>
<div class="at101-services-group">
<a class="at101-services-link" href="/services.html">Services</a>
<button class="at101-services-toggle" type="button" aria-expanded="false" aria-label="Show services menu"><span class="at101-services-caret" aria-hidden="true"></span></button>
<div class="at101-services-menu"><a href="/services/best-drug-rehab/">Drug Rehab</a><a href="/services/best-alcohol-rehab/">Alcohol Rehab</a><a href="/services/best-addiction-rehab/">Addiction Rehab</a><a href="/services/best-addiction-treatment/">Addiction Treatment</a><a href="/services/best-alcohol-detox/">Alcohol Detox</a><a href="/services/best-drug-detox/">Drug Detox</a></div>
</div>
<a class="active" href="/blog.html">Blog</a>
<a href="/directory.html">Directory</a>
</nav>
<div class="header-actions">
<a class="call-mini" href="tel:+18006151067">
<svg class="call-mini-icon" viewBox="0 0 64 44" aria-hidden="true">
<path d="M27 8h16c8.3 0 15 5.8 15 13s-6.7 13-15 13h-7l-8 6 2-6h-3c-8.3 0-15-5.8-15-13S18.7 8 27 8Z"></path>
<path d="M17.5 4H31c5.4 0 10.1 2.3 12.8 5.9"></path>
<path d="M13.5 29 7 34l1.8-7.5C5.7 24.1 4 20.8 4 17 4 9.8 10 4 17.5 4"></path>
<circle cx="25" cy="21" r="1.6"></circle><circle cx="33" cy="21" r="1.6"></circle><circle cx="41" cy="21" r="1.6"></circle>
</svg>
<span class="call-copy"><strong>1(800) 615-1067</strong></span>
</a>
<a class="get-help" href="tel:+18006151067">Get Help</a>
</div>
</div>
</header>
<main id="main-content">
<div class="wrap article-wrap" id="article-target"><div class="article-loading">Loading article…</div></div></main>
<section class="help-band"><div class="wrap"><h2>Need Help? Have A Question?</h2><p>Call National Addiction Helpline</p><a class="phone-bubble dark" href="tel:+18006151067"><img class="phone-avatar" src="assets/images/Ellipse-38-clean.webp" alt="Call representative"><span>1(800) 615-1067</span></a></div></section>
<footer class="footer" id="contact"><div class="wrap footer-grid">
<div class="footer-main"><img class="footer-logo" src="assets/logo-footer.webp" alt="National Addiction Helpline"><p>National Addiction Helpline provides general information and confidential guidance for individuals and families exploring addiction recovery and treatment options.</p><a class="footer-phone phone-bubble" href="tel:+18006151067"><img class="phone-avatar" src="assets/images/Ellipse-38-clean.webp" alt="Call representative"><span>1(800) 615-1067</span></a></div>
<div class="footer-col"><h3>Links</h3><a href="/">Home</a><a href="/#about">About</a><a href="/services.html">Services</a><a href="/#contact">Contact Us</a><a href="/blog.html">Blog</a><a href="/directory.html">Directory</a></div>
<div class="footer-col"><h3>Services</h3><a href="/services/best-drug-rehab/">Drug Rehab</a><a href="/services/best-alcohol-rehab/">Alcohol Rehab</a><a href="/services/best-addiction-rehab/">Addiction Rehab</a><a href="/services/best-addiction-treatment/">Addiction Treatment</a><a href="/services/best-alcohol-detox/">Alcohol Detox</a><a href="/services/best-drug-detox/">Drug Detox</a></div>
<div class="footer-col"><h3>Others</h3><a href="#">Privacy Policy</a><a href="#">Terms and Conditions</a><a href="#">Site Map</a><a href="#">NA/AA Disclaimer</a></div>
</div><div class="wrap footer-bottom"><p>© <span data-year></span> AddictionTreatments101.com. All rights reserved.</p><p>General educational information only; not medical advice or an emergency service.</p></div></footer>
<a class="mobile-call-banner" href="tel:+18006151067" aria-label="Call National Addiction Helpline"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M6.62 10.79a15.05 15.05 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1C10.07 21 3 13.93 3 5a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.24.2 2.45.57 3.57a1 1 0 0 1-.24 1.02l-2.2 2.2z"></path></svg><span>Call Us +1(800)615-1067</span><i aria-hidden="true"></i></a>
<script src="assets/csv.js" type="ab5799cf4493a09950283e1e-text/javascript"></script><script src="assets/site.js?v=5" type="ab5799cf4493a09950283e1e-text/javascript"></script><script src="assets/legacy-lookup.js?v=3" type="ab5799cf4493a09950283e1e-text/javascript"></script><script type="ab5799cf4493a09950283e1e-text/javascript">
const target = document.querySelector('#article-target');
const slug = new URLSearchParams(location.search).get('slug');
function esc(s){const d=document.createElement('div');d.textContent=s||'';return d.innerHTML;}
function sanitize(html){
const doc=new DOMParser().parseFromString(`<div>${html||''}</div>`,'text/html');
doc.querySelectorAll('script,style,iframe,object,embed,link,meta,form,input,button').forEach(n=>n.remove());
doc.querySelectorAll('*').forEach(el=>{
[...el.attributes].forEach(a=>{const n=a.name.toLowerCase();if(n.startsWith('on')||n==='srcdoc'||n==='style')el.removeAttribute(a.name)});
if(el.tagName==='H1'){const h=document.createElement('h2');h.innerHTML=el.innerHTML;el.replaceWith(h)}
if(el.tagName==='A'){const href=el.getAttribute('href')||'';if(!/^(https?:|mailto:|tel:|\/|#)/i.test(href))el.removeAttribute('href');else{el.setAttribute('rel','noopener noreferrer');if(/^https?:/i.test(href))el.setAttribute('target','_blank')}}
if(el.tagName==='IMG'){el.setAttribute('loading','lazy');el.removeAttribute('srcset')}
});
return doc.body.firstElementChild.innerHTML;
}
function slugBucket(value,digits){
let hash=0x811c9dc5;
const bytes=new TextEncoder().encode(value);
for(const byte of bytes){hash^=byte;hash=Math.imul(hash,0x01000193)>>>0}
return hash.toString(16).padStart(8,'0').slice(0,digits);
}
async function tryLegacyRedirect(){
const key='legacyRedirectAttempt';
if(!window.LegacyLookup)return false;
const mapped=await LegacyLookup.resolve(slug);
if(!mapped || mapped===slug)return false;
if(sessionStorage.getItem(key)===mapped)return false;
sessionStorage.setItem(key,mapped);
location.replace('article.html?slug='+encodeURIComponent(mapped));
return true;
}async function loadArticle(){
if(!target){return}
if(!slug){target.innerHTML='<div class="empty article-error">No article was selected. <a href="blog.html">Return to the blog</a>.</div>';return}
try{
const manifestResponse=await fetch('data/manifest.json',{cache:'no-store'});
if(!manifestResponse.ok) throw new Error('Article manifest could not be loaded');
const manifest=await manifestResponse.json();
if(Number(manifest.formatVersion)!==2) throw new Error('Blog data needs to be rebuilt');
const bucket=slugBucket(slug,Number(manifest.bucketHexDigits||3));
let rows=[];
try{
rows=await CSV.load(
'data/article-buckets/bucket-'+bucket+'.csv'
);
}catch(bucketError){
if(await smartRelatedArticleFallback(slug)){
return;
}
throw bucketError;
}
const article=rows.find(function(p){return p.slug===slug});
if(!article){
if(await tryLegacyRedirect())return;
throw new Error('Article not found');
}
sessionStorage.removeItem('legacyRedirectAttempt');
document.title=article.title+' | AddictionTreatments101';
target.innerHTML=
'<div class="article-breadcrumb"><a href="blog.html">Blog</a> / Article</div>'
+'<div class="article-head"><h1>'+esc(article.title)+'</h1></div>'
+'<article class="article-content">'+sanitize(article.content, article.title)+'</article>'
+'<div class="article-back"><a href="blog.html">← Back to all articles</a></div>';
}catch(err){target.innerHTML='<div class="empty article-error">'+esc(err.message)+'. <a href="blog.html">Return to the blog</a>.</div>'}
}
loadArticle();
</script>
<script type="ab5799cf4493a09950283e1e-text/javascript">
/* === SMART RELATED ARTICLE FALLBACK === */
async function smartRelatedArticleFallback(brokenSlug){
const STOP = new Set([
'a','an','the','and','or','but','to','of','in','on','at','by',
'for','from','with','without','into','about','your','you','our',
'is','are','was','were','be','been','being','this','that','these',
'those','how','what','when','where','why','who','which',
'guide','guides','complete','comprehensive','ultimate',
'best','top','near','me','help','helps','helping',
'services','service','solutions','solution',
'center','centers','facility','facilities',
'program','programs'
]);
const TOPIC = new Set([
'drug',
'drugs',
'detox',
'detoxification',
'rehab',
'rehabilitation',
'recovery',
'addiction',
'alcohol',
'alcoholism',
'treatment',
'inpatient',
'outpatient',
'opioid',
'opioids',
'heroin',
'cocaine',
'meth',
'methamphetamine',
'fentanyl',
'substance',
'abuse',
'sober',
'sobriety'
]);
function normalize(value){
return String(value || '')
.toLowerCase()
.replace(/[^a-z0-9]+/g,' ')
.replace(/\s+/g,' ')
.trim();
}
function tokens(value){
return normalize(value)
.split(' ')
.filter(Boolean)
.filter(word => !STOP.has(word));
}
function tokenSet(value){
return new Set(tokens(value));
}
function hasPhrase(text, phrase){
return normalize(text).includes(normalize(phrase));
}
function getBigrams(list){
const out = [];
for(let i=0;i<list.length-1;i++){
out.push(
list[i] + ' ' + list[i+1]
);
}
return out;
}
function similarityScore(aTokens,bTokens){
const a = new Set(aTokens);
const b = new Set(bTokens);
if(!a.size || !b.size){
return 0;
}
let common = 0;
for(const word of a){
if(b.has(word)){
common++;
}
}
return (2 * common) / (a.size + b.size);
}
const brokenTokens = tokens(brokenSlug);
const brokenTopicTokens =
brokenTokens.filter(word => TOPIC.has(word));
/*
Anything that is:
- not a generic stopword
- not a normal rehab topic word
- at least 4 characters
is treated as a high-value specific term.
Example:
holtville
alabama
*/
const brokenSpecificTokens =
brokenTokens.filter(word =>
!TOPIC.has(word) &&
word.length >= 4
);
const brokenBigrams =
getBigrams(brokenTokens);
const brokenNormalized =
normalize(brokenSlug);
const oldLooksLikeQuestion =
/^(how|when|what|why|where|can|should|does|do|is|are)\b/
.test(brokenNormalized);
function scoreArticle(article){
const slug =
String(article.slug || '');
const title =
String(article.title || '');
const excerpt =
String(article.excerpt || '');
const titleSlug =
normalize(slug + ' ' + title);
const allText =
normalize(
slug + ' ' +
title + ' ' +
excerpt
);
const titleSlugTokens =
tokens(titleSlug);
const titleSlugSet =
new Set(titleSlugTokens);
const allSet =
tokenSet(allText);
let score = 0;
let topicMatches = 0;
let specificMatches = 0;
/*
TOPIC WORDS
Drug / detox / rehab / recovery etc.
Strong match when found in title or slug.
*/
for(const word of brokenTopicTokens){
if(titleSlugSet.has(word)){
score += 28;
topicMatches++;
}
else if(allSet.has(word)){
score += 6;
topicMatches++;
}
}
/*
SPECIFIC TERMS
City/state/specific descriptive words receive
much stronger weighting.
*/
for(const word of brokenSpecificTokens){
if(titleSlugSet.has(word)){
score += 100;
specificMatches++;
}
else if(allSet.has(word)){
score += 25;
specificMatches++;
}
}
/*
EXACT TWO-WORD PHRASES
Example:
drug detox
addiction recovery
alcohol rehab
*/
for(const pair of brokenBigrams){
if(hasPhrase(titleSlug,pair)){
score += 55;
}
else if(hasPhrase(allText,pair)){
score += 12;
}
}
/*
EXTRA IMPORTANT PHRASES
*/
const importantPhrases = [
'drug detox',
'drug rehab',
'drug treatment',
'alcohol detox',
'alcohol rehab',
'alcohol treatment',
'addiction treatment',
'addiction recovery',
'substance abuse',
'inpatient rehab',
'outpatient rehab'
];
for(const phrase of importantPhrases){
if(
hasPhrase(brokenNormalized,phrase) &&
hasPhrase(titleSlug,phrase)
){
score += 100;
}
}
/*
OVERALL TOKEN SIMILARITY
*/
score +=
similarityScore(
brokenTokens,
titleSlugTokens
) * 100;
/*
If old URL clearly contains rehab topic words
but the candidate matches none of them,
heavily penalize it.
*/
if(
brokenTopicTokens.length &&
topicMatches === 0
){
score -= 150;
}
/*
If old URL has specific location/details
and candidate has none, slightly penalize it.
We don't make this fatal because some sites may
not have a current article for that exact city.
*/
if(
brokenSpecificTokens.length &&
specificMatches === 0
){
score -= 25;
}
/*
Penalize generic question articles when the
original slug was not a question.
*/
const titleNormalized = normalize(title);
const candidateLooksLikeQuestion =
/^(how|when|what|why|where|can|should|does|do|is|are)\b/
.test(titleNormalized);
if(
candidateLooksLikeQuestion &&
!oldLooksLikeQuestion
){
score -= 35;
}
/*
Prefer titles that actually contain "drug"
when the old slug contains drug.
*/
if(
brokenTopicTokens.includes('drug')
){
if(titleSlugSet.has('drug')){
score += 35;
}
else{
score -= 15;
}
}
/*
Same for alcohol.
*/
if(
brokenTopicTokens.includes('alcohol')
){
if(titleSlugSet.has('alcohol')){
score += 35;
}
else{
score -= 15;
}
}
/*
Same for detox.
*/
if(
brokenTopicTokens.includes('detox')
){
if(titleSlugSet.has('detox')){
score += 30;
}
else{
score -= 15;
}
}
return score;
}
try{
const manifestResponse =
await fetch(
'data/manifest.json',
{cache:'no-store'}
);
if(!manifestResponse.ok){
return false;
}
const manifest =
await manifestResponse.json();
const chunks =
Math.max(
1,
Number(manifest.chunks || 1)
);
let articles = [];
for(let i=1;i<=chunks;i++){
const number =
String(i).padStart(6,'0');
try{
const rows =
await CSV.load(
'data/blog-chunks/chunk-' +
number +
'.csv'
);
if(Array.isArray(rows)){
articles.push(...rows);
}
}catch(chunkError){}
}
if(!articles.length){
return false;
}
let best = null;
let bestScore = -999999;
for(const article of articles){
if(
!article ||
!article.slug ||
article.slug === brokenSlug
){
continue;
}
const score =
scoreArticle(article);
if(score > bestScore){
bestScore = score;
best = article;
}
}
if(best && best.slug){
console.log(
'RELATED ARTICLE FALLBACK',
{
oldSlug: brokenSlug,
selectedSlug: best.slug,
selectedTitle: best.title,
score: bestScore
}
);
location.replace(
'article.html?slug=' +
encodeURIComponent(best.slug)
);
return true;
}
}catch(error){
console.error(
'Related article fallback failed',
error
);
}
return false;
}
/* === END SMART RELATED ARTICLE FALLBACK === */
</script>
<script id="at101-services-header-js-v1" type="ab5799cf4493a09950283e1e-text/javascript">
(function(){
var groups=document.querySelectorAll('.at101-services-group');
groups.forEach(function(g){
var t=g.querySelector('.at101-services-toggle');
if(!t)return;
t.addEventListener('click',function(e){
e.preventDefault();e.stopPropagation();
var open=g.classList.toggle('is-open');
t.setAttribute('aria-expanded',open?'true':'false');
});
});
document.addEventListener('click',function(e){
groups.forEach(function(g){
if(!g.contains(e.target)){
g.classList.remove('is-open');
var t=g.querySelector('.at101-services-toggle');
if(t)t.setAttribute('aria-expanded','false');
}
});
});
document.addEventListener('keydown',function(e){
if(e.key==='Escape')groups.forEach(function(g){
g.classList.remove('is-open');
var t=g.querySelector('.at101-services-toggle');
if(t)t.setAttribute('aria-expanded','false');
});
});
})();
</script>
<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="ab5799cf4493a09950283e1e-|49" defer></script><script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a4b110db4bf3ce7b',t:'MTc5MjA5MDgxNw=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
</html>
| # |
Url |
Url |
Source |
Date |
| 1 |
https://addictiontreatments101.com… |
|
2026-10-15 19:00:18 |
| 2 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-15 19:00:17 |
| 3 |
https://www.texarkanatwins.com/%25… |
|
2026-10-15 19:00:16 |
| 4 |
https://www.texarkanatwins.com/%25… |
|
2026-10-15 19:00:16 |
| 5 |
https://www.texarkanatwins.com/%25… |
|
2026-10-15 19:00:15 |
| 6 |
https://seozdirectory.com/listings… |
|
2026-10-15 19:00:15 |
| 7 |
https://www.texarkanatwins.com/%25… |
|
2026-10-15 19:00:14 |
| 8 |
https://www.texarkanatwins.com/&am… |
|
2026-10-15 19:00:14 |
| 9 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-15 19:00:13 |
| 10 |
https://www.texarkanatwins.com/%25… |
|
2026-10-15 19:00:12 |
| 11 |
https://xiaopingh344scl3.blogoxo.c… |
|
2026-10-15 19:00:02 |
| 12 |
https://www.texarkanatwins.com/%25… |
|
2026-10-15 19:00:02 |
| 13 |
https://www.texarkanatwins.com/%25… |
|
2026-10-15 19:00:01 |
| 14 |
https://www.texarkanatwins.com/%25… |
|
2026-10-15 19:00:01 |
| 15 |
https://www.texarkanatwins.com/%25… |
|
2026-10-15 19:00:00 |
| 16 |
https://neyhartlaw.com/ |
|
2026-10-15 19:00:00 |
| 17 |
https://www.texarkanatwins.com/%25… |
|
2026-10-15 18:59:59 |
| 18 |
https://www.texarkanatwins.com/%25… |
|
2026-10-15 18:59:59 |
| 19 |
https://www.texarkanatwins.com/&%2… |
|
2026-10-15 18:59:58 |
| 20 |
https://www.texarkanatwins.com/%25… |
|
2026-10-15 18:59:58 |