A technical guide to hospital SEO: improving Core Web Vitals, implementing Hospital schema, building a content architecture around patient intent, and applying E-E-A-T strategies to get service pages onto page 1 of Google.
Hospitals often spend hundreds of millions on website redesigns, then lose out to generic health directories in search results. Yet around 60% of patients search for a doctor's name or service via Google before calling the call center, and pages in position 1 receive an average CTR of 27.6% (Backlinko, 2024), while position 8 gets only 1.6%. The problem is rarely design. What we most often find during audits: poor Core Web Vitals, messy URL architecture after a domain migration, and no content that answers patient intent such as "dialysis cost" or "night cardiology clinic schedule". This article discusses concrete steps that a hospital IT team can execute within 90 days, from LCP improvements and JSON-LD schema to a content strategy targeting priority services.
Core Web Vitals are the first gate. Google sets thresholds of LCP ≤ 2.5 seconds, INP ≤ 200 ms (replacing FID since March 12, 2024), and CLS ≤ 0.1. From our audit of 12 type B and C hospital sites throughout 2024, the average mobile LCP was 5.8 seconds — about 70% of the cause was a single hero slider containing 4 JPEG images 1,600 px wide without compression. The solution does not have to be a complete overhaul: convert to WebP/AVIF (on average reducing file size by 62%), add fetchpriority="high" to only one hero image, and lazy-load all images below the fold. After that intervention, LCP dropped to 2.1 seconds and the mobile Lighthouse score rose from 34 to 78.
URL structure determines how quickly new doctor pages get indexed. Use the patterns /layanan/{spesialis}/, /dokter/{slug}/, and /artikel/{slug}/ — avoid /?page_id=1234 or /index.php?poli=anak. Generate a separate sitemap.xml per content type (sitemap-dokter.xml, sitemap-layanan.xml) then register it in Search Console; on sites with 300+ doctor pages, this cuts indexing time from 3 weeks to 4 days. Also pay attention to canonical: one doctor who practices in three clinics must have one main URL, not three duplicate pages that cannibalize each other.
Embed the Hospital schema in the header template so Google understands your hospital entity, not just text:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Hospital",
"name": "RS Sehat Sentosa",
"url": "https://rssehatsentosa.co.id",
"telephone": "+62-24-1234567",
"address": {"@type": "PostalAddress",
"streetAddress": "Jl. Pandanaran 12", "addressLocality": "Semarang",
"addressRegion": "Jawa Tengah", "postalCode": "50241", "addressCountry": "ID"},
"medicalSpecialty": ["Cardiovascular", "Pediatric"],
"availableService": {"@type": "MedicalProcedure", "name": "Hemodialisis"},
"openingHours": "Mo-Su 00:00-23:59"
}
</script>Validate via the Rich Results Test and monitor the Pages report in Search Console. A status of "Crawled - currently not indexed" on service pages usually means the content is too thin (under 300 words) or duplicated with other clinic pages. For domain migration, prepare a complete 301 map before the DNS switch — on one project without redirects, organic clicks dropped 68% in the first 3 weeks.
Patients do not type "hospital SEO". They type "heart stent placement cost", "night pediatric clinic schedule", or "hospital that accepts BPJS for cataracts". Map keywords to three page layers: pillar service pages, doctor and schedule pages, then educational articles. One pillar such as /layanan/jantung/ should be supported by 6–10 supporting articles that internally link to each other bidirectionally.
The "cost" and "requirements" pages are the highest traffic magnets yet the most often ignored by hospital managers because they are considered sensitive. What needs to be shown is not exact figures, but cost ranges, their components (procedures, rooms, drugs, equipment), and how to claim BPJS or private insurance. Content like this fully answers intent, lowers bounce rate, and drives conversion to online registration.
Technically, use one H1 per page, breadcrumbs with BreadcrumbList schema, and a table of contents for articles over 1,200 words. In WordPress, Rank Math 1.0.230+ or Yoast 23.x already handles breadcrumbs and basic schema — do not install both at the same time because duplicate JSON-LD confuses parsers. For custom CMSs (Laravel, Next.js), generate meta titles, canonicals, and JSON-LD directly from the controller; it is more controlled and lighter than stacking 12 plugins.
Google Business Profile is the page that most often occupies the top position for queries like "nearest ER" and "hospital {city}". Fill in the correct primary category (General hospital or Specialized hospital), upload photos of the ER and inpatient rooms, include an emergency number, and enable 24-hour opening hours. Keep NAP (name, address, phone) exactly the same on the website, GBP, and the Ministry of Health directory (faskes.kemkes.go.id) — even a difference of "Jl." versus "Jalan" already weakens entity matching.
Health content falls into the YMYL category, so expertise signals are assessed strictly. Every article must have an author and a physician reviewer with a profile page containing STR/SIP, visible publication and update dates, and references to journals or WHO/Kemenkes sources. An "Admin" byline without identity is a red flag that holds back rankings. For flagship services such as oncology or cardiovascular, add specialist physician profile pages with Physician schema that includes medicalSpecialty and hospitalAffiliation.
Build backlinks from genuinely relevant sources: local news portals, professional associations, partner universities for medical education, and .go.id government sites through community service programs or referral partnerships. Five to ten relevant backlinks per quarter have more impact than 300 spam blog comments. Measure results per service page in Search Console, not just overall domain traffic.
For local keywords with moderate competition such as "children's clinic schedule {kota}", usually 3–6 months after technical fixes and regular content publication. National-level commercial keywords such as "heart surgery cost" can take 9–12 months because they involve domain authority and backlinks.
No. Use a subfolder (/layanan/jantung/). Subdomains split domain authority and make backlink consolidation difficult. A new subdomain only makes sense if it is managed by a different business unit with completely separate systems and content team.
It is not a direct ranking factor, but it affects CTR through rich results (opening hours, ratings, FAQ, breadcrumb), and higher CTR contributes to long-term performance. Schema also helps Google understand physician–service–location relationships, especially for multi-branch hospital entities.
Both can rank. WordPress with Rank Math 1.0.230+ and caching (WP Rocket, LiteSpeed Cache) is faster to launch for small teams. A custom CMS is superior if you need real-time physician schedule integration, online registration, or SIMRS bridging — provided meta, canonical, and JSON-LD are generated server-side, not via client-side JavaScript.
Hospital SEO is not a one-time project but a combination of technical discipline and understanding of the patient journey. Start with what has the fastest impact: fix LCP, tidy up URLs and canonicals, install Hospital schema, then build 3 priority service pages with genuinely up-to-date cost and schedule content. If you need a thorough technical audit — including website integration with SIMRS, online registration, and BPJS/SatuSehat bridging — our team can map your first 90 days of priorities according to your system conditions.
Related solutions by PT Pilar Inovasi Informatika (Pilar Inovasi IT products): SIMRS (Hospital Information System) BPJS & SatuSehat Integration. Need a free consultation?
Belum ada komentar. Jadilah yang pertama!