Categories
Pro Tips

Add Website’s Social Media Presence with Open Graph Meta Tags

In today’s digital age, having a strong presence on social media is crucial for any website looking to reach a wider audience and drive traffic. When users share your content on platforms like Facebook, Twitter, or LinkedIn, you want it to look as appealing and engaging as possible. That’s where Open Graph meta tags come into play.

Readers also enjoyed our detailed post on Optimizing Your Product Website

Open Graph meta tags are snippets of code added to your website’s HTML that provide social media platforms with information about your content when it’s shared. They control how your links appear in users’ feeds, including the title, description, and image associated with the shared content.

In this article, we’ll explore how you can leverage Open Graph meta tags to enhance the social media presence of your WordPress website. We’ll also provide a step-by-step guide on implementing these meta tags using PHP code in your theme’s functions.php file.

Why Open Graph Meta Tags Matter

When someone shares a link to your website on social media, platforms like Facebook or Twitter automatically generate a preview of the content. This preview typically includes the page title, a brief description, and an image.

By adding Open Graph meta tags to your website, you can control how this preview appears. You can specify the title, description, and image you want to accompany your content, ensuring that it’s presented in the best possible light when shared on social media.

Implementing Open Graph Meta Tags in WordPress

To add Open Graph meta tags to your WordPress site, you can use PHP code added to your theme’s functions.php file. Below is an example code snippet that adds Open Graph meta tags to the homepage and individual posts or pages:

Explore this highly recommended read on Optimizing Your Product Website

<?php
/**
 * Add meta description to the home page.
 */
add_action(
    'wp_head',
    function() {
        $default_image = 'https://www.domain.com/default-image.webp';
        
        if ( is_home() || is_front_page() ) {
            $url         = esc_url( home_url( '/' ) );
            $title       = get_bloginfo( 'name' );
            $description = get_bloginfo( 'description' );
            ?>
                <!-- Primary Meta Tags -->
                <meta name="description" content="<?php echo get_bloginfo( 'description' ); ?>" />
                <!-- Open Graph / Facebook -->
                <meta property="og:type" content="website">
                <meta property="og:url" content="<?php echo $url; ?>">
                <meta property="og:title" content="<?php echo $title; ?>">
                <meta property="og:description" content="<?php echo $description; ?>">
                <meta property="og:image" content="<?php echo $default_image; ?>">
                 <!-- Twitter -->
                <meta property="twitter:card" content="summary_large_image">
                <meta property="twitter:url" content="<?php echo $url; ?>">
                <meta property="twitter:title" content="<?php echo $title; ?>">
                <meta property="twitter:description" content="<?php echo $description; ?>">
                <meta property="twitter:image" content="<?php echo $default_image; ?>">
            <?php
        } else {
            $post_id     = get_the_ID();
            $title       = get_the_title( $post_id );
            $description = get_the_excerpt( $post_id );
            
            if ( empty( $description ) ) {
                $description = wp_strip_all_tags( get_the_content( $post_id ) );
            }

            $permalink = get_permalink( $post_id );
            $image     = get_the_post_thumbnail_url( $post_id, 'large' );

            if ( ! $image ) {
                $image = $default_image;
            }
            ?>
                <meta property="og:type" content="article" />
                <meta property="og:url" content="<?php echo esc_url( $permalink ); ?>" />
                <meta property="og:title" content="<?php echo esc_attr( $title ); ?>" />
                <meta property="og:description" content="<?php echo esc_attr( $description ); ?>" />
                <meta property="og:image" content="<?php echo esc_url( $image ); ?>" />

                <meta property="twitter:card" content="summary_large_image">
                <meta property="twitter:url" content="<?php echo esc_url( $permalink ); ?>">
                <meta property="twitter:title" content="<?php echo esc_attr( $title ); ?>">
                <meta property="twitter:description" content="<?php echo esc_attr( $description ); ?>">
                <meta property="twitter:image" content="<?php echo esc_url( $image ); ?>">
            <?php
        }
    }
);
?>

This code checks whether the current page is the homepage/front page or an individual post/page. Based on the page type, it sets the appropriate Open Graph meta tags including the title, description, and image.

Testing Your Open Graph Meta Tags

Once you’ve added the Open Graph meta tags to your WordPress site, it’s essential to test them to ensure they’re working correctly. Here’s how you can do it:

  1. Share Links: Share links to your website’s homepage and individual posts/pages on social media platforms like Facebook, Twitter, or LinkedIn.
  2. Inspect Previews: Check how the shared links appear in the social media previews. Verify that the title, description, and image are displayed correctly.
  3. Debugging: If the previews don’t appear as expected, use social media debugging tools provided by platforms like Facebook (Open Graph Debugger) or Twitter (Card Validator) to troubleshoot any issues with the Open Graph meta tags.

By implementing Open Graph meta tags on your WordPress site and testing them thoroughly, you can enhance the visibility and engagement of your content on social media platforms, ultimately driving more traffic to your website.

If Pro Tips interests you, our in-depth post on Adding Noindex and Nofollow to Custom Post Types with Yoast SEO is a great next read.

Leave a Reply

Your email address will not be published. Required fields are marked *