DBMS are relational and so should be your data model.
This is what I would do:
TABLE_WebPage
------------
integer id;
varchar(50) name;
varchar(300) url;
.
.
.
TABLE_PageMetaTag
------------------
integer id;
integer pageId;
varchar(10) name;
varchar(50) value;
Here a parameterized SQL statement that would fetch all meta names and value for one of your web pages:
SELECT m.name, m.value
FROM TABLE_PageMetaTag m
WHERE m.pageID = @pageID
And if you wanted to know how many meta tags there are on each page do this:
SELECT p.name, COUNT(m.*) AS NumberOfTags
FROM TABLE_WebPAge p
INNER JOIN TABLE_PageMetaTag m ON p.id = m.pageId
WHERE
NOT m.name IS NULL
AND
NOT m.value IS NULL
GROUP BY p.name
I hope this gives you an idea of what I would suggest (for a start).
Actually I'd go even further and also make a separate table for the tag names. Then TABLE_PageMetaTag would not contain the name of the tag itself, but rather a foreign key to an extra table which we might call TABLE_MetaTagName.
The advantage of such an approach is that there may be a change in the number of tags and this solution accommodates quite nicely to that. Only meta tags that contain a value need to be stored and if you take my additional approach with the names in a separate table you can also find out which web pages have which meta tags missing on them.
Reap the benefits of a truely relational data model!
-MRB