This hanging toilet paper holder stores three spare rolls in a column of ribbed pockets. A long, narrow back panel ends in a tapered top and a short strap that wraps around a natural wooden ring, so the whole piece hangs from one wall hook.
It’s made in one warm terracotta (rust) color. The pockets have deep vertical ribs that look almost knitted, and each one has a rope-like crab stitch rim. The back panel is plain single crochet with a neat raised border.
This pattern uses US crochet terms. The finished panel, including the border, is 6 in (15.2 cm) wide and about 21.5 in (54.6 cm) long. Measured from the top of the ring to the bottom edge, the holder hangs about 25 in (63.5 cm). Each pocket is 6.75 in (17.1 cm) wide when flattened, and its sides are 3.5 in (8.9 cm) tall.
How it’s made: first you crochet the back panel in rows, add a two-round border, then work the strap and wrap it around the ring. Next you crochet three identical pockets in the round, each starting from an oval base, and sew them onto the panel at set rows.
Finished Size and Construction
- Finished size: panel 6 in x 21.5 in (15.2 cm x 54.6 cm); about 25 in (63.5 cm) long overall with the ring
- Skill level: Intermediate (post stitches, oval base, crab stitch)
- Terminology: US crochet terms
- Yarn weight: Worsted (#4), cotton or cotton blend
- Hook: 5.0 mm (H-8)
- Number of pieces: 4 (1 back panel, 3 pockets)
- Layout: 3 pockets stacked on one panel, 6 in (15.2 cm) apart, measured base to base
- Piece size: pocket 6.75 in (17.1 cm) wide flattened and 3.5 in (8.9 cm) tall; pocket base 5.5 in x 2.5 in (14.0 cm x 6.4 cm)
- Panel size before border: 5.5 in (14.0 cm) wide; 18 in (45.7 cm) straight section plus a 3.1 in (7.9 cm) taper
- Border depth: 0.25 in (0.6 cm) on each edge
Materials
Choose a smooth, firm worsted cotton or cotton blend. Cotton holds its shape in a damp bathroom and makes the ribs look crisp. Avoid fuzzy or very stretchy yarns, because the pockets need to stay upright with a roll inside.
- Terracotta (rust): 250 g / about 425 m (465 yd)
- Back panel, border and strap: about 80 g
- Each pocket: about 45 g (135 g for all three)
These amounts include about 15 percent extra for swatching and differences in tension.
Tools:
- 5.0 mm (H-8) crochet hook
- 1 natural wooden ring, 3 in (7.6 cm) outer diameter
- Tapestry needle
- 4–6 locking stitch markers
- Rustproof pins
- Tape measure
- Spray bottle and blocking mat
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- dc – double crochet
- sc2tog – single crochet 2 together
- BLO – back loop only
- FPdc – front post double crochet
- BPdc – back post double crochet
- rev sc – reverse single crochet (crab stitch)
- st(s) – stitch(es)
- rnd(s) – round(s)
Special stitch – rev sc (crab stitch): Work from left to right (if you’re right-handed). Insert the hook into the next stitch to the right, yarn over, pull up a loop, then yarn over and pull through both loops. This makes the twisted, rope-like rim on each pocket.
Gauge and Checkpoints
Gauge: 16 sc x 18 rows = 4 in (10.2 cm) in sc rows. Rib gauge: 10 rnds of FPdc/BPdc rib = 4 in (10.2 cm) tall, so each rib round is about 0.4 in (1.0 cm).
Make one pocket first. It uses every stitch in the pattern and shows you quickly whether your rolls will fit.
Checkpoints:
- Pocket base after Rnd 5: 54 sts, about 5.5 in x 2.5 in (14.0 cm x 6.4 cm), lying flat
- Pocket after Rnd 13: sides about 3 in (7.6 cm) tall above the base ridge
- Finished pocket: sides 3.5 in (8.9 cm) tall; 13.5 in (34.3 cm) around
- Panel after Row 81: 5.5 in (14.0 cm) wide, 18 in (45.7 cm) long
- Panel after border: 6 in (15.2 cm) wide
If your pieces are too big, use a hook 0.5 mm smaller. If they’re too small, use a hook 0.5 mm larger. Don’t add or remove stitches, because the pocket positions and border counts depend on these numbers.

Back Panel
Ch 23.
Row 1: Sc in 2nd ch from hook and in each ch across, turn. (22 sts)
Rows 2–81: Ch 1 (does not count as a st), sc in each st across, turn. (22 sts)
Checkpoint: 5.5 in (14.0 cm) wide, 18 in (45.7 cm) long.
Tapered Top
Row 82: Ch 1, sc2tog, sc in next 18 sts, sc2tog, turn. (20 sts)
Row 83: Ch 1, sc in each st across, turn. (20 sts)
Rows 84–95: Repeat Rows 82–83 six more times. Each decrease row loses 2 sts, so the even rows have 18, 16, 14, 12, 10 and finally 8 sts at Row 94. Row 95 is a plain row. (8 sts)
The taper is 14 rows, about 3.1 in (7.9 cm) tall, and narrows the panel from 5.5 in (14.0 cm) to 2 in (5.1 cm). Fasten off. Don’t make the strap yet; it comes after the border.
Pockets (Make 3)
Oval Base
Ch 15.
Rnd 1: Sc in 2nd ch from hook, sc in next 12 ch, 3 sc in last ch. Turn the chain and work along the other side: sc in next 12 ch, 2 sc in last ch (the same ch as the first sc). Join with sl st to first sc. (30 sts: 12 on each straight side, 3 at each end)
Rnd 2: Ch 1, 2 sc in first st, sc in next 12 sts, [2 sc in next st] 3 times, sc in next 12 sts, [2 sc in next st] 2 times, join. (36 sts: 12 on each side, 6 at each end)
Rnd 3: Ch 1. Work 1 sc in each straight-side st, keeping 12 sc on each straight side. Across each end, work [sc in next st, 2 sc in next st]. At the end where the round starts, the end group runs over the last and first stitches of the round. Join. (42 sts: 12 on each side, 9 at each end)
Rnd 4: Work as for Rnd 3, but across each end work [sc in next 2 sts, 2 sc in next st]. (48 sts: 12 on each side, 12 at each end)
Rnd 5: Work as for Rnd 3, but across each end work [sc in next 3 sts, 2 sc in next st]. (54 sts: 12 on each side, 15 at each end)
Checkpoint: 5.5 in x 2.5 in (14.0 cm x 6.4 cm). Place a marker in the first stitch.
Ribbed Sides
Rnd 6 (base ridge): Ch 1, sc in BLO of each st around, join. (54 sts) The unused front loops make a ridge where the sides turn up.
Rnd 7: Ch 2 (does not count as a st), dc in each st around, join to first dc. (54 sts)
Rnd 8: Ch 2 (does not count), FPdc around next st, BPdc around next st; repeat from * 26 more times, join. (54 sts, 27 ribs)
Rnds 9–13: Ch 2, FPdc around the FPdc below, BPdc around the BPdc below; repeat around, join. (54 sts in each round)
Stacking each FPdc on top of the FPdc below builds the raised columns. The BPdc stitches sink back to form the grooves between them.
Rope Rim
Rnd 14: Ch 1, sc in each st around, join. (54 sts)
Rnd 15: Ch 1, rev sc in each st around, join. (54 sts) Fasten off and leave a 24 in (61.0 cm) tail for sewing.
Checkpoint: sides 3.5 in (8.9 cm) tall; pocket 6.75 in (17.1 cm) wide when flattened. A standard roll is about 4.3 in (10.9 cm) tall, so it will stick up about 0.75 in (1.9 cm) above the rim and be easy to grab.
Make All Pieces
- Terracotta (rust): 1 back panel, 3 pockets
Layout (front view, top to bottom):
( O ) wooden ring
| | strap, 8 sts x 18 rows
/ \ taper, Rows 82-95
| | plain panel, Rows 74-81
[ POCKET 3 ] base on Row 57
| |
[ POCKET 2 ] base on Row 30
| |
[ POCKET 1 ] base on Row 3
|_____| bordered bottom edge
Rows 3, 30 and 57 are 27 rows apart. At 18 rows per 4 in (10.2 cm), that’s exactly 6 in (15.2 cm).
Joining
Note: Work the border and strap (next section) before you sew on the pockets. That way the border stays visible and even.
Method: Whipstitch with the yarn tail through the pocket’s base ridge and the panel stitches.
Stitch-to-stitch logic:
- Flatten a pocket. The 54 ridge loops (the front loops left over from Rnd 6) split into 27 at the front and 27 at the back.
- Lay the pocket on the right side of the panel, with the round’s join at one side.
- Line up the middle 22 back loops with the 22 stitches of the placement row. Sew one loop to each stitch.
- The other 5 back loops (2 on one side, 3 on the other) wrap around the panel edges. Tack them to the border sl sts.
- Sew a short vertical seam up each side where the pocket meets the panel edge. Then tack the rim (Rnd 14) to the border on both sides.
Sew Pocket 1 on Row 3, Pocket 2 on Row 30 and Pocket 3 on Row 57.
Tension: Pull each stitch snug, but not so tight that the panel puckers. The panel should lie flat when you put it down.
Size checkpoint: The pockets are 6 in (15.2 cm) apart, base to base. Each pocket sticks out past the panel by about 0.375 in (1.0 cm) on each side.
Border
Border gauge: 8 sc for every 9 row ends along the straight sides, 1 sc per row end along the taper, and 1 sc per stitch along the top and bottom edges.
Round 1: Join yarn at the bottom right corner. Work these sc counts, then join with a sl st to the first sc.
- Bottom edge: 1 sc in each of the 22 foundation chain stitches, with 3 sc in each end stitch: 22 + 4 = 26 sc. These 26 include both bottom corners.
- Each long side: 72 sc along the 81 straight rows, plus 14 sc along the 14 taper rows, for 86 sc per side. This count doesn’t include the corners.
- Top edge: 1 sc in each of the 8 stitches, with 2 sc in each end stitch: 8 + 2 = 10 sc. These 10 include both top corners.
- Total: 26 + 86 + 86 + 10 = 208 sc.
Round 2: Ch 1, sl st in BLO of each st around, join. (208 sts) Fasten off.
Why the math works: At gauge, 81 rows are 18 in (45.7 cm) long, and 18 in at 4 sc per inch is 72 sc. Working 8 sc per 9 row ends gives 81 ÷ 9 x 8 = 72 exactly, so the sides won’t ruffle or pull in. The taper edge is slanted, so it’s a little longer than its 3.1 in (7.9 cm) height, and 1 sc per row end fits it. The border adds 0.25 in (0.6 cm) to each edge: 5.5 + 0.25 + 0.25 = 6 in (15.2 cm).
Strap
Row 1: With the right side facing you, skip the first top border st and join yarn in the next st. Sc in that st and in the next 7 sts, turn. (8 sts; 1 corner st at each end stays unworked)
Rows 2–18: Ch 1, sc in each st, turn. (8 sts)
The strap is 2 in x 4 in (5.1 cm x 10.2 cm). Pass it through the wooden ring and fold it to the back. Whipstitch Row 18 to the back of the panel at the base of the strap, matching 8 sts to 8 sts.
Final Blocking
- Mist the finished holder until it’s damp but not soaked.
- Lay the panel flat on the blocking mat, wrong side down.
- Pin the panel edges straight to 6 in (15.2 cm) wide and 21.5 in (54.6 cm) long.
- Put a toilet paper roll wrapped in a plastic bag in each pocket so the pockets dry round and upright.
- Run your fingers down each rib to straighten the columns.
- Let it dry completely, at least 24 hours, before you hang it.
Final Quality-Control Checklist
- Panel is 6 in (15.2 cm) wide with straight, even edges
- Border has 208 sts and lies flat with no ruffling
- Both sides of the taper match
- Each pocket has 54 sts and 27 straight ribs
- All three pockets are the same height, 3.5 in (8.9 cm)
- Pocket bases sit on Rows 3, 30 and 57, 6 in (15.2 cm) apart
- Strap is sewn down securely and the ring doesn’t slip
- All ends are woven in on the wrong side
Troubleshooting
Ribs lean or spiral: Make sure every FPdc goes around an FPdc from the round below. Joining each round, rather than working in a spiral, keeps the ribs straight.
Pocket is too tight for the roll: Your gauge is too tight. Go up 0.5 mm in hook size and make the pocket again; don’t add stitches.
Pocket rim flares: Work Rnd 14 with a smaller hook, or make your crab stitches a little tighter.
Panel edges wave after the border: You’ve picked up too many stitches along the sides. Recount to 86 per side.
Holder tilts on the hook: The pockets aren’t centered. Sew them again so the middle 22 back loops line up exactly with the panel stitches.
Oval base cups or ruffles: Count each end group (3, 6, 9, 12, 15) and keep 12 sts on each straight side.
Care
Hand wash in cool water with mild soap and press the water out in a towel. Dry flat with a roll in each pocket, and don’t wring it or put it in the dryer.

Final Notes
Here’s how the measurements connect. At a gauge of 16 sc x 18 rows = 4 in (10.2 cm), the 22-st panel is 5.5 in (14.0 cm) wide and its 81 rows are 18 in (45.7 cm) long. The 14-row taper adds 3.1 in (7.9 cm), and the 208-st border brings the width to 6 in (15.2 cm). Each 54-st pocket is 13.5 in (34.3 cm) around and 3.5 in (8.9 cm) tall. The pockets sit 27 rows, or 6 in (15.2 cm), apart. If you match the gauge and hit each checkpoint, everything will fit.
Happy crocheting!