Dip into the world of dabbling ducks

, 06 January 2020
Dip into the world of dabbling ducks
Gadwall at Rye Harbour © Barry Yates

Winter is a wonderful time to see wildlife, particularly for fans of our feathered friends. As the cold grip of the Arctic winter takes hold on the lakes, pools and marshes of Northern Europe and Russia, huge numbers of swans, ducks and geese retreat to the relative warmth of the UK. Our lakes, rivers, reservoirs and coasts are a winter home for an estimated 2.1 million ducks!

Ducks can be split into two broad groups: dabblers and divers. As the name suggests, diving ducks feed mainly by diving underwater, using their strong feet (and sometimes their wings) to swim. Dabbling ducks, however, feed predominantly at the surface, sometimes even grazing on land. Many dabblers can often be seen upending, with their heads underwater and their bums in the air.

We’ve pulled together an introduction to the dabbling ducks you’re most likely to see this winter, with a quick guide on how to recognise both males and females. So why not wrap up warm, head to your nearest water body and search for some spinning Shovelers, whistling Wigeon or pristine Pintails.  

The dabbling duck ID quide

Top tip: a useful way of identifying ducks (especially females) is to look at the speculum – this is a coloured patch on the secondary flight feathers, which are the feathers at the trailing edge of the wing, close to the body. The speculum is often a distinctive colour and can easily be seen in flight, and often seen on swimming or standing birds.  

Mallard (male)

The classic duck. Males have a yellow bill and a green head, separated from the brown breast by a thin white collar. The body is mostly grey, with a black rump. The black middle tail feathers curl upwards. The speculum is dark blue with a white border.

Mallard male (c)Mark Hamblin(slash)2020VISION 

© Mark Hamblin/2020VISION

Mallard (female)

Females are a streaky brown all over. They have a patchy orange and black bill (see gadwall for comparison). Like males, they have a dark blue speculum with broad white borders. This is obvious in flight and can sometimes be seen when the duck is on the water or ground.

 Mallard female (c)Bertie Gregory(slash)2020VISION

© Bertie Gregory/2020VISION

Gadwall (male)

Slightly smaller and slimmer than a mallard. Males are mostly grey, with a wavy pattern (known as vermiculations) that is strongest on the breast. They have slightly browner heads, brown feathers on the back and a black rear. The bill is greyish-black and the speculum is small and white.

Gadwall male (c)Guy Edwardes(slash)2020VISION

© Derek Moore

Gadwall (female)

Females are very similar to female mallards, though slightly smaller and slimmer. The best features to look for are the small white speculum on the wing (much smaller than in male gadwalls) and the bill, which is dark with a neat orange stripe along each side (patchier orange and black in mallard).

Gadwall female (c)Derek Moore 

© Guy Edwardes/2020VISION

Pintail (male)

A large elegant duck, with a small brown head, a long neck that's brown at the back and white at the front, and grey body. The black middle feathers of the tail are very long. The speculum is dark green, with a white border at the back and a rusty border at the front. The bill is black with blue sides.

Pintail male (c)Andy Morffew 

© Andrew Morffew

Pintail (female)

Like a slim, elegant mallard, with a long, slender neck and long, pointed tail feathers (not as long as in male). The head is a richer brown than the greyish body, the bill is dark grey and the speculum is bronze-brown with a thick white border at the trailing edge and a narrow white border at the front.

Pintail pair (c)Michael Hughes RESTRICTED 

© Michael Hughes

Shoveler (male)

Similar size to a mallard. Males have a glossy green head, a yellow eye and a huge, broad dark bill. The belly and sides are a rich chestnut brown and the breast is white. The speculum is green, with a white border at the front and a large blue patch on the forewing. Shovelers often feed in pairs or groups, spinning around each other.

Shoveler male (c)Gary Cox 

© Gary Cox

Shoveler (female)

Resembles a female mallard, but with a huge, broad bill (paler than the male's). The speculum is a dull green (blue in mallard), with a white border at the front and no white on the trailing edge (mallard has a white trailing edge).

Shoveler female (c)Guy Edwardes(slash)2020VISION 

© Guy Edwardes/2020VISION

Teal (male)

Our smallest duck (about 2/3 the size of a mallard). The head is chestnut with a yellow-bordered green patch on each side. The body is grey with a horizontal white line running along it, and a yellow patch either side of the rear. The speculum is bright green.

Teal male (c)Guy Edwardes(slash)2020VISION 

© Guy Edwardes/2020VISION

Teal (female)

A very small, streaky brown duck, with a small, dark bill that often has orange towards the base. The speculum is bright green, with a broad white bar in front of it and a narrower one at the trailing edge of the wing.

 Teal female (c)Chris Gomersall(slash)2020VISION

© Chris Gomersall/2020VISION

Wigeon (male)

Smaller than a mallard, with a short neck and small, blue, black-tipped bill. They have a round, chestnut head with a creamy-yellow patch on the forehead. The body is mostly grey, with a white belly, pinkish breast and black rear. The speculum is green with a large white patch in front of it. Often gives a whistling call.

Wigeon male (c)Danny Green(slash)2020VISION 

© Danny Green/2020VISION

Wigeon (female)

Females are mostly a mottled brown, though the shades can vary from greyish-brown to a richer red-brown. They have a small, round head and short, blue bill with a black tip. The belly is white and the speculum is dark and they lack the large white patch of the male. Often in large groups, grazing.

Wigeon female (c)Nick Upton(slash)2020VISION 

© Nick Upton/2020VISION

See them in action

Dive deeper into the world of dabbling ducks with our video identification guide!

Where to see dabbling ducks

The Wildlife Trusts care for many wetland nature reserves across the UK, providing the perfect habitat for our breeding ducks and winter visitors. Here are some of best wild places for dabbling ducks in Sussex…

Leave a comment

Comments

  • Very helpful and interesting; thank you!

    12 Jan 2020 09:11:00

Time Δ Debug Message - Perch Runway 3.2
1783275290.51910 [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
1783275290.54740.0283Matched route: news/[slug:s]
1783275290.54750.0001Server address: 216.73.216.170
1783275290.54750Using master page: /templates/pages/blog/post.php
1783275290.54750Page arguments:
Array
(
    [0] => /news/dip-into-the-world-of-dabbling-ducks
    [s] => dip-into-the-world-of-dabbling-ducks
    [1] => dip-into-the-world-of-dabbling-ducks
)
1783275290.54780.0002 [1] SELECT * FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783275290.54870.001 [86] SELECT DISTINCT settingID, settingValue FROM swt_settings WHERE userID=0
1783275290.55080.0021 [1] SELECT * FROM swt_shop_cart WHERE cartID=22661703
1783275290.55140.0005 [1] SELECT * FROM swt_shop_cart WHERE cartID=22661703
1783275290.55190.0005 [nil] SELECT * FROM swt_shop_sales WHERE saleFrom<='2026-07-05 18:14:00' AND saleTo>'2026-07-05 18:14:00' AND saleActive=1 AND saleDeleted IS NULL ORDER BY saleOrder ASC
1783275290.55290.001 [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='dip-into-the-world-of-dabbling-ducks')) 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-05 18:14:00' ) GROUP BY itemID, sortval ORDER BY sortval ASC LIMIT 0, 10
1783275290.55850.0057 [1] SELECT FOUND_ROWS() AS `count`
1783275290.55910.0006 [1] SELECT * FROM swt_blog_posts WHERE postID=1938 AND postStatus='Published' AND postDateTime<='2026-07-05 18:14:00'
1783275290.56010.001 [13] SELECT * FROM swt_blog_sections ORDER BY sectionTitle ASC
1783275290.56090.0008 [1] SELECT * FROM swt_blogs ORDER BY blogTitle ASC
1783275290.56160.0008 [1] SELECT * FROM swt_categories WHERE catID=110 LIMIT 1
1783275290.56230.0007 [1] SELECT * FROM swt_categories WHERE catID=70 LIMIT 1
1783275290.56270.0004 [1] SELECT * FROM swt_categories WHERE catID=105 LIMIT 1
1783275290.56330.0006Using template: /templates/blog/post.html
1783275290.56360.0003 [162] SELECT catID, catPath FROM swt_categories
1783275290.56460.001 [1] SELECT * FROM swt_blog_posts WHERE postStatus='Published' AND postDateTime<='2026-07-05 18:14:00' AND postSlug='dip-into-the-world-of-dabbling-ducks'
1783275290.58570.0211Using template: /templates/blog/post.html
1783275290.58620.0005 [250] SELECT country, countryID FROM swt_shop_countries WHERE countryActive=1 ORDER BY country ASC
1783275290.5880.0019Using template: /templates/pages/attributes/seo.html
1783275290.58830.0002 [1] SELECT regionID, regionTemplate, regionPage, regionRev AS rev FROM swt_content_regions WHERE regionKey='Banner image' AND (regionPage='/news/post' OR regionPage='*')
1783275290.58920.0009 [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
1783275290.59080.0016 [82] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageDepth >=0 AND pageDepth<=2 ORDER BY pageTreePosition ASC
1783275290.59390.0031 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783275290.59460.0007 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1783275290.59690.0024Using template: /templates/navigation/ps_nav_template.html
1783275290.5970 [6] Using template: /templates/navigation/ps_nav_template_children.html
1783275290.59770.0007 [4] Using template: /templates/navigation/ps_nav_template_children.html
1783275290.59820.0004 [29] Using template: /templates/navigation/ps_nav_template_children.html
1783275290.6010.0029 [10] Using template: /templates/navigation/ps_nav_template_children.html
1783275290.60220.0011 [7] Using template: /templates/navigation/ps_nav_template_children.html
1783275290.6030.0008 [9] Using template: /templates/navigation/ps_nav_template_children.html
1783275290.60590.0029 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' OR pageSortPath='/news/post' LIMIT 1
1783275290.60680.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
1783275290.60910.0023 [1] Using template: /templates/navigation/breadcrumbs.html
1783275290.60950.0004Using template: /templates/blog/post.html
1783275290.60970.0002 [1] SELECT * FROM swt_blog_authors WHERE authorID='1' LIMIT 1
1783275290.61050.0008Using template: /templates/blog/author.html
1783275290.61080.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='dip-into-the-world-of-dabbling-ducks')) 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-05 18:14:00' ) GROUP BY itemID, sortval ORDER BY sortval ASC LIMIT 0, 1
1783275290.61310.0023 [1] SELECT FOUND_ROWS() AS `count`
1783275290.61370.0005 [1] Using template: /templates/blog/post.html
1783275290.61620.0025Using template: /templates/blog/comment_form.html
1783275290.61690.0007 [1] SELECT * FROM swt_blog_comments WHERE 1=1 AND postID=1938 AND commentStatus='LIVE' ORDER BY FIELD(webmentionType, 'like', 'repost', 'comment', NULL) ASC, commentDateTime ASC
1783275290.66870.0518 [1] Using template: /templates/blog/comment.html
1783275290.66920.0005Using template: /templates/blog/post.html
1783275290.66930.0001 [1] SELECT * FROM swt_blog_authors WHERE authorID='1' LIMIT 1
1783275290.670.0007 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/what-we-do' OR pageSortPath='/what-we-do' LIMIT 1
1783275290.67080.0007 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-002' LIMIT 1
1783275290.67140.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
1783275290.67340.0021 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783275290.6740.0005 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1783275290.67590.002 [6] Using template: /templates/navigation/footer-nav.html
1783275290.6770.0011 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/make-a-difference' OR pageSortPath='/make-a-difference' LIMIT 1
1783275290.67760.0006 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-005' LIMIT 1
1783275290.67810.0005 [38] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-005%' ORDER BY pageTreePosition ASC
1783275290.68040.0023 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783275290.68090.0005 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1783275290.68290.002 [10] Using template: /templates/navigation/footer-nav.html
1783275290.68630.0034 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/visit' OR pageSortPath='/visit' LIMIT 1
1783275290.68710.0008 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-004' LIMIT 1
1783275290.68770.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
1783275290.69010.0024 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783275290.69080.0007 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1783275290.6930.0022 [29] Using template: /templates/navigation/footer-nav.html
1783275290.69530.0023 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/make-a-difference' OR pageSortPath='/make-a-difference' LIMIT 1
1783275290.6960.0007 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-005' LIMIT 1
1783275290.69650.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
1783275290.69880.0023 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783275290.69940.0006 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1783275290.70110.0018 [10] Using template: /templates/navigation/footer-nav.html
1783275290.70260.0015Request time: 0.1849
1783275290.70260Process time: 0.1847
1783275290.70260Memory: 1.6694