Fix H1 Title Markup in Genesis Child Themes

Genesis WordPress Child Themes wrap the site title in an H1 tag. This is an SEO problem because it results in two H1s on every page and post on your site. Here's a WordPress PHP code snippet to fix this issue.

The Site Title should only be wrapped in an H1 tag on the home page. Otherwise you’ll have two H1s on every page and post on your site.

Genesis Framework Version 2.6 (at least) and higher have resolved this.

Modify The Title Markup Site Wide

/* Remove Default Site Title and Description because they have H1 and H2 tags */
/* Add back title and description with other tags to avoid duplicate H1s and H2s.*/
remove_action( 'genesis_site_title', 'genesis_seo_site_title' );
remove_action( 'genesis_site_description', 'genesis_seo_site_description' );
add_action( 'genesis_site_title', 'child_seo_site_title' );
function child_seo_site_title() { 
 	echo '<span><span><a href="/" title="Home">Chris Bryant</a></span><span>/</span>Web Design + Digital Strategy for Business</span>';

Change the Homepage to H1 but modify the title everywhere else.

//Dynamic Site Title Class - haven't tested this completely
add_action( 'genesis_site_title', 'em_dynamic_site_title' );
function em_dynamic_site_title() {
	if(is_home() || is_front_page()) { ?> 
		<h1 id="site-title"><a href="/" title="Home"><?php bloginfo('name');?></a></h1>
	<?php } else { ?>
		<span id="site-title"><a href="/" title="Home"><?php bloginfo('name');?></a></span>
	<?php }

Hire WordPress Experts at Codeable.

The only WordPress exclusive freelancer platform that connects thousands of customers with the top WordPress freelance experts to work on projects of any size. 

Free estimate • No obligation to hire • 100% risk-free