Swimming with Terns

, 03 June 2024
Swimming with Terns
Sandwich Tern © Barry Yates

By David Bentley

Volunteer and member of the Friends of Rye Harbour Nature Reserve

If the temperature hits 'scorchio' this summer I'll be on my bike down to Rye Harbour Nature Reserve, on to the beach and straight into the sea.

The beach at Rye Harbour
The beach at Rye Harbour © Barry Yates


If you go for a sea-swim you might be lucky and get exceptional views of one, two, or maybe even three species of tern. Terns are like gulls who've had a makeover weekend at a luxury spa. They are confidently 'beach ready' and undoubtedly beautiful birds. They don't want your seaside bag of chips, but if they did, they'd elegantly woo them from you, so that you'd gladly serve them up on a plate, offering sauce and vinegar.

While you swim, the shaggy-capped Sandwich Tern might pass determinedly overhead, alerting you with its rasping ‘squeaky garden gate’ call. These large, long-winged terns can fly ten miles or more in search of food, so may well be heading off on a seaside excursion to Dungeness.

Sandwich Tern
Sandwich Tern © Dave Kilbey

The Common Terns have an orangey-red, black tipped bill, a greyish body and tail streamers appropriate for these so-called 'sea swallows'. They're extremely classy, common breeders at Rye Harbour.

Common Tern
Common Tern © Barry Yates

But, the real prize - and sadly an increasingly rare one - is to have Little Terns diving around you as you tread water. They like to feed just off shore by the Rye Harbour shingle. So, if you swim out a few metres, an hour or two either side of high tide, you may be in for a real treat. These teeny-tiny white specks hover low over the water and plummet like little white darts hoping to catch tiny fish and other marine creatures. Swimming with Little Terns is like being on stage at the Royal Opera House surrounded by the most beautiful, delicate fairy-ballerinas. They hardly look like they could puncture the surface of the water when they dive, so slight are their bodies. They seem impossibly unsuited to a life at sea, but by the time your summer holiday is over they will have started the long journey back to their wintering grounds in Africa.

Little Tern
Little Tern © Hugh Clark FRPS

The fortunes of these three species of seabird is of great concern and fluctuates depending on availability of food, disturbance and predation, but let's hope that 'swimming with terns' can realistically be on your bucket (and spade) list for many years to come.

Leave a comment

Comments

  • Linda:

    A beautiful piece of writing David. You captured all three Terns perfectly in every way. Thank you

    09 Jun 2024 21:26:00

  • Michael Ganss:

    A beautifully written piece about a beautiful species.

    21 Jun 2024 06:47:00

  • Vanessa Jones:

    David you write so vividly of your experiences . It makes me want to travel to Rye and swim with the Terns too!

    21 Jun 2024 07:59:00

  • clare roche:

    That is such a lovely article & succinctly differentiates the terns. Thank you. Looking forward to some swimming!

    21 Jun 2024 10:13:00

  • Robbie Gooders:

    Thank you David for waxing so lyrically about my favourite birds at Rye Harbour Nature Reserve.

    21 Jun 2024 13:40:00

  • Michael Powell:

    I visited the reserve for the first time this week. This is such a neat description of the three tern species on offer. Lovely piece of writing.

    22 Jun 2024 07:31:00

  • clare roche:

    That is such a lovely article & succinctly differentiates the teens. Thank you. Looking forward to some swimming!

    22 Jun 2024 17:13:00

Time Δ Debug Message - Perch Runway 3.2
1782690738.85280 [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
1782690738.87910.0263Matched route: news/[slug:s]
1782690738.87920.0001Server address: 216.73.216.31
1782690738.87920Using master page: /templates/pages/blog/post.php
1782690738.87920Page arguments:
Array
(
    [0] => /news/swimming-with-terns
    [s] => swimming-with-terns
    [1] => swimming-with-terns
)
1782690738.87950.0003 [1] SELECT * FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782690738.88040.0009 [86] SELECT DISTINCT settingID, settingValue FROM swt_settings WHERE userID=0
1782690738.88230.0019 [1] SELECT locationID FROM swt_shop_tax_locations WHERE locationIsHome=1 LIMIT 1
1782690738.88290.0006INSERT INTO swt_shop_cart(memberID,locationID,currencyID,cartPricing,cartProperties) VALUES(NULL,'1',47,'standard','[]')
1782690738.88510.0022 [1] SELECT * FROM swt_shop_cart WHERE cartID=22399216
1782690738.88570.0007 [1] SELECT * FROM swt_shop_cart WHERE cartID=22399216
1782690738.88630.0005 [nil] SELECT * FROM swt_shop_sales WHERE saleFrom<='2026-06-28 23:52:00' AND saleTo>'2026-06-28 23:52:00' AND saleActive=1 AND saleDeleted IS NULL ORDER BY saleOrder ASC
1782690738.88770.0014 [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='swimming-with-terns')) 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-28 23:52:00' ) GROUP BY itemID, sortval ORDER BY sortval ASC LIMIT 0, 10
1782690738.89030.0026 [1] SELECT FOUND_ROWS() AS `count`
1782690738.89080.0005 [1] SELECT * FROM swt_blog_posts WHERE postID=3412 AND postStatus='Published' AND postDateTime<='2026-06-28 23:52:00'
1782690738.89170.0009 [13] SELECT * FROM swt_blog_sections ORDER BY sectionTitle ASC
1782690738.89240.0008 [1] SELECT * FROM swt_blogs ORDER BY blogTitle ASC
1782690738.89320.0007 [1] SELECT * FROM swt_categories WHERE catID=73 LIMIT 1
1782690738.89370.0006 [1] SELECT * FROM swt_categories WHERE catID=70 LIMIT 1
1782690738.89410.0004 [1] SELECT * FROM swt_categories WHERE catID=45 LIMIT 1
1782690738.89460.0005Using template: /templates/blog/post.html
1782690738.89490.0003 [162] SELECT catID, catPath FROM swt_categories
1782690738.89570.0009 [1] SELECT * FROM swt_blog_posts WHERE postStatus='Published' AND postDateTime<='2026-06-28 23:52:00' AND postSlug='swimming-with-terns'
1782690738.91610.0204Using template: /templates/blog/post.html
1782690738.91730.0012 [250] SELECT country, countryID FROM swt_shop_countries WHERE countryActive=1 ORDER BY country ASC
1782690738.9190.0017Using template: /templates/pages/attributes/seo.html
1782690738.91930.0003 [1] SELECT regionID, regionTemplate, regionPage, regionRev AS rev FROM swt_content_regions WHERE regionKey='Banner image' AND (regionPage='/news/post' OR regionPage='*')
1782690738.92020.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
1782690738.92160.0014 [82] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageDepth >=0 AND pageDepth<=2 ORDER BY pageTreePosition ASC
1782690738.92490.0032 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782690738.92530.0005 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782690738.92740.002Using template: /templates/navigation/ps_nav_template.html
1782690738.92740 [6] Using template: /templates/navigation/ps_nav_template_children.html
1782690738.92810.0007 [4] Using template: /templates/navigation/ps_nav_template_children.html
1782690738.92860.0004 [29] Using template: /templates/navigation/ps_nav_template_children.html
1782690738.93140.0028 [10] Using template: /templates/navigation/ps_nav_template_children.html
1782690738.93240.001 [7] Using template: /templates/navigation/ps_nav_template_children.html
1782690738.93320.0007 [9] Using template: /templates/navigation/ps_nav_template_children.html
1782690738.93560.0025 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' OR pageSortPath='/news/post' LIMIT 1
1782690738.93640.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
1782690738.93840.002 [1] Using template: /templates/navigation/breadcrumbs.html
1782690738.93890.0005Using template: /templates/blog/post.html
1782690738.93910.0002 [1] SELECT * FROM swt_blog_authors WHERE authorID='1' LIMIT 1
1782690738.93970.0006Using template: /templates/blog/author.html
1782690738.940.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='swimming-with-terns')) 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-28 23:52:00' ) GROUP BY itemID, sortval ORDER BY sortval ASC LIMIT 0, 1
1782690738.9420.0019 [1] SELECT FOUND_ROWS() AS `count`
1782690738.94230.0004 [1] Using template: /templates/blog/post.html
1782690738.9450.0027Using template: /templates/blog/comment_form.html
1782690738.94610.0011 [7] SELECT * FROM swt_blog_comments WHERE 1=1 AND postID=3412 AND commentStatus='LIVE' ORDER BY FIELD(webmentionType, 'like', 'repost', 'comment', NULL) ASC, commentDateTime ASC
1782690738.99670.0506 [7] Using template: /templates/blog/comment.html
1782690738.99840.0016Using template: /templates/blog/post.html
1782690738.99850.0002 [1] SELECT * FROM swt_blog_authors WHERE authorID='1' LIMIT 1
1782690738.99940.0009 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/what-we-do' OR pageSortPath='/what-we-do' LIMIT 1
1782690739.00150.002 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-002' LIMIT 1
1782690739.00210.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
1782690739.00460.0025 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782690739.01460.01 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782690739.01680.0021 [6] Using template: /templates/navigation/footer-nav.html
1782690739.01810.0013 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/make-a-difference' OR pageSortPath='/make-a-difference' LIMIT 1
1782690739.01890.0009 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-005' LIMIT 1
1782690739.01950.0005 [38] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-005%' ORDER BY pageTreePosition ASC
1782690739.02180.0023 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782690739.02230.0005 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782690739.02410.0018 [10] Using template: /templates/navigation/footer-nav.html
1782690739.02770.0035 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/visit' OR pageSortPath='/visit' LIMIT 1
1782690739.02830.0007 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-004' LIMIT 1
1782690739.02880.0004 [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
1782690739.03140.0027 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782690739.0320.0006 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782690739.03650.0044 [29] Using template: /templates/navigation/footer-nav.html
1782690739.03890.0024 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/make-a-difference' OR pageSortPath='/make-a-difference' LIMIT 1
1782690739.03950.0006 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-005' LIMIT 1
1782690739.040.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
1782690739.04230.0024 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782690739.04330.001 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782690739.0460.0027 [10] Using template: /templates/navigation/footer-nav.html
1782690739.04740.0014Request time: 0.198
1782690739.04740Process time: 0.1978
1782690739.04740Memory: 1.6341