How to Import Recipes from Allrecipes, NYT Cooking, and BBC Good Food

If you cook from the internet, you already know the problem. You
bookmark a recipe on Allrecipes, save another to your NYT Cooking
account, pin a third from BBC Good Food, and two weeks later you
cannot find any of them. Each site has its own save button, its own
app, its own folder structure, and none of them talk to each other.

This guide walks through importing recipes from the three most
trafficked English-language recipe sites into a single library,
including the paywall and formatting gotchas that trip up most
importers.

## Why these three sites are worth automating

Allrecipes gets roughly 60 million visits per month. NYT Cooking has
more than a million paid subscribers. BBC Good Food dominates UK
search results for classic British cooking. Between them, they
account for a huge share of the recipes home cooks actually use, and
each one uses a slightly different underlying structure.

## Allrecipes: the easy case

Allrecipes publishes recipes as standard schema.org Recipe JSON-LD.
Every recipe page includes machine-readable ingredients, instructions,
timings, yield, and nutrition data. Any reasonable importer can parse
it cleanly.

### Step by step

1. Open the Allrecipes page you want to save.
2. Copy the full URL from the browser address bar, not a shortened
social share link.
3. Paste it into the import box at /import.
4. Wait two to three seconds. The ingredients, instructions, photo,
and total time should populate automatically.
5. Review the servings field. Allrecipes sometimes lists servings as
a range ("8 to 10"). Pick the value you actually plan to cook.

### Gotchas

Allrecipes shows user reviews inline with the recipe. A naive scraper
will sometimes pull a highly rated review tip into the instructions.
A schema-aware importer ignores the review block entirely, which is
why the URL method is more reliable than copy-paste.

## NYT Cooking: handling the paywall

NYT Cooking is subscriber-only for most recipes. If you are not
logged in, the page returns a truncated version of the recipe with
only the first few ingredients visible. Importers that fetch the
public HTML get the stub, not the full recipe.

### Step by step

1. Log into nytimes.com in your browser first.
2. Open the recipe you want.
3. Use the "Print" option in the NYT Cooking page menu. This produces
a clean, full-recipe view.
4. Either save the printable page as a PDF and upload it at /import,
or copy the full text and paste it into the import box.
5. If you are a subscriber and want one-click imports, use the
browser extension, which carries your authenticated session with
it so the scraper sees the full page.

### Gotchas

NYT Cooking uses em-dashes, fractional Unicode characters (½, ¼, ⅔),
and writes temperatures in Fahrenheit only. A good importer converts
the fractions to decimals and optionally flips the temperature to
Celsius. If yours does not, check the ingredient list for "½" rendered
as a broken box character and fix it before saving.

## BBC Good Food: metric, method-dense, generally clean

BBC Good Food uses metric measurements by default, separates
ingredients from "for the sauce" / "to serve" groups, and writes
instructions as dense numbered paragraphs rather than short steps.

### Step by step

1. Copy the full URL (they look like
bbcgoodfood.com/recipes/name-of-recipe).
2. Paste into /import.
3. Check the ingredient groups. If the recipe has subsections
("for the dough", "for the filling"), the import should preserve
them as labeled groups. If it flattens them, edit manually.
4. Review instruction steps. BBC's "STEP 1" paragraphs often contain
three or four actions. Split them into separate steps if you prefer
a more granular read while cooking.

### Gotchas

BBC sometimes writes "1 x 400g tin chopped tomatoes" where the "x"
means "one tin of". A parser that treats "x" as multiplication will
decide you need 400 tins. Verify tin/can ingredients after import.

## Bulk importing an entire recipe folder

If you have been saving to all three sites for years, do not
re-import one at a time. Export what you can:

- Allrecipes: use the "My Recipe Box" export (CSV).
- NYT Cooking: the site exposes a "Recipe Box" you can scrape via
your logged-in session.
- BBC Good Food: no native export; use the bookmark list with a bulk
URL importer.

Paste the resulting URL list into /import as a newline-separated
batch. Most importers handle 20 to 50 URLs per batch cleanly; beyond
that, rate limits on the source sites kick in.

## After the import

The point of consolidating is not just having everything in one
place. It is being able to search across all of it ("chicken thighs
under 30 minutes"), scale by servings, and drop any of them into a
meal plan without clicking across four tabs. Once your library has
200+ recipes, the search quality becomes the whole product.

Start with /import for a single URL. If you have a backlog, batch the
rest over a weekend. For exploration, /explore shows what's already
in the public library so you can pull from there too.

## A note on schema drift

All three sites have quietly changed their underlying HTML at least
twice in the last three years. When an importer breaks on a specific
site, it is almost always because the schema shifted and the parser
has not been updated. If a recipe imports incomplete, the first
troubleshooting step is to try again in 24 hours; most importers
auto-patch their parsers within a day. If it still fails, fall back
to the printable-page PDF method described in the NYT section. That
workflow sidesteps scraping entirely.

## Quick reference

| Site | Best method | Gotcha to watch |
|---|---|---|
| Allrecipes | Paste URL | Review text bleeding into steps |
| NYT Cooking | Print to PDF then upload | Unicode fractions |
| BBC Good Food | Paste URL | "1 x 400g tin" parsing |

Start with the site you use most. If it is Allrecipes, a weekend
batch job moves hundreds of saved recipes into a single searchable
library by Sunday night. NYT Cooking takes longer because of the
per-recipe print step, so amortize it over a month of evenings
rather than trying to do the whole library at once.