{% assign use_variant_images = false %}
{% capture vertical_scroll %}{% endcapture %} {%- if use_variant_images and variant.images[0] -%} {%- assign images = variant.images -%} {%- else -%} {%- assign images = product.images -%} {%- endif -%}
{% assign last_slide = 0 %} {% assign imgOffset = 0 %} {% if product.tags contains 'Graphic Overlay' %} {% assign imgOffset = 1 %} {% endif %} {%- for image in images offset: imgOffset -%} {% capture thumbRepsonsive %} {%- if image != blank -%} {%- if image.width > 180 -%}{{ image.src | img_url: '180x' }} 180w {{ 180 | divided_by: image.aspect_ratio | round }}h,{%- endif -%} {%- if image.width > 360 -%}{{ image.src | img_url: '360x' }} 360w {{ 360 | divided_by: image.aspect_ratio | round }}h,{%- endif -%} {%- if image.width > 540 -%}{{ image.src | img_url: '540x' }} 540w {{ 540 | divided_by: image.aspect_ratio | round }}h,{%- endif -%} {%- if image.width > 720 -%}{{ image.src | img_url: '720x' }} 720w {{ 720 | divided_by: image.aspect_ratio | round }}h,{%- endif -%} {%- if image.width > 900 -%}{{ image.src | img_url: '900x' }} 900w {{ 900 | divided_by: image.aspect_ratio | round }}h,{%- endif -%} {%- if image.width > 1080 -%}{{ image.src | img_url: '1080x' }} 1080w {{ 1080 | divided_by: image.aspect_ratio | round }}h,{%- endif -%} {%- if image.width > 1296 -%}{{ image.src | img_url: '1296x' }} 1296w {{ 1296 | divided_by: image.aspect_ratio | round }}h,{%- endif -%} {%- if image.width > 1512 -%}{{ image.src | img_url: '1512x' }} 1512w {{ 1512 | divided_by: image.aspect_ratio | round }}h,{%- endif -%} {%- if image.width > 1728 -%}{{ image.src | img_url: '1728x' }} 1728w {{ 1728 | divided_by: image.aspect_ratio | round }}h,{%- endif -%} {%- if image.width > 1944 -%}{{ image.src | img_url: '1944x' }} 1944w {{ 1944 | divided_by: image.aspect_ratio | round }}h,{%- endif -%} {%- if image.width > 2160 -%}{{ image.src | img_url: '2160x' }} 2160w {{ 2160 | divided_by: image.aspect_ratio | round }}h,{%- endif -%} {%- if image.width > 2376 -%}{{ image.src | img_url: '2376x' }} 2376w {{ 2376 | divided_by: image.aspect_ratio | round }}h,{%- endif -%} {%- if image.width > 2592 -%}{{ image.src | img_url: '2592x' }} 2592w {{ 2592 | divided_by: image.aspect_ratio | round }}h,{%- endif -%} {%- if image.width > 2808 -%}{{ image.src | img_url: '2808x' }} 2808w {{ 2808 | divided_by: image.aspect_ratio | round }}h,{%- endif -%} {%- if image.width > 3024 -%}{{ image.src | img_url: '3024x' }} 3024w {{ 3024 | divided_by: image.aspect_ratio | round }}h,{%- endif -%} {%- assign image_size = image.width | append: 'x' -%} {{ image.src | img_url: image_size }} {{ image.width }}w {{ image.height }}h {%- endif -%} {% endcapture %}
{% assign last_slide = forloop.index %} {% endfor %}
All media depicts mature plants.

Sweet Woodruff

PERENNIAL

Description

  • Aromatic evergreen to semi-evergreen foliage!
  • Clusters of small, white flowers bloom above leaves.
  • Grows quickly, even in the shade.
  • Excellent for steep slopes and beneath trees.
  • Zones 4-9, part sun/shade, 12″ tall x 18″ wide at maturity.
Zone 4-9
Light part sun/shade
low

{% capture DiscountGroup %}1{% endcapture %} {% capture DiscountTier %}1{% endcapture %} {% assign DiscountGroup = DiscountGroup | plus: 0 %} {% assign DiscountTier = DiscountTier | plus: 0 %} {% assign discount_amount = 0 %} {% for group in product.discounts_structure.groups %} {% if group.id == DiscountGroup %} {% for tier in group.tiers %} {% if tier.id == DiscountTier %} {% for discount in tier.discount %} {% if discount.min_quantity > variant.quantity %}{% break %}{% endif %} {% assign discount_amount = discount.discount_amount | times: 100 %} {% endfor %} {% break %} {% endif %} {% endfor %} {% break %} {% endif %} {% endfor %} {% if variant.price < variant.compare_at_price %} Sale {{- variant.price | minus: discount_amount | money | remove: ' ' -}}
{{- variant.compare_at_price | money | remove: ' ' -}} {% else %} {{- variant.price | money | remove: ' ' -}} {% endif %} Each

Buy More, Save More:
    {% for discountGroup in product.discounts_structure.groups %} {% if discountGroup.id == 1 %} {% for discountTier in discountGroup.tiers %} {% if discountTier.id == 1%} {% for discount in discountTier.discount %}
  • {% assign discount_amount = discount.discount_amount | times: 100 %} {% assign tier_ceiling = 10000 %} {% if discountTier.discount[forloop.index] != blank %}{% assign tier_ceiling = discountTier.discount[forloop.index].min_quantity | minus: 1 %}{% endif %}
    {{ variant.price | money | remove: ' ' }} {{ variant.price | minus: discount_amount | money | remove: ' ' }} / {{ discount.min_quantity }}{% if discountTier.discount[forloop.index] != blank %}-{{ discountTier.discount[forloop.index].min_quantity | minus: 1 }}{% else %}+{% endif %} qty.
  • {% endfor %} {% endif %} {% endfor %} {% endif %} {% endfor %}
Total
{% capture DiscountGroup %}1{% endcapture %} {% capture DiscountTier %}1{% endcapture %} {% assign DiscountGroup = DiscountGroup | plus: 0 %} {% assign DiscountTier = DiscountTier | plus: 0 %} {% assign discount_amount = 0 %} {% for group in product.discounts_structure.groups %} {% if group.id == DiscountGroup %} {% for tier in group.tiers %} {% if tier.id == DiscountTier %} {% for discount in tier.discount %} {% if discount.min_quantity > variant.quantity %}{% break %}{% endif %} {% assign discount_amount = variant.quantity | times: discount.discount_amount | times: 100 %} {% endfor %} {% break %} {% endif %} {% endfor %} {% break %} {% endif %} {% endfor %}
{{ variant.price | times: variant.quantity | minus: discount_amount | money | remove: ' ' }}
{% if discount_amount > 0 %} Saved {{ discount_amount | money | remove: ' ' }} {% endif %}
{% for option in product.options_with_values %} {% assign optionIndex = forloop.index0 %} {% assign position = forloop.index %}
{{option.name}}
{% assign sortedvalues = option.values %} {% if option.name contains 'Length' or option.name contains 'Width' or option.name contains 'Height' or option.name contains 'Depth' or option.name contains 'Thickness' or option.name contains 'Weight' %} {% assign sortedvalues = option.values | sort %} {% endif %} {% for value in sortedvalues %} {% assign inventory_quantity = 0 %} {% assign available = false %} {% assign optionVariant = false %} {% if product.options_with_values.size == 3 and optionIndex == 2%} {% for v in product.variants %} {% unless v.bogus %} {% if v.option1 == variant.option1 and v.option2 == variant.option2 and v.option3 == value %} {% assign optionVariant = v %} {% assign inventory_quantity = inventory_quantity | plus: v.inventory_quantity %} {% if v.available %}{% assign available = true %}{% endif %} {% endif %} {% endunless %} {% endfor %} {% elsif product.options_with_values.size == 2 and optionIndex == 1%} {% for v in product.variants %} {% unless v.bogus %} {% if v.option1 == variant.option1 and v.option2 == value %} {% assign optionVariant = v %} {% assign inventory_quantity = inventory_quantity | plus: v.inventory_quantity %} {% if v.available %}{% assign available = true %}{% endif %} {% endif %} {% endunless %} {% endfor %} {% else %} {% for v in product.variants %} {% unless v.bogus %} {% if v.option1 == value %} {% assign optionVariant = v %} {% assign inventory_quantity = inventory_quantity | plus: v.inventory_quantity %} {% if v.available %}{% assign available = true %}{% endif %} {% endif %} {% endunless %} {% endfor %} {% endif %} {% assign checked = "" %} {% if variant.options[optionIndex] == value%}{% assign checked = "checked" %}{% endif %} {% endfor %}
{% endfor %}
{% capture add_to_cart %}Neptune.cart.add({ id:{{ variant.id | json }}, quantity:{{ variant.quantity }}, properties:{ '_growingzone':['4a', '4b', '5a', '5b', '6a', '6b', '7a', '7b', '8a', '8b', '9a', '9b'],'shipping_exclusions':''} }, '.atcprod-{{ variant.id }}', { quantity: {{ variant.quantity }}, image: '//www.greatgardenplants.com/cdn/shop/products/galium-odoratum-sweet-woodruff-1.jpg?v=1609968556', title: 'Sweet Woodruff', option: 'One Quart' }); return false;{% endcapture %} {% assign discontinued = '' %} {% for tag in product.tags %} {% if tag contains 'discontinued' %} {% assign discontinued = 'true' %} {% endif %} {% endfor %} {% if variant.available %} {% else %} {% unless discontinued == 'true' %} Notify Me When Available {% endunless %} {% endif %}
{% if error %}
{{error.description}}
{% endif %}
white plant in hand icon

Hand-picked at our greenhouse

white shipped to door icon

Shipped to your door

Young plant icon

Arrives as young plant

background image

More Information

Description Galium odoratum, or sweet woodruff, is not a shy garden addition! This ground cover is vigorous, weaving through your garden and suppressing weeds. Delicate white flowers rise above the lush foliage in late spring and summer. Sweet woodruff ground cover is also excellent for spots where other shade ground covers fail. Plant it on steep, shaded banks for erosion control, beneath trees, or around rocks. Aromatic evergreen or semi-evergreen leaves emit a sweet fragrance when crushed. Try drying the leaves and use them in homemade sachets or potpourris! You can also use sweet woodruff as an easy-care ground cover.
Buying landscape plugs? Here is how much area they will cover:
  • 6" spacing of 32 landscape plugs covers 6 sq feet
  • 8" spacing covers 7.5 sq feet
  • 10" spacing covers 11 sq feet
  • 12" spacing covers 16 sq feet
Details Botanical name: Galium odoratum
Common name: Sweet woodruff, sweet-scented bedstraw, sweet bedstraw
Zone: 4 - 9
Sun exposure: Part-sun (4-6 hours sun) to shade (< 4 hours sun)
Height x width: 8-10" X 12-18"
Flower color: White
Foliage color: Green
Season of interest: Spring
Bloom time: Spring
Features: Wet soils, suitable for slopes, rabbit resistant, ground covers, fragrant, deer resistant, cold tolerant, best for beginners
Uses: Alpine gardens, edging, erosion control, ground cover, massing, rain garden, rock garden, slopes, underplanting, waterside, woodland
 
How To Grow Soil: Easily grown in average, medium to wet, well-drained soils.
Light: Part-sun (4-6 hours sun) to shade (< 4 hours sun)
Water: Medium to wet
Spacing: 10 to 18 inches
Fertilizing: Generally unnecessary in average soils.
Winterizing: No specific care is needed.
Maintenance & pruning: Spreads by creeping roots and self-seeding to form an attractive ground cover in moist, shady areas. To maintain control, plants can be mowed with a rotary mower on a high setting or easily pulled. Dig and move clumps in early spring when new growth appears if desired.

Did you know?

Ground Covers For Suppressing Weeds

Fight plants with plants and transform your garden into a lush landscape in the process with these ground covers.

groundcover great for suppressing weeds

Customer Reviews

Based on 28 reviews
89%
(25)
7%
(2)
4%
(1)
0%
(0)
0%
(0)
T
T.M. (Tennessee)
Setting in well

Definitely need to start in shade or a shaded spot behind another plant in Southeast 7A

R
R.M. (Rhode Island)

Plants arrived in good condition. Plugs larger than I expected. All 32 doing well where I planted them

L
L.A. (Colorado)
Sweet woodruff seems to be adapting

Thus far my starter plants seem to be settling into their new environs and are beginning to spread. They prefer a mostly shady location.

M
M.D. (Massachusetts)
Wonderful plant

First of all my experience with this purchase was excellent and the plants arrived healthy and well packed.

I planted these in my backyard which is almost all shade with “not great” soil. So far so good.

I left one in a pot just for safekeeping and it’s doing a bit better but I’m hopeful the rest will flourish because it’s not an easy area for planting.

M
M.B. (Texas)

They all died after planting

We've got you covered with our 60-day guarantee. We guarantee that you will be satisfied with your purchase and that your plants will arrive healthy, free of pests and diseases, and true to name. Have a problem with your plant? We make it easy to place a claim via email, automated claim process, or use the chat bubble. Simply send us a photo of your plant, your order number, and a brief description of the problem within 60 days of receipt of your order. While we do not accept returns, we are happy to issue refunds. Refunds are based on the plant cost and do not include shipping charges. Allow up to 2 weeks for processing refunds. After 60 days, we cannot be responsible for the plants in your care and will not cover problems with overwintering, animals, insects, diseases, improper planting, drought, flooding, poor drainage, etc. Our goal is that you are successful with our plants (and gardening in general), so our expert staff is here to assist you with any problem you may experience. Any plant shipped dormant in spring is guaranteed to break dormancy, even if it takes longer than 60 days.
Please note: our guarantee does not cover plants grown outside of their recommended growing zones. Verify your USDA zone by clicking 'Growing Zone' in the site navigation and entering your zip code before purchasing.