69 lines
3.3 KiB
Python
69 lines
3.3 KiB
Python
import io
|
|
|
|
p = "/Users/drjones/pest-nocturne/index.html"
|
|
s = open(p).read()
|
|
|
|
# ---- SEO head block (title + meta + OG + JSON-LD) ----
|
|
seo_head = '''<title>Evergreen Applicator — Washington Pesticide Applicator Exam Prep & Practice Tests</title>
|
|
<meta name="description" content="Pass the Washington pesticide applicator exam. 318 original + WSU EM019 practice questions, timed 50-question mock exams, a pest ID field guide, and the WSDA licensing guide — free.">
|
|
<meta name="keywords" content="Washington pesticide applicator exam, WA pesticide license, WSDA exam prep, pesticide applicator practice test, WDO inspection, IPM, structural pest control license, ornamental and turf license">
|
|
<meta name="robots" content="index, follow, max-image-preview:large">
|
|
<link rel="canonical" href="https://evergreenapplicator.thetempleofdoom.com/">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:site_name" content="Evergreen Applicator">
|
|
<meta property="og:title" content="Evergreen Applicator — Washington Pesticide Applicator Exam Prep">
|
|
<meta property="og:description" content="318 practice questions, timed mock exams, pest ID field guide, and the WSDA licensing guide. Pass the WA pesticide applicator test.">
|
|
<meta property="og:url" content="https://evergreenapplicator.thetempleofdoom.com/">
|
|
<meta name="twitter:card" content="summary">
|
|
<meta name="twitter:title" content="Evergreen Applicator — Washington Pesticide Applicator Exam Prep">
|
|
<meta name="twitter:description" content="318 practice questions, mock exams, pest ID guide, and the WSDA licensing guide.">
|
|
<script type="application/ld+json">
|
|
{"@context":"https://schema.org","@type":"WebSite","name":"Evergreen Applicator","url":"https://evergreenapplicator.thetempleofdoom.com/","description":"Washington pesticide applicator exam prep — 318 practice questions, timed mock exams, and a pest identification field guide for the WSDA pesticide applicator license.","inLanguage":"en-US","about":{"@type":"Thing","name":"Washington pesticide applicator certification"},"publisher":{"@type":"Organization","name":"Evergreen Applicator"}}
|
|
</script>'''
|
|
|
|
# 1. Replace the bare title with the full SEO head
|
|
s = s.replace("<title>Pest Nocturne</title>", seo_head, 1)
|
|
|
|
# 2. Brand comment header
|
|
s = s.replace(
|
|
" PEST NOCTURNE — a midnight specimen cabinet for WSU EM019",
|
|
" EVERGREEN APPLICATOR — Washington pesticide applicator exam prep",
|
|
1,
|
|
)
|
|
|
|
# 3. Header brand mark
|
|
s = s.replace(
|
|
" Pest Nocturne\n </div>",
|
|
" Evergreen Applicator\n </div>",
|
|
1,
|
|
)
|
|
|
|
# 4. WA Cert view H1 (line ~2019) — make it keyword-rich
|
|
s = s.replace(
|
|
'<h1><span class="lo">A hyper study suite for the</span>Pest<br><em>Nocturne</em></h1>',
|
|
'<h1><span class="lo">Washington pesticide applicator</span>Evergreen<br><em>Applicator</em></h1>',
|
|
1,
|
|
)
|
|
|
|
# 5. Premium gate comment
|
|
s = s.replace(
|
|
"PEST NOCTURNE — PREMIUM GATE (injected)",
|
|
"EVERGREEN APPLICATOR — PREMIUM GATE (injected)",
|
|
1,
|
|
)
|
|
|
|
# 6. BMAC footer
|
|
s = s.replace(
|
|
"Pest Nocturne — a study suite for WSU EM019",
|
|
"Evergreen Applicator — Washington pesticide applicator exam prep",
|
|
1,
|
|
)
|
|
|
|
open(p, "w").write(s)
|
|
|
|
# report any remaining "Nocturne" (case-insensitive)
|
|
import re
|
|
left = re.findall(r'(?i)nocturne', s)
|
|
print("remaining 'nocturne' refs:", len(left))
|
|
print("renamed + SEO head added; size", len(s))
|