Skip to main content

Active

GHL WordPress Setup Procedures

Purpose

This document provides step-by-step procedures for setting up and configuring WordPress hosting on the GoHighLevel platform.

Document Relationship:

  • SC WordPress Stack Standard: Defines WHAT (approved components, prohibited plugins, approval process)
  • Integration Guide: Explains WHY (architecture, strategy, design patterns)
  • Setup Procedures (this doc): Explains HOW (step-by-step configuration)

Prerequisites

Required Access

  • Active GoHighLevel Agency account
  • WordPress hosting plan purchased through GHL
  • Domain ownership or ability to modify DNS settings
  • Access to client sub-account (if setting up for client)

Important Notes

  • WordPress hosting plans are in addition to the HighLevel plan (e.g., HighLevel Starter $97/mo + WordPress Standard $10/mo = $107/mo)
  • Setup includes domain DNS configuration which can take up to 48 hours to propagate

WordPress Hosting Plans Overview

Key Features Included

  • Global CDN network for fast loading times
  • Automatic daily backups at 05:00 AM CST
  • Manual backup capability
  • WordPress debugging tools and PHP error access
  • phpMyAdmin database management
  • FTP access available

Procedure 1: Enabling WordPress for Sub-Accounts

Step 1: Enable WordPress Feature

WordPress is hidden from all clients by default and must be enabled:

  1. Navigate to Agency View > Sub-Accounts
  2. Select the target sub-account
  3. Toggle the "Offer WordPress" option to make the WordPress menu available
  4. The WordPress option will now appear under Sites > WordPress

Step 2: Purchase WordPress Plan

  1. Go to Agency View > Reselling > WordPress
  2. Select appropriate plan for client needs
  3. Configure pricing markup if reselling to clients
  4. Complete purchase to activate hosting

Procedure 2: Creating a New WordPress Site

Step 1: Initial Site Setup

  1. Navigate to Sites > WordPress and click "+ Create Site"

  2. Configure Site Details:

    • Site name and description
    • Administrator username and password
    • Administrator email address
    • Select "I want to create a new website"
  3. Installation Process:

    • Installation takes a few minutes to complete
    • System will provision WordPress instance
    • You'll receive access to WordPress dashboard

Step 2: Domain Configuration

For New Domain Setup:

  1. In WordPress dashboard, click "Add Domain"
  2. Enter desired domain name
  3. System will verify if domain is available and not associated with another location

DNS Configuration Required:

  • For subdomain (blog.domain.com): Add CNAME record pointing to provided value
  • For root domain (domain.com): Add A record pointing to provided IP address

Procedure 3: Domain Setup and DNS Configuration

Supported Providers: Google Domains, GoDaddy, Cloudflare, IONOS

  1. In GHL WordPress Dashboard:

    • Enter domain name
    • Click "Configure Domain" if available
    • System detects DNS provider automatically
  2. Authorization Process:

    • Click "Authorize Domain" when prompted
    • Login to DNS provider (in new tab)
    • Follow authorization prompts
    • Close provider tab after authorization
    • Return to GHL to complete verification

Method 2: Manual DNS Setup

For Other Providers: Namecheap, Bluehost, etc.

  1. Get DNS Records from GHL:

    • WordPress dashboard will display required records
    • Note the CNAME and A record values
    • Copy TXT records for SSL verification
  2. Add Records to DNS Provider:

    For Subdomain (www.domain.com or blog.domain.com):

    Type: CNAME
    Name: www (or subdomain prefix)
    Value: [provided value like wp1.msgsndr.com]
    TTL: 600 (or lowest available)

    For Root Domain (domain.com):

    Type: A
    Name: @ (or leave blank)
    Value: [provided IP address]
    TTL: 600 (or lowest available)

    For SSL Certificate:

    Type: TXT
    Name: [provided name]
    Value: [provided verification string]
    TTL: 600 (or lowest available)

Critical DNS Settings

  • For Cloudflare users: Set proxy status to "DNS Only" (gray cloud icon)
  • Configure TTL to 600ms or lowest possible for optimal propagation
  • Ensure no duplicate A records exist for the same domain

Verification Process

  1. In WordPress Dashboard:

    • Click "Verify DNS Records"
    • Monitor status using 'Verified/Not Verified' tags
    • Check SSL certificate status with 'SSL Issued/SSL Not Issued' tags
  2. Propagation Timeline:

    • Most DNS updates activate within an hour
    • Global propagation can take up to 48 hours
    • Use tools like https://dnschecker.org/ to verify propagation status

Procedure 4: Migrating Existing WordPress Sites

Overview

Migrating an existing WordPress site to GHL hosting requires a two-stage DNS process to verify domain ownership while keeping the current site live during migration.

Step 1: Prepare Migration

  1. In Sites > WordPress:

    • Select "I want to move my existing website over"
    • System provides a randomly generated verification CNAME
    • Note this verification subdomain and target value
  2. Backup Current Site:

    • Install All-in-One WP Migration plugin on existing site
    • Navigate to All-in-One WP Migration > Export
    • Select "Export To > File"
    • Download backup file to local computer
    • Keep backup file accessible for later upload

Step 2: Domain Verification (Stage 1)

Purpose: Verify domain ownership without affecting live site

  1. Create Verification DNS Record:

    • Log into your DNS provider
    • Add new CNAME record with values from GHL:
      Type: CNAME
      Name: [provided verification subdomain, e.g., verify-abc123]
      Value: [provided target, e.g., verify.msgsndr.com]
      TTL: 600
  2. Verify in GHL:

    • Return to GHL WordPress setup
    • Click "Verify Domain Ownership"
    • Wait for verification confirmation
    • Do not proceed until verification succeeds

Step 3: Site Migration

  1. Access New WordPress Instance:

    • After verification, GHL provisions your WordPress instance
    • Access via provided temporary URL or wp-admin
    • Log in with credentials created during setup
  2. Install Migration Plugin:

    • In new WordPress instance, install All-in-One WP Migration
    • Activate the plugin
  3. Import Backup:

    • Navigate to All-in-One WP Migration > Import
    • Click "Import From > File"
    • Upload backup file from Step 1
    • Confirm import and wait for completion
    • Plugin will restore entire site (content, plugins, themes, settings)
  4. Update URLs:

    • Navigate to Settings > General
    • Update "WordPress Address (URL)" to your final domain
    • Update "Site Address (URL)" to your final domain
    • Save changes

Step 4: DNS Cutover (Stage 2)

Purpose: Point production domain to new GHL WordPress instance

Important: Only proceed when site is fully migrated and tested on temporary URL

  1. Update DNS Records:

    • Log into DNS provider
    • Modify or add production domain records:

    For www subdomain:

    Type: CNAME
    Name: www
    Value: [provided by GHL, e.g., wp1.msgsndr.com]
    TTL: 600

    For root domain:

    Type: A
    Name: @ (or leave blank)
    Value: [IP address provided by GHL]
    TTL: 600

    For SSL certificate:

    Type: TXT
    Name: [provided by GHL]
    Value: [verification string provided by GHL]
    TTL: 600
  2. Remove Old Records:

    • Delete or disable old A/CNAME records pointing to previous host
    • Keep only the new GHL-pointing records
    • For Cloudflare: Ensure proxy is OFF (gray cloud)
  3. Verify Propagation:

    • Use https://dnschecker.org/ to monitor DNS propagation
    • Check that domain resolves to new GHL IP
    • Test site access at production URL
    • Verify SSL certificate issues successfully

Step 5: Post-Migration Validation

  1. Functionality Testing:

    • Test all pages load correctly
    • Verify forms submit properly
    • Check embedded media displays
    • Test mobile responsiveness
    • Confirm admin panel access
  2. Performance Testing:

    • Check page load speeds
    • Verify CDN is active
    • Test from multiple geographic locations
  3. SEO Validation:

    • Verify site is accessible to search engines
    • Check robots.txt file
    • Confirm XML sitemap is accessible
    • Validate structured data/schema markup
  4. Integration Testing:

    • Test LeadConnector plugin functionality
    • Verify GHL forms work correctly
    • Check chat widget loads properly
    • Confirm calendar embeds function
  5. Backup Verification:

    • Confirm GHL automatic backups are running
    • Create manual backup of successfully migrated site
    • Document backup restoration process if needed

Procedure 5: Post-Setup Configuration

The standard plugin and theme stack is defined in the SC WordPress Stack Standard. This procedure covers installation and initial configuration of each component.

5.1 Install and Configure Astra Theme

  1. Install Astra:

    • Navigate to Appearance > Themes > Add New
    • Search "Astra" and click Install, then Activate
  2. Configure via WordPress Customizer:

    • Open Appearance > Customize
    • Site Identity: Upload client logo (recommended: SVG or transparent PNG, max 200px height) and favicon (512x512 PNG)
    • Colors: Set primary brand color (links, buttons), heading color, body text color, site background
    • Typography: Configure primary font (headings) and secondary font (body text). Set base font size to 16px minimum.
    • Layout: Select page layout (full-width recommended for Elementor sites), set container width (1200px default)
    • Header: Configure header layout, logo position, and menu style. Set transparent header if needed for hero sections.
    • Footer: Configure footer layout, copyright text, and widget areas
    • Click Publish to save all changes
  3. Import Starter Template (optional):

    • Navigate to Appearance > Starter Templates
    • Select Elementor as page builder
    • Browse templates by industry or style
    • Import selected template, then customize for client brand

5.2 Install and Configure Elementor + Elementor Pro

  1. Install Elementor Free:

    • Navigate to Plugins > Add New
    • Search "Elementor" and click Install, then Activate
  2. Install Elementor Pro:

    • Navigate to Plugins > Add New > Upload Plugin
    • Upload the Elementor Pro zip file (from agency license dashboard)
    • Click Install Now, then Activate
    • Enter the agency license key when prompted
  3. Disable Default Colors and Fonts:

    • Navigate to Elementor > Settings > General
    • Check "Disable Default Colors"
    • Check "Disable Default Fonts"
    • This forces Elementor to use the global design system instead of its own defaults
  4. Configure Global Design System:

    • Open any page with Elementor editor
    • Click the hamburger menu (top-left) > Site Settings
    • Global Colors: Define 6-8 colors matching client brand. Name functionally (e.g., "Primary", "Accent", "Text") not descriptively (e.g., "Blue").
    • Global Fonts: Configure primary font (headings) and secondary font (body). Set heading hierarchy (H1: 32-48px, H2: 24-32px, H3: 20-24px, Body: 16-18px).
    • Theme Style > Buttons: Set default button colors, border radius, padding (44px minimum touch target)
    • Save all settings
  5. Enable Performance Features:

    • Navigate to Elementor > Settings > Features
    • Enable Improved CSS Loading
    • Enable Optimized DOM Output

5.3 Install and Configure SearchAtlas OTTO

  1. Install SearchAtlas Plugin:

    • Navigate to Plugins > Add New
    • Search "SearchAtlas" and click Install, then Activate
  2. Install OTTO Pixel:

    • Log in to SearchAtlas dashboard (searchatlas.com)
    • Navigate to OTTO > Pixel Installation
    • Copy the OTTO pixel code (JavaScript snippet)
    • In WordPress, navigate to SearchAtlas > Settings
    • Paste the pixel code and save
    • Verify pixel is firing: open browser console on the frontend, confirm no JavaScript errors from the pixel
  3. Connect Google Search Console:

    • In SearchAtlas dashboard, navigate to Settings > Integrations
    • Click Connect Google Search Console
    • Authorize the Google account that owns the site's GSC property
    • Select the correct property and allow data import
    • Verify site ownership shows as confirmed
  4. Configure Automation Settings:

    • In SearchAtlas dashboard, navigate to OTTO > Settings
    • Set auto-implementation to ON for technical fixes (broken links, canonical tags, schema)
    • Set content changes (title tags, meta descriptions) to Recommend (requires human approval)
    • Configure notification settings (email alerts for critical issues)
    • Review the initial SEO audit and address any critical findings

5.4 Install and Configure LeadConnector

  1. Install LeadConnector Plugin:

    • Navigate to Plugins > Add New
    • Search "LeadConnector" and click Install, then Activate
  2. Authorize GHL Sub-Account:

    • Navigate to LeadConnector > Settings
    • Click Authorize and log in to the GHL account
    • Select the correct sub-account from the dropdown
    • Verify connection shows as "Connected" with the correct location name
  3. Configure Webchat Widget:

    • Navigate to LeadConnector > Chat Widget
    • Select the default chat widget configured in the GHL sub-account
    • Set display rules: all pages (default) or specific pages as needed
    • Configure widget position (bottom-right default) and style to match brand
    • Test: Visit the frontend, confirm widget appears, send a test message, verify it routes to GHL Conversations inbox
  4. Verify Form Integration:

    • Navigate to LeadConnector > Forms
    • Confirm GHL forms from the sub-account appear in the dropdown
    • Test embedding a form on a page using the Elementor LeadConnector widget or shortcode [ghl_form id="FORM_ID"]
    • Submit a test form entry and confirm it appears in GHL CRM with correct pipeline routing

5.5 Post-Configuration Verification

After all components are installed, run through this checklist:

  • Astra theme active with client branding (logo, colors, fonts)
  • Elementor Pro license activated and connected
  • Global design system configured (colors, fonts, button styles)
  • SearchAtlas OTTO pixel firing (check browser console)
  • Google Search Console connected in SearchAtlas
  • LeadConnector connected to correct GHL sub-account
  • Chat widget visible on frontend and routing messages to GHL
  • At least one test form submission successfully reaches GHL CRM
  • Site loads in under 3 seconds (test with Google PageSpeed Insights)
  • Mobile responsive -- test at 320px, 768px, and 1024px breakpoints

Procedure 6: Additional Domain Management

Adding Additional Domains

  1. In WordPress Dashboard:
    • Navigate to domain management section
    • Click "Add Domain"
    • Enter additional domain name
    • Follow DNS configuration process (see Procedure 3)

Changing Primary Domain

  1. In WordPress Dashboard:

    • Navigate to domain management
    • Select new primary domain from list
    • Confirm domain change
    • Update WordPress URL settings if needed
  2. Update Settings:

    • Navigate to Settings > General
    • Verify WordPress Address and Site Address match new primary domain
    • Save changes

SSL Certificate Management

Automatic SSL:

  • GHL automatically provisions Let's Encrypt SSL certificates
  • Certificates auto-renew before expiration
  • Monitor SSL status in WordPress dashboard

Manual SSL Certificate:

  1. Obtain SSL certificate from provider
  2. Contact GHL support to install custom certificate
  3. Provide certificate, private key, and chain files

Procedure 7: Backup and Restore

Manual Backup Creation

  1. In WordPress Dashboard:
    • Navigate to backup section
    • Click "Create Manual Backup"
    • Add backup description/label
    • Confirm backup creation
    • Wait for backup completion

Backup Download

  1. Access Backup List:
    • Navigate to backup management
    • Locate desired backup
    • Click "Download"
    • Save backup file locally

Backup Restoration

  1. In WordPress Dashboard:
    • Navigate to backup section
    • Locate backup to restore
    • Click "Restore"
    • Confirm restoration
    • Wait for process to complete
    • Verify site functionality after restoration

Procedure 8: Database and FTP Access

phpMyAdmin Access

  1. In GHL WordPress Dashboard:

    • Navigate to advanced settings
    • Click "phpMyAdmin Access"
    • System opens phpMyAdmin interface
    • Log in with provided credentials
  2. Database Operations:

    • Select WordPress database
    • Execute queries carefully
    • Always backup before database modifications
    • Document all changes made

FTP Access Configuration

  1. Request FTP Credentials:

    • Contact GHL support for FTP access
    • Receive FTP host, username, and password
    • Note: FTP may not be available on all plans
  2. Connect via FTP Client:

    • Use FileZilla or similar FTP client
    • Enter host, username, password
    • Connect to WordPress file system
    • Navigate to /wp-content/ for themes/plugins

Troubleshooting Common Issues

DNS Not Propagating

Symptoms: Domain not resolving to new site after 24+ hours

Solutions:

  • Verify DNS records exactly match GHL-provided values
  • Check for duplicate or conflicting records
  • For Cloudflare: Ensure proxy is OFF (gray cloud)
  • Clear local DNS cache: ipconfig /flushdns (Windows) or sudo dscacheutil -flushcache (Mac)
  • Test with multiple DNS checker tools

SSL Certificate Not Issuing

Symptoms: Site shows "Not Secure" or certificate error

Solutions:

  • Verify TXT record for SSL verification is present
  • Confirm DNS records are fully propagated
  • For Cloudflare: Disable "Always Use HTTPS" temporarily
  • Wait 24-48 hours for certificate issuance
  • Contact GHL support if issue persists beyond 48 hours

Migration Site Not Loading Correctly

Symptoms: After migration, site shows errors or missing content

Solutions:

  • Verify WordPress Address and Site Address are correct in Settings > General
  • Clear WordPress cache if caching plugin is active
  • Regenerate permalinks: Settings > Permalinks > Save Changes
  • Check file permissions are correct (755 for directories, 644 for files)
  • Review PHP error logs for specific error messages

Forms Not Submitting to GHL

Symptoms: Forms appear but submissions don't reach GHL CRM

Solutions:

  • Verify LeadConnector plugin is active and connected
  • Check form embed code is correct
  • Test form directly in GHL to isolate issue
  • Review browser console for JavaScript errors
  • Confirm GHL sub-account connection is valid

Support and Resources

GHL Support

  • WordPress hosting support: Available 24/7
  • Submit tickets through GHL support portal
  • Live chat available for urgent issues

Documentation

Internal Resources

  • WordPress + GHL Developer Guide (strategic/architectural reference)
  • Symphony Core documentation repository
  • #wordpress-support Slack channel

Document Maintenance

Review Schedule: Quarterly or when GHL updates WordPress hosting features

Update Triggers:

  • GHL WordPress hosting platform updates
  • DNS configuration process changes
  • New troubleshooting patterns identified
  • Support ticket trend analysis

Feedback: Submit suggestions to #documentation channel


Document Status: Active

Last Updated: 2026-02-28

Version: 3.0 (Enhanced Procedure 5 with detailed Astra/Elementor/SearchAtlas/LeadConnector configuration steps)