I think I may have found a simple solution…
Instead of creating a new channel just for META tag management of index pages, or hard coding, or adding commercial add-ons, I already have a channel called Pages, for things like About Us, Contact Us etc. which use the SEO Lite module to manage META data for those pages.
So all I have done is create a Page for my index pages, so Blog, News, etc. then use the SEO Lite tab to add in the META data for those as if they are channel entries.
Then using the following SEO Lite code it shows the correct META data on the channel listing page that otherwise would not have entries:
{if segment_2 != ''}
{exp:seo_lite use_last_segment="yes" friendly_segments'"y" default_title='{segment_2}’ default_keywords=’’ default_description=’’ }
{/if}
{if segment_1 != '' && segment_2 == ''}
{exp:seo_lite use_last_segment="yes" friendly_segments'"y" default_title='{segment_1}’ default_keywords=’’ default_description=’’ }
{/if}
{if segment_1 == '' && segment_2 == ''}
{exp:seo_lite url_title='home' default_keywords='' default_description='' }
{/if}
So SEO Lite will show the META entered for each Page, and if no META data is entered it takes the {segment_1} or {segment_2}, and if both those are missing (so home page) will use the url_title to get the META info for home, showing Site Name if this is not entered.
A bonus of this is we can use these pages to actually add some text perhaps an intro above the News listing on the /news page itself.
Notice my default_keywords and default_description are blank… I don’t want default ones because then unless I add them for all pages, I will have duplicate ones across multiple pages which is not good for SEO. Keywords are not used anymore, and if a description is blank Google will take it from the content.
The only issue I can see so far is when going to http://www.mydomain.co.uk/site/news it shows the content on its own because it thinks its a channel entry, but we don’t use this URL we use http://www.mydomain.co.uk/news . To get around this I could always put the news in my site template instead of its own, OR do a redirect to the /news if /site/news is entered.