Long legs, short lives

, 15 September 2023
Long legs, short lives
Giant Cranefly (Tipula maxima) © Derek Middleton

Guest blog

Insect expert Ben Keywood from Sheffield and Rotherham Wildlife Trust takes a closer look at craneflies.

You’ve probably seen a cranefly recently, though you might know them better as ‘daddy longlegs’. One look at their long, spindly legs and it’s easy to see how they got this nickname! Many of us encounter craneflies when they swarm over lawns and grasslands in late summer and autumn. This is the social event of the season as they look to find a mate, pair and lay their eggs.

Some of our most common craneflies lay their eggs in the soil. Their larvae are known as leatherjackets and they feed on grass roots. This very rarely causes any long-term harm to the grass. Leatherjackets spend up 11 months in the soil before emerging as adults, which will only fly for a couple of weeks before dying. The adults are often attracted to lights, which can sometimes lure them into houses. They’re completely harmless, so be kind and gently encourage them back out into your garden.

Apart from their long, gangly legs, craneflies can be recognised by their prominent 'drumsticks'. These stick out underneath each of their two wings, one on either side of the body. They are in fact modified hind wings, which are reduced to drumstick-like structures called halteres. These act as gyroscopes to maintain balance in flight. Craneflies are closely related to gnats and midges, which also have these halteres – but theirs are less prominent.

Nephrotoma appendiculata cranefly © Neil Fletcher
Nephrotoma appendiculata © Neil Fletcher

Winging it

There are around 350 different species of cranefly found in the UK. The ones we tend to see around our gardens belong to a group known as Tipula, or 'true craneflies'. These are also the largest type of cranefly. They usually rest with their wings held out at right angles to their body, though there is one exception to this rule: Tipula confusa, which rests with its wings over its back.

Many of the true craneflies look very similar and are difficult to identify. However, you can recognise a female cranefly by its pointed ‘tail’. Male craneflies have square or forked tails. The female’s pointed tail is actually an ovipositor, used to pierce the soil and deposit her eggs.

The largest UK cranefly is Tipula maxima, which occurs in damp moorland and woodland and has beautifully patterned wings. Unlike the garden craneflies, the larvae of this species and several other woodland species live a semi-aquatic lifestyle. They feed under water on living or decaying plants, or in damp moss and leaf litter.

The other main group of craneflies are called Limonids. Most members of this group rest with their wings over their back, looking a bit like a large midge or mosquito. Unlike some gnats and midges, however, craneflies don't have piercing mouthparts or feed on blood. In fact, adult craneflies rarely feed, but when they do it is on nectar from flowers.

Tipula cava cranefly © Neil Fletcher
Tipula cava © Neil Fletcher

A flying feast

Craneflies are a vital part of the food chain. Their larvae are a favourite food of starlings, which probe the grass to extract them with their bills. Bats will skim the surface of grasslands at dusk, feasting on the adult flies when they emerge en-masse on warm autumn evenings. Daubenton's bat is particularly fond of them. They’re also eaten by spiders, dragonflies and many other animals.

Leave a comment
Time Δ Debug Message - Perch Runway 3.2
1782773478.48590 [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
1782773478.51130.0254Matched route: news/[slug:s]
1782773478.51140.0001Server address: 216.73.217.103
1782773478.51140.0001Using master page: /templates/pages/blog/post.php
1782773478.51150Page arguments:
Array
(
    [0] => /news/long-legs-short-lives
    [s] => long-legs-short-lives
    [1] => long-legs-short-lives
)
1782773478.51180.0003 [1] SELECT * FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782773478.51290.0011 [86] SELECT DISTINCT settingID, settingValue FROM swt_settings WHERE userID=0
1782773478.51490.002 [1] SELECT locationID FROM swt_shop_tax_locations WHERE locationIsHome=1 LIMIT 1
1782773478.51540.0006INSERT INTO swt_shop_cart(memberID,locationID,currencyID,cartPricing,cartProperties) VALUES(NULL,'1',47,'standard','[]')
1782773478.51760.0021 [1] SELECT * FROM swt_shop_cart WHERE cartID=22433396
1782773478.51820.0007 [1] SELECT * FROM swt_shop_cart WHERE cartID=22433396
1782773478.51890.0007 [nil] SELECT * FROM swt_shop_sales WHERE saleFrom<='2026-06-29 22:51:00' AND saleTo>'2026-06-29 22:51:00' AND saleActive=1 AND saleDeleted IS NULL ORDER BY saleOrder ASC
1782773478.52050.0016 [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='long-legs-short-lives')) 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 22:51:00' ) GROUP BY itemID, sortval ORDER BY sortval ASC LIMIT 0, 10
1782773478.52330.0028 [1] SELECT FOUND_ROWS() AS `count`
1782773478.5240.0006 [1] SELECT * FROM swt_blog_posts WHERE postID=3186 AND postStatus='Published' AND postDateTime<='2026-06-29 22:51:00'
1782773478.5250.001 [13] SELECT * FROM swt_blog_sections ORDER BY sectionTitle ASC
1782773478.52570.0008 [1] SELECT * FROM swt_blogs ORDER BY blogTitle ASC
1782773478.52720.0015 [1] SELECT * FROM swt_categories WHERE catID=49 LIMIT 1
1782773478.52810.0009Using template: /templates/blog/post.html
1782773478.52850.0004 [162] SELECT catID, catPath FROM swt_categories
1782773478.52950.001 [1] SELECT * FROM swt_blog_posts WHERE postStatus='Published' AND postDateTime<='2026-06-29 22:51:00' AND postSlug='long-legs-short-lives'
1782773478.55090.0215Using template: /templates/blog/post.html
1782773478.55170.0007 [250] SELECT country, countryID FROM swt_shop_countries WHERE countryActive=1 ORDER BY country ASC
1782773478.55340.0017Using template: /templates/pages/attributes/seo.html
1782773478.55360.0003 [1] SELECT regionID, regionTemplate, regionPage, regionRev AS rev FROM swt_content_regions WHERE regionKey='Banner image' AND (regionPage='/news/post' OR regionPage='*')
1782773478.55450.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
1782773478.5560.0015 [82] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageDepth >=0 AND pageDepth<=2 ORDER BY pageTreePosition ASC
1782773478.5590.0029 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782773478.55950.0006 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782773478.56170.0022Using template: /templates/navigation/ps_nav_template.html
1782773478.56180.0001 [6] Using template: /templates/navigation/ps_nav_template_children.html
1782773478.56280.001 [4] Using template: /templates/navigation/ps_nav_template_children.html
1782773478.56340.0006 [29] Using template: /templates/navigation/ps_nav_template_children.html
1782773478.56620.0027 [10] Using template: /templates/navigation/ps_nav_template_children.html
1782773478.56730.0011 [7] Using template: /templates/navigation/ps_nav_template_children.html
1782773478.56810.0008 [9] Using template: /templates/navigation/ps_nav_template_children.html
1782773478.57140.0032 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' OR pageSortPath='/news/post' LIMIT 1
1782773478.57240.001 [1] SELECT * FROM swt_pages_staging WHERE pageHidden=0 AND pageNew=0 AND pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition
1782773478.57890.0066 [1] Using template: /templates/navigation/breadcrumbs.html
1782773478.57960.0006Using template: /templates/blog/post.html
1782773478.57990.0003 [1] SELECT * FROM swt_blog_authors WHERE authorID='1' LIMIT 1
1782773478.58080.0009Using template: /templates/blog/author.html
1782773478.58130.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='long-legs-short-lives')) 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 22:51:00' ) GROUP BY itemID, sortval ORDER BY sortval ASC LIMIT 0, 1
1782773478.58360.0023 [1] SELECT FOUND_ROWS() AS `count`
1782773478.58410.0005 [1] Using template: /templates/blog/post.html
1782773478.58780.0037Using template: /templates/blog/comment_form.html
1782773478.58880.001 [nil] SELECT * FROM swt_blog_comments WHERE 1=1 AND postID=3186 AND commentStatus='LIVE' ORDER BY FIELD(webmentionType, 'like', 'repost', 'comment', NULL) ASC, commentDateTime ASC
1782773478.63820.0494 [0] Using template: /templates/blog/comment.html
1782773478.63850.0003Using template: /templates/blog/post.html
1782773478.63880.0003 [1] SELECT * FROM swt_blog_authors WHERE authorID='1' LIMIT 1
1782773478.63970.0009 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/what-we-do' OR pageSortPath='/what-we-do' LIMIT 1
1782773478.64040.0007 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-002' LIMIT 1
1782773478.6410.0005 [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
1782773478.64320.0023 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782773478.64380.0006 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782773478.6460.0022 [6] Using template: /templates/navigation/footer-nav.html
1782773478.64750.0015 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/make-a-difference' OR pageSortPath='/make-a-difference' LIMIT 1
1782773478.64820.0007 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-005' LIMIT 1
1782773478.64880.0006 [38] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-005%' ORDER BY pageTreePosition ASC
1782773478.65130.0026 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782773478.65190.0006 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782773478.65380.0019 [10] Using template: /templates/navigation/footer-nav.html
1782773478.65730.0035 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/visit' OR pageSortPath='/visit' LIMIT 1
1782773478.65820.0009 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-004' LIMIT 1
1782773478.65890.0007 [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
1782773478.66130.0025 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782773478.6620.0006 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782773478.66460.0026 [29] Using template: /templates/navigation/footer-nav.html
1782773478.66780.0032 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/make-a-difference' OR pageSortPath='/make-a-difference' LIMIT 1
1782773478.66870.0009 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-005' LIMIT 1
1782773478.66920.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
1782773478.67140.0022 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782773478.6720.0006 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782773478.67390.002 [10] Using template: /templates/navigation/footer-nav.html
1782773478.67540.0015Request time: 0.193
1782773478.67540Process time: 0.1929
1782773478.67550Memory: 1.6257