How the cunning cuckoo gets away with it

, 05 July 2021
How the cunning cuckoo gets away with it
Cuckoo on a reed warbler nest © Derek Middleton

Charlotte Owen

WildCall Officer 

The call of a common cuckoo is always a welcome, sound but our best-known summer visitor is far less popular with some of our resident birds, thanks to its devious breeding strategy.

The cuckoo is a brood parasite and lays its eggs in the nests of other birds, cleverly avoiding the time-consuming duties of nest-building, incubation and chick-rearing. In the UK, the most common hosts are dunnocks, meadow pipits, pied wagtails and reed warblers. A female cuckoo will stake out a prospective nest from a nearby vantage point, waiting for it to be left unattended before swooping in to deposit her own egg, which is patterned to mimic the eggs of her chosen host. The mimicry isn’t perfect but is usually good enough to fool the unsuspecting parents-to-be, and when the cuckoo chick hatches it will push all the other eggs and chicks out of the nest so that it has the undivided attention of its new foster parents. Meanwhile, the cuckoo’s real mother is busily depositing more of her eggs elsewhere.

Each cuckoo female specialises in one particular host species; she will only ever lay one type of egg, and she will always target her egg-laying appropriately – after all, an egg laid in the wrong host’s nest would not blend in, and would quickly be rejected. There are actually several different types of female cuckoo, and each type is a distinct evolutionary lineage; they all belong to the same species but are genetically coded to produce eggs that match a specific target host. The genes for egg pattern and colour are thought to be carried on the female chromosome, so they are passed down from mother to daughter regardless of who the female mates with.

This means that a ‘reed warbler’ cuckoo always produces eggs with a reed warbler pattern, and she knows which nests to target thanks to the process of imprinting. As a young chick, she will have learned to recognise the song and appearance of her foster mother; and as a returning adult she will seek out the nests of females that match this mental image, and lay her eggs accordingly. 

Leave a comment

Comments

  • Fredrick Arnstein:

    I find this behavior truly reprehensible. No excuse for it. They could build their own nests. Murderers is what they are. I am serious.

    03 Aug 2022 19:43:00

  • Sussex Wildlife Trust:

    All species find ways to survive 

  • David:

    I am endlessly fascinated by Cuckoos! How can you hate them? They are not murderers! Ridiculous comment ! They have evolved to be this way. No evil intent .Only humans are capable of being evil.
    Please stop anthromorphizing them !

    11 Jun 2025 15:27:00

  • Mike Rigby:

    I have always been fascinated by cuckoos ever since my early morning fishing trips as a child. I always try to get out on May mornings to track down some local cuckoos which had become more difficult recently.
    I was interested to read about the imprinting of female cuckoos by their foster parents’ song and habitat. Effectively coming home to the scene of the crime.
    What I have difficulty understanding is that without any same species behaviour to copy , (as their genetic parents are long gone) how do the young cuckoos learn their specialised skill of disemboweling the hairy caterpillars before consuming them. Surely such a specialised skill cannot be coded in the DNA. Not to mention their extreme migration journey?

    24 May 2026 04:01:00

Time Δ Debug Message - Perch Runway 3.2
1783072557.36910 [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
1783072557.39510.026Matched route: news/[slug:s]
1783072557.39530.0002Server address: 216.73.216.251
1783072557.39530.0001Using master page: /templates/pages/blog/post.php
1783072557.39540Page arguments:
Array
(
    [0] => /news/how-the-cunning-cuckoo-gets-away-with-it
    [s] => how-the-cunning-cuckoo-gets-away-with-it
    [1] => how-the-cunning-cuckoo-gets-away-with-it
)
1783072557.39570.0003 [1] SELECT * FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783072557.39690.0012 [86] SELECT DISTINCT settingID, settingValue FROM swt_settings WHERE userID=0
1783072557.39880.0019 [1] SELECT locationID FROM swt_shop_tax_locations WHERE locationIsHome=1 LIMIT 1
1783072557.39950.0007INSERT INTO swt_shop_cart(memberID,locationID,currencyID,cartPricing,cartProperties) VALUES(NULL,'1',47,'standard','[]')
1783072557.40150.002 [1] SELECT * FROM swt_shop_cart WHERE cartID=22561783
1783072557.40210.0006 [1] SELECT * FROM swt_shop_cart WHERE cartID=22561783
1783072557.40280.0007 [nil] SELECT * FROM swt_shop_sales WHERE saleFrom<='2026-07-03 09:55:00' AND saleTo>'2026-07-03 09:55:00' AND saleActive=1 AND saleDeleted IS NULL ORDER BY saleOrder ASC
1783072557.40430.0015 [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='how-the-cunning-cuckoo-gets-away-with-it')) 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-07-03 09:55:00' ) GROUP BY itemID, sortval ORDER BY sortval ASC LIMIT 0, 10
1783072557.4070.0027 [1] SELECT FOUND_ROWS() AS `count`
1783072557.40760.0006 [1] SELECT * FROM swt_blog_posts WHERE postID=2567 AND postStatus='Published' AND postDateTime<='2026-07-03 09:55:00'
1783072557.40850.001 [13] SELECT * FROM swt_blog_sections ORDER BY sectionTitle ASC
1783072557.40920.0007 [1] SELECT * FROM swt_blogs ORDER BY blogTitle ASC
1783072557.40990.0008 [1] SELECT * FROM swt_categories WHERE catID=181 LIMIT 1
1783072557.41050.0005 [1] SELECT * FROM swt_categories WHERE catID=45 LIMIT 1
1783072557.41110.0006Using template: /templates/blog/post.html
1783072557.41130.0002 [162] SELECT catID, catPath FROM swt_categories
1783072557.41230.0009 [1] SELECT * FROM swt_blog_posts WHERE postStatus='Published' AND postDateTime<='2026-07-03 09:55:00' AND postSlug='how-the-cunning-cuckoo-gets-away-with-it'
1783072557.43280.0205Using template: /templates/blog/post.html
1783072557.43330.0006 [250] SELECT country, countryID FROM swt_shop_countries WHERE countryActive=1 ORDER BY country ASC
1783072557.43490.0016Using template: /templates/pages/attributes/seo.html
1783072557.43520.0002 [1] SELECT regionID, regionTemplate, regionPage, regionRev AS rev FROM swt_content_regions WHERE regionKey='Banner image' AND (regionPage='/news/post' OR regionPage='*')
1783072557.43610.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
1783072557.43760.0014 [82] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageDepth >=0 AND pageDepth<=2 ORDER BY pageTreePosition ASC
1783072557.44080.0033 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783072557.44140.0006 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1783072557.44340.002Using template: /templates/navigation/ps_nav_template.html
1783072557.44340 [6] Using template: /templates/navigation/ps_nav_template_children.html
1783072557.44430.0009 [4] Using template: /templates/navigation/ps_nav_template_children.html
1783072557.44480.0005 [29] Using template: /templates/navigation/ps_nav_template_children.html
1783072557.44760.0028 [10] Using template: /templates/navigation/ps_nav_template_children.html
1783072557.44870.0011 [7] Using template: /templates/navigation/ps_nav_template_children.html
1783072557.44940.0007 [9] Using template: /templates/navigation/ps_nav_template_children.html
1783072557.45270.0033 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' OR pageSortPath='/news/post' LIMIT 1
1783072557.45360.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
1783072557.45580.0022 [1] Using template: /templates/navigation/breadcrumbs.html
1783072557.45640.0006Using template: /templates/blog/post.html
1783072557.45670.0003 [1] SELECT * FROM swt_blog_authors WHERE authorID='20' LIMIT 1
1783072557.45740.0007Using template: /templates/blog/author.html
1783072557.45780.0003 [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='how-the-cunning-cuckoo-gets-away-with-it')) 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-07-03 09:55:00' ) GROUP BY itemID, sortval ORDER BY sortval ASC LIMIT 0, 1
1783072557.45960.0019 [1] SELECT FOUND_ROWS() AS `count`
1783072557.46010.0005 [1] Using template: /templates/blog/post.html
1783072557.46370.0036Using template: /templates/blog/comment_form.html
1783072557.46490.0012 [3] SELECT * FROM swt_blog_comments WHERE 1=1 AND postID=2567 AND commentStatus='LIVE' ORDER BY FIELD(webmentionType, 'like', 'repost', 'comment', NULL) ASC, commentDateTime ASC
1783072557.51450.0496 [3] Using template: /templates/blog/comment.html
1783072557.51530.0008Using template: /templates/blog/post.html
1783072557.51590.0006 [1] SELECT * FROM swt_blog_authors WHERE authorID='20' LIMIT 1
1783072557.51670.0007 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/what-we-do' OR pageSortPath='/what-we-do' LIMIT 1
1783072557.51730.0006 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-002' LIMIT 1
1783072557.51790.0006 [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
1783072557.520.0021 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783072557.52080.0008 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1783072557.52310.0023 [6] Using template: /templates/navigation/footer-nav.html
1783072557.5240.0009 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/make-a-difference' OR pageSortPath='/make-a-difference' LIMIT 1
1783072557.52450.0006 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-005' LIMIT 1
1783072557.5250.0005 [38] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-005%' ORDER BY pageTreePosition ASC
1783072557.52720.0022 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783072557.5280.0008 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1783072557.52980.0019 [10] Using template: /templates/navigation/footer-nav.html
1783072557.5330.0032 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/visit' OR pageSortPath='/visit' LIMIT 1
1783072557.53370.0007 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-004' LIMIT 1
1783072557.53420.0005 [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
1783072557.53640.0023 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783072557.53690.0005 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1783072557.53890.0019 [29] Using template: /templates/navigation/footer-nav.html
1783072557.54130.0025 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/make-a-difference' OR pageSortPath='/make-a-difference' LIMIT 1
1783072557.54190.0006 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-005' LIMIT 1
1783072557.54240.0005 [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
1783072557.54430.0019 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783072557.54470.0004 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1783072557.54640.0018 [10] Using template: /templates/navigation/footer-nav.html
1783072557.54760.0012Request time: 0.1818
1783072557.54760Process time: 0.1816
1783072557.54760Memory: 1.6218