[Troubleshooting & Technical Issues] Performance and Optimisation

[Troubleshooting & Technical Issues] Performance Issues & Optimization

Performance Issues & Optimization

Link Whisper is designed to be lightweight and efficient, but certain operations—especially on large sites—can temporarily affect server performance. This comprehensive guide covers common performance issues, optimization strategies, and best practices for maintaining optimal speed.

Understanding Link Whisper's Performance Impact

Link Whisper's performance characteristics vary based on operation type and site size.

Normal Operations (Low Impact):

Viewing Link Suggestions:

When you open a post and view link suggestions:

Impact: Minimal - typically < 0.5 seconds additional load time

Why Low Impact: Suggestions are pre-generated and cached in the database

Adding Links (One-Click Insertion):

Impact: Negligible - instant insertion

Why: Simple database operation

Viewing Reports:

Impact: Low to Moderate

Small sites (< 500 posts): 1-3 seconds load time

Large sites (1,000-5,000 posts): 3-10 seconds load time

Very large sites (5,000+ posts): 10-30 seconds load time

Why: Queries database for link statistics

Resource-Intensive Operations (High Impact):

Manual Scans (Links, Broken Links):

Impact: Very High - can spike CPU and memory usage

Why: Crawls hundreds/thousands of URLs in real-time

Server Load: Can cause 503 errors on shared hosting

AI Processing (Initial Scan):

Impact: High - sustained resource usage over hours/days

Why: Analyzes all content, sends to AI, stores results

Server Load: Moderate to high, but background processing spreads load

Database Migrations (After Updates):

Impact: Moderate to High - temporary spike

Why: Updating database schema, migrating data

Duration: Usually < 5 minutes, but can be longer on massive sites

Visitor Impact:

Important distinction:

Link Whisper DOES NOT load on public-facing pages

Zero scripts added to visitor-facing content

No performance impact on page load speed for visitors

Only affects WordPress admin area and background processes

Visitors browsing your site experience no slowdown from Link Whisper.


Is Link Whisper Slowing Down Your Site?

If experiencing slowdowns, identifying the specific cause is essential.

Diagnostic Questions:

Q1: Is the slowdown in WordPress admin or public site?

Admin slowdown: Likely Link Whisper or another admin-side plugin

Public site slowdown: NOT Link Whisper (it doesn't load on frontend)

Q2: When does the slowdown occur?

When opening posts in editor: Possible (suggestions loading)

When viewing reports: Expected (database queries)

During AI processing: Expected (background processing)

All the time: Likely NOT Link Whisper (server/hosting issue)

Q3: Did slowdown start after specific action?

After activating Link Whisper: Possible correlation

After running manual scan: Likely cause

After enabling AI: Possible if still processing

Unrelated to Link Whisper actions: Probably different cause

Quick Test: Disable Link Whisper Temporarily

To confirm if Link Whisper is the cause:

Step 1: Disable Plugin

  1. Go to Plugins → Installed Plugins
  1. Deactivate Link Whisper
  1. Test site speed

Step 2: Evaluate

If speed improves dramatically:

Link Whisper (or something it's doing) is contributing.

Proceed to optimization steps below.

If speed remains slow:

Link Whisper is NOT the cause.

Look at:

  • Other plugins
  • Theme
  • Hosting resources
  • Database optimization needs

Common Causes of Performance Issues

Cause 1: Manual Scans During Peak Traffic

The Problem:

Running Manual Scans (Links, Broken Links) forces the server to:

  1. Crawl thousands of URLs in real-time
  1. Check each link for validity
  1. Update database with results
  1. Send hundreds of HTTP requests per minute

On shared hosting or during peak traffic, this can:

Spike CPU usage to 80-100%

Exhaust memory

Trigger rate limiting or security blocks

Cause "503 Service Unavailable" errors

Slow down or crash the site temporarily

The Solution:

Solution A: Use Automatic Background Scan Instead

Enable Background Scanning:

  1. Go to Link Whisper → Settings → General
  1. Find "Automatic Background Scan" option
  1. Enable it
  1. Set frequency to every 5 minutes (default)

How It Works:

Scans 10-20 links every 5 minutes using WordPress cron.

Benefits:

No performance spikes - gradual, low-resource scanning

Server-friendly - stays within resource limits

No 503 errors - doesn't trigger security/rate limiting

Automatic - runs in background without manual intervention

Trade-off:

⚠️ Slower - full site scan takes hours or days for large sites

But this is acceptable for ongoing monitoring (not emergency checks).

Solution B: Schedule Manual Scans During Off-Hours

If you must run manual scans:

Best Times:

🌙 Late night (2 AM - 6 AM in your timezone)

🌙 Low-traffic periods (check Google Analytics for slowest times)

🌙 Weekends (if B2B site)

Avoid:

Peak hours (typically 9 AM - 5 PM on weekdays)

During sales/promotions

Right before important deadlines


Cause 2: AI Processing on Large Sites

The Problem:

AI processing for large sites can:

Run for hours or days (e.g., 10,000 posts = 12-48 hours)

Consume sustained server resources

Slow down admin area during processing

Cause timeouts if server limits too low

The Solution:

Solution A: Use GPT-4o Mini Model

Switch from GPT-4o to GPT-4o Mini:

  1. Go to Link Whisper → Settings → AI Settings
  1. Find "Model" or "AI Model" dropdown
  1. Select "GPT-4o Mini"
  1. Save Changes

Performance Impact:

GPT-4o Mini is 10-12x faster than full GPT-4o

Example:

1,000 posts with GPT-4o: 6-12 hours processing

1,000 posts with GPT-4o Mini: 30-60 minutes processing

Quality Trade-off: Minimal (90-95% as accurate)

Credit Savings: 10-12x longer credit lifespan

Solution B: Process During Off-Hours

Schedule AI processing when traffic is lowest:

How:

  1. Start AI processing at 2 AM (or whenever traffic is lowest)
  1. Let it run overnight
  1. Check progress in morning

Why:

Reduces impact on visitors and other admin users.

Solution C: Increase Server Limits

Ensure adequate resources:

Contact hosting provider and request:

PHP Memory Limit: 512MB minimum (1GB for large sites)

Max Execution Time: 600 seconds minimum

See "Common PHP Errors & Solutions" article for full instructions.


Cause 3: Database Bloat from AI Data

The Problem:

Link Whisper stores AI-related data in your WordPress database:

Standard AI Data (Moderate Size):

For most sites: ~40-100MB additional database size

With "AI Powered Suggestions" Enabled (Large Size):

Stores sentence-level relevance scores.

For large sites: +200MB to +1GB additional database size

Impact:

Larger database backups (slower backup/restore)

Slightly slower queries (if database not optimized)

Storage limits exceeded (on budget hosting)

The Solution:

Solution A: Disable "AI Powered Suggestions" Feature

If you don't need sentence-level AI analysis:

  1. Go to Link Whisper → Settings → AI Settings
  1. Find "AI Powered Suggestions" toggle
  1. Disable it
  1. Save Changes

Result:

✔️ Deletes sentence-level data

✔️ Reduces database size by 50-80% (AI data)

✔️ Still keeps post-level AI relation data (main feature)

What You Lose:

⚠️ Slightly less precise suggestions (post-level vs. sentence-level)

Most users won't notice a difference.

Solution B: Optimize Database Regularly

Using WP-Optimize Plugin (Free):

  1. Install WP-Optimize plugin
  1. Go to WP-Optimize → Database
  1. Select:
    • Post revisions
    • Auto-drafts
    • Spam/Trash comments
    • Transient options
  1. Click "Run optimization"
  1. Schedule weekly auto-optimization

Result: Removes bloat, improves query speed.

Solution C: Use Domains Report to Bulk Delete Old Links

If you have thousands of old external links you no longer need:

  1. Go to Link Whisper → Reports → Domains
  1. Filter or search for domains to remove
  1. Select all (checkbox)
  1. Click "Delete Selected"
  1. Confirm deletion

Use Cases:

Old affiliate programs shut down

Competitor links you want to remove

Defunct sites (404s)

Site migrations (old domain to new)

Time Saved: Bulk delete hundreds of links in 30 seconds vs. hours manually.


Cause 4: Caching & Plugin Conflicts

The Problem:

Aggressive caching or security plugins can:

Block API calls needed for suggestions

Cache stale data (old reports, outdated suggestions)

Interfere with background processes

Trigger false alarms ("bot attack" detection)

Common Culprits:

⚠️ Cloudflare: Blocks rapid API requests as "bot"

⚠️ Wordfence: Rate limiting blocks scans

⚠️ iThemes Security: Restricts REST API access

⚠️ WP Rocket / W3 Total Cache: Caches admin pages (shouldn't, but sometimes does)

The Solution:

Solution A: Whitelist Link Whisper in Security Plugins

For Wordfence:

See full instructions in "Plugin Causing Site Errors? Emergency Fix Guide"

Quick Fix:

  1. Wordfence → Firewall → All Firewall Options
  1. Scroll to "Whitelisted URLs"
  1. Add: /wp-json/link-whisper/*
  1. Save

For Cloudflare:

  1. Cloudflare Dashboard → Security → WAF
  1. Create Firewall Rule:
    • When incoming requests match: URI Path contains wp-json/link-whisper
    • Then: Allow
  1. Deploy

For iThemes Security:

  1. Security → Settings → Configure Settings
  1. Navigate to "Ban Users"
  1. Whitelist your server IP

Solution B: Clear Object Cache

If changes don't appear in reports immediately:

For Redis/Memcached:

If using object caching:

  1. Install Redis Object Cache or Memcached Object Cache plugin (if not already)
  1. Go to plugin settings
  1. Click "Flush Object Cache" or "Clear Cache"

Alternative - Flush All Caches:

  1. WP Rocket → Clear Cache
  1. W3 Total Cache → Performance → Purge All Caches
  1. Cloudflare → Caching → Purge Everything

Result: Forces fresh data retrieval.

Solution C: Exclude Link Whisper from Caching

In WP Rocket:

  1. WP Rocket → Settings → Advanced Rules
  1. Find "Never Cache URL(s)"
  1. Add: /wp-admin/admin.php?page=link-whisper*
  1. Save

In W3 Total Cache:

  1. Performance → Page Cache
  1. Scroll to "Never cache the following pages"
  1. Add: wp-admin/admin.php?page=link-whisper*
  1. Save

Cause 5: WordPress Cron Not Running Properly

The Problem:

Link Whisper relies on WordPress Cron for:

Background scans (broken links, orphan posts)

AI processing (batch processing posts)

Auto-linking (applying rules automatically)

If cron isn't running, these processes stall or don't complete.

Why Cron Fails:

Low traffic site: WP-Cron requires visitor to trigger (if no visitors, no cron)

Cron disabled: Some hosts disable default WP-Cron

Server misconfiguration

The Solution:

Step 1: Check If Cron Is Running

Install WP Crontrol Plugin:

  1. Plugins → Add New
  1. Search "WP Crontrol"
  1. Install and activate

Check Scheduled Events:

  1. Tools → Cron Events
  1. Look for Link Whisper events (search for "link" or "whisper")
  1. Check "Next Run" times

If No Link Whisper Events:

Cron may be disabled or not triggering properly.

Step 2: Enable Real System Cron (Recommended for Large Sites)

Why Real Cron Is Better:

Runs reliably every minute (independent of traffic)

Doesn't slow page loads (WP-Cron runs on page load)

More accurate timing

Better for background processing

How to Set Up (cPanel):

Step 1: Disable Default WP-Cron

  1. Access site via FTP or File Manager
  1. Open wp-config.php
  1. Find: /* That's all, stop editing! Happy publishing. */
  1. Above that line, add:
define('DISABLE_WP_CRON', true);
  1. Save

Step 2: Create System Cron Job

  1. Log into cPanel
  1. Find "Cron Jobs" icon
  1. Click to open
  1. Under "Add New Cron Job":
    • Common Settings: Every minute ( *)
    • Command:
wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

(Replace yourdomain.com with your actual domain)

  1. Add Cron Job

Result: Cron runs every minute, ensuring Link Whisper background tasks execute reliably.

For Other Hosts:

Contact hosting support: "Please help me set up a system cron job to run wp-cron.php every minute."


Optimizing for Large Sites (1,000+ Posts)

Sites with massive content archives require specific optimization.

Expected Processing Times:

Initial Link Scan:

~1,000 posts: 10-15 minutes

~5,000 posts: 30-60 minutes

~10,000 posts: 60-120 minutes (1-2 hours)

~50,000 posts: 6-12 hours

AI Processing (GPT-4o Mini):

~1,000 posts: 30-60 minutes

~5,000 posts: 2-4 hours

~10,000 posts: 6-12 hours

~50,000 posts: 24-48 hours

Manual Broken Link Scan:

~1,000 posts (avg 10 links each = 10,000 links): 15-30 minutes

~10,000 posts (100,000 links): 2-4 hours

Optimization Strategies:

1. Increase Server Resources

Recommended for Large Sites:

PHP Memory Limit: 1GB (1024MB) minimum

Max Execution Time: 600 seconds minimum

MySQL Max Connections: 100+

Consider Upgrading Hosting:

If on shared hosting with 10,000+ posts, consider:

VPS (Virtual Private Server):

  • DigitalOcean
  • Linode
  • Vultr

Managed WordPress Hosting:

  • WP Engine
  • Kinsta
  • Flywheel

Benefits:

  • Dedicated resources
  • Higher limits
  • Better performance
  • Fewer timeouts/errors

2. Use GPT-4o Mini for AI

Always use GPT-4o Mini for large sites:

10-12x faster processing

10-12x cheaper credit usage

Minimal quality difference

3. Process AI in Batches

For very large sites (10,000+ posts), consider processing in batches:

Example Strategy:

Week 1: Process top 1,000 posts by traffic

Week 2: Process next 1,000 posts

Week 3: Continue until complete

How:

Contact support for guidance on batch processing or selective AI analysis.

4. Schedule Heavy Operations Off-Peak

Run during:

🌙 Overnight (2 AM - 6 AM)

🌙 Weekends (if B2B)

🌙 Low-traffic periods

5. Use Background Scan (Not Manual)

For ongoing monitoring on large sites:

Enable Automatic Background Scan

Disable or rarely use Manual Scan

Why:

Background scan won't overload server, even on 50,000+ post sites.


Database Optimization Best Practices

Regular Maintenance:

Weekly Tasks:

🛠️ Optimize database tables (using WP-Optimize or similar)

🛠️ Delete post revisions older than 30 days

🛠️ Clear spam/trash comments

🛠️ Remove transient options

Monthly Tasks:

🛠️ Review Domains Report - delete defunct external domains

🛠️ Check database size - ensure within hosting limits

🛠️ Backup database - before major changes

Recommended Plugins:

🔧 WP-Optimize (free) - Database cleanup and optimization

🔧 Advanced Database Cleaner (free/premium) - Deep cleaning

🔧 WP-Sweep (free) - Database sweeping tool

Link Whisper-Specific Optimization:

If Link Whisper data is taking up significant space:

Option 1: Disable "AI Powered Suggestions" (as described above)

Option 2: Clear old link data:

  1. Domains Report → Bulk Delete old domains
  1. Removes associated link records from database

Option 3: Fresh start (nuclear option):

  1. Deactivate Link Whisper
  1. Delete Link Whisper (removes database tables)
  1. Reinstall and reactivate
  1. Re-run initial scans

Note: This deletes ALL Link Whisper data (settings, suggestions, reports). Only use if absolutely necessary.


Monitoring Performance

Track performance over time to catch issues early.

Tools to Use:

Query Monitor Plugin (Free):

Shows:

  • Database queries (count, time)
  • PHP errors
  • HTTP requests
  • Plugin/theme breakdown

How to Use:

  1. Install Query Monitor
  1. Open WordPress admin
  1. Check Query Monitor toolbar
  1. Look for:
    • Slow queries (> 0.5 seconds)
    • High query count (> 100 per page)
    • Errors

New Relic / Application Performance Monitoring:

For large/enterprise sites, use APM tools:

  • New Relic
  • Datadog
  • Scout APM

Benefits:

  • Real-time monitoring
  • Performance alerts
  • Detailed breakdowns

Key Metrics to Monitor:

📊 Database query time (should be < 1 second per admin page)

📊 PHP memory usage (should stay < 80% of limit)

📊 Server CPU usage (should average < 50%)

📊 Page load time (admin pages should be < 3 seconds)

If Metrics Exceed Thresholds:

Investigate:

  • Which plugins/themes are slow
  • Are there runaway cron jobs
  • Is database optimization needed
  • Are server resources adequate

Frequently Asked Questions

Q: Does Link Whisper slow down my site for visitors?

A: No! Link Whisper loads only in WordPress admin, not on public-facing pages. Visitors experience zero performance impact.

Q: How often should I run manual scans?

A: For large sites, avoid manual scans. Use Automatic Background Scan instead. For small sites (< 500 posts), manual scans are fine monthly or as needed.

Q: Will AI processing slow down my site?

A: During processing, WordPress admin may feel slightly slower. After processing completes, there's no ongoing impact. Visitors are never affected.

Q: Should I disable Link Whisper during high-traffic events?

A: Not necessary. Link Whisper doesn't affect frontend performance. However, avoid running manual scans during high-traffic events.

Q: Can I move Link Whisper data to a separate database?

A: No, Link Whisper stores data in the main WordPress database. However, data size is typically small (40-100MB) and shouldn't require separate database.

Q: My database is huge. Is it Link Whisper?

A: Probably not. Check using WP-Optimize or similar to see table sizes. Link Whisper tables (prefixed with wp_linkwhisper_) are usually < 100MB total, even on large sites.

Q: Can I schedule AI processing to run at specific times?

A: AI processing uses WordPress cron, which runs based on site traffic and cron schedule. For precise scheduling, set up real system cron (see above) and trigger processing at desired time.


Need Help?

For performance optimization assistance:

Subject: "Performance Optimization Help"

Include:

  • Site size (number of posts)
  • Hosting provider and plan
  • Specific performance issue (slow admin, timeouts, etc.)
  • What you've tried
  • Screenshots of slow pages or error messages

Response Time: Usually within 24 hours

Optimize Link Whisper for maximum efficiency!

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Us Contact Us