views:

41

answers:

1

I'm developing a website (using asp.net-mvc) with a SqlServer 2005 database. I have numerous database tables which drive content pages for the site e.g. I have a table called Activity:

Activity
-----------
ID
Name

So for each activity record, there would be a corresponding 'Activity' page. The same applies for other tables e.g. Location and Person etc.

For the purposes of SEO I want to allow storing of additional info for pages such as html meta title/descritpion/keyword info, and perhaps even page content.

I'm considering two main options to do this:

1) Modify Activity, Location and Person tables to include the relevant fields to hold this additional info

or

2) Create a PageInfo table to hold all this info in the same place, then simply add a PageInfoID field to the above mentioned tables

What are the pros and cons of these approaches and are there any better ways of doing this?

(One con I can think of for option 2 is that you can't really enforce the 1:1 relationship, so you could, theoretically, have a PageInfo record used by an Activity record and a Person record.

+1  A: 

If i may suggest.. you may be going about this SEO thing the wrong way.

Rather than trying to pack each page with additional meta-data per 'Activity' object to get better search results from the page, i think you should concentrate on simply putting the 'Activity' data into the page with clean, semantic, valid XHTML and CSS. This way, search engines will worry about finding out which part of each page is of the most importance and index/rank that accordingly.

Also, trying to add these 'page meta' objects to the domain model of your system will create all sorts of conceptual (and indeed practical) problems for your design and it will certainly be confusing to users who will struggle to understand what the importance of the difference between say an Activity Title verses a Page Title is. Let the bots figure our keywords from your content, dont try to do it yourself - this type of over-optimisation will actually end up resulting in worse page rankings than better ones.

cottsak
Thanks, that's an interesting answer and you've got a good point about the overhead of having to maintain this additional info. One thing though, I was planning that this info would probably be maintained by myself rather than exposing it to ordinary users.
mdresser
I'd still hold to the original argument - you want google/yahoo to decide what's important to index. It not only saves you time but it will get you better results. i promise.
cottsak