There's a LOT of misinformation about what META tags are and what purpose they serve -- when they exist to provide information that is outside the scope of HTML.
That's right, they are there to provide information to user agents that HTML cannot. There IS NO ACTUAL W3C Specification for what goes into "name" or "content"!!! It exists to allow information outside the scope of HTML to be passed. While they do provide examples of using it, none of those are actually written in stone in the HTML specificaion.
While there are many common values, well... let's go down the list of ones that matter.
http-equiv -- this attribute literally means whatever you put in 'content' should be treated the same as if it was in the http header. For example:
Is supposed (some UA's skip this) to be the same as saying
Content-Type: text/html; charset=utf-8
In the HTTP response headers. Other values you could pass include 'vary', 'content-encoding', 'cache-control', and 'expires'. The actually HTTP response headers are supposed to trump this, so in theory it's only useful for passing values that are missing. This is why including the above meta is common and generally worth NOT skipping, since it is what in local testing will be used to decode the document. (otherwise locally it will default to iso 8859-1 in most UA's)... just part of why I dislike the new HTML 5 lip service.
name -- there's a whole plethora of name type meta-data that NOTHING pays ANY attention to. Author, generated, generator -- nobody gives a flying purple fish about those. They do nothing but waste bandwidth for information NOTHING actually uses!
There are generally only three NAME attribute values you actually need to give damned about -- and all three of them are for search engines.
name="keywords" -- a list of words on the current page that are important. This is WORDS -- not phrases, not sentences, WORDS. keywords. They occasional unique two-word non-compound compound (like a proper name) is acceptable, stuffing it with every possible combination is not. People think this meta is ignored -- it isn't ignored (in my own testing) if you *SHOCK* use it properly and have 100% relevance to the page it's on. You should keep it to six to eight words, those words should appear somewhere inside <body> at LEAST once, and be separated with commas. Yes, commas. Not semi-colons, not vertical breaks, COMMAS. Vary from this formula, and you are just wasting bandwidth.
"paku paku" being the proper name of a program is acceptable despite being two words.
You'll often see people doing idiotic nonsense like this:
Which if it wasn't ignored (it is) would be redundant to just saying:
content="pascal,pascal programming, opengl, opengl programming, sdl, sdl programming, game programming, game development, game sales"
It's very easy to use properly, just think of it like a word jumble... six to eight words that actually on the page as text content you'd like to rank just a hair higher for. That's it, that's all it's for.
name="description" -- A short natural language text to be shown on your SERP. This is NOT for SEO in terms of ranking, it's for SEO in terms of making your SERP look more attractive. SERP == Search Engine Results Page -- the page on the search engine your site appears, specifically the listing itself. For some reason some of the SEO snake oil re-re's think SERP means just where you are listed, and not what that listing actually looks like... This of course is fiction, parrotting other snake oil doctors, or just flat out ignorance.
for example, if you had:
Your SERP listing would be something like this:
content="Here in my site, I feel safest of all. I can lock all my ports. The only way to live, is in sites."
Here in my site, I feel safest of all. I can lock all my
ports. The only way to live, is in sites.
Again, a very simple meta, that people abuse endlessly and uselessly failing to grasp the entire point of using it in the first place!
name="robots" -- provides specific instructions for search engines. Single words you can put into the content attribute separated by commas.
'noindex' -- do not index this page for searches. Pretty simple, don't list this page in results. I have the robots.txt equivalent to this in my /for_others directory so all those rewrites I've done for people don't steal their link/search mojo.
'noodp' -- says to use what's on this page for the SERP listing instead of what's listed in the 'open directory project'. I had a problem a while back with a site where someone made a ODP listing for one of my pages, that completely screwed up my results. (said dipshit was arguing my sites didn't index right, then intentionally sabotaged me with ODP -- real class!) Done properly the "open directory project' can make your SERP listing look really nice, but it's redundant and is just one more thing to have to edit.
'noydir' -- yahoo has their own goofy 'content directory' thing, adding this tells them to go shtup themselves.
So, for example:
Would tell the robots not use use ODP and Y! not to use their stupid extra crap.
Bottom line, that's it... two different meta types, three different values for name attribute. ANYTHING else people say to include or tend to use for META are just bandwidth wasting BS... They are very simple to implement and anyone who tells you to play stupid games with the values, use different delimiters or more complex forms are packing you so full of sand you could change your name to Sahara.