GHL WordPress Setup Procedures
Purpose
This document provides step-by-step procedures for setting up and configuring WordPress hosting on the GoHighLevel platform. These are the procedural instructions referenced by the WordPress + GoHighLevel Developer Guide.
Document Relationship:
- Developer Guide: Explains WHY (architecture, strategy, design patterns)
- Setup Procedures: 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:
- Navigate to Agency View > Sub-Accounts
- Select the target sub-account
- Toggle the "Offer WordPress" option to make the WordPress menu available
- The WordPress option will now appear under Sites > WordPress
Step 2: Purchase WordPress Plan
- Go to Agency View > Reselling > WordPress
- Select appropriate plan for client needs
- Configure pricing markup if reselling to clients
- Complete purchase to activate hosting
Procedure 2: Creating a New WordPress Site
Step 1: Initial Site Setup
-
Navigate to Sites > WordPress and click "+ Create Site"
-
Configure Site Details:
- Site name and description
- Administrator username and password
- Administrator email address
- Select "I want to create a new website"
-
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:
- In WordPress dashboard, click "Add Domain"
- Enter desired domain name
- 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
Method 1: Automatic Setup (Recommended)
Supported Providers: Google Domains, GoDaddy, Cloudflare, IONOS
-
In GHL WordPress Dashboard:
- Enter domain name
- Click "Configure Domain" if available
- System detects DNS provider automatically
-
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.
-
Get DNS Records from GHL:
- WordPress dashboard will display required records
- Note the CNAME and A record values
- Copy TXT records for SSL verification
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
Install Migration Plugin:
- In new WordPress instance, install All-in-One WP Migration
- Activate the plugin
-
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)
-
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
-
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: 600For root domain:
Type: A
Name: @ (or leave blank)
Value: [IP address provided by GHL]
TTL: 600For SSL certificate:
Type: TXT
Name: [provided by GHL]
Value: [verification string provided by GHL]
TTL: 600 -
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)
-
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
-
Functionality Testing:
- Test all pages load correctly
- Verify forms submit properly
- Check embedded media displays
- Test mobile responsiveness
- Confirm admin panel access
-
Performance Testing:
- Check page load speeds
- Verify CDN is active
- Test from multiple geographic locations
-
SEO Validation:
- Verify site is accessible to search engines
- Check robots.txt file
- Confirm XML sitemap is accessible
- Validate structured data/schema markup
-
Integration Testing:
- Test LeadConnector plugin functionality
- Verify GHL forms work correctly
- Check chat widget loads properly
- Confirm calendar embeds function
-
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
Install Standard Plugin Stack
Required Plugins:
-
Elementor (free version)
- Install from WordPress plugin repository
- Activate plugin
-
Elementor Pro
- Upload and install Elementor Pro zip file
- Activate with agency license key
- Configure global settings
-
SearchAtlas SEO Plugin
- Install from WordPress plugin repository
- Activate plugin
- Connect to SearchAtlas account
- Configure OTTO Pixel
-
LeadConnector
- Install from WordPress plugin repository
- Activate plugin
- Connect to GHL sub-account
- Configure chat widget settings
-
Hello Elementor Theme
- Install from WordPress theme repository
- Activate as site theme
Configure Elementor Global Settings
-
Global Colors:
- Navigate to Elementor > Settings > Style
- Add client brand colors
- Label each color clearly
- Save settings
-
Global Fonts:
- Configure primary and secondary fonts
- Set default font weights
- Configure heading and body text styles
-
Page Settings:
- Set default page width
- Configure container padding
- Set mobile breakpoints if needed
Configure SearchAtlas OTTO
-
Install OTTO Pixel:
- Copy OTTO pixel code from SearchAtlas dashboard
- In WordPress, navigate to SearchAtlas > Settings
- Paste pixel code
- Verify pixel is firing
-
Connect Google Search Console:
- Link GSC account in SearchAtlas dashboard
- Verify site ownership
- Allow data import
-
Configure Automation Settings:
- Set auto-implementation preferences
- Configure notification settings
- Review initial SEO audit
Configure LeadConnector
-
Connect GHL Account:
- Navigate to LeadConnector > Settings
- Authorize connection to GHL sub-account
- Verify connection successful
-
Configure Chat Widget:
- Select default chat widget
- Set display rules (all pages, specific pages, etc.)
- Configure widget position and style
- Test widget loads correctly
-
Form Integration:
- Verify forms from GHL are accessible
- Test form embedding methods
- Confirm form submissions route to CRM
Procedure 6: Additional Domain Management
Adding Additional Domains
- 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
-
In WordPress Dashboard:
- Navigate to domain management
- Select new primary domain from list
- Confirm domain change
- Update WordPress URL settings if needed
-
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:
- Obtain SSL certificate from provider
- Contact GHL support to install custom certificate
- Provide certificate, private key, and chain files
Procedure 7: Backup and Restore
Manual Backup Creation
- In WordPress Dashboard:
- Navigate to backup section
- Click "Create Manual Backup"
- Add backup description/label
- Confirm backup creation
- Wait for backup completion
Backup Download
- Access Backup List:
- Navigate to backup management
- Locate desired backup
- Click "Download"
- Save backup file locally
Backup Restoration
- 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
-
In GHL WordPress Dashboard:
- Navigate to advanced settings
- Click "phpMyAdmin Access"
- System opens phpMyAdmin interface
- Log in with provided credentials
-
Database Operations:
- Select WordPress database
- Execute queries carefully
- Always backup before database modifications
- Document all changes made
FTP Access Configuration
-
Request FTP Credentials:
- Contact GHL support for FTP access
- Receive FTP host, username, and password
- Note: FTP may not be available on all plans
-
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) orsudo 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
- GHL WordPress documentation: https://help.gohighlevel.com
- WordPress codex: https://wordpress.org/support/
- Elementor documentation: https://elementor.com/help/
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: 2025-10-02
Version: 2.0 (Renamed and expanded from sc-ghl-wordpress-config.md)