Species of the day: Grass Snake

, 27 May 2020
Species of the day: Grass Snake
Grass Snake © Bob Eade

By James Duncan

Learning and Engagement Officer

The Grass Snake (Natrix helvetica) is the largest of the three British snake species and indeed our biggest terrestrial reptile. It's the females that grow the longest, often exceeding a metre in length, though the average for males is around 65cm, the females 80cm. They're certainly capable of attaining significant proportions and the very largest may measure 1.8m. Those with Ophidiophobia may be petrified at the thought, but the Grass Snake is utterly harmless to humans and is in fact a wary, timid, fast-moving species with no desire to spend any time in our presence. The most regular sighting is usually the tail of a rapidly fleeing snake as it slinks off into cover. A casual glance at a Grass Snake may cause misidentification with the venomous Adder (Vipera berus)though the Grass Snake's olive green-grey colouration, distinctive creamy-yellow and black colour, round pupil (as opposed to a vertical slit), slender body and lack of 'zig-zag' patterning are all diagnostic. British Grass Snakes were once considered to be a subspecies of the widely distributed European Grass Snake (Natrix natrix), but it was only after DNA testing in 2017 that our native population was declared to belong to a distinct species in its own right. It's now the 'Barred Grass Snake', so-called owing to a propensity to display more obvious black barring along its sides. It's incredible that the genetic identify of this supremely widespread European species has remained a mystery for quite so long.  

Once emerged from a humid hibernation spot in early spring, the snakes will be particularly sluggish and spend a lot of time 'basking' to raise their body temperature and 'fire-up' their metabolism. This is often the very best time to see them as once mating commences they tend to become secretive. However, if many males are present competition may become fierce and 'mating balls' can occur. This will involve a number of males surrounding a female, attracted by the pheromones she produces. Much wiggling, thrashing, writhing and shoving will commence and inevitably it's the largest males that are the most successful in copulation. Once courtship is complete, hunting may begin and Grass Snakes will utilise hedgerows, ditches and banks as 'commuting corridors' to take them to both feeding and egg-laying sites. These will typically be found close to fresh water ponds, streams and marshland, for the Grass Snake is very much semi-aquatic. It is in fact a highly accomplished swimmer, using lateral undulations of the body to create forward momentum whilst holding the head above the surface like a scaled mini-periscope. Their abilities in water mean they're also able to dive and may stay submerged for up to half an hour while hunting.

Grass Snake © Derek Middleton

Grass Snake © Derek Middleton

Swimming is an essential skill owing to the Grass Snake's favoured amphibian prey. Though frogs, toads and newts are not widely available all year round in temperate climates they still provide the bulk of sustenance. A big meal may satisfy a Grass Snake for a significant time and they only need eat once every twenty days on average. They have no evolutionary adaptions to assist in subduing prey and unlike many other snakes, neither possess venom or use constriction to suffocate prey. They instead rely on a sneakier approach, using the element of surprise to strike out at their prey. This results in it being swallowed whole, preferably head-first for ease. The Grass Snake's recurved teeth help the jaw to work sideways along the prey, gradually engulfing it until it succumbs through either suffocation or the digestion process itself. The activity of Grass Snakes is usually confined to daylight hours and the ambient conditions are critical. Rain, wind and overcast skies are entirely unsuitable as activity relies on the snake achieving a body temperature close to 30°c, something that's difficult to achieve without thermoregulation in strong sunlight. 

Whilst outside of amphibian 'season', Grass Snakes will feed on fish, small mammals, nestlings and eggs, though they themselves are subject to extensive predation. Avian predators are numerous and a real danger, birds such as crows, herons and raptors. They're also a popular food source amongst mammals, those such as badgers, hedgehogs, foxes, mustelids (weasels, stoats, etc.) and of course the domestic cat. Pregnant (gravid) and therefore sluggish females are particularly vulnerable owing to the significant amounts of time they spend basking. Should a Grass Snake avoid predation, it may survive for up to fifteen years or so. They do have a few defence tactics up their reptilian sleeve and may hiss, thrash and strike. However, it's all bluff as typically the mouth will be closed and this serves purely as a diversionary tactic. They'll also feign death using a strategy known as thanatosis, turning the body flaccid and holding the mouth open with the tongue out, occasionally secreting blood through autohaemorrhage. If handled or provoked further, the defence will involve the release of a rather pungent and foul-smelling discharge from their anal glands.

Leave a comment

Comments

  • Marcus de Mowbray:

    Fascinating and interesting article, many thanks.

    07 May 2021 17:10:00

  • Jean Anne matheson:

    two live ones recently see in my garden near my wildlife pond

    28 Aug 2024 08:03:00

Time Δ Debug Message - Perch Runway 3.2
1783190287.97380 [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
1783190288.00130.0275Matched route: news/[slug:s]
1783190288.00150.0002Server address: 216.73.217.177
1783190288.00150Using master page: /templates/pages/blog/post.php
1783190288.00150Page arguments:
Array
(
    [0] => /news/species-of-the-day-grass-snake
    [s] => species-of-the-day-grass-snake
    [1] => species-of-the-day-grass-snake
)
1783190288.00180.0003 [1] SELECT * FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783190288.00250.0007 [86] SELECT DISTINCT settingID, settingValue FROM swt_settings WHERE userID=0
1783190288.00410.0016 [1] SELECT locationID FROM swt_shop_tax_locations WHERE locationIsHome=1 LIMIT 1
1783190288.00460.0005INSERT INTO swt_shop_cart(memberID,locationID,currencyID,cartPricing,cartProperties) VALUES(NULL,'1',47,'standard','[]')
1783190288.00660.002 [1] SELECT * FROM swt_shop_cart WHERE cartID=22623295
1783190288.00710.0005 [1] SELECT * FROM swt_shop_cart WHERE cartID=22623295
1783190288.00760.0005 [nil] SELECT * FROM swt_shop_sales WHERE saleFrom<='2026-07-04 18:38:00' AND saleTo>'2026-07-04 18:38:00' AND saleActive=1 AND saleDeleted IS NULL ORDER BY saleOrder ASC
1783190288.00870.0011 [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='species-of-the-day-grass-snake')) 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-04 18:38:00' ) GROUP BY itemID, sortval ORDER BY sortval ASC LIMIT 0, 10
1783190288.0180.0094 [1] SELECT FOUND_ROWS() AS `count`
1783190288.01960.0016 [1] SELECT * FROM swt_blog_posts WHERE postID=2180 AND postStatus='Published' AND postDateTime<='2026-07-04 18:38:00'
1783190288.02040.0008 [13] SELECT * FROM swt_blog_sections ORDER BY sectionTitle ASC
1783190288.0210.0006 [1] SELECT * FROM swt_blogs ORDER BY blogTitle ASC
1783190288.02160.0006 [1] SELECT * FROM swt_categories WHERE catID=191 LIMIT 1
1783190288.0220.0005 [1] SELECT * FROM swt_categories WHERE catID=78 LIMIT 1
1783190288.02270.0006Using template: /templates/blog/post.html
1783190288.02280.0002 [162] SELECT catID, catPath FROM swt_categories
1783190288.02370.0009 [1] SELECT * FROM swt_blog_posts WHERE postStatus='Published' AND postDateTime<='2026-07-04 18:38:00' AND postSlug='species-of-the-day-grass-snake'
1783190288.04540.0217Using template: /templates/blog/post.html
1783190288.0460.0006 [250] SELECT country, countryID FROM swt_shop_countries WHERE countryActive=1 ORDER BY country ASC
1783190288.04750.0014Using template: /templates/pages/attributes/seo.html
1783190288.04770.0002 [1] SELECT regionID, regionTemplate, regionPage, regionRev AS rev FROM swt_content_regions WHERE regionKey='Banner image' AND (regionPage='/news/post' OR regionPage='*')
1783190288.04850.0008 [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
1783190288.04950.001 [82] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageDepth >=0 AND pageDepth<=2 ORDER BY pageTreePosition ASC
1783190288.05220.0027 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783190288.05270.0005 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1783190288.05440.0018Using template: /templates/navigation/ps_nav_template.html
1783190288.05450 [6] Using template: /templates/navigation/ps_nav_template_children.html
1783190288.05530.0008 [4] Using template: /templates/navigation/ps_nav_template_children.html
1783190288.05570.0004 [29] Using template: /templates/navigation/ps_nav_template_children.html
1783190288.05820.0024 [10] Using template: /templates/navigation/ps_nav_template_children.html
1783190288.05920.0011 [7] Using template: /templates/navigation/ps_nav_template_children.html
1783190288.060.0008 [9] Using template: /templates/navigation/ps_nav_template_children.html
1783190288.06260.0025 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' OR pageSortPath='/news/post' LIMIT 1
1783190288.06330.0008 [1] SELECT * FROM swt_pages_staging WHERE pageHidden=0 AND pageNew=0 AND pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition
1783190288.06510.0018 [1] Using template: /templates/navigation/breadcrumbs.html
1783190288.06560.0005Using template: /templates/blog/post.html
1783190288.06590.0003 [1] SELECT * FROM swt_blog_authors WHERE authorID='19' LIMIT 1
1783190288.06650.0006Using template: /templates/blog/author.html
1783190288.06690.0004 [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='species-of-the-day-grass-snake')) 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-04 18:38:00' ) GROUP BY itemID, sortval ORDER BY sortval ASC LIMIT 0, 1
1783190288.06880.0019 [1] SELECT FOUND_ROWS() AS `count`
1783190288.06920.0004 [1] Using template: /templates/blog/post.html
1783190288.07210.0029Using template: /templates/blog/comment_form.html
1783190288.07320.0011 [2] SELECT * FROM swt_blog_comments WHERE 1=1 AND postID=2180 AND commentStatus='LIVE' ORDER BY FIELD(webmentionType, 'like', 'repost', 'comment', NULL) ASC, commentDateTime ASC
1783190288.12110.0479 [2] Using template: /templates/blog/comment.html
1783190288.12180.0007Using template: /templates/blog/post.html
1783190288.1220.0002 [1] SELECT * FROM swt_blog_authors WHERE authorID='19' LIMIT 1
1783190288.12280.0008 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/what-we-do' OR pageSortPath='/what-we-do' LIMIT 1
1783190288.12360.0007 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-002' LIMIT 1
1783190288.12420.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
1783190288.12630.0021 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783190288.12680.0005 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1783190288.12870.0019 [6] Using template: /templates/navigation/footer-nav.html
1783190288.12950.0008 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/make-a-difference' OR pageSortPath='/make-a-difference' LIMIT 1
1783190288.13010.0006 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-005' LIMIT 1
1783190288.13060.0005 [38] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-005%' ORDER BY pageTreePosition ASC
1783190288.13280.0022 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783190288.13350.0006 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1783190288.13520.0018 [10] Using template: /templates/navigation/footer-nav.html
1783190288.13840.0032 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/visit' OR pageSortPath='/visit' LIMIT 1
1783190288.1390.0006 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-004' LIMIT 1
1783190288.13950.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
1783190288.14180.0023 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783190288.14240.0006 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1783190288.16290.0205 [29] Using template: /templates/navigation/footer-nav.html
1783190288.16530.0024 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/make-a-difference' OR pageSortPath='/make-a-difference' LIMIT 1
1783190288.16620.0009 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-005' LIMIT 1
1783190288.16670.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
1783190288.16880.0021 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1783190288.16930.0005 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1783190288.17120.0019 [10] Using template: /templates/navigation/footer-nav.html
1783190288.17230.0011Request time: 0.201
1783190288.17240Process time: 0.2008
1783190288.17240Memory: 1.6542