Want to make sure your WordPress website content looks great on Facebook? You need to add Facebook Open Graph metadata to your WordPress theme.
Open Graph metadata tells Facebook and other social media sites information about your WordPress posts and pages, and lets you control how they look when someone shares them.
In this article, we’ll show you how to easily add Facebook Open Graph metadata in WordPress themes. We’ll share three different methods, including the All in One SEO method that we use at WPBeginner, so you can choose one that works best for your WordPress website.
You can use the quick links below to jump straight to the method you’re most interested in:
Method 1: Adding Facebook Open Graph Metadata With AIOSEO
All in One SEO is a popular WordPress SEO plugin used by over 3 million websites. It allows you to easily optimize your website for search engines as well as social platforms like Facebook and Twitter.
First, you need to install and activate the free All in One SEO plugin. For more details, see our step-by-step guide on how to install a WordPress plugin.
Upon activation, you need to visit the All in One SEO » Social Networks page. Here, you can enter your Facebook page URL and all your other social networks.
Next, click on the Facebook tab at the top of the page, and you will see that Open Graph Markup is enabled by default.
You can click the ‘Upload or Select Image’ button to choose a default Facebook OG image if an article doesn’t have an Open Graph image.
If you scroll down, you can customize your site name, description, and more settings. Don’t forget to click the blue ‘Save Changes’ button once you are done.
Now that you have set site-wide Open Graph metatags, the next step is to add Open Graph metadata for individual posts and pages.
By default, AIOSEO will use your post title and description for the Open Graph title and description. You can also manually set the Facebook thumbnail for each page and post.
Simply edit the post or page and scroll down to the ‘AIOSEO Settings’ section below the editor. From here, switch to the Social tab, and you will see a preview of your thumbnail.
You can set the social media image here, as well as the title and description.
Just scroll down to the ‘Image Source’ field. You can choose to use the featured image, upload a custom image, or other options.
Method 2: Set Facebook Open Graph Metadata Using Yoast SEO
Yoast SEO is another WordPress SEO plugin that you can use to add Facebook Open Graph metadata to any WordPress site.
The first thing you need to do is install and activate the Yoast SEO plugin. For more details, see our step-by-step guide on how to install a WordPress plugin.
Once activated, Facebook Open Graph data is enabled by default.
You can check this by going to Yoast SEO » Settings and scrolling down to the Social Sharing section. Now you can make sure the Open Graph data feature is enabled.
you need to go to SEO » Social and select the ‘Enabled’ option under ‘Add Open Graph meta data’.
You can save your settings or continue and configure other Facebook social options.
You can provide a Facebook app ID if you use one for your Facebook page and insights. You can also change your homepage Open Graph meta title, description, and image.
Lastly, you can set a default image to be used when no image is set for a post or page.
The Premium version of Yoast SEO also allows you to set Open Graph metadata for individual posts and pages. Simply edit a post or page and scroll down to the ‘Yoast SEO’ section below the editor.
From here, you can set a Facebook thumbnail for that particular post or page. If you don’t set a post title or description, then the plugin will use your SEO meta title and description.
You can now save your post or page, and the plugin will store your Facebook Open Graph metadata.
Method 3: Adding Facebook Open Graph Metadata Using Code
This method typically requires you to copy and paste code into your theme’s functions.php file. However, we recommend adding the code using the WPCode plugin instead, which makes it easier and safer to add custom code in WordPress.
WPCode also comes with a library of ready-made code snippets, including one for adding basic Open Graph tags, so it only takes a couple of clicks.
First, install and activate the free WPCode plugin. For more details, please see our guide on how to install a WordPress plugin.
Upon activation, you can go to Code Snippets » + Add Snippet from your WordPress dashboard.
Search for the ‘Add basic Open Graph Tags’ snippet from the library. Once you find it, hover over it, and click the ‘Use snippet’ button.
Then, WPCode will automatically add the code for you, as well as set the site wide header as the insertion method location.
After that, all you need to do is toggle the snippet to ‘Active’ and click the ‘Update’ button. Your theme will now start showing Facebook Open Graph metadata in the WordPress header.
If you’re an advanced user, then you can still copy and paste the code below into your theme’s functions.php file.
Since this requires you to directly edit your theme files, make sure that you back up your theme files before making any changes.
//Adding the Open Graph in the Language Attributes
function add_opengraph_doctype( $output ) {
return $output . ' xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml"';
}
add_filter('language_attributes', 'add_opengraph_doctype');
//Lets add Open Graph Meta Info
function insert_fb_in_head() {
global $post;
if ( !is_singular()) //if it is not a post or a page
return;
echo '<meta property="fb:app_id" content="Your Facebook App ID" />';
echo '<meta property="og:title" content="' . get_the_title() . '"/>';
echo '<meta property="og:type" content="article"/>';
echo '<meta property="og:url" content="' . get_permalink() . '"/>';
echo '<meta property="og:site_name" content="Your Site Name Goes Here"/>';
if(!has_post_thumbnail( $post->ID )) { //the post does not have featured image, use a default image
$default_image="http://example.com/image.jpg"; //replace this with a default image on your server or an image in your media library
echo '<meta property="og:image" content="' . $default_image . '"/>';
}
else{
$thumbnail_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'medium' );
echo '<meta property="og:image" content="' . esc_attr( $thumbnail_src[0] ) . '"/>';
}
echo "
";
}
add_action( 'wp_head', 'insert_fb_in_head', 5 );
Remember to add your site name on Line 17, where it says ‘Your Site Name Goes Here’. After that, you should change the default image URL on Line 19 with one of your own image URLs.
We recommend putting an image with your logo there, so if your post does not have a thumbnail, then it pulls your site’s logo.
You also need to add your own Facebook App ID on Line 13. If you don’t have a Facebook app, then you can remove Line 13 from the code.
Expert Guides on Facebook and WordPress
Now that you know how to add Facebook Open Graph metadata, you may like to see some other guides related to how you can use Facebook in WordPress:
- Best Facebook Tips and Tutorials for WordPress Users
- How to Automatically Post to Facebook From WordPress
- How to Install and Setup Facebook Comments in WordPress
- How to Create a Custom Facebook Feed in WordPress
- How to Display Your Facebook Page Reviews in WordPress
- How to Fix Facebook Incorrect Thumbnail Issue in WordPress
- How to Display Author’s Twitter and Facebook on the Profile Page
- How to Create a Facebook Ads Landing Page in WordPress
- How to Fix the Facebook and Instagram oEmbed Issue in WordPress
We hope this article helped you add Facebook Open Graph metadata in WordPress. You may also want to see our guide on how to run a giveaway or contest in WordPress or our expert picks for the best Facebook plugins to grow your blog.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
WPBeginner Staff
Did you set a featured image? did you replace the default image URL in the code with your own image URL?
Ikix
Hello, I’ve tried everything i could an i can’t display thumbnail image when i post my blog url on facebook, i already add the code as you said, i download tons of plugings and there is no image in facebook! can you help me please? pleeease!
Jason C.
what about just for a single image to be added to the thumbnail options in Facebook? I’ve noticed it picks up my featured image no problem, but doesn’t pick up the others in the post. Is there a way to manually add them with some quick code?
WPBeginner Staff
Sorry the plugin is no longer available. We have updated the article, with new information. Hope this will help you add Facebook Open Graph Meta Data into your WordPress. site.
adepush
Hi, is your plugin still available on WordPress.org?
http://wordpress.org/plugins/facebook-open-graph-meta-in-wordpress/
a.
M
its still pulling the image from the sidebar instead of the image i have put in the functions file?
damian
What about og:description?
Musadiq
Hi,
How can I include a facebook in the code above? So it can directly publish an article to our profile timeline and also to our facebook page. Thank you
Hassan
its not working for me when i share my posts on face book its only shows my last instagram pics
Loes Liemburg
Hi, I installed this plug-in, but can’t see the OG-options in my settings menu. I’ve refreshed and waited, but still nothing. What has gone wrong?
Manuel Gomez
This line means that the image will use the medium size?
$thumbnail_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), ‘medium’ );
If i replace for “big” will use the big image? i would like to see the link post with the new format in facebook, because i can get more clics.
Thanks!
Alexandra
Thank you! the code worked perfectly!
M
Unfortunately this did not work for me, I can’t even see it being output in the WP head source code. I’m using the code method as I don’t want to add any plugins to the site.
I’ve checked the htaccess file and that is not causing any issues since it’s blank except for the perma link declaration.
Its also not a caching plugin either since I dont have one in place. Any ideas?
M
Actually sorry this did work, but unfortunately using the debugger tool it still seems that posting a link on my timeline still does not show the og:image.
Even if it’s there in the json. Its really bizarre. The debugger shows the post but without any image in the share preview. Any ideas anyone?
Attila
Hello Syed,
I have use many plugins to extract my graph meta info since I’ve started to use Wordpress and Facebook and I can say that “Facebook Open Graph Meta for WordPress” is the most simple yet professional plugin so far.
I have a minor issue tough…when debugging my posts link with the the Facebook debugger, my Raw Open Graph Document Information does not show up properly. I have special characters included as my content is in Hungarian language.
Here is an example:
Meta Tag:
I would appreciate if someone could tell me how to fix this.
Thanks in advance and keep up the good work.
Best Regards
JessDelAngel
HI!
Did you find a solution for this?
Regards
Jim
Works well – thanks. This is still the best way to integrate without a plugin, yes?
Editorial Staff
We are using WordPress SEO by Yoast plugin to do this.
Admin
ally
I’ve been using this code for a long time but recently there’s been problems, it doesn’t always pull the image. I used the linter and found this errror:
Inferred Property The ‘og:description’ property should be explicitly provided, even if a value can be inferred from other tags.
So I added the description tag and that seems to have resolved the image issue but now it no longer displays the article content.
Any idea’s how to resolve this? I just need to show the first few lines of content.
Thanks
Editorial Staff
Just use Yoast’s SEO plugin and it has this built-in.
Admin
Goob
Yoast’s SEO Plugin doesn’t seem to have single page og:descriptions built-in.
Editorial Staff
Yes it does have it built-in. By default it pulls your meta description, but it also has the option for you to modify the description from the Yoast SEO meta box.
Theo
Hi there,
I was just wondering whether it is possible to have a different “og:type” for a post and a page. As it stands (well from what I understand) is that for everything in Wordpress, this sets the “og:type” to article.
What if I want to set “og:type” of page to say “website” and for a post “article”?
Any suggestions or help much appreciated
Thanks
Editorial Staff
You most certainly can with conditional statements.
Admin
Editorial Staff
You have to attach the post thumbnail using the featured image function.
Admin
seitanist
Can someone explain why
global $post;
is needed and where it falls in the generated code?
wpbeginner
@seitanist Yes the reason why global $post is added because this code is being added outside the Loop in the section of the page. In order to pull the right information, we must call global $post which makes all those tags work.
seitanist
This worked great! Thanks!!!
Editorial Staff
You can try disabling the social feature in Yoast’s plugin and download Otto’s Simple Facebook Connect plugin. Just activate it and the base would take care of it.
Admin
Cno
Hello, everything worked! When i put the link of my specific blog post on my facebook wall, I have the right thumbnail, description and site name. But the post on facebook also automatically shows the complete url of my site (right under the blog title). Instead I want it to show the permalink of the specific blog post – not the url of my site. This way i can integrate the ‘likes’ for that particular post in wordpress. Please! Anyone?
StephanePerez
Hi, i tried to insall the plugin but can’t activate it because of a fatal error : Cannot redeclare add_opengraph_doctype()…/fbogmeta.php on line 24
What i’m supposed to do?
Thanks!
techhogger
Hi pasted this codes as per the instruction on my blog techhogger.com but still issue does not seem to resolve. I can see my adsense codes in the description area. Kindly help.
waqaslone
@techhogger same problem with…let me know if u find any solution.
wpbeginner
@waqaslone@techhogger For the description to appear, you have to use the excerpts. Alternatively, you can use Otto’s Simple Facebook Connect plugin and just turn the Base on. That would take care of everything for you.
techhogger
@wpbeginner@waqaslone@techhogger
I did everything. Even tried the plugin you said. Just try to share any post from my blog and you will know what exactly is happening. To some extend I was able to remove codes appearing from the description section. But now I can’t see description and thumbails of the post while sharing it on fb. Will be thankful if I get your help.
wpbeginner
@techhogger@waqaslone We are using the method shared on this page on our own website. Everything works. We are using SFC on List25 and it works perfectly fine. Not sure why you are having these issues. SFC has a very smart way to parse through your content and pull out description. So I know for a fact that it pulls out description. It also pulls out all images. This most likely means that there is another plugin that is interfering on your site.Do you have a WP plugin to add the like box or the like button? or any other FB plugin?
techhogger
@wpbeginner@waqaslone I tried to share again after your last reply. And the same happens. I can see only post title with description as my blog’s description instead of post description and no thumbnail. I am using Digg Digg plugin for social sharing .
wpbeginner
@techhogger@waqaslone Please turn on Otto’s Simple Facebook Connect plugin. Remove the code that you have added in your functions.php …
techhogger
@wpbeginner@waqaslone I think its working now. I downloaded and configured the plugin again. And now it seems to be working. Can you have a look and let me know if everything is fine now.
ChristopherJosephDowney
I am used to putting meta tags in the HTML on Blogger. Switching to Wordpress has been a headache in this aspect, as I have no HTML to edit and am not used to CSS. This plug-in is a dream, but it doesn’t seem to be working correctly. My question is this: It appears I have 3 different ID’s: My facebook profile, my facebook fan page (the one my blog links to) and my OG debugger ID that appears on the developer debugger page; which ID do I need to use for the plug-in? No matter which one I put in the plug-in when I click “debug” the thumbnail does not update and is always one of the advertisement’s gif’s. Can I have more than one default thumbnail like I would using megatags in HTML?
RobKara
When a user hits my wordpress page “object” then how do i get the facebook userid if its a facebook user viewing the page? Does facebook send a signed_request or facebook userid via the querystring?
wpbeginner
@RobKara This question should be asked in the Open Graph forum because it is beyond the scope of this article.
MetalPhil
So I installed this stuff on my website (AngryMetalGuy.com) and it doesn’t work. I have *no* clue why. I am beyond frustrated and super confused. If you could please, please, please, please, pleeeease help me that would be awesome.
MetalPhil
BTW: I installed it a long time ago and it still doesn’t work. I’ve been having this problem for over a month now. It’s killing me.
lizbizz
I Deactivated the Facebook OG Meta plugin on my blog and Installed the Simple Facebook Connect plugin instead and now everything seems to be working right on my site and posts!
WPbeginners. com instructions and info (be sure to follow them exactly) using this post: https://www.wpbeginner.com/plugins/how-to-install-and-setup-simple-facebook-connect-for-wordpress/
lizbizz
This solved my problem for the Share on Facebook button, but now when I try to share a post from my site to Facebook using Hootsuite’s Hootlet, the description text box is empty. It shows the correct thumbnail and URL but no article preview text. It worked before and still works for other sites, so I think it happened when I installed the plugin…help?
SaijoGeorge
@wpbeginner Facepalm … Thanks for the quick replay mate
wpbeginner
@SaijoGeorge It will only output your post’s defined excerpt. If you don’t specify an excerpt, then nothing will be displayed.
SaijoGeorge
Great plugin .. the only issue I seem to be having is that the meta property=”og:description” spits out some random data . Thr url for a sample post is 1800pocketpc.com/watch-out-for-windows-phone-7/22453/ similar issue on another blog bestwp7games.com/crazy-horses-match-maker-a-path-drawing-game.html ( here og:description comes out to be blank ) I am using thesis variations on both of those sites .. was wondering if any of you guys have come across this issue
It’s also worth noting that meta description tag on those pages seems to ouput the right data
wpbeginner
@CarlosDeGuzman It takes a while for the linter to update.
CarlosDeGuzman
Hi wpbeginner! I installed the plugin on my site, ww w.swimbikerun.ph and it’s not working. I’m still getting these errors on the linter. Also no thumbnails are showing when you share a post on fb. Hope you can help
Also its not showing the description
Warning
Required Property Missingog:title is required
Required Property Missingog:type is required
Required Property Missingog:url is required
Required Property Missingog:image is required
wpbeginner
@ReyCalantaol It has nothing to do with SEO…. the Open Graph data is for Facebook…..
wpbeginner
@arabsciences@Tia Peterson You have to add the Meta Description and our plugin does that for you…
wpbeginner
@arabsciences@Tia Peterson You have to add the Meta Description and our plugin does that for you…
wpbeginner
@Tia Peterson Yes, you would need to re-install through the repository.
wpbeginner
@Tia Peterson Yes, you would need to re-install through the repository.
Tia Peterson
@arabsciences@wpbeginner Nope.
arabsciences
Hi
How do pull description from aal in one seo plugin.?
it it not working for me
arabsciences
@Tia Peterson@wpbeginner
I use All in one seo plugin and could not pull the description to show in url linter
arabsciences
@Tia Peterson@wpbeginner
I found a fix for that which shows first 300 characters of the post.
just change og:description to :
<meta property=”og:description” content=”<?php echo strip_tags(get_the_excerpt($post->ID)); ?>” />
ClyoBeck
Okay, I’ve gone back to the original theme files and uploaded the original functions.php file. No go. Still a blank screen. I’m thinking up upgrading the theme to see if that will help. I’m wondering if the code I put in the functions.php file, somehow, changed something else. Is that possible?
wpbeginner
@ClyoBeck Make sure that there are no extra spaces at the bottom of the functions.php file …
ClyoBeck
Hi guys,
I should have just downloaded the plug-in. Instead I copied and pasted the code above into my functions.php file and now my blog has disappeared.
I went into my server and, having made copies of the php file in notepad, uploaded the old file. Still no luck.
Looks like I’m going to have to hire a programmer to fix this.
Any advice?
Livefyre
@wpbeginner Thanks. I don’t think I got the update, though. Should I just download the plugin again from the WP plugin repository and re-install?
wpbeginner
@Tia Peterson Just uploaded the fix for this and another issue. It should be live within 15 minutes or sooner (whenever the SVN updates go through).
wpbeginner
@SteveJoseph@joshuatj Also with the linter (not sure exactly what the number is) but if your post has that many likes, then it won’t reset the description / title and such… If I am correct, then that number is not very high…
SteveJoseph
@wpbeginner@joshuatj Thanks for the response wpbeginner. I tried your plugin within the last 3 days so was fairly certain it was the latest version but that didn’t seem to work for me. I’m going to go with your suggestion that it will fix itself but the current solution is not the most ideal. It’s pulling the description from my blog “intro” section which is helpful in telling the audience about me but does very little to support why they should click on the article or shared item. Thankfully it does show the correct image and post headline just not the description from the post itself.
Since Facebook hyped open graph so much you’d like to have imagined they would have made sure this was working and buttoned up pretty solid. Thanks again.
Tia Peterson
Hi! For some reason, the plugin doesn’t pull a description. At first, I figured out that it was pulling the description from the ‘excerpt’ field, so I started using that field every time. Now, it doesn’t even pull from that. Not sure why. I am using the latest version of the plugin, StudioPress News Child Theme for Genesis, and Wordpress version 3.1.
Here is our most recent post to show you that when you paste this URL into Facebook, only the image and title show up. In the source code, the description field for the open graph plugin is completely empty. http://www.bizchickblogs.com/2011/08/what-do-you-know-about-naturopathy.html
Thanks for your help!
wpbeginner
@SteveJoseph Facebook takes a bit long to update older posts, but it will fix itself.