This bag holder turns a pile of plastic grocery bags into something you won’t mind leaving out on the counter. The body is an open diamond lattice, so the white bags show through. A solid band at the bottom gives you a firm opening to pull bags from, and a gathered neck with a full ruffle and a hanging strap finishes the top.
The sample is shown in two colorways: a soft dusty rose and a deep chocolate brown. Both are worked in smooth worsted-weight cotton, which shows off the mesh and holds the ruffle’s shape. The style is farmhouse kitchen, practical but a little bit pretty.
The pattern uses US crochet terms. The finished holder measures about 6 in (15.2 cm) wide when flattened and 14.25 in (36.2 cm) tall, not counting the strap. The strap adds a hanging loop about 5 in (12.7 cm) tall.
The holder is worked from the bottom up as one continuous tube. You start on a foundation ring, then work a solid single crochet band, a 20-round net mesh, a top band that decreases to form the neck, and a three-round ruffle. Last, you add a strap across the inside of the neck. There’s no sewing or seaming.
Finished Size and Construction
- Finished size: 6 in (15.2 cm) wide flattened × 14.25 in (36.2 cm) tall
- Circumference: 12 in (30.5 cm) at the body; 9 in (22.9 cm) at the neck
- Skill level: Easy / advanced beginner
- Terminology: US crochet terms
- Yarn weight: Worsted (#4), 100% cotton
- Hook: 5.0 mm (H-8)
- Number of pieces: 1 (one tube with an integrated strap)
- Layout: Single vertical cylinder, worked bottom up in joined rounds
- Piece size before ruffle: 6 in (15.2 cm) flattened × 13 in (33.0 cm) tall
- Ruffle (border) depth: 1.25 in (3.2 cm)
- Strap: 10 in (25.4 cm) long × 0.5 in (1.3 cm) wide
Materials
Yarn: Use a smooth, mercerized or combed worsted cotton. Cotton keeps the mesh crisp and doesn’t stretch as much as acrylic once the holder is full of bags. Avoid fuzzy yarns, because they blur the diamond lattice.
- Dusty rose version: 50 g (about 90 m) worsted cotton
- Chocolate brown version: 50 g (about 90 m) worsted cotton
Each holder takes one color only. These quantities include a margin of about 20% for your gauge swatch and weaving in ends.
Tools:
– 5.0 mm (H-8) crochet hook
– Stitch marker
– Tapestry needle
– Scissors
– Measuring tape
– Spray bottle and rust-proof pins for blocking
– A rolled towel, about 3 in (7.6 cm) across, for blocking
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- dc – double crochet
- sc2tog – single crochet 2 together
- sk – skip
- sp – space
- st(s) – stitch(es)
- rnd(s) – round(s)
Special stitch: sc2tog. Insert your hook in the next st, yarn over, and pull up a loop. Insert your hook in the following st, yarn over, and pull up a loop. Yarn over and pull through all 3 loops on the hook. This makes 1 stitch from 2.
Mesh corner trick: Each mesh rnd ends with “ch 2, dc in first sc.” The ch 2 and the dc together are about the same length as a ch 5. This closes the last loop and leaves your hook in the middle of that loop, ready for the next round.
Gauge and Checkpoints
Single crochet gauge: 16 sc × 16 rnds = 4 in (10.2 cm), worked in the round.
Mesh gauge: Each ch-5 loop spans 1 in (2.5 cm) of circumference, and 4 mesh rnds = 2 in (5.1 cm) of height. That means each mesh round adds 0.5 in (1.3 cm).
Treat the bottom band as your swatch. Work the foundation and Rnds 1–8, then measure before going on. The tube has to fit a crumpled bag’s worth of volume, so gauge matters more here than it would for a flat dishcloth.
Checkpoints:
– After Rnd 8: Flattened width is 6 in (15.2 cm). Height is 2 in (5.1 cm).
– After Rnd 28: Height is 12 in (30.5 cm). The mesh is still 6 in (15.2 cm) wide when lightly stretched.
– After Rnd 32: Height is 13 in (33.0 cm). The neck is 4.5 in (11.4 cm) wide flattened.
– After Rnd 35: Height is 14.25 in (36.2 cm).
If your piece is too big: Go down to a 4.5 mm (7) hook. Don’t remove stitches, because the counts are tied to the 4-st mesh repeat.
If your piece is too small: Go up to a 5.5 mm (I-9) hook.
If your mesh is too short: Change ch 5 to ch 6 in every loop. In that case, end each mesh rnd with “ch 3, dc in first sc.”

Pattern
Bottom Band (Foundation and Rnds 1–8)
Foundation: Ch 48, then join with a sl st to the first ch to form a ring. Don’t twist the chain. (48 ch)
Rnd 1: Ch 1, then sc in each ch around. Join with a sl st to the first sc. (48 sc)
Rnds 2–8: Ch 1, then sc in each st around. Join with a sl st to the first sc. (48 sc each rnd)
Place a marker in the first st of each round and move it up as you go. The joined rounds give you a straight, solid band about 2 in (5.1 cm) tall. This is the bottom opening that bags pull out of.
Checkpoint: 6 in (15.2 cm) flattened × 2 in (5.1 cm) tall.
Diamond Mesh (Rnds 9–28)
Rnd 9 (setup): Ch 1, then sc in the first st. Ch 5, sk 3 sts, sc in the next st. Repeat from * to * 10 more times. Ch 2, then dc in the first sc. (12 sc anchors, 11 ch-5 loops + 1 ch-2/dc loop = 12 loops)
This round uses all 48 sts of Rnd 8: each loop covers 1 anchor st plus 3 skipped sts, and 12 × 4 = 48.
Rnds 10–28: Ch 1, then sc around the post of the dc you just made. Ch 5, sc in the next ch-5 sp. Repeat from * to * 10 more times. Ch 2, then dc in the first sc. (12 loops each rnd)
Each sc anchors in the middle of a loop from the round below. This offsets the loops by half a loop every round, which creates the diamond lattice. There are 20 mesh rounds in total (Rnds 9–28), adding 10 in (25.4 cm).
Every few rounds, pull the tube lengthwise. Each diamond should open evenly, with no twisting toward one side.
Checkpoint: 12 in (30.5 cm) total height.
Top Band and Neck (Rnds 29–32)
Rnd 29 (conversion): Ch 1. Work 4 sc in each loop around, counting the final ch-2/dc loop as a loop. Join with a sl st to the first sc. (12 loops × 4 sc = 48 sc)
Written as a conversion: 12 sc worked one per existing loop + 36 extra sc = 48 sc. This puts you back on the same 48-st count as the bottom band, so the tube stays straight.
Rnd 30 (decrease): Ch 1. Sc in the next 2 sts, sc2tog. Repeat from * to * 12 times. Join with a sl st to the first sc. (36 sc)
Rnds 31–32: Ch 1, then sc in each st around. Join with a sl st to the first sc. (36 sc each rnd)
The decrease pulls the top in from 12 in (30.5 cm) to 9 in (22.9 cm) around. This creates the gathered neck under the ruffle and helps keep bags from spilling out the top.
Checkpoint: 13 in (33.0 cm) tall. The neck is 4.5 in (11.4 cm) wide flattened.
Border: Ruffle Top Edge
Border gauge: 16 dc × 8 rnds = 4 in (10.2 cm). Each dc rnd is about 0.5 in (1.3 cm) tall. The sc edge rnd is about 0.25 in (0.6 cm) tall.
Rnd 33 (ruffle increase): Ch 3 (counts as dc), then work 2 dc in the same st. Work 3 dc in each st around. Join with a sl st to the top of the ch-3. (36 dc worked one per existing st + 72 extra dc = 108 dc)
Rnd 34: Ch 3 (counts as dc). Dc in each st around. Join with a sl st to the top of the ch-3. (108 dc)
Rnd 35 (edge): Ch 1, then sc in each st around. Join with a sl st to the first sc. (108 sc) Fasten off.
Per-side counts: Flatten the holder with the beginning of the round at one fold. Each side of the ruffle then holds 54 sts (54 + 54 = 108). The neck under it holds 18 sts per side (18 + 18 = 36).
Why the math works: At border gauge, 108 sts would lie flat across about 27 in (68.6 cm). Because they’re worked onto a 9 in (22.9 cm) neck, you get 3 times the fabric the neck can hold, so it ruffles into the deep waves shown in the photo. The firm sc edge stops the ruffle from flopping.
The ruffle adds 1.25 in (3.2 cm), for a total height of 14.25 in (36.2 cm).
Hanging Strap (worked after the ruffle)
Turn the holder so the inside of the neck faces you. Look at Rnd 32 and count its 36 sts. Stitch 1 sits above the join. Stitch 19 sits directly opposite it, with 18 sts on each side.
Row 1: Join the yarn with a sl st around the post of st 1 of Rnd 32. Ch 41, then sc in the 2nd ch from the hook and in each ch across. (40 sc) Sl st around the post of st 19 of Rnd 32.
Row 2: Ch 1, then turn. Sc in each sc across. (40 sc) Sl st around the post of st 1 again. Fasten off.
The strap is 10 in (25.4 cm) long and 0.5 in (1.3 cm) wide. It arches across the opening and peaks to form a loop about 5 in (12.7 cm) tall when hung. Because it’s anchored inside the neck, the ruffle stays free all the way around.
Weave in all ends along solid sc rounds rather than the mesh, where they would show.
Final Blocking
- Soak the holder in cool water for 10 minutes, then gently press out the water. Don’t wring it.
- Roll it in a dry towel to remove extra moisture.
- Slide a rolled towel about 3 in (7.6 cm) across inside the tube.
- Pull the tube lengthwise to 13 in (33.0 cm) up to the neck, and line the diamonds up in straight vertical columns.
- Check that the bottom band is 6 in (15.2 cm) wide flattened.
- Pull the ruffle waves outward with your fingers and spritz them so they set in an even frill.
- Lay the strap flat and straight.
- Let it dry completely, which takes about 24 hours.
Final Quality-Control Checklist
- Bottom band: 48 sc in every round, 2 in (5.1 cm) tall
- Mesh: 12 loops in every round, with no extra or missed loops
- Diamond columns run straight and evenly
- Rnd 29 has 48 sc, and Rnds 30–32 have 36 sc each
- Ruffle: 108 sts in each of Rnds 33–35
- Strap anchored at sts 1 and 19 of Rnd 32, directly opposite each other
- Total height is 14.25 in (36.2 cm), and the flattened width is 6 in (15.2 cm)
- All ends are woven into solid areas
Troubleshooting
The mesh slants into a spiral. You may be working the sc into the ch rather than into the ch-5 space. Always work around the whole loop.
The loop count drifts. Check that each round starts with an sc around the dc post and ends with “ch 2, dc.” Count the anchors every round.
The bottom opening is too loose. Bags will slide out. Work the band with a hook one size smaller.
The ruffle is too flat. Your tension is loose in the dc rounds. Go down one hook size for Rnds 33–35 only.
The ruffle curls inward. Your sc edge is too tight. Work Rnd 35 with a hook one size larger.
The holder sags when full. Cotton relaxes over time. Re-block the holder, or add one extra sc round to the neck.
Care
Hand wash or machine wash on a gentle, cool cycle, then reshape and lay flat to dry. Don’t tumble dry, because heat can shrink cotton unevenly and distort the mesh.

Final Notes
Here’s how the measurements build up:
- Gauge: 16 sc = 4 in (10.2 cm), which gives a 48-st, 12 in (30.5 cm) circumference
- Bottom band: 2 in (5.1 cm)
- Mesh: 12 loops of 4 sts each, 20 rounds, 10 in (25.4 cm), reaching 12 in (30.5 cm) total
- Top band: 4 sc rounds that convert back to 48 sts and decrease to a 36-st, 9 in (22.9 cm) neck, reaching 13 in (33.0 cm) total
- Ruffle: 108 sts and 1.25 in (3.2 cm), for a finished height of 14.25 in (36.2 cm)
Check each stage against its checkpoint, and you’ll end up with a holder that is straight, sturdy, and nicely frilled. Make one in each color and give your kitchen a matching pair.
Happy crocheting!