Showing posts with label Cost-Per-Click. Show all posts
Showing posts with label Cost-Per-Click. Show all posts

Friday, 18 January 2013

HTML Validation Test for SEO Audits

HTML Validator is a Mozilla extension that adds HTML validation inside Firefox and Mozilla. The number of errors of a HTML page is seen on the form of an icon in the status bar when browsing.

The extension can validate the HTML sent by the server or the HTML in the memory (after Ajax execution).

The details of the errors are seen when looking the HTML source of the page. 

The extension is based on Tidy and OpenSP (SGML Parser). Both algorithms were originally developed by the Web Consortium W3C. And now extended and improved by a lot of persons. Both algorithms are embedded inside Mozilla/Firefox and makes the validation locally on your machine, without sending HTML to a third party server. 

Each algorithm has advantages and inconvenients. The program will give you the choice at startup. But mostly,

- The SGML parser is the same program than the one running behind
- Tidy has accessibility check for the 3 levels defined in WAI 
- W3 Online validator to validate HTML 5 pages

The extension is translated in 17 languages.

For technical reasons, the extension is available in this site is only for:
- Windows 

Other platforms are available here:

Test WordPress Speed and Optimize it to load faster

Google found that moving from a 10-result page loading in 0.4 seconds to a 30-result page loading in 0.9 seconds decreased traffic and ad revenues by 20% (Linden 2006). When the home page of Google Maps was reduced from 100KB to 70-80KB, traffic went up 10% in the first week, and an additional 25% in the following three weeks (Farber 2006).
Tests at Amazon revealed similar results: every 100 ms increase in load time of decreased sales by 1%. (Kohavi and Longbotham 2007). (source)

It’s quite clear. Everyone hates slow websites. The question is, how can you make your WordPress website faster?

What Determines Website Page Speed?
The Yahoo! YSlow and Google Page Speed Mozilla Firefox plugins evaluate your site against the widely accepted rules of website performance. The problem is, they don’t tell you what to do with the information they provide.

So, I’ll break down the top performance recommendations and show you you can apply them to your website.
1. Minimize the number of HTTP requests
Translation: Limit the number of files required to display your website
When someone visits your website, the corresponding files must be sent to that person’s browser. This includes CSS files, Javascript library references, and images.
As expected, every file you use to enhance your design detracts from its performance. Similary, WordPress plugins are notorious for injecting extraneous CSS code in the head of your site without giving you the option to manually add the required styles to your stylesheet.
The key takeaway is this: eliminate everything that’s unnecessary. If you’re using a plugin because you like, take a look at how it impacts your code. The extra page-load time may not be worth it.
2. Optimize and correctly display images
Translation: Make images as small as possible and don’t require the browser to resize them
Depending on the format, many images contain a ton of extraneous metadata that can drastically increase the size of the file. Many designers fail to compress their images before uploading them to the web, and the overall impact of this can be dramatic with image-intensive designs.
Another cardinal sin of inexperienced webmasters is to upload and serve an image far larger than what is required for the design. WordPress is an unfortunate enabler of this, as many novice website owners upload large images directly off of their digital cameras and utilize WordPress’s image resizing functionality to display a smaller version.
With free applications like Picnik and Image Optimizer at our disposal, there is simply no excuse not to resize and optimize! Visitors (and your server) will thank you.
3. Minify HTML, CSS, and Javascript
Translation: Remove all white space from code when possible before serving it to visitors
The spaces, tabs, and orderly structure used in code is to make it more human-readable. Servers and browsers don’t care about what the code looks like as long as it’s valid and executes without error. If you want your files to download faster, you can remove this whitespace before serving your code.
Since it would be impractical to remove white space from files that are constantly edited (unlike Javascript libraries like jQuery, which are almost always served minified), we’ll want to leverage a plugin like WP-Minify (good) or W3 Total Cache(best) to handle this at runtime without affecting the files we need to edit.
Whitespace is great for web design but in our code? Not so much.
4. Use a Content Delivery Network (CDN)
Translation: Use a CDN to lighten the load on your server and turbocharge its performance
A CDN is a high-performance network of servers across the globe that replicate the static assets of your website and serve them to visitors from the closest POP.
I know, I know. The good news is that we don’t have to understand the mechanicsbehind Content Delivery Networks in order to understand their power: you have a team of servers distributing your static assets to visitors across the globe. I’ve written a post on making WordPress faster by integrating a CDN if you’re interested in further reading on the topic.
CDNs are among the most effective ways to absolutely turbocharge the speed of our sites. We can’t neglect the other areas of optimization in the process, so this should be treated as the crowning jewel atop your beautifully optimized website.
5. Gzip and compress components
Translation: Compress files at the server level before sending them to browsers
If you were instructed to hurl a piece of paper across the room as far as it can go, would you lightly crumple it or squeeze it with all your might? That’s right, you’d get your Hulk Smash on.
The sample principle applies here: we want to allow our webserver to compress our files before sending them to visitors. We can drop a few lines of code in our .htaccessfile to accomplish this:
#Begin gzip and deflate
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/css application/x-javascript text/plain text/xml image/x-icon
This code might look a bit intimidating, but it’s actually pretty simple. We’re just checking to see if the Apache mod_deflate module exists and if so, electing to serve HTML, CSS, Javascript, plain text, and favicon files using gzip compression.
Note that this requires the Apache webserver and the mod_deflate module. To enable gzip compression with NGINX, ensure that the following lines exist inside of the appropriate directive:
server {
        gzip on;
        gzip_types text/html text/css application/x-javascript text/plain text/xml image/x-icon;
6. Choose <link> over @import
Translation: Beware the suck of IE!
When including your stylesheets, always link to the files instead of using the @importreference. IE handles them differently by loading them as if the reference was at the bottom of the document. [sarcasm] Nice work, Microsoft! [/sarcasm]
7. Put stylesheets at the top
Translation: All interface-related stylesheet references should be included in the<head> of your document
We never, ever, ever want to display unstyled content to visitors—not even for a split second. Files responsible for the appearance of our site should be loaded first so they can be applied to the HTML as it loads. Makes sense, right?
Nothing more to it.
8. Put scripts at the bottom
Translation: All functionality-related files can be loaded after our content is loaded
As we think through how to deliver our content to visitors as fast as possible and the subsequent steps that users will take, we will use the following priorities:
1.        Get content to visitors as fast as possible
2.       Don’t allow unstyled content to appear in the browser (put CSS in the <head>)
3.       Load the files required for interaction (tabbed widgets, certain external API calls, etc.) last
The thinking behind this is simple: users aren’t going to interact with the content before they can see it!
9. Utilize browser caching
Urban Translation: Where the cache at?
Standard Translation: Don’t require browsers to pull down another copy of static files every time
With browser caching, we’re explicitly instructing browsers to hang onto particular files for a specified period of time. When the file is needed again, the browser is to pull from its local cache instead of requesting it from the server again.
Running a website without caching in place makes as much sense as driving to the store for a glass of water every time you’re thirsty. Not only is in impractical and short-sighted, it takes more work!
The ExpiresByType directive is used to tell browsers which files to cache and how long to hang onto them. The example below would tell our visitors’ browsers to hang onto HTML, CSS, Javascript, and images, and favicon for an hour (3600 seconds):
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/html M3600
    ExpiresByType text/css M3600
    ExpiresByType application/x-javascript M3600
    ExpiresByType image/bmp M3600
    ExpiresByType image/gif M3600
    ExpiresByType image/x-icon M3600
    ExpiresByType image/jpeg M3600
Again, the code above is for your .htaccess file on an Apache server. The corresponding settings in NGINX would look something like this:
location ~* \.(jpg|png|gif|jpeg|css|js)$ {
        expires 1h;
10. Use CSS Sprites
Translation: Serve one highly optimized image for your design to minimize the performance impact
A CSS sprite is an an image comprised of other images used by your design as something of a map containing the coordinates of all the images. Some clever CSS is used to show the proper section of the sprite when your design is loaded.
There are fantastic articles on the topic available across the web that dive into the mechanics of CSS sprites and wonderful resources for creating them. SpriteMe is a utility that generates the sprite and code required to make it work. If you inspect the code for the nav menu on, you’ll see a great example of how to implement a CSS sprite.
Whew! Still reading?
If so, great! You’re well on your way to a much faster website. If you implement even a handful of the techniques outlined in this post, you will see an immediate and dramatic improvement in your site’s performance. It’s not important that we know how everything works from database calls to HTTP requests—I surely don’t—it’s important that we’re familiar enough with the concepts to work towards them on our sites.
Work smarter, not harder
You could spend a few months learning the ins and outs of web server architecture, how different browsers implement caching, and how to tie it all together…or you could simply install and configure the W3 Total Cache plugin by Frederick Townes (CTO of Mashable).
I can give no higher recommendation for a performance-related plugin than this one. The features could easily fill another post, but I’ll give you the important part: W3TC helps you thoroughly address 80% of the recommendations outlined in this post. There are other solid options for caching plugins, but W3TC stands head and shoulders above the rest.
Handy resources
In your quest for website speed, you might find these resources helpful:
§  Pingdom—test how fast your site is before and after making changes
§  WordPress Caching—an in-depth comparison of WordPress caching plugins
§  Working backwards—Mashable CTO Frederick Townes delivers the keynote at WordCamp Denmark
§  Screaming Fast WPMU—Dan Collis-Puro shows how Harvard dramatically increased the performance of their websites

Thursday, 17 January 2013

AdRoll vs. Google Remarketing - Time Cohorts

AdRoll vs. Google Remarketing - Time Cohorts

SEO Services Proposal (Presentation) Your Company Can Offer to its clients?

Here is a Professional SEO Services proposal I created. You can use it and tailored it to your objectives and use it as a sales material or SEO Proposal for your clients.

Microsites or Microblogs Strategies

Microsites or weblets are a web page or cluster of pages which are meant to function as an auxiliary supplement to a primary website. Microsites may be used for purely commercial purposes to create in-depth information about a particular product, service or as editorial support towards a specific product, such as describing a new technology.”Directories Submissions
Microblogs are blogs that target a specific theme and have a frequently updated content on it that is related to the main website. This microblog is not intended to be related to the main website but to mention it in SEO links from time to time as well as acting as a managed placement to advertise the main site on.

Sitemap creation

Sitemaps is way for webmasters to inform search engines about pages on their sites that are available for crawling. By creating and submitting Sitemaps to search engines, you are more likely to get better freshness and coverage in search engines as well as indexing your pages in a comprehensive manner. Most webmasters create a site map once and forget it. However, a successful website should always have a fresh content and new pages added from time to time. Here we come to create these updated site maps to submit to your website or we can submit it for you regularly so you do not have to worry about it anymore.

Traffic monitoring and reporting

Where does most of your traffic come from? What is the percentage of your organic traffic compared to your paid listings? Who are your audience? Which countries and cities drive more traffic to you? What is the percentage of the traffic you have that are coming from smart phones or tablets? All these questions and a lot more will be tackled and answered in a periodically report with recommendations on how to use such valuable information to increase your traffic and conversions for example by optimizing your site (or special pages) for specific platforms, or by increasing your presence in specific cities, etc.

Competition tracking

Competition plays an important role in your online success. So understanding your competitors techniques and strategies will definitely gives you a lot of ideas an opportunities. You need to know what keywords your competitors are using and targeting, where their traffic come from, which websites are enriching them with inbound links, and many more valuable information that we will prepare and send you on regular basis.

Brand monitoring (Reputation Tracking)

Brand monitoring is an essential task for any company. By tracking what people are saying about your brand, and how often they’re saying it, you can ensure the right message is getting out there. Your brand (or the owner himself) may be mentioned in the news, or in a press release, or any online entry. Whether this mention is positive or negative, it is your right to know if somebody is talking about you, using your name, or published a feedback or review about it, and where and when was that mention.

Social Media Monitoring

With Social monitoring tools, we will search different type of online content such as blogs, comments, bookmarks, events, news, videos, and microblogging services and track mentions of your brand across all of these areas. The results are aggregated from the top social media sources, such as Flickr, YouTube, Digg, Delicious, Twitter and more.

Indexing and crawling new pages

For a new page to be visible to search engines, they need to crawl your website from time to time and index new pages. This is a process that may take a long time if not managed by professionals.

Performance Tracking

Tracking your website performance is an essential always-on task. You need to be aware of many factors happening on your website all the time. How many vistors visit you, where do they come from? Which articles have more traffic? Which pages convert more than the others? What are the actual values of specific pages? Bounce and exit rates, time on site, and many other metrics that we will summarize to you and provide you with one report having all the data you need without dedicating time, effort, and money to understand your site’s performance. 

Industry-related Keywords Trends and insights

Search engines are all about keywords. And a strategic keyword is that that has a traffic volume related to your industry, interested in your business, and is missed by your competitors. It is our job to find these trendy and strategic keywords and provide you with a list every period of time with suggestions and ideas to write about or implement in your website.

Fixing Google’s Penguin and Panda Penalties or other negative SEO

Google Penguin is a code name for a Google algorithm update that was first announced on April 24, 2012. The update is aimed at decreasing search engine rankings of websites that violate Google’s Webmaster Guidelines. Before Penguin, Google released a series of algorithm updates called Panda with the first appearing in February 2011. Panda aimed at downranking websites that provided poor user experience. The algorithm follows the logic by which Google’s human quality raters determine a website’s quality. In January 2012, so-called page layout algorithm update was released, which targeted websites with little content above the fold. These algorithms have harmed many websites and are still.
By working on your website we will make sure it will not be penalized and if it was already harmed, we will fix what has been broken.

Content Suggestions

In SEO, there is a famous saying that says; content is the King. However, content should be created with SEO in mind to know exactly what people are interested in and searching for, and more important to select trending topics with less competition to rank higher on SERPs.  

Microformats and rich snippets suggestions

Microformats (AKA rich snippets or Schema) are semantic markups or structured data that helps Google understand the content on your site, which can be used to display rich snippets in search results. So if the nature of your site’s content is apparels, a user could classify results by color, price, size, etc. or if it is a recipes website, the search engine can let users search by ingredients, cooking duration, or even the name of the cook. Microformats is now considered a very important trend on search engines and is highly recommended on all types of websites

Local Places Optimization

If your business or company is doing a Local Business, We will list your website on the Local Map & Places listings on Google, Yahoo, Bing, and Facebook.

Where Bad (Scam) Ads are Going in 2013? infographic and Video

In 2011, advertisers submitted billions of ads to Google, and of those, Google disabled more than 130 million ads. And their systems continue to improve—in fact, in 2011 they reduced the percentage of bad ads by more than 50% compared with 2010. That means that their methods are working. Google is also catching the vast majority of these scam ads before they ever appear on Google or on any of their partner networks.
For example, in 2011, Google shut down approximately 150,000 accounts for attempting to advertise counterfeit goods, and more than 95% of these accounts were discovered through Google’s own detection efforts and risk models.

Here’s David Baker, Engineering Director, who can explain more about how Google detect and remove scam ads:

In 2012, Google continued to make progress towards this goal: They introduced new tools for stopping bad ads, provided greater transparency around the ads review process, and explained how advertisers can connect with them if they ever mistakenly disapprove good ads. 

Below is a more complete look at Google’s efforts to combat bad ads in 2012.


Google SERP above the fold search ads results now 100%

Google Ads for search advertising on high commercial intent keywords take up to 85% of above the fold pixels and could be even 100%

SERP above the fold

Wednesday, 16 January 2013

Free keyword suggestion tool for your SEO and PPC campaigns

Übersuggest is a Free keyword suggestion tool that makes good use of Google Suggest and other suggest services.

keywords suggestion tool
Übersuggest Logo

How it works?

  1. Write a term in the box.
  2. Choose a language and a source. Übersuggest can get suggestions either from regular Web search or from search verticals like Shopping, News or Video (more to come).
  3. Übersuggest takes your base term, add a letter or a digit in front of it, and extracts suggestions for it.
  4. Click on each word to get further suggestions based on that term.
  5. Add each keyword to your basket clicking on the plus sign on its left.
  6. Add all visible keywords to your basket clicking on the large grey button.

Friday, 11 January 2013

Top CPCs on Adwords Google (Most expensive Keywords)

Most top expensive words for CPC Adwords

Source: wordpress 

What to Do if your campaign is targeting these niche expensive keywords? 

1- Enhance Quality Score with More relevant ads to landing pages
2- Create Long-Tail-Keywords that has low competition and high search volume 

How to Benefit from that and have your share from Google?

By Targeting these keywords in your Adsense 
:) Smart huh? 

Thursday, 3 January 2013

Subdomains or Subfolders? which is better for SEO

A colleague of mine asked me yesterday which is better to have her company's blog as a subdomain entry or as a subfolder.

i.e. to be " (Subdomain)
or "" (Subfolder) 

The first thing that may pop up to your mind is to have them both for maximizing direct traffic to either of the pages. Then you will think of duplication issues and will consider Canonicalization (having one URL for duplicate content). Google is already doing that if you noticed ( AND automatically redirects to subfolders AND The same happens for adwords website but in an opposite manner.

But what are the Search engines opinion about Domains and folders? 

Search engines have metrics that they apply to pages, such as PageRank, and metrics they apply to subdomains and root domains (including things like TrustRank, various quality scores, domain level link metrics like Domain mozRank, etc.). 

Individual pages benefit from being on powerful subdomains & root domains. This is why if someone copies your personal blog post on the best way to microwave burritos into Wikipedia, that page will rank far better than yours, even with the exact same content (ignoring the duplicate content issues).

Subdomains DO NOT always inherit all of the positive metrics and ranking ability of other subdomains on a given root domain.

Some subdomains GET NO BENEFIT from the root domain they're on. These include sites like,,, and many others where anyone can create their own subdomain to begin publishing.

Subfolders DO appear to receive all the benefits of the subdomain they're on and content/pages behave remarkably similarly no matter what subfolder under a given subdomain they're put in.
Good internal and cross linking CAN HELP to give share the positive metrics from one subdomain to another (but not always and not perfectly).

For these reasons, if you're seeking to maximize your ranking ability for a given piece of content, you should, most of the time, keep it on 1 subdomain under 1 root domain (but feel free to use subfolders as it makes sense). 

Want to link your blog?  or add a Press Release? 

Simply put in in a subfolder like that  

But when to use When to Use a Subdomain for SEO purposes? 

Subdomains can sometimes make sense when:

  • You already have two pages from your main domain ranking for a particular search query (and are trying to saturate the search results with your listings). This works because Google will show a maximum of two URLs on a given search results pages from a given subdomain, but may show more from a given root domain if there are multiple subdomains. 
  • You have a particular keyword you want to rank for that you're using in the subdomain (or a combination keyword phrase that the subdomain + root domain tie together perfectly) and you're doing specific targeting with the tactic of letting the copy/paste of the URL serve as ideal anchor text. For example, if I owned and used subdomains for specific brands like knowing that many people would link using the subdomain URL and give my page that perfect anchor text.
  • You already have a subdomain that's working well, ranking well and would be a pain to move. In the past, we've done some work to redirect subdomains back to subfolders on a root domain and seen considerable rises in traffic & rankings, but this is almost universally for root domains with large numbers of subdomains. If you just have 1-5 subdomains and they're performing well, it's not a huge concern (though it might warrant testing a redirect on one just to see).

Pinterest Cheat Sheet for Business and SEO

An interesting infographic on the 10 commandments of Using Pinterest for Business to drive more traffic and help your Search Engine Optimization (SEO) 


Pinterest cheat sheet for business and SEO optimization

On-Site and Off-Site SEO basics and Best practices

On-Site SEO basics and Best practices

·         Put KW in the page title
·         Put KW In the 1st paragraph of content
·         Use KW’s as internal links that point back to the page from other pages
·         Avoid using single words as navigation.
·         Use KW’s as files names and directories accessed by the website
·         Use KW ‘s as alt image tags (hint – Use for a SERP boost!)
·         Use KW’s header tags (H1-H5)
·         Use bold, italics and superscript/subscript kw phrases – but not exact
·         Always use images that have kw file name, kw alt tag and description. An put a link to any other page.
·         Use Breadcrumbs – breadcrumbs>look>like>these>things>in>between>pages
·         Add social media plugins like Facebook, G+, Twitter, Pinterest, Tumblr, etc.
·         Add an RSS feed (widget/plugin) that sends additional content to your site. Identify relative sites with RSS feeds and paste them into the widget and your done. This is as easy as attaching an image to an email.

Off-Site SEO basics and Best practices

·         Set Geotargeting in Webmaster Tools (Settings)
·         Use and install several Onlywire accounts
·         Submit official press releases every 2 weeks (PRWeb , SENuke & Marketwire) – Massive authority back links from news organisations
·         Buy and use SENukeCr – Only use select modules and customise it
·         Use Majestic SEO, LinkResearch Tools, SEOMoz or Ahrefs and target your competitors good links
·         If you have more than one significant country or language, create subdomains and treat them as separate websites
·         If you are going to buy links you must buy links from sites that your competitor sites link from and also through Link Brokers, only if there are relevant links to the site you are buying the link on. Links in existing content and sidebars are preferred in this dataset/algorithm update.

Wednesday, 2 January 2013

Facebook Open Graph Semantic Markup Protocol

Another important rich snippet Microformat is the Facebook Open Graph Protocol.

In 2010, Facebook starts using the Open Graph protocol to help ensure your site’s pages are presented well in Facebook search and various interfaces

Although it is not a Searc engine semantic markup, you should not worry as you can use the Facebook Open Graph Semantic Markup Protocol simultaneously with semantic Markups rich snippets protocol — the two do not conflict with one another.

Facebook Open Graph protocol semantic markup rich snippet schema microformating

From The Open Graph protocol 

The Open Graph protocol enables any web page to become a rich object in a social graph. For instance, this is used on Facebook to allow any web page to have the same functionality as any other object on Facebook.
While many different technologies and schemas exist and could be combined together, there isn't a single technology which provides enough information to richly represent any web page within the social graph. The Open Graph protocol builds on these existing technologies and gives developers one thing to implement. Developer simplicity is a key goal of the Open Graph protocol which has informed many of the technical design decisions.

Basic facebook open graph protocol Metadata

To turn your web pages into graph objects, you need to add basic metadata to your page. We've based the initial version of the protocol on RDFa which means that you'll place additional <meta> tags in the <head> of your web page. The four required properties for every page are:
  • og:title - The title of your object as it should appear within the graph, e.g., "The Rock".
  • og:type - The type of your object, e.g., "". Depending on the type you specify, other properties may also be required.
  • og:image - An image URL which should represent your object within the graph.
  • og:url - The canonical URL of your object that will be used as its permanent ID in the graph, e.g., "".
As an example, the following is the Open Graph protocol markup for The Rock on IMDB:
<html prefix="og:">
<title>The Rock (1996)</title>
<meta property="og:title" content="The Rock" />
<meta property="og:type" content="" />
<meta property="og:url" content="" />
<meta property="og:image" content="" />

Optional Metadata

The following properties are optional for any object and are generally recommended:
  • og:audio - A URL to an audio file to accompany this object.
  • og:description - A one to two sentence description of your object.
  • og:determiner - The word that appears before this object's title in a sentence. An enum of (a, an, the, "", auto). If auto is chosen, the consumer of your data should chose between "a" or "an". Default is "" (blank).
  • og:locale - The locale these tags are marked up in. Of the format language_TERRITORY. Default is en_US.
  • og:locale:alternate - An array of other locales this page is available in.
  • og:site_name - If your object is part of a larger web site, the name which should be displayed for the overall site. e.g., "IMDb".
  • og:video - A URL to a video file that complements this object.
For example (line-break solely for display purposes):
<meta property="og:audio" content="" />
<meta property="og:description" 
  content="Sean Connery found fame and fortune as the
           suave, sophisticated British agent, James Bond." />
<meta property="og:determiner" content="the" />
<meta property="og:locale" content="en_GB" />
<meta property="og:locale:alternate" content="fr_FR" />
<meta property="og:locale:alternate" content="es_ES" />
<meta property="og:site_name" content="IMDb" />
<meta property="og:video" content="" />
The RDF schema (in Turtle) can be found at

Structured Properties

Some properties can have extra metadata attached to them. These are specified in the same way as other metadata with property and content, but the property will have extra :.
The og:image property has some optional structured properties:
  • og:image:url - Identical to og:image.
  • og:image:secure_url - An alternate url to use if the webpage requires HTTPS.
  • og:image:type - A MIME type for this image.
  • og:image:width - The number of pixels wide.
  • og:image:height - The number of pixels high.
A full image example:
<meta property="og:image" content="" />
<meta property="og:image:secure_url" content="" />
<meta property="og:image:type" content="image/jpeg" />
<meta property="og:image:width" content="400" />
<meta property="og:image:height" content="300" />
The og:video tag has the identical tags as og:image. Here is an example:
<meta property="og:video" content="" />
<meta property="og:video:secure_url" content="" />
<meta property="og:video:type" content="application/x-shockwave-flash" />
<meta property="og:video:width" content="400" />
<meta property="og:video:height" content="300" />
The og:audio tag only has the first 3 properties available (since size doesn't make sense for sound):
<meta property="og:audio" content="" />
<meta property="og:audio:secure_url" content="" />
<meta property="og:audio:type" content="audio/mpeg" />


If a tag can have multiple values, just put multiple versions of the same <meta> tag on your page. The first tag (from top to bottom) is given preference during conflicts.
<meta property="og:image" content="" />
<meta property="og:image" content="" />
Put structured properties after you declare their root tag. Whenever another root element is parsed, that structured property is considered to be done and another one is started.
For example:
<meta property="og:image" content="" />
<meta property="og:image:width" content="300" />
<meta property="og:image:height" content="300" />
<meta property="og:image" content="" />
<meta property="og:image" content="" />
<meta property="og:image:height" content="1000" />
means there are 3 images on this page, the first image is 300x300, the middle one has unspecified dimensions, and the last one is 1000px tall.

Object Types

In order for your object to be represented within the graph, you need to specify its type. This is done using theog:type property:
<meta property="og:type" content="website" />
When the community agrees on the schema for a type, it is added to the list of global types. All other objects in the type system are CURIEs of the form
<head prefix="my_namespace:">
<meta property="og:type" content="my_namespace:my_type" />
The global types are grouped into verticals. Each vertical has its own namespace. The og:type values for a namespace are always prefixed with the namespace and then a period. This is to reduce confusion with user-defined namespaced types which always have colons in them.


og:type values:
  • music:duration - integer >=1 - The song's length in seconds.
  • music:album - music.album array - The album this song is from.
  • music:album:disc - integer >=1 - Which disc of the album this song is on.
  • music:album:track - integer >=1 - Which track this song is.
  • music:musician - profile array - The musician that made this song.
  • music:song - - The song on this album.
  • music:song:disc - integer >=1 - The same as music:album:disc but in reverse.
  • music:song:track - integer >=1 - The same as music:album:track but in reverse.
  • music:musician - profile - The musician that made this song.
  • music:release_date - datetime - The date the album was released.
  • music:song - Identical to the ones on music.album
  • music:song:disc
  • music:song:track
  • music:creator - profile - The creator of this playlist.
  • music:creator - profile - The creator of this station.


og:type values:
  • video:actor - profile array - Actors in the movie.
  • video:actor:role - string - The role they played.
  • video:director - profile array - Directors of the movie.
  • video:writer - profile array - Writers of the movie.
  • video:duration - integer >=1 - The movie's length in seconds.
  • video:release_date - datetime - The date the movie was released.
  • video:tag - string array - Tag words associated with this movie.
  • video:actor - Identical to
  • video:actor:role
  • video:director
  • video:writer
  • video:duration
  • video:release_date
  • video:tag
  • video:series - video.tv_show - Which series this episode belongs to.
A multi-episode TV show. The metadata is identical to
A video that doesn't belong in any other category. The metadata is identical to

No Vertical

These are globally defined objects that just don't fit into a vertical but yet are broadly used and agreed upon.
og:type values:
  • article:published_time - datetime - When the article was first published.
  • article:modified_time - datetime - When the article was last changed.
  • article:expiration_time - datetime - When the article is out of date after.
  • article:author - profile array - Writers of the article.
  • article:section - string - A high-level section name. E.g. Technology
  • article:tag - string array - Tag words associated with this article.
book - Namespace URI:
  • book:author - profile array - Who wrote this book.
  • book:isbn - string - The ISBN
  • book:release_date - datetime - The date the book was released.
  • book:tag - string array - Tag words associated with this book.
  • profile:first_name - string - A name normally given to an individual by a parent or self-chosen.
  • profile:last_name - string - A name inherited from a family or marriage and by which the individual is commonly known.
  • profile:username - string - A short unique string to identify them.
  • profile:gender - enum(male, female) - Their gender.
No additional properties other than the basic ones. Any non-marked up webpage should be treated as og:typewebsite.

REMEMBER to Test the snippets on Google’s Structured Data Testing Tool (previously called the “Rich Snippet Testing Tool”)


Facebook Open Graph protocol 
Facebook Developers Page