Performance

Overview

Performance of Page Generator Pro’s generation routines depends on several factors including, but not limited to:

  • Server Resources
  • PHP Version
  • Plugins Activated
  • Dynamic Elements
  • Number of Keywords and Terms
  • Generate System (Browser, CLI)

Server Configuration

For good performance, ensure your hosting meets the minimum Hosting Requirements.

For best performance, ensure your hosting is a VPS running minimum versions as follows:

  • WordPress 6.2+
  • nginx 1.23.0+
  • PHP 8.1+
  • MySQL 8.0.16+ / MariaDB 10+
  • 2 vCPUs
  • 4GB RAM
  • WP-CLI 2.7+

Plugins Activated

For each generated Page, WordPress effectively loads its Theme and active Plugins.  However, many of these Plugins don’t need to be active for the purpose of generation.

Enabling the Performance Addon will safely deactivate unnecessary Plugins whilst generation takes place.  This does not impact site visitors or other WordPress Users; activated Plugins will load for them.

When using any Page Generator Pro Dynamic Elements, excluding Related Links, or the Featured Image functionality, and the element/image is configured to request data from a third party source (such as Wikipedia, Yelp, Youtube, Pexels or Pixabay), the Generation process may take a few seconds or longer for each Page.  This is because Page Generator Pro converts the dynamic output into actual HTML output, querying the third party services to insert the actual contents into each Page.

This ensures that the resulting Page does not dynamically query these third party services every time your site visitor views the generated Page. Doing so would result in the page taking a long time to load for every single visitor (and, in turn, affect your rankings on SERPs).

By taking a one time performance hit on slower page generation, the performance of your generated Pages for SERPs and all site visitors is dramatically increased, ensuring better rankings.

The Related Links shortcode does not convert dynamic output into actual HTML.  This is by design, to ensure that it will perform live queries on each page load, resulting in the correct Related Links being displayed.

Orphaned Metadata

Detection and ignoring of Orphaned Metadata is available in page Generator Pro 3.3.7, releasing Thursday August 12th 2021 23:59 UTC

Orphaned (or ‘old’) Post Metadata (commonly used by Page Builders, SEO Plugins, Schema Plugins etc) can remain in a Content Group if third party Themes or Plugins have not deleted their data when deactivated. For example:

  • Used a Page Builder, deactivated it and then used a different Page Builder,
  • Changed the SEO Plugin used on the site,
  • Imported a Content Group from a Page that contains orphaned metadata

As this data is not controlled by Page Generator Pro, it will attempt to ignore orphaned metadata based on the currently active Theme and Plugins.  This may increase generation time slightly, however ensures:

  • The correct detection of Keywords
  • Only the required metadata (e.g. Page Builder / SEO / Schema metadata) is copied to the Generated Pages, reducing the amount of data stored in the WordPress database.

However, there may be some third party Themes and Plugins where this detection is not possible.  In these cases, Page Generator Pro would copy this orphaned (old) metadata to the Generated Pages, and this data might be unnecessary for correct working functionality of the site.  It’s therefore recommended (for both performance and generation times) that you:

  • Reactivate the old Theme/Plugin holding the data
  • Edit the existing Content Group
  • Remove data from e.g. Page Builder / SEO Plugin as necessary
  • Save the Content Group
  • Deactivate the old Theme/Plugin
  • Delete existing Generated Pages
  • Generate Pages

Example Performance: Basic Content Group

This is purely a guide, and not to be used as a benchmark or comparison.  Your performance will vary, due to a variety of factors including server performance, connection speed, Plugins installed, number of third party dynamic elements used, spintax etc.  Whilst we are happy to investigate edge cases, please don’t use the figures quoted here as a comparison or expectation.

Server Configuration

Item Specification
Hosting Provider DigitalOcean
vCPUs 2
Memory 4GB
SSD 20GB
Web Server nginx 1.23.0
PHP 8.1.9
MySQL 8.0.16
WordPress 6.2
Active Plugins Classic Editor
Page Generator Pro
Active Theme 2023 Theme

Keyword Configuration

A total of 57,352 Pages will be generated.

Keyword Terms
{location} All Cities and Counties in TN, USA (7,169), generated from the Generate Locations functionality
{service} Bathroom Design and Planning
Bathroom Installations
Bathroom Remodelling
Bathroom Plumbing
Bathroom Shower Installation
Bathroom Bath Installation
Bathroom Flooring Installation
Bathroom Underfloor Heating Installation

Content Group Configuration

Item Value
Title {service} in {location(city_name)}, {location(county_name)}
Content See https://gist.githubusercontent.com/n7studios/8e8fe6074d325b559ec4962a055b102d/raw/b4f81e7060d06ade8e7c51def60c83a61dc3891a/page-generator-pro-tutorial-content.htm
Permalink {service}-{location(city_name)}-{location(county_name)}
Post Type Page
Status Publish
Date Now
Method All
Spin Content No
Overwrite Yes, if existing Page generated by this Group
Overwrite Sections (enable all choices)

Results: Generate via Browser

Page Generator Pro: Performance: Generate via Browser

Metric Value
Average Time per Generated Page 0.033 seconds
Total Time to Generate all Pages 1,892 seconds (approx. 32 minutes)
Total Pages Generated 57,352
Memory Usage 17MB
Peak Memory Usage 30MB

Results: Generate via WP-CLI

Page Generator Pro: Performance: Generate via CLI

Metric Value
Average Time per Generated Page 0.024 seconds
Total Time to Generate all Pages 1,376 seconds (approx. 23 minutes)
Total Pages Generated 57,352
Memory Usage 28MB
Peak Memory Usage 45MB

Example Performance: Content Group with Spintax

Adding to the Basic Content Group example above, the following changes are made:

Content Group Configuration

Item Value
Content See https://gist.githubusercontent.com/n7studios/8e8fe6074d325b559ec4962a055b102d/raw/9b71d9976b67b602f00787d36d1dfbcb7bfb26fe/page-generator-pro-tutorial-content-edited-2.htm

Results: Generate via Browser

Page Generator Pro: Performance: Generate via Browser with Spintax

Metric Value
Average Time per Generated Page 0.033 seconds
Total Time to Generate all Pages 1,892 seconds (approx. 32 minutes)
Total Pages Generated 57,352
Memory Usage 17MB
Peak Memory Usage 30MB

Results: Generate via WP-CLI

Page Generator Pro: Performance: Generate via CLI with Spintax

Metric Value
Average Time per Generated Page 0.024 seconds
Total Time to Generate all Pages 1,376 seconds (approx. 23 minutes)
Total Pages Generated 57,352
Memory Usage 28MB
Peak Memory Usage 45MB

Example Performance: Content Group with Spintax and Dynamic Elements

Adding to the Spintax Content Group example above, the following changes are made:

Content Group Configuration

Item Value
Content Added Pixabay Image and Google Map. See https://gist.githubusercontent.com/n7studios/8e8fe6074d325b559ec4962a055b102d/raw/9b71d9976b67b602f00787d36d1dfbcb7bfb26fe/page-generator-pro-tutorial-content-edited-3.htm

Results: Generate via Browser

Page Generator Pro: Performance: Generate via Browser with Pixabay Dynamic Element

Metric Value
Average Time per Generated Page 0.68 seconds
Total Time to Generate all Pages 39,000 seconds (approx. 10.8 hours)
Total Pages Generated 57,352
Memory Usage 17MB
Peak Memory Usage 30MB
This is expected performance, as the Plugin has to query Pixabay for an image based on the {service}, download that image, store it in the Media Library, optimize it and output it to the content. You could use your own library of images, storing them in the Media Library and then use the Media Library Dynamic Element for faster performance.

Results: Generate via WP-CLI

Page Generator Pro: Performance: Generate via CLI with Pixabay Dynamic Element

Metric Value
Average Time per Generated Page 0.6 seconds
Total Time to Generate all Pages 34,411 seconds (approx. 9.6 hours)
Total Pages Generated 57,352
Memory Usage 28MB
Peak Memory Usage 45MB
This is expected performance, as the Plugin has to query Pixabay for an image based on the {service}, download that image, store it in the Media Library, optimize it and output it to the content. You could use your own library of images, storing them in the Media Library and then use the Media Library Dynamic Element for faster performance.

Example Performance: Content Group using Spintax, Elementor Page Builder

Adding to the Spintax Content Group example above, the following changes are made:

Content Group Configuration

Item Value
Plugins Installed and activated Elementor Page Builder 3.13
Content Added to a Text Editor widget in Elementor. See https://gist.githubusercontent.com/n7studios/8e8fe6074d325b559ec4962a055b102d/raw/9b71d9976b67b602f00787d36d1dfbcb7bfb26fe/page-generator-pro-tutorial-content-edited-2.htm

Results: Generate via Browser

Page Generator Pro: Performance: Generate via Browser with Elementor

Metric Value
Average Time per Generated Page 0.045 seconds
Total Time to Generate all Pages 2,580 seconds (approx. 43 minutes)
Total Pages Generated 57,352
Memory Usage 18MB
Peak Memory Usage 30MB

Results: Generate via WP-CLI

Page Generator Pro: Performance: Generate via CLI with Elementor

Metric Value
Average Time per Generated Page 0.054 seconds
Total Time to Generate all Pages 3,097 seconds (approx. 51 minutes)
Total Pages Generated 57,352
Memory Usage 29MB
Peak Memory Usage 46MB

Example Performance: Content Group using Spintax, Elementor Page Builder with Performance Addon

Adding to the Spintax, Elementor Page Builder Content Group example above, the following changes are made:

Content Group Configuration

Item Value
Page Generator Pro > Settings > Generate Use Performance Addon = Yes
Performance Addon: Load Plugins = Elementor
Due to performance improvements in PHP 8.1+ and WordPress 6.2+, the Use Performance Addon setting provides no improvement. It may be useful on older PHP and WordPress versions, or sites with a large number of activated plugins.

Results: Generate via Browser

Page Generator Pro: Performance: Generate via Browser with Performance Addon

Metric Value
Average Time per Generated Page 0.045 seconds
Total Time to Generate all Pages 2,580 seconds (approx. 43 minutes)
Total Pages Generated 57,352
Memory Usage 18MB
Peak Memory Usage 30MB

Results: Generate via WP-CLI

Page Generator Pro: Performance: Generate via CLI with Performance Addon

Metric Value
Average Time per Generated Page 0.054 seconds
Total Time to Generate all Pages 3,097 seconds (approx. 51 minutes)
Total Pages Generated 57,352
Memory Usage 29MB
Peak Memory Usage 46MB