Return of the Blackcaps

, 26 April 2024
Return of the Blackcaps
Blackcap © Neil Fletcher

Blackcaps return to England in April. While Cuckoos and Chiffchaffs, also early returning migrants, broadcast their arrival with their monotonous two-note tunes the Blackcap lets loose a rich, full-throated, joyous warble; a defiant announcement that lets everyone know they've cheated death for another winter.

Click here to hear the Blackcap's warble.

This colourful song comes from a colourless little warbler, yet there’s something stylish and continental about the Blackcap’s appearance. Their two-tone grey suit and black beret pulled over dark eyes make them look like some Parisian beatnik. I half expect to catch him sat in the garden’s willow tree smoking Gauloises and muttering about Sartre.

Blackcap James Duncan
Male Blackcap by James Duncan.

The female Blackcap’s beret is a rich chestnut brown; hardly qualifying her to use the name Blackcap at all.

The Blackcaps will be here all summer then as daylight, temperature and insect food dwindles. Blackcaps, whitethroats, Chiffchaffs, Reed, Sedge and Willow Warblers all evacuate this country. England is no place for a warbler in winter. Each autumn their fragile, feathered bodies fly to Spain and deeper into sub-Saharan Africa on the promise of warmth, food and, ultimately, life.

So, finding a Blackcap swinging on your birdfeeder in December will be as unlikely as seeing Santa at a midsummer barbeque. But at Christmas, miracles can happen.

The laws of nature clearly state that all European Blackcaps must migrate south for the winter. But in the sixties, a small gang of nonconformist Blackcaps in Germany started a revolution. They headed west instead of south, ending up in England. Mother Nature is not kind to those who disobey her rules and this suicide squad was surely sentenced to a frozen death in our frosty winter. But instead they found a new England. A land of mild winters, ornamental berry bushes and strange people who hung balls of fat in their gardens. They didn’t freeze and starve. They survived.

Not only that; the following spring’s short flight home to Germany meant they arrived ahead of their law-abiding neighbours who were still struggling back from their long-haul holiday in Africa. The returning rebels were therefore able to claim the best territories and produce larger families. They raised more revolutionaries who returned to England each winter. Now a small population of Blackcaps makes England’s gardens their winter home; exotic apparitions of summer amongst the Robins and the frost. They’ll have flown back to Germany by the time 'our' British Blackcaps return from Africa, exhausted and oblivious, in April to serenade me on my sun lounger.

Leave a comment
Time Δ Debug Message - Perch Runway 3.2
1782705949.0290 [906] SELECT p.pagePath, pr.routePattern, pr.routeRegExp, p.pageTemplate, pr.routeOrder, s.settingValue AS siteOffline FROM swt_pages_staging p LEFT JOIN swt_page_routes pr ON p.pageID=pr.pageID LEFT JOIN swt_settings s ON s.settingID='siteOffline' UNION SELECT NULL AS pagePath, pr2.routePattern, pr2.routeRegExp, pr2.templatePath AS pageTemplate, pr2.routeOrder, NULL AS siteOffline FROM swt_page_routes pr2 WHERE templateID!=0 ORDER BY routeOrder ASC, pagePath ASC
1782705949.05490.0259Matched route: news/[slug:s]
1782705949.0550.0001Server address: 216.73.216.31
1782705949.05510Using master page: /templates/pages/blog/post.php
1782705949.05510Page arguments:
Array
(
    [0] => /news/return-of-the-blackcaps
    [s] => return-of-the-blackcaps
    [1] => return-of-the-blackcaps
)
1782705949.05550.0004 [1] SELECT * FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782705949.05660.0011 [86] SELECT DISTINCT settingID, settingValue FROM swt_settings WHERE userID=0
1782705949.05860.002 [1] SELECT locationID FROM swt_shop_tax_locations WHERE locationIsHome=1 LIMIT 1
1782705949.05930.0007INSERT INTO swt_shop_cart(memberID,locationID,currencyID,cartPricing,cartProperties) VALUES(NULL,'1',47,'standard','[]')
1782705949.0620.0027 [1] SELECT * FROM swt_shop_cart WHERE cartID=22404212
1782705949.06270.0007 [1] SELECT * FROM swt_shop_cart WHERE cartID=22404212
1782705949.06330.0007 [nil] SELECT * FROM swt_shop_sales WHERE saleFrom<='2026-06-29 04:05:00' AND saleTo>'2026-06-29 04:05:00' AND saleActive=1 AND saleDeleted IS NULL ORDER BY saleOrder ASC
1782705949.06510.0018 [1] SELECT SQL_CALC_FOUND_ROWS DISTINCT tbl.* FROM ( SELECT idx.itemID, main.*, idx2.indexValue as sortval FROM swt_blog_index idx JOIN swt_blog_posts main ON idx.itemID=main.postID AND idx.itemKey='postID' JOIN swt_blog_index idx2 ON idx.itemID=idx2.itemID AND idx.itemKey='postID' AND idx2.indexKey='_id' WHERE 1=1 AND ((idx.indexKey='postSlug' AND idx.indexValue='return-of-the-blackcaps')) AND idx.itemID=idx2.itemID AND idx.itemKey=idx2.itemKey GROUP BY idx.itemID, idx2.indexValue, postID ) as tbl WHERE (postStatus='Published' AND postDateTime<='2026-06-29 04:05:00' ) GROUP BY itemID, sortval ORDER BY sortval ASC LIMIT 0, 10
1782705949.0680.0029 [1] SELECT FOUND_ROWS() AS `count`
1782705949.06890.001 [1] SELECT * FROM swt_blog_posts WHERE postID=3375 AND postStatus='Published' AND postDateTime<='2026-06-29 04:05:00'
1782705949.070.0011 [13] SELECT * FROM swt_blog_sections ORDER BY sectionTitle ASC
1782705949.07090.0008 [1] SELECT * FROM swt_blogs ORDER BY blogTitle ASC
1782705949.07160.0007 [1] SELECT * FROM swt_categories WHERE catID=45 LIMIT 1
1782705949.07230.0008Using template: /templates/blog/post.html
1782705949.07250.0002 [162] SELECT catID, catPath FROM swt_categories
1782705949.07350.001 [1] SELECT * FROM swt_blog_posts WHERE postStatus='Published' AND postDateTime<='2026-06-29 04:05:00' AND postSlug='return-of-the-blackcaps'
1782705949.09430.0208Using template: /templates/blog/post.html
1782705949.09480.0005 [250] SELECT country, countryID FROM swt_shop_countries WHERE countryActive=1 ORDER BY country ASC
1782705949.09670.0019Using template: /templates/pages/attributes/seo.html
1782705949.09690.0002 [1] SELECT regionID, regionTemplate, regionPage, regionRev AS rev FROM swt_content_regions WHERE regionKey='Banner image' AND (regionPage='/news/post' OR regionPage='*')
1782705949.09790.001 [nil] SELECT * FROM ( SELECT idx.itemID, c.regionID, idx.pageID, c.itemJSON, idx2.indexValue as sortval FROM swt_content_index idx JOIN swt_content_items c ON idx.itemID=c.itemID AND idx.itemRev=c.itemRev AND idx.regionID=c.regionID JOIN swt_content_index idx2 ON idx.itemID=idx2.itemID AND idx.itemRev=idx2.itemRev AND idx2.indexKey='_order' WHERE ((idx.regionID=104 AND idx.itemRev=0)) AND idx.itemID=idx2.itemID AND idx.itemRev=idx2.itemRev ) as tbl GROUP BY itemID, pageID, itemJSON, sortval, regionID ORDER BY sortval ASC
1782705949.09960.0016 [82] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageDepth >=0 AND pageDepth<=2 ORDER BY pageTreePosition ASC
1782705949.10280.0032 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782705949.10340.0006 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782705949.10630.0029Using template: /templates/navigation/ps_nav_template.html
1782705949.10640.0001 [6] Using template: /templates/navigation/ps_nav_template_children.html
1782705949.10740.001 [4] Using template: /templates/navigation/ps_nav_template_children.html
1782705949.10790.0005 [29] Using template: /templates/navigation/ps_nav_template_children.html
1782705949.11060.0027 [10] Using template: /templates/navigation/ps_nav_template_children.html
1782705949.11170.0011 [7] Using template: /templates/navigation/ps_nav_template_children.html
1782705949.11260.0008 [9] Using template: /templates/navigation/ps_nav_template_children.html
1782705949.11560.003 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' OR pageSortPath='/news/post' LIMIT 1
1782705949.11650.0009 [1] SELECT * FROM swt_pages_staging WHERE pageHidden=0 AND pageNew=0 AND pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition
1782705949.11870.0022 [1] Using template: /templates/navigation/breadcrumbs.html
1782705949.11930.0006Using template: /templates/blog/post.html
1782705949.11960.0003 [1] SELECT * FROM swt_blog_authors WHERE authorID='1' LIMIT 1
1782705949.12040.0009Using template: /templates/blog/author.html
1782705949.12090.0005 [1] SELECT SQL_CALC_FOUND_ROWS DISTINCT tbl.* FROM ( SELECT idx.itemID, main.*, idx2.indexValue as sortval FROM swt_blog_index idx JOIN swt_blog_posts main ON idx.itemID=main.postID AND idx.itemKey='postID' JOIN swt_blog_index idx2 ON idx.itemID=idx2.itemID AND idx.itemKey='postID' AND idx2.indexKey='_id' WHERE 1=1 AND ((idx.indexKey='postSlug' AND idx.indexValue='return-of-the-blackcaps')) AND idx.itemID=idx2.itemID AND idx.itemKey=idx2.itemKey GROUP BY idx.itemID, idx2.indexValue, postID ) as tbl WHERE (postStatus='Published' AND postDateTime<='2026-06-29 04:05:00' ) GROUP BY itemID, sortval ORDER BY sortval ASC LIMIT 0, 1
1782705949.1230.0021 [1] SELECT FOUND_ROWS() AS `count`
1782705949.12360.0006 [1] Using template: /templates/blog/post.html
1782705949.12660.0029Using template: /templates/blog/comment_form.html
1782705949.12770.0011 [nil] SELECT * FROM swt_blog_comments WHERE 1=1 AND postID=3375 AND commentStatus='LIVE' ORDER BY FIELD(webmentionType, 'like', 'repost', 'comment', NULL) ASC, commentDateTime ASC
1782705949.17850.0508 [0] Using template: /templates/blog/comment.html
1782705949.17880.0003Using template: /templates/blog/post.html
1782705949.17910.0003 [1] SELECT * FROM swt_blog_authors WHERE authorID='1' LIMIT 1
1782705949.180.001 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/what-we-do' OR pageSortPath='/what-we-do' LIMIT 1
1782705949.18080.0008 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-002' LIMIT 1
1782705949.18150.0007 [7] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-002%' AND pageDepth >=1 AND pageDepth<=2 ORDER BY pageTreePosition ASC
1782705949.1840.0025 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782705949.18470.0007 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782705949.18680.0021 [6] Using template: /templates/navigation/footer-nav.html
1782705949.18820.0014 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/make-a-difference' OR pageSortPath='/make-a-difference' LIMIT 1
1782705949.18890.0007 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-005' LIMIT 1
1782705949.18940.0005 [38] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-005%' ORDER BY pageTreePosition ASC
1782705949.19170.0024 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782705949.19240.0006 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782705949.19460.0022 [10] Using template: /templates/navigation/footer-nav.html
1782705949.19850.0039 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/visit' OR pageSortPath='/visit' LIMIT 1
1782705949.19940.0009 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-004' LIMIT 1
1782705949.20.0006 [30] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-004%' AND pageDepth >=1 AND pageDepth<=2 ORDER BY pageTreePosition ASC
1782705949.20230.0023 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782705949.20280.0006 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782705949.20480.0019 [29] Using template: /templates/navigation/footer-nav.html
1782705949.20750.0028 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/make-a-difference' OR pageSortPath='/make-a-difference' LIMIT 1
1782705949.20840.0008 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-005' LIMIT 1
1782705949.2090.0006 [11] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-005%' AND pageDepth >=1 AND pageDepth<=2 ORDER BY pageTreePosition ASC
1782705949.21130.0023 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782705949.21190.0006 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782705949.21370.0019 [10] Using template: /templates/navigation/footer-nav.html
1782705949.21510.0014Request time: 0.1887
1782705949.21510Process time: 0.1886
1782705949.21520Memory: 1.6217