The Hearth Mesh Grocery Bag Holder is a tall, open tube that hangs from a wall hook and keeps plastic shopping bags in one tidy place. You push bags in at the top and pull them out through the cinched bottom. The body is an offset mesh of fan-shaped three-double-crochet blocks and square windows, framed by solid bands at the top and bottom.
The sample is shown in two colorways: a warm terracotta rust and a soft natural cream. Both use the same pattern; only the yarn changes. The chunky cotton gives the blocks a bold, sculpted look, and the bags show through the windows.
This pattern uses US crochet terms. The finished holder measures 16.5 in (41.9 cm) tall from bottom edge to top rim and 16 in (40.6 cm) around. That is about 5.1 in (13.0 cm) across when round and 8 in (20.3 cm) wide when pressed flat. The hanging strap adds about 3.5 in (8.9 cm), so the holder hangs about 20 in (50.8 cm) tall in total.
You work the holder from the bottom up in joined rounds, so there are no side seams. You start with an eyelet round for the drawstring, then add a solid lower band, the mesh body, and a solid upper band. You finish with a single crochet rim at each end, a short strap across the top, and a drawstring cord tied in a bow.
Finished Size and Construction
- Finished size: 16.5 in (41.9 cm) tall x 16 in (40.6 cm) around
- Flat width: 8 in (20.3 cm)
- Skill level: Easy
- Terminology: US crochet terms
- Yarn weight: Bulky (#5) cotton or cotton blend
- Hook: 6.0 mm (US J-10)
- Number of pieces: 1 tubular body with an attached strap, plus 1 drawstring cord
- Layout: Single seamless tube, worked bottom up in joined rounds
- Piece size: 48 stitches around, 24 body rounds
- Size before border: 16 in (40.6 cm) tall x 16 in (40.6 cm) around
- Border depth: 1 round of single crochet at each end, about 1/4 in (0.6 cm) each
Materials
Choose a smooth bulky cotton or cotton blend. Cotton holds its shape, doesn’t stretch much under the weight of the bags, and shows the stitch texture clearly. Avoid fuzzy yarns.
Yarn (one holder):
- Terracotta (shown on the left): 150 g, about 210 m
- or Cream (shown on the right): 150 g, about 210 m
Each holder uses one color only. To make a matching pair like the photo, get 150 g of each color.
These amounts include a margin of about 20 percent for your gauge check, the drawstring, and small differences in tension.
Tools:
- 6.0 mm (US J-10) crochet hook
- 5.5 mm (US I-9) and 6.5 mm (US K-10.5) hooks, in case you need to adjust gauge
- 2 locking stitch markers
- Tapestry needle with a large eye
- Scissors and measuring tape
- A rolled towel or a 5 in (12.7 cm) wide bottle to use as a blocking form
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- dc – double crochet
- sk – skip
- sp – space
- st(s) – stitch(es)
- rnd – round
- beg – beginning
- rep – repeat
Special stitch – Block: 3 dc worked into the same ch-3 space. The three stitches fan out slightly at the top, which gives the mesh its scalloped look.
Turning chain note: In every dc round, the beg ch-3 counts as 1 dc. In sc rounds and rows, the beg ch-1 does not count as a stitch.
Gauge and Checkpoints
Gauge: 12 dc and 6 rnds = 4 in (10.2 cm) with a 6.0 mm hook.
One dc round is about 2/3 in (1.7 cm) tall. One sc round is about 1/4 in (0.6 cm) tall.
Test first. The holder is one piece, so the first 3 rounds act as your swatch. Work them, lay the tube flat without stretching it, and measure.
Checkpoint 1 (after Rnd 3): flat width 8 in (20.3 cm), so 16 in (40.6 cm) around. Height 2 in (5.1 cm).
Checkpoint 2 (after Rnd 12): height 8 in (20.3 cm). The windows should look roughly square.
Checkpoint 3 (after Rnd 21): height 14 in (35.6 cm).
Checkpoint 4 (after Rnd 24): height 16 in (40.6 cm), with the flat width still 8 in (20.3 cm).
Checkpoint 5 (after the border): height 16.5 in (41.9 cm).
If your tube is too big: switch to a 5.5 mm hook and start again. If the flat width is off by less than 1/2 in (1.3 cm), you can keep going, because blocking will even it out.
If your tube is too small: switch to a 6.5 mm hook. A narrow tube is hard to fill with bags, so it’s worth fixing.
If only the height is off: don’t change hooks. Add or remove mesh rounds instead; each one is about 2/3 in (1.7 cm).

Body Pattern
Work in joined rounds with the right side facing you the whole time. Don’t turn between rounds.
Foundation and Drawstring Eyelets
Foundation: Ch 48. Join with a sl st to the first ch to form a ring, making sure the chain isn’t twisted.
Rnd 1 (eyelet round): Ch 4 (counts as dc + ch 1), sk next ch, dc in next ch, ch 1, sk next ch; rep from * 22 more times; join with sl st to 3rd ch of beg ch-4.
(24 dc + 24 ch-1 sps = 48 sts)
These 24 ch-1 spaces are the eyelets for the drawstring.
Lower Band
Rnd 2 (conversion round): Ch 3 (counts as dc), dc in next ch-1 sp, dc in next dc, dc in next ch-1 sp; rep from * around; join with sl st to top of beg ch-3.
(24 dc worked 1 per existing dc + 24 dc worked 1 per ch-1 sp = 48 dc)
Rnd 3: Ch 3, dc in each st around; join.
(48 dc)
Check Checkpoint 1 now.
Mesh Body
Rnd 4 (mesh setup): Ch 3, dc in next 2 sts, ch 3, sk next 3 sts, dc in next 3 sts, ch 3, sk next 3 sts; rep from * 6 more times; join with sl st to top of beg ch-3.
(8 blocks of 3 dc + 8 ch-3 sps = 24 dc + 24 ch = 48 sts)
Rnd 5 (mesh round): Sl st in next 2 dc, sl st in next ch-3 sp. Ch 3, 2 dc in same sp (first block made), ch 3, 3 dc in next ch-3 sp, ch 3; rep from * 6 more times; join with sl st to top of beg ch-3.
(8 blocks + 8 ch-3 sps = 48 sts)
Each new block sits in a window from the round below, and each new ch-3 crosses over a block below. This offset creates the checkerboard of blocks and square windows.
Rnds 6–21: Rep Rnd 5.
(Each round: 8 blocks + 8 ch-3 sps = 48 sts)
That makes 18 mesh rounds in total (Rnds 4–21). Each round has 8 windows, and the columns shift by half a repeat every round.
Check Checkpoint 3 now.
Upper Band
Rnd 22 (conversion round): Ch 3, dc in next 2 dc, 3 dc in next ch-3 sp, dc in next 3 dc, 3 dc in next ch-3 sp; rep from * around; join.
(24 dc worked 1 per existing dc + 24 dc worked 3 per ch-3 sp = 48 dc)
Rnds 23–24: Ch 3, dc in each st around; join.
(48 dc)
Don’t fasten off; the top border continues from here. Check Checkpoint 4.
Border
The holder is one piece, so there’s no joining. Instead, it gets a single crochet rim at the top and at the bottom. The rims firm up the edges, keep both openings round, and give the strap a stable base.
Border gauge: 12 sc = 4 in (10.2 cm), the same width as the dc gauge. That means 48 sc fit exactly around the 16 in (40.6 cm) tube without ruffling or pulling in.
Top Rim
Rnd 25: Ch 1 (doesn’t count as a st), sc in same st as join and in each st around; join with sl st to first sc.
(48 sc: 1 sc per existing dc, 0 added)
Place a marker in the 1st sc of this round. Count 24 sts on and place a second marker in the 25th sc. The two markers sit directly opposite each other. Fasten off.
Bottom Rim
Turn the tube upside down. Join yarn with a sl st in any free loop of the foundation chain.
Bottom Rnd: Ch 1, sc in same loop and in each free loop of the foundation chain around; join with sl st to first sc.
(48 sc: 1 sc per foundation ch, 0 added)
Fasten off and weave in the ends.
Why the math works: The foundation chain, every dc round, and every mesh round all hold 48 stitches. In the mesh, one 3-dc block plus one ch-3 space makes a 6-stitch repeat, and 8 repeats x 6 = 48. Each rim works 1 sc into each of the 48 stitches below. Since sc and dc have the same width at this gauge, the rims lie flat at 16 in (40.6 cm) around and add only about 1/4 in (0.6 cm) of height each. The finished height is 16 in + 1/4 in + 1/4 in = 16.5 in (41.9 cm).
Hanging Strap
With the top rim facing you, join yarn in the first marked sc.
Row 1: Ch 1, sc in the marked sc and in the next 2 sc; turn.
(3 sc)
Rows 2–35: Ch 1, sc in each st across; turn.
(3 sc)
The strap is about 10 in (25.4 cm) long and 1 in (2.5 cm) wide. Leave a 12 in (30.5 cm) tail and fasten off.
Arch the strap across the opening without twisting it. Line up its last row with the second marked sc (the 25th) and the next 2 sc. Whipstitch the 3 strap stitches to those 3 rim stitches, sewing through both layers twice for strength. The strap forms an arch about 3.5 in (8.9 cm) above the rim.
Drawstring
Cord: Leaving a 4 in (10.2 cm) tail, ch 108. Sl st in the back bump of the 2nd ch from hook and in each ch across. Fasten off, leaving a 4 in (10.2 cm) tail.
(107 sl sts; about 36 in / 91.4 cm long)
Tie an overhand knot about 1 in (2.5 cm) from each end, then trim the tails to 1/2 in (1.3 cm).
Start at the center front and weave the cord in and out through the 24 ch-1 eyelets of Rnd 1, so both ends come out side by side. Pull until the bottom opening is about 2 in (5.1 cm) across, then tie a bow. The knotted ends hang just below the bottom rim.
Final Blocking
- Untie the drawstring and pull it out so it doesn’t kink while drying.
- Soak the holder in cool water for 10 minutes, then gently squeeze out the water without wringing.
- Roll it in a towel and press to remove more moisture.
- Slide the tube over a rolled towel or a bottle about 5 in (12.7 cm) wide.
- Ease the tube to 16 in (40.6 cm) tall, not counting the rims, and 16 in (40.6 cm) around. Measure the flat width at three heights; it should read 8 in (20.3 cm) each time.
- Use your fingers to open each window into a square, and straighten the block columns.
- Lay the strap flat and smooth it to 10 in (25.4 cm).
- Let it dry completely, then rethread the drawstring and tie the bow.
Final Quality-Control Checklist
- Every body round counts 48 sts (Rnd 1: 24 dc + 24 ch-1 sps; each mesh round: 8 blocks + 8 ch-3 sps).
- There are 18 mesh rounds with 8 windows each, and the windows alternate cleanly.
- The tube isn’t twisted, and the joins line up in a straight column at the back.
- Both rims have 48 sc and lie flat.
- The holder measures 16.5 in (41.9 cm) tall and 8 in (20.3 cm) wide flat.
- The strap is attached at opposite points, 24 sts apart, and isn’t twisted.
- The drawstring passes through all 24 eyelets and has a knot at each end.
- All ends are woven in at least 2 in (5.1 cm) through solid stitches.
Troubleshooting
The foundation ring twisted. You’ll see a spiral after Rnd 2. Pull it out and rejoin, keeping the bottom bumps of the chain facing inward all the way around.
The windows drift diagonally. Your starting point is shifting. In every mesh round, sl st across exactly 2 dc and then into the ch-3 sp before you begin.
You have 7 or 9 blocks. You worked one repeat too few or too many. Count the blocks before joining each mesh round.
The windows look like narrow slits. Your ch-3 is too tight. Work the chains more loosely.
The top rim flares. Your sc is looser than your dc. Redo the rim with a 5.5 mm hook.
Bags slip out of the bottom. Pull the drawstring tighter, until the opening is about 1.5 in (3.8 cm) across.
Care
Hand wash, or machine wash on a gentle cool cycle in a mesh bag. Take the drawstring out first, then reshape the holder and lay it flat to dry.

Final Notes
The whole design follows one measurement chain. A gauge of 12 dc = 4 in (10.2 cm) gives 48 sts = 16 in (40.6 cm) around. Each round is 2/3 in (1.7 cm) tall, so 24 rounds = 16 in (40.6 cm). The two sc rims bring the height to 16.5 in (41.9 cm), and the strap arch makes the total hanging height about 20 in (50.8 cm). If your first 3 rounds match Checkpoint 1, the rest of the holder will come out to the same measurements.
Happy crocheting!