Crochet Tote Bag in 2 Sizes
Learn how to crochet a sturdy, structured tote bag in two practical sizes using bulky T-shirt yarn and a simple, repetitive stitch pattern.
Have you ever crocheted a gorgeous bag, filled it with your essentials, and watched in horror as it stretched down to your knees?
It is a classic maker heartbreak. We spend hours crafting the perfect accessory, but without the right support, our beautiful stitches sag under the slightest weight. I wanted to design a bag that could actually handle a trip to the market or a day at the beach without losing its shape.
My solution was to combine a dense, cord-like T-shirt yarn with a solid plastic canvas insert and a fabric lining. This combination creates a wonderfully stiff bottom and a structured body that stands up on its own. When I first designed this, my prototype turned out absolutely massive—perfect for a beach trip, but a bit much for running quick errands.
So, I made two sizes.
Now you can choose between a classic everyday tote and a generous beach-ready option. If you enjoy making functional accessories, you might also love my Rectangle Hobo Bag Pattern for another stylish carrying option.
Let's grab our hooks and build a bag that lasts.
Why You'll Love This Pattern
- Sturdy and Structured: The combination of T-shirt yarn, plastic canvas, and lining ensures your bag will never sag or lose its shape.
- Two Versatile Sizes: Crochet the regular size for daily errands or the large size for beach trips and weekend getaways.
- Relaxing Stitch Pattern: Once you clear the base, the main body uses a simple, repetitive round that is perfect for mindful crafting.
Materials You'll Need
- Yarn: Bernat Maker Home Dec (Size 5 Bulky weight T-shirt yarn; 72% Cotton, 28% Nylon). Green Pea used for the regular size, Cream for the large size.
- Hook: Size K (6.5 mm) crochet hook.
- Notions: Leather handles (23.6 inches long), 3/4 yard of lining fabric, plastic canvas (or sturdy cardboard covered in duct tape), matching sewing thread, sewing needle, and stitch markers. *Optional:* 1 yard of 1/2-inch wide ribbon (if making crochet handles).
- Yardage: Approximately 475 yards (1.5 skeins) for the regular size, or 620 yards (2 skeins) for the large size.
Gauge & Sizing
- Gauge: 12 single crochet (sc) stitches and 14 rows = 4 inches (10 cm) square.
- Sizes included: Regular and Large.
- Finished measurements: Regular: 16 inches wide by 12.5 inches tall. Large: 21 inches wide by 14 inches tall.
Abbreviations & Stitch Instructions
- ch: Chain
- sl st: Slip stitch
- sc: Single crochet
- hdc: Half double crochet
- dc: Double crochet
- BLO (Back Loop Only): Insert your hook only under the back loop of the stitch, leaving the front loop unworked.
- RS: Right Side (the outside of your bag).
- WS: Wrong Side (the inside of your bag).
Pattern Notes
- Skill Level: Easy to Intermediate.
- This pattern is written in US crochet terms.
- The item is worked bottom-up, starting with an oval base worked in the round, then building the sides.
- Tension Tip: Keep your slip stitches relaxed when working the base transition so your hook can easily insert into them in the next round.
- Customization Tip: You can substitute the leather handles with handmade crochet straps reinforced with ribbon to prevent stretching.
Step-by-Step Instructions
Crafting the Oval Base
Round 1: Chain 19 (31). Work 1 sc in the second chain from your hook and place a stitch marker here. Work 1 sc in each of the next 16 (28) chains. In the very last chain, work 3 sc. Pivot your work to crochet along the opposite side of your starting chain. Work 1 sc in the bottom of the next 16 (28) stitches (be careful not to skip the first one, as it can hide under the 3-sc group). Work 2 sc in the last chain space. Do not slip stitch or turn. [38 (62) stitches]
Round 2: Work 2 sc directly into the marked stitch. Move your marker to the first of these 2 stitches. Work 1 sc in each of the next 16 (28) stitches. Work 2 sc in each of the next 3 stitches. Work 1 sc in each stitch until you have 2 stitches left before your marker. Work 2 sc in each of those last 2 stitches. Do not join or turn. [44 (68) stitches]
Round 3: Work 2 sc in the marked stitch, moving the marker up to the first stitch. Work 1 sc in the next 19 (31) stitches. Work 2 sc in each of the next 3 stitches. Work 1 sc in each stitch until 2 stitches remain before the marker. Work 2 sc in each of the last 2 stitches. Do not join or turn. [50 (74) stitches]
Round 4: Work 2 sc in the marked stitch, moving the marker up. Work 2 sc in each of the next 2 stitches. Work 1 sc in the next 19 (31) stitches. Work 2 sc in each of the next 5 stitches along the curve. Work 1 sc in each stitch until 2 stitches remain before the marker. Work 2 sc in each of the last 2 stitches. Do not join or turn. (Don't worry if your work curls slightly; this is normal for this yarn). [60 (84) stitches]
Round 5: Work 2 sc in the marked stitch, moving the marker up. *Work 1 sc in the next stitch, then 2 sc in the following stitch; repeat from * once more. Work 1 sc in the next 20 (32) stitches. *Work 2 sc in the next stitch, then 1 sc in the following stitch; repeat from * three more times. Work 2 sc in the next stitch. Work 1 sc in each stitch until 4 stitches remain before the marker. Work 2 sc in the next stitch, 1 sc in the next, 2 sc in the next, and 1 sc in the last stitch. Do not join or turn. [70 (94) stitches]
Round 6: Work 2 sc in the marked stitch, moving the marker up. Work 1 sc in the next 3 stitches, 2 sc in the next, 1 sc in the next 2 stitches, and 2 sc in the next. Work 1 sc in the next 19 (31) stitches. Work 2 sc in the next stitch, 1 sc in the next 2 stitches, and 2 sc in the next. Work 1 sc in the next 3 stitches. Work 2 sc in the next stitch (this should be the center of the curve). Work 1 sc in the next 3 stitches, 2 sc in the next, 1 sc in the next 2 stitches, and 2 sc in the next. Work 1 sc in each stitch across until 7 stitches remain before the marker. Work 2 sc in the next stitch, 1 sc in the next 2 stitches, 2 sc in the next, and 1 sc in the last 3 stitches. Do not join or turn. [80 (104) stitches]
Round 7: Work 1 sc in the marked stitch, moving the marker up. Work 2 sc in the next stitch, 1 sc in the next 5 stitches, and 2 sc in the next. Work 1 sc in the next 26 (38) stitches. Work 2 sc in the next stitch, 1 sc in the next 5 stitches, 2 sc in the next, 1 sc in the next 5 stitches, and 2 sc in the next. Work 1 sc in each stitch across until 5 stitches remain before the marker. Work 2 sc in the next stitch, then 1 sc in the last 4 stitches. Do not join or turn. [86 (110) stitches]
Round 8: Work 1 hdc directly in the marked stitch, moving the marker up. Work 1 hdc in each stitch across until 2 stitches remain before the marker. Work 1 sc in each of the last 2 stitches. Slip stitch to the marked stitch. [86 (110) stitches]
Round 9: Place a marker in the chain-1 you made at the end of Round 8 (this counts as your first slip stitch). Work 1 slip stitch in each stitch across. Slip stitch to the marked chain-1, moving the marker up into this slip stitch. Do not turn. [86 (110) stitches]
Preparing the Stiffener
Lay your completed crochet base flat on your plastic canvas. Trace around the shape using a marker. Cut slightly inside your traced line so the canvas fits snugly inside the bottom of the bag without pushing against the side stitches. Set this piece aside.
Growing the Sides
Round 10: In this round, you will work single crochets into the slip stitches from Round 9. Slide your hook horizontally under both loops of the slip stitch without catching the stitch underneath it. Chain 1, work 1 sc in each slip stitch around, ending with a sc in the marked slip stitch. Skip the next chain, then slip stitch to the first sc. [86 (110) stitches]
Round 11: Chain 2 (this counts as a double crochet). Work (1 dc, chain 2, 1 sc) all into the same stitch as your starting chain. *Skip 2 stitches, then work (2 dc, chain 2, 1 sc) in the next stitch. Repeat from * until only 1 stitch remains. Slip stitch to the top of your starting chain-2.
Round 12: Pull up the loop on your hook slightly. Without making a turning chain, work (2 dc, chain 2, 1 sc) directly into the first chain-2 space. Work (2 dc, chain 2, 1 sc) into each chain-2 space around. Slip stitch to the first double crochet of the round.
Place your plastic canvas inside to verify the fit. Continue repeating Round 12 until your bag measures approximately 11 inches tall (for the regular size) or 13 inches tall (for the large size). If your final round was completed on the right side (outside) of the bag, do not turn. If it was completed on the wrong side (inside), turn your work before starting the leveling round.
Leveling the Top Edge
Note: This round must be worked on the outside of your bag to prevent unsightly bumps.
Leveling Round (If you did not turn): Chain 1, work 1 hdc in the same stitch and place a marker in it. Work 1 sc in the next dc, skip the next chain-2 loop, and work 1 sc in the next sc. *Work 1 hdc in the next dc, 1 sc in the next dc, skip the next chain-2 loop, and work 1 sc in the next sc. Repeat from * around, ending with a sc in the stitch right after the final chain-2 loop. Do not slip stitch or turn. [87 (111) stitches]
Leveling Round (If you turned): Chain 1, work 1 hdc in the same stitch and place a marker in it. *Work 1 sc in the next sc, skip the next chain-2 loop, 1 sc in the next dc, and 1 hdc in the next dc. Repeat from * around, ending with a sc in the dc right after the final chain-2 loop. Do not slip stitch or turn. [87 (111) stitches]
Adding Top Shaping and Finishing
Round 13 (Increases): Work 1 sc directly in the marked stitch and move your marker up. Work 2 sc in the next stitch, 1 sc in the next 3 stitches, and 2 sc in the next. Work 1 sc in each stitch across until you are 1 or 2 stitches away from the opposite corner of the bag. Work 2 sc in the next stitch, 1 sc in the next 3 stitches, 2 sc in the next, and 1 sc in each stitch until you reach the stitch right before your marker. Do not turn. [91 (115) stitches]
Round 14: Work 1 sc directly in the marked stitch and move your marker up. Work 1 sc in each stitch around, ending with a sc in the stitch right before your marker. Do not turn.
Finishing for Regular Size Only: Work 1 slip stitch in the marked stitch and move your marker up. Work 1 slip stitch in each stitch around. Slip stitch to the marked stitch, fasten off, and weave in your ends.
Finishing for Large Size Only:
- Round 15 (BLO): Work 1 sc directly in the back loop only (BLO) of the marked stitch and move your marker up. Work 1 sc in the BLO of each stitch around. Do not turn.
- Rounds 16-17: Work 1 sc directly in the marked stitch, move the marker up, and work 1 sc in each stitch around. Do not turn. At the end of Round 17, slip stitch to the marked stitch and fasten off.
- Top Edge Trim: Join your yarn with a slip stitch to any free loop along the side of the bag (created by the BLO round). Slip stitch into each free loop around to create a clean, sturdy edge. Slip stitch to the first stitch and fasten off. Fold the top three single crochet rows down toward the inside of the bag.
Sewing the Fabric Lining
Fold your lining fabric in half. Lay your bag flat on top of it, aligning it symmetrically. Trace around the bag. Leave a 1/4-inch seam allowance along the bottom, sides, and top.
When tracing the top 2 inches of the sides, widen your seam allowance to 3/4 of an inch. This prevents the lining from being too narrow at the opening.
Sew the side and bottom seams together using a sewing machine or a secure hand stitch like a backstitch. Fold the top edge down by 1 inch and press.
Wrapping the Plastic Canvas
Trace your plastic canvas base onto your lining fabric twice. Cut one piece exactly to size, and cut the second piece 1/2-inch larger all around. Snip small slits along the curved edges of the larger fabric piece.
Place the plastic canvas on top of the larger fabric piece, fold the snipped edges over, and glue them down. Top with the smaller fabric piece to seal the canvas completely.
Insert this fabric-covered base into your bag. Secure the four corners to the crochet fabric using a needle and matching thread.
Assembling the Bag
Slide your fabric lining inside the bag so it sits flat against the base. Using a needle and thread, sew the folded top edge of the lining to the bag. Align it with the 2nd single crochet row from the top for the regular size, or the 5th row for the large size.
For the large size, fold the top 3 rows of crochet fabric down over the lining and sew them in place. Attach your leather handles securely. If you prefer a softer look, you can make crochet handles instead.
Optional Crochet Handles (Make 2)
Row 1: Chain 72. Work 1 sc in the second chain from your hook and in each chain across. Turn. [70 sc]
Row 2: Chain 1 (does not count as a stitch). Work 1 sc in each stitch across. Turn. [70 sc]
Rows 3-5: Repeat Row 2.
Turn, work 1 slip stitch in each stitch across for 3 inches. Place your 1/2-inch ribbon along the center of the strap, fold the strap lengthwise to enclose the ribbon, and slip stitch the tube closed until 3 inches remain. Fasten off.
Insert the flat ends of the handles 4 inches into the bag. Sew them securely through the handle, lining, and the inner loops of the crochet stitches so no thread shows on the outside.
Easy Variations & Custom Ideas
- Striped Style: Work the base in one solid color and alternate colors every few rounds on the sides. Check out my guide on Seamless Crochet Color Changes for perfect stripes.
- Market Bag Version: If you prefer a lighter, slouchier style, skip the plastic canvas and lining entirely. This turns it into a breezy market bag similar to my Farmers Market Bag.
- Ruffled Edge: Add a playful ruffle to the top edge of the bag for a feminine touch, inspired by the Cleo Ruffled Bag.
- Macrame Cord Swap: Swap the T-shirt yarn for a 3mm macrame cord to give the bag an ultra-sturdy, bohemian texture.
- Wooden Ring Handles: Instead of leather straps, sew large wooden rings to the top edge of the bag for a modern, minimalist look.
- Colour ideas: Try a coastal vibe with cream and navy stripes, or go bold with mustard yellow or sage green.
- Yarn substitutions: Any bulky weight cotton yarn or a double strand of worsted weight cotton will work beautifully.
Common Troubleshooting & Fixes
- Problem: The base of my bag is curling up significantly.
Fix: This is very common with T-shirt yarn due to its elastic nature. It will flatten out once you insert the plastic canvas and add the weight of the sides. - Problem: My slip stitches in Round 9 are too tight to work into.
Fix: Go up a hook size just for the slip stitch round, or consciously keep your tension very loose. - Problem: The lining fabric is bunching up inside the bag.
Fix: Trim the seam allowances of your lining and make sure the plastic canvas base is cut slightly smaller than the crochet bottom. - Problem: My crochet handles are stretching out when the bag is full.
Fix: Do not skip the ribbon step! Sewing a non-stretch grosgrain ribbon inside the handle tube is the absolute best way to prevent stretching.
Care Instructions
Because this bag features a fabric lining, plastic canvas, and leather handles, I highly recommend spot cleaning only. Use a damp cloth with mild soap to gently clean any dirty spots. If you used crochet handles and need to wash the entire bag, hand wash it in cold water and lay it flat to dry, keeping the leather parts out of the water.
Final Thoughts
Building a structured bag like this is a true labor of love, but the professional results are absolutely worth the extra steps. Once you slip that lining in and attach your handles, you will have a gorgeous, durable tote that you can proudly show off for years to come!