SEO & performance

ProMax and ProMax Pro handle the technical SEO a theme is responsible for, and work with SEO plugins for the rest. Both editions behave the same here.

What the theme does for you

AreaWhat you get
HeadingsExactly one <h1> per page: the post, page or archive title (the site name on the blog home page). Section and widget titles are <h2>.
BreadcrumbsOn posts, pages, archives and search, with schema.org BreadcrumbList markup so Google can show the trail in search results. Shop pages use WooCommerce's trail and data.
Post markupComplete hAtom data (title, published and updated date, author) on posts, which Search Console reads without errors.
Titles and robotsPage titles come from WordPress (or your SEO plugin). WordPress keeps search results pages out of the index.
ImagesEvery image has width, height and alt text (cards fall back to the post title), so pages don't jump while loading. The first post image loads with high priority; images further down load lazily.
SpeedNo jQuery on the front end; one small deferred script. Open Sans is hosted with the theme and preloaded. Pro's Google Fonts load in one request with font-display: swap.
Mobile and accessibilityResponsive at every size, WCAG AA colour contrast, keyboard and screen reader friendly menus, skip link and landmarks. These count towards Google's page experience.

SEO plugins

A theme should not output meta descriptions, social sharing tags or sitemaps; that's an SEO plugin's job. Install one of these:

The theme detects them automatically:

  • With Yoast SEO, All in One SEO or The SEO Framework active, the theme leaves breadcrumb structured data to the plugin, so Google doesn't see the trail twice.
  • With Rank Math, the theme keeps its own breadcrumb data unless you switch on Rank Math's breadcrumbs (below).

Using Yoast SEO or Rank Math breadcrumbs

Switch on the plugin's breadcrumbs and the theme shows their trail in the same place and style as its own:

  • Yoast SEO: Yoast SEO › Settings › Advanced › Breadcrumbs › Enable breadcrumbs for your theme.
  • Rank Math: Rank Math › General Settings › Breadcrumbs › Enable breadcrumbs function.

Their settings (separator, home label, showing the blog page, etc.) then apply. Switch them off again to go back to the theme's trail.

Breadcrumb trail: Home, Technology, post title
The theme's breadcrumb trail on a post.

SEO checklist for your site

  1. Install an SEO plugin and write a meta description for your home page and key pages.
  2. Set a Site Icon in Customize › Site Identity. Google shows it next to your pages in search results.
  3. In Settings › Permalinks, choose Post name for clean URLs.
  4. Add alt text to images in the Media Library, especially featured images.
  5. Give every post a featured image; they make the cards, search previews and social shares look right.
  6. After switching to ProMax, run Regenerate Thumbnails so cards use the sharp 720×480 size.
  7. Check Settings › Reading: Discourage search engines must be off on a live site.

Making it faster

  • Turn off Load Font Awesome 4 icon font if you don't use fa fa-… classes. That saves about 100 KB per page.
  • Pro Stay with Open Sans, or turn Google Fonts off, to avoid a request to Google.
  • Use a caching plugin, or your host's caching, and serve images as WebP or AVIF.
  • Keep the header banner to one image or one ad slot.
  • WooCommerce loads its scripts on every page. If you only sell on a few pages, a performance plugin can unload them elsewhere.

For developers

Filters to change the SEO behaviour (use promaxpro_ instead of promax_ in Pro):

FilterUse
promax_breadcrumbsChange the trail: an array of [ url, label ] pairs.
promax_breadcrumb_schemaReturn false to drop the theme's BreadcrumbList markup, or true to force it.
promax_seo_plugin_breadcrumbsSupply breadcrumb HTML from another plugin; return an empty string to use the theme's trail.
promax_hentryWhether a post keeps the hentry class.
// Rename "Home" in the breadcrumb trail.
add_filter( 'promax_breadcrumbs', function ( $crumbs ) {
	$crumbs[0][1] = 'Front page';
	return $crumbs;
} );

// Never add BreadcrumbList markup (for example, when another plugin adds it).
add_filter( 'promax_breadcrumb_schema', '__return_false' );