You've got nonsense within your <title></title> elements at the top of each page.
For your index.php you could use
<title> <?php bloginfo('name'); ?> <?php bloginfo('description'); ?></title>
For your category.php you could use
<title><?php echo category_description(); ?></title>
For your single.php you could use
<title>
<?php $title = get_post_meta($post->ID, "title", true);
if ($title !=='') {echo "$title";} ?>
</title>
<meta name="description"
content="<?php $meta_description = get_post_meta($post->ID, "meta-description", true);
if ($meta_description !=='')
{echo "$meta_description";} ?>" />
You'll need to create custom fields called 'title' and 'meta-description' for the single.php
(From my notes)
Both the title and the meta description use Custom Fields. Custom Fields are a way of adding extra information to a post (single.php) or Page (page.php) and then pulling out that information and displaying it in useful ways. In this case Custom Fields are used for the title element and the meta description, which is far more robust than relying on plugins.
In the Admin Panel / Pages / Add New you'll find the text Custom Fields immediately below the big box where you enter your text, images etc. for your post.
Click Enter New
In the Name box type in the word title
In the Value box type in the title for that post e.g. Strawberries are great!
Click Add Custom Field
From now on there will always be a dropdown box below every post and every Page, and you can select title from that dropdown box. In the Value box you can then enter information that you want displayed between the title elements <title></title> for that post or Page e.g. Strawberries are great!.
For the meta desciption follow the same steps as above, but in the Name box type in meta-description