Technical SEO Checklist for Therapist Websites

A practical technical SEO checklist for therapy practice websites. Covers page speed, mobile responsiveness, HTTPS, schema markup, robots.txt configuration for AI crawlers, XML sitemaps, and the six foundations every therapist site needs.
Technical SEO infrastructure for therapy websites
Technical SEO is the invisible foundation that determines whether Google can properly crawl, index, and rank your site.

If you have ever run your therapy website through Google PageSpeed Insights and stared at a score in the 30s wondering what went wrong — welcome to the club. Most therapy sites are technically a mess. Bloated themes, unoptimized images, plugins that load hundreds of scripts nobody asked for. The frustrating part is these are relatively easy to fix, but most therapists never get around to it because “technical SEO” sounds intimidating.

This checklist covers the technical areas that matter most for therapist websites. What to check. What is acceptable. What needs fixing immediately. The competitive gap is enormous — most therapy websites have significant technical issues, and fixing yours puts you ahead of the majority of your local competitors without writing a single extra blog post.

1. Page Speed: The First Ranking Signal

Website page speed testing for therapy practice website optimization
Google has confirmed page speed is a ranking factor. Many WordPress therapy sites score below optimal on mobile Speed Insights.

Google uses Core Web Vitals to measure page speed. Three metrics matter:

Largest Contentful Paint (LCP) — should load under 2.5 seconds. When the main page content appears.

Interaction to Next Paint (INP) — under 200ms. How responsive your site feels.

Cumulative Layout Shift (CLS) — under 0.1. Whether things jump around as the page loads.

Most therapy sites fail at least one of these. Fixing all three is doable in an afternoon.

Many WordPress therapy sites score below optimal on mobile due to bloated themes, unoptimized images, and excessive plugins. A properly optimized site can typically reach 90 or above on Speed Insights. Quick wins: compress all images to WebP format, remove unused plugins, and use a lightweight theme built for speed rather than a page builder that loads hundreds of unused scripts.

Step-by-Step Core Web Vitals Optimization for WordPress Therapy Sites

Step 1: Measure your baseline. Run your homepage, a service page, and a blog post through Google PageSpeed Insights. Record the mobile scores for all three. You need a baseline before you can measure improvement.

Step 2: Fix images (biggest win, lowest effort). Most therapy websites serve images that are 2-5x larger than necessary. A 4000x3000px photo from your camera does not need to be displayed at full resolution on your website. Use an image optimization plugin like ShortPixel, Imagify, or Smush to automatically compress and convert images to WebP format. Target: every image under 100KB. A typical therapy site with 20 images can drop from 5MB page weight to under 1MB with image optimization alone — improving LCP by 1-2 seconds.

Step 3: Minimize JavaScript and CSS. Page builders (Elementor, Divi, Beaver Builder) load hundreds of unused CSS and JavaScript files on every page. Use a performance plugin like WP Rocket, Flying Press, or Perfmatters to defer unused JavaScript, remove render-blocking CSS, and delay JavaScript execution until user interaction. Combined savings: 0.5-1.5 second improvement to LCP.

Step 4: Implement lazy loading. Images and videos below the fold should only load when the user scrolls to them. WordPress 5.5+ includes native lazy loading for images, but verify it is enabled. For iframes and videos, use a dedicated lazy loading solution. Expected improvement: 0.2-0.5 second to initial LCP.

Step 5: Use a content delivery network (CDN). A CDN caches your site on servers close to your visitors. For a local therapy practice serving one city, a CDN is less critical than for a global site — but it still improves load times for mobile users on cellular networks. Cloudflare’s free plan is sufficient. Expected improvement: 0.3-0.8 second depending on geographic distance from your server.

Step 6: Optimize web fonts. Google Fonts and custom fonts add 100-300KB of HTTP requests. Self-host your fonts, or use the font-display: swap CSS property to ensure text remains visible during font load. Expected improvement: 0.1-0.3 second to LCP, plus elimination of invisible-text flashes.

Step 7: Fix Cumulative Layout Shift (CLS). CLS measures unexpected layout shifts that frustrate users (and Google). The most common cause on therapy websites: images without explicit width and height attributes, causing the page to jump as images load. Always specify width and height on all image tags. Second most common cause: dynamically injected ads or appointment booking widgets. Set explicit dimensions on iframes and widget containers.

Core Web Vitals Targets Summary

Metric Good Needs Improvement Poor
LCP (Largest Contentful Paint) ≤ 2.5s 2.5s – 4.0s > 4.0s
INP (Interaction to Next Paint) ≤ 200ms 200ms – 500ms > 500ms
CLS (Cumulative Layout Shift) ≤ 0.1 0.1 – 0.25 > 0.25

Note: Google replaced FID with INP (Interaction to Next Paint) in March 2024. If your testing tool still reports FID, it is using the old metric. INP measures the total time from a user interaction (click, tap, key press) to the browser’s response. For therapy websites, INP matters most on contact forms and booking calendars — slow interactions there lose clients.

2. Can People Actually Use Your Site on a Phone?

Google uses mobile-first indexing — it evaluates the mobile version of your site, not the desktop version. Over 60% of therapy-related searches happen on phones. If your site is not fully functional on mobile, your ranking suffers regardless of desktop performance. Test your site on a phone: does the text fit without horizontal scrolling, are buttons large enough to tap, does the contact form work, is the phone number clickable?

Mobile Optimization Testing Methodology

Run these checks on actual mobile devices, not just browser emulators. Emulation is useful for initial testing but misses real-device issues.

1. Google’s Mobile-Friendly Test. Search for “Mobile-Friendly Test” (the Google tool). Enter your URL. It checks: text readability without zooming, tap target spacing, viewport configuration, and content width. Fix every issue it reports. A failing Mobile-Friendly Test means Google is actively penalizing your mobile rankings.

2. Manual touch test. Open your site on an actual phone. Check: every button is large enough to tap with a finger (minimum 48x48px). Contact forms work without desktop-style interactions. Phone numbers are clickable and trigger the dialer. The menu navigation is usable with one hand. No content is hidden behind hover-only interactions that do not work on touchscreens.

3. Viewport and font size check. Your viewport meta tag must be set correctly: <meta name="viewport" content="width=device-width, initial-scale=1">. Body text should be at least 16px font size — any smaller and iOS Safari will zoom in, breaking the responsive layout. Buttons and form elements should be at least 44pt tall (Apple’s accessibility guideline).

4. AMP evaluation. Accelerated Mobile Pages (AMP) were once required for Google Top Stories, but Google has since relaxed AMP requirements. You do not need AMP for therapy websites. A well-optimized responsive site performs as well or better. Skip AMP unless you have a specific reason to use it.

3. HTTPS and Security

HTTPS security certificate for therapy practice website
An HTTPS certificate is mandatory for any healthcare website. Without it, browsers warn visitors and Google penalizes rankings.

HTTPS is a confirmed ranking factor. Your URL must start with “https://” — not “http://”. Browsers mark HTTP sites as “Not Secure,” which is an automatic trust killer for a healthcare provider. Most hosting providers include free SSL certificates. If yours does not, Let’s Encrypt provides them at no cost.

SSL/HTTPS Setup Verification

  • Verify the certificate is active: Visit your site in Chrome and click the padlock icon in the address bar. It should say “Connection is secure.” If it says “Not secure” or shows a warning, your SSL is not properly installed.
  • Check for mixed content warnings: An HTTPS page loading HTTP resources (images, scripts, stylesheets) triggers security warnings. Use Why No Padlock (whynopadlock.com) to scan for mixed content. Fix any HTTP references found.
  • Redirect HTTP to HTTPS: Anyone visiting http://yoursite.com should be automatically redirected to https://yoursite.com. This can be configured in your hosting control panel, via a plugin like Really Simple SSL, or by adding rewrite rules to your .htaccess file.
  • Renew automatically: Let’s Encrypt certificates expire every 90 days. Most hosting providers auto-renew. Verify by checking the certificate expiry date in Chrome’s security panel. Set a calendar reminder if your provider does not offer auto-renewal.
  • Check HSTS headers: HTTP Strict Transport Security (HSTS) tells browsers to always use HTTPS for your site. Add the header Strict-Transport-Security: max-age=31536000 via your server configuration or a security plugin. This prevents downgrade attacks where an attacker forces HTTP.

4. Schema Markup Implementation Guide

Schema markup is structured data that tells search engines exactly what your content means. I should be honest — schema alone will not rocket you to the top of rankings. But combined with good content and proper technical foundations, it definitely helps, especially with AI search visibility. Schema is still underused across the healthcare sector, so implementing it can help you stand out from many competitors.

Schema markup is also the single most impactful thing you can do for AI search visibility. Language models extract structured data more reliably than unstructured text. For a full breakdown of how AI search platforms use schema, see our AI Search and SEO for Therapists guide.

Essential schema types for therapists: MedicalBusiness (homepage), Person (about page with credentials), Service (each service page), FAQ (FAQ pages and service page Q&As), Article (blog posts), and AggregateRating (review ratings).

MedicalBusiness Schema — Code Example

Place this JSON-LD on your homepage. Replace bracketed values with your practice information.

{
  "@context": "https://schema.org",
  "@type": "MedicalBusiness",
  "name": "Austin Anxiety Center",
  "description": "Evidence-based anxiety and trauma therapy in Austin, TX. Licensed therapists specializing in CBT, EMDR, and somatic therapy.",
  "url": "https://austinanxietycenter.com",
  "telephone": "+15125550123",
  "email": "info@austinanxietycenter.com",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main Street, Suite 200",
    "addressLocality": "Austin",
    "addressRegion": "TX",
    "postalCode": "78701",
    "addressCountry": "US"
  },
  "medicalSpecialty": "Psychiatry",
  "knowsAbout": [
    "Anxiety therapy",
    "Trauma therapy",
    "EMDR therapy",
    "Cognitive Behavioral Therapy",
    "Depression treatment"
  ],
  "founder": {
    "@type": "Person",
    "name": "Dr. Sarah Miller",
    "honorificSuffix": "PhD",
    "jobTitle": "Clinical Psychologist"
  },
  "priceRange": "$$",
  "openingHours": [
    "Mo 09:00-17:00",
    "Tu 09:00-19:00",
    "We 09:00-17:00",
    "Th 09:00-19:00",
    "Fr 09:00-15:00"
  ],
  "sameAs": [
    "https://www.google.com/maps?cid=...",
    "https://www.psychologytoday.com/..."
  ]
}

Person Schema for Clinicians — Code Example

Place this on each clinician’s about or profile page. The identifier field with license number can help AI systems and search engines understand your credentials in a structured format. (Note: there is no confirmed mechanism where AI systems like Claude or Perplexity perform real-time license verification via schema data — structured data helps with general entity understanding, not credential validation.)

{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Dr. Sarah Miller",
  "honorificSuffix": "PhD",
  "jobTitle": "Clinical Psychologist",
  "description": "Licensed clinical psychologist specializing in trauma and anxiety treatment using EMDR and CBT.",
  "identifier": {
    "@type": "PropertyValue",
    "propertyID": "license",
    "value": "TX-12345"
  },
  "knowsAbout": [
    "Trauma therapy",
    "EMDR",
    "Cognitive Behavioral Therapy",
    "Anxiety disorders"
  ],
  "alumniOf": "University of Texas at Austin",
  "affiliation": {
    "@type": "Organization",
    "name": "American Psychological Association"
  },
  "worksFor": {
    "@type": "MedicalBusiness",
    "name": "Austin Anxiety Center"
  },
  "knowsLanguage": ["English", "Spanish"],
  "image": "https://austinanxietycenter.com/wp-content/uploads/dr-miller-headshot.jpg"
}

Service Schema — Code Example

Place this on each service page, customized for that specific treatment.

{
  "@context": "https://schema.org",
  "@type": "Service",
  "name": "EMDR Therapy in Austin, TX",
  "description": "Eye Movement Desensitization and Reprocessing (EMDR) therapy for trauma and PTSD. Evidence-based treatment for adults in Austin, Texas.",
  "provider": {
    "@type": "MedicalBusiness",
    "name": "Austin Anxiety Center"
  },
  "areaServed": {
    "@type": "City",
    "name": "Austin"
  },
  "serviceType": "EMDR Therapy",
  "audience": {
    "@type": "Audience",
    "audienceType": "Adults experiencing trauma or PTSD"
  },
  "offers": {
    "@type": "Offer",
    "price": "150",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}

FAQ Schema — Code Example for Homepage or Service Page

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "How long does EMDR therapy take?",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "EMDR therapy typically requires 6-12 sessions for single-trauma treatment. Complex trauma may require 12-20 sessions. Your therapist will assess your specific needs during the initial consultation."
    }
  },
  {
    "@type": "Question",
    "name": "Does insurance cover EMDR therapy?",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "Many major insurance plans including BCBS, Aetna, and Cigna cover EMDR therapy when provided by a licensed therapist. Contact our office and we will verify your specific coverage."
    }
  }]
}

Schema Testing and Validation

Never deploy schema without testing. Errors in schema markup are treated as though the schema does not exist. Test every schema implementation in these tools:

  • Google Rich Results Test — Validates schema, shows preview, and flags errors. Run every page through this.
  • Schema.org Validator — More thorough validation. Tests for omitted required fields, incorrect data types, and formatting issues.
  • Google Search Console — The “Enhancements” section reports schema errors found during Google’s crawl. Check this monthly.
  • Ahrefs Webmaster Tools — Free structured data audit that flags schema issues across your entire site.

5. Robots.txt Configuration for AI Crawler Access

Developer configuring AI crawler access in robots.txt
In 2026, your robots.txt must explicitly allow AI crawlers. Many WordPress configurations block them by default.

Your robots.txt file tells search engine crawlers which parts of your site they can access. In 2026, this file needs to explicitly allow AI search crawlers: GPTBot (ChatGPT), ChatGPT-User, ClaudeBot, and PerplexityBot. Many default WordPress configurations either block these crawlers or do not address them. If your robots.txt does not explicitly allow them, AI engines may not index your site.

Complete robots.txt for a therapy website:

User-agent: GPTBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Googlebot
Allow: /

User-agent: Bingbot
Allow: /

User-agent: Applebot
Allow: /

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-json/
Disallow: /feed/
Disallow: /trackback/
Disallow: /cgi-bin/
Disallow: /?s=
Disallow: /page/

Sitemap: https://yoursite.com/sitemap_index.xml

Important implementation notes:

  • The order of user-agent directives matters in some crawler implementations. List the most permissive AI crawlers first, then Googlebot/Bingbot, then the catch-all User-agent: * block last. Crawlers match the most specific applicable rule.
  • Do not block /wp-json/ for the AI crawlers — they may need access to structured REST endpoint data. The catch-all block for /wp-json/ applies only to unknown crawlers.
  • After updating robots.txt, verify it loads at yourdomain.com/robots.txt. Use Google Search Console’s robots.txt tester to confirm the rules are read correctly.
  • If you use a security plugin (Wordfence, Sucuri, iThemes), check its firewall settings. Many security plugins block unknown user agents at the server level before robots.txt is even checked. You may need to whitelist GPTBot, ClaudeBot, and PerplexityBot in the security plugin’s settings as well.

6. XML Sitemap and Indexation

Your sitemap tells Google which pages exist on your site. Submit it through Google Search Console and Bing Webmaster Tools. Verify that Google has indexed all your important pages and that no junk pages — tag archives, author pages, attachment pages — are wasting your crawl budget. Most WordPress SEO plugins generate a sitemap automatically; the task is verifying it is correct and submitted.

XML Sitemap Optimization for Multi-Service Therapy Sites

If you have multiple services, multiple locations, or multiple clinician profiles, your sitemap strategy matters:

  • Prioritize important pages. Most SEO plugins allow you to set priority levels. Set your homepage to 1.0, service pages to 0.8, location pages to 0.8, blog posts to 0.5, and tag/category archives to 0.0 (exclude them entirely if possible).
  • Set update frequencies. Homepage: weekly. Service pages: monthly. Blog posts: when updated. Clinician profiles: monthly. Tag and category archives: exclude — they duplicate content from actual pages.
  • Create separate sitemap indexes if you have 50+ pages. WordPress SEO plugins like Yoast and Rank Math generate separate sitemaps for posts, pages, and categories automatically. If your therapy site has 20+ service pages, 10 clinician profiles, 5 location pages, and 30 blog posts, the page sitemap should be separate from the post sitemap for efficient crawling.
  • Exclude thin content from sitemaps. Pages under 300 words, tag archives, author archives (unless each author is a clinician with unique content), and attachment pages. These waste crawl budget and dilute important pages.

Crawl Budget Optimization

Crawl budget is the number of pages Googlebot will crawl on your site within a given time frame. For most therapy websites (under 100 pages), crawl budget is not a constraint — Google can easily crawl every page. But if your WordPress site generates hundreds of archive, attachment, and tag pages, Google may spend its crawl budget on those instead of your important service pages.

  • Set tag and category archives to “noindex” in your SEO plugin settings.
  • Set author archives to “noindex” unless each author has unique clinical content.
  • Set date-based archives to “noindex” — nobody searches “June 2025 blog posts.”
  • Set attachment pages to “noindex” or disable them entirely.
  • Use “nofollow” on login pages, internal search results, and paginated archives.
  • Review your indexed pages in Google Search Console. The “Pages” report shows every URL Google has indexed. If you see 500 indexed pages on a site with 30 actual pages, set the junk pages to “noindex” immediately.

7. Site Architecture for Therapy Practices

Your site structure determines how authority flows between pages and how easily users find what they need. A well-architected therapy site has a flat hierarchy: any page should be reachable within 3 clicks from the homepage.

Ideal site architecture:
Homepage → Services → [Anxiety, Depression, Trauma, Couples] (each a separate page)
Homepage → About → [Clinician profiles, Philosophy, FAQ]
Homepage → Blog → [Category pages] → [Individual posts]
Homepage → Locations → [City 1, City 2]
Homepage → Contact → [Contact form, Insurance info, Booking]

Architecture mistakes to avoid:
– All content in one long homepage (no page hierarchy, poor internal linking)
– Services as dropdown-only with no parent page (search engines cannot crawl dropdown content reliably)
– Blog posts with no category structure (orphaned content with no authority pathway)
– Clinician profiles buried under three navigation levels (hard to find, hard to rank)
– Contact information only on the contact page (should also be on homepage and footer)

8. 404 Handling and Redirect Strategy

Broken links lose ranking authority and create bad user experiences. Every 404 on your site is a leak in your SEO foundation.

  • Set up a custom 404 page. A generic server 404 is a dead end. A custom 404 page with navigation links, a search bar, and your contact information keeps visitors on your site.
  • Audit for broken links monthly. Use a free tool like Broken Link Checker or Dr. Link Check to scan your entire site. Fix every broken internal link. For broken external links (links to other sites that no longer exist), either remove them or replace with updated sources.
  • Implement 301 redirects for deleted pages. If you delete a page, redirect its URL to the most relevant remaining page. A deleted EMDR page should redirect to your trauma therapy page, not your homepage.
  • Use 301 (permanent) not 302 (temporary) for permanent moves. Only 301 redirects pass ranking authority to the new URL.
  • Check redirect chains. Page A redirects to Page B which redirects to Page C. Each redirect adds load time and loses some ranking authority. Eliminate redirect chains — every redirect should go directly to the final URL.

9. Technical SEO Tools for Therapist Websites

You do not need expensive enterprise tools. These free and low-cost tools cover everything a therapy practice needs:

Tool Cost What It Does
Google PageSpeed Insights Free Core Web Vitals measurement and optimization recommendations
Google Search Console Free Indexing status, crawl errors, search performance, schema errors
Google Mobile-Friendly Test Free Mobile responsiveness validation
Google Rich Results Test Free Schema markup validation and preview
Ahrefs Webmaster Tools Free Site audit, backlink profile, keyword rankings, structured data audit
Screaming Frog SEO Spider Free for 500 URLs Site crawl: finds broken links, duplicate content, missing meta tags
Why No Padlock Free Mixed content detection on HTTPS sites
WPScan Free WordPress security vulnerability scanner
Cloudflare Free tier CDN, DDoS protection, SSL management
ShortPixel / Imagify Free tier Image compression and WebP conversion
WP Rocket / Flying Press Paid ($49-79/yr) WordPress caching and performance optimization
Rank Math / Yoast Free tier SEO meta management, sitemap generation, schema integration

Technical SEO Checklist

Print this checklist. Run through it quarterly. Every item that does not pass is a ranking opportunity your competitors are not exploiting.

  • □ Test page speed — target 90+ mobile score (PageSpeed Insights)
  • □ LCP under 2.5 seconds
  • □ CLS under 0.1
  • □ Verify HTTPS certificate is active and auto-renewing
  • □ No mixed content warnings
  • □ HTTP automatically redirects to HTTPS
  • □ Confirm mobile responsiveness on actual phone
  • □ Viewport meta tag set correctly
  • □ Body text readable without zooming on mobile
  • □ Implement MedicalBusiness schema on homepage — validated
  • □ Implement Person schema with license on each clinician page
  • □ Implement Service schema on each service page
  • □ Implement FAQ schema on pages with Q&A content
  • □ Update robots.txt to allow all AI crawlers
  • □ Whitelist AI crawlers in security plugin settings
  • □ Submit XML sitemap to Google Search Console
  • □ Set tag/category/author archives to noindex
  • □ Check for broken links and fix or redirect
  • □ Set up custom 404 page
  • □ Compress and convert all images to WebP
  • □ Remove unused plugins
  • □ Set up Google Search Console monitoring
  • □ Review indexed pages — fix any junk pages taking crawl budget
  • □ Implement lazy loading for images below the fold
  • □ Minimize render-blocking JavaScript and CSS

These are not optional for a healthcare website in 2026. Google’s YMYL (Your Money or Your Life) classification holds therapy websites to a higher technical standard. Meeting that standard creates an immediate ranking advantage over practices that have ignored technical SEO entirely.

Start with the quick wins: image compression (30 minutes), robots.txt update (5 minutes), and schema implementation (1-2 hours per page). These three items alone will move you ahead of 80% of therapy websites. Everything else is incremental improvement on top of that foundation.

Previous Article

Local SEO Strategies for Therapists: How to Rank in Your City

Next Article

On-Page SEO for Therapists: Title Tags, Meta Descriptions, and Content Structure

Write a Comment

Leave a Comment

Your email address will not be published. Required fields are marked *

Subscribe to our Newsletter

Subscribe to our email newsletter to get the latest posts delivered right to your email.
Pure inspiration, zero spam ✨