Your menu lives in Toast. Your website lives in WordPress. Guests read the website long before they see the register, so every Toast restaurant eventually asks how to get the one into the other without typing it twice. There are three ways. They differ in two things: how the menu stays current, and what each one needs from Toast. This guide covers all three, including the Toast plan question that goes unanswered in every forum thread.
The three ways at a glance
| What guests see | How it stays current | What it needs from Toast | |
|---|---|---|---|
| 1. A link to Toast's ordering page | A button on your site; the menu opens on a page Toast hosts | By itself; it is Toast's own page | Toast Online Ordering |
| 2. A menu you type into WordPress | A menu page on your site, in your design | Only when someone edits it | Nothing; any plan |
| 3. A plugin that syncs from Toast | A menu page on your site, in your design | By itself, on a schedule, from the Toast API | Standard API access, which needs Restaurant Management Suite Essentials or higher |
Most restaurants end up with the first plus one of the other two: a button for ordering, and a readable menu on the site for everyone who is only looking.
1. Link to Toast's ordering page
Toast Online Ordering runs on a page Toast hosts for you, with your menu already on it. You do not build anything; you link to it. In Toast Web, the link is under Takeout & delivery, Toast order sources, Restaurant info. Toast supplies button images and the HTML to paste, so the whole job is one button at the top of your site pointed at that link. If you have several locations, use the location picker link so guests choose the nearest one.
What it does well. Ordering. The page is always current because it is Toast's own page, and there is nothing on your side to maintain.
What it leaves out. The menu is not on your website. The page guests land on is Toast's design, not yours, and the dish names and prices are not text on your domain. Google does not read it as your menu, so a Menu page that is only a button does nothing for the "your restaurant menu" search. How to Get Your Restaurant Menu into Google covers why that matters.
The all-Toast version. Toast Websites is a separate Toast subscription where the whole site lives with Toast instead of WordPress. If a website is only a menu, hours and an order button, that is the simplest path. If you are on WordPress for what it does beyond the menu, such as your own design, a blog, events, a coupon page or a reservations plugin, you need way 2 or way 3 as well.
2. Type the menu into WordPress
Build the menu by hand on your site: in the block editor, with a menu plugin, or as a Manual menu in Steuard. It needs nothing from Toast, so it works on any Toast plan, and it is the only way for a menu that is not in Toast at all, such as catering, a holiday prix fixe or a wine list the kitchen never rings up.
The risk is drift. A price changes at the register, and the website still shows last spring's. The guest finds out at the table, and the review mentions it. Three habits make a typed menu survivable:
- One person owns the website menu, and the price change in Toast and the edit on the site happen in the same sitting.
- The menu lives in one place on the site. With Steuard, a Manual menu is one Menu post, and every page that shows it uses the block or the shortcode, so a change is one edit everywhere. Creating a Menu is the walkthrough.
- Review it on a schedule. The first of the month, side by side with the register.
If you are on a Toast plan below Essentials, this is your path for now, and the move to way 3 later is a new Menu post, not a rebuild.
3. Sync it from Toast with a plugin
A sync plugin reads your menus from Toast's API on a schedule and renders them as text on your page: sections, items, descriptions and prices, in your site's design. Change a price in Toast and the site follows at the next refresh. Nobody types anything twice, and the menu Google reads is the one the kitchen charges.
What Toast has to give you: Standard API access. The facts that decide whether this works for you:
- Each location needs Toast Restaurant Management Suite Essentials or higher. A location on a lower plan cannot create API credentials, and Toast shows it locked in the credentials screen. Check this before you buy any sync plugin.
- You need the Manage Integrations permission (8.4 in Toast's permission list) for every location the credential will cover. Without it, the credentials screen is not visible.
- The credential is created in Toast Web under Integrations, Toast API access, Manage credentials. Choose the locations, include at least the
menus:readscope, and Toast gives you a Client ID, a Client Secret and the API hostname to use. - Standard API access is read-only. A plugin built on it can read your menus; it cannot change anything in Toast, which is what you want from a website.
Plugins that do this, as of October 2026. Steuard, which we build, uses Standard API credentials you create yourself. ButterMenus also uses Standard API credentials; its free tier shows one menu. WebDevOps Restaurant Menu Sync for Toast is free on wordpress.org but uses Toast's Partner API, which Toast approves case by case rather than letting you create credentials yourself. The comparison on the Steuard page lays the four main options side by side on sync, Google reviews, menu schema and price.
Set it up with Steuard
Under an hour once the Toast credential exists. The credential is the part that needs a Toast login with the right permission, so start there.
- Create the credential in Toast Web. Integrations, Toast API access, Manage credentials: select the locations, include
menus:read, copy the Client ID, Client Secret and hostname. Where do I find my Toast credentials? has the screen-by-screen version. - Connect it. Under Steuard, Menu Options, Connections, choose Toast POS, paste the three values, click Test Connection, then Fetch Locations from API, then Save Changes. The card should read Connected with at least one location listed. How do I connect Steuard to Toast POS? covers the one case where Toast will not list your locations and you add the GUID by hand.
- Create a Toast Menu post. Steuard, Add New Menu, choose Toast, pick the menu from the dropdown (each entry reads "Location, Menu") and publish. One Menu post per Toast menu: Dinner, Lunch, Drinks.
- Put it on a page. Add the Steuard Menu block to your menu page and choose the Menu post, or click Create menu page on the Steuard dashboard and it drafts the page for you. Adding Menus with the Block Editor covers the classic editor and page builders too.
- Choose the refresh schedule under Menu Options, Advanced, anywhere from hourly to daily. The dashboard's Data Freshness panel shows the last refresh, and Clear Menu Cache pulls a fresh copy right now, which is the button you press after a menu change you want live before the next refresh. My menu is out of date covers the page-cache plugins that can still show the old menu after Steuard has the new one.
- Trim it for the website without touching Toast. The Menu post's Overrides tab hides an item or a whole section, renames things, and controls images, calories and descriptions, and those choices survive every refresh. The Channel Filter on the connection does the same by Toast visibility channel, and it is strict: an item shows only if it carries one of the channels you tick, so leave every box clear until you know your channels.
- Several menus on one page are a Combined Menu post shown as tabs, with each child keeping its own layout. Displaying Multiple Menus as Tabs is the setup.
Everything in steps 3 to 7 is the same for a Manual menu, so a restaurant that starts with way 2 and gains API access later swaps the Menu post and keeps the page.
Which Toast plan do I need?
The question asked in every "Toast menu on WordPress" thread, in one place:
- A link or button to the ordering page: Toast Online Ordering. Ask your Toast rep whether your plan includes it.
- A typed menu: any plan. Toast is not involved.
- A sync plugin on Standard API credentials (Steuard, ButterMenus): Restaurant Management Suite Essentials or higher, for each location you want on the site.
- A sync plugin on the Partner API (WebDevOps): no plan requirement published, but Toast has to approve the integration rather than you creating credentials.
- Not sure what you have? Open Toast Web, Integrations, Toast API access. If Manage credentials is missing, you lack the permission. If a location is shown locked, it is below Essentials.
Do both: a button for ordering, a synced menu for reading
The setup that serves everyone is the first way plus the third. The order button sits at the top of every page for the guest who already knows what they want. The menu page carries the live, synced menu as text for the guest who is deciding, and for Google, which reads it as a menu because Steuard emits Menu structured data with it. Then point your Google Business Profile's menu link at that page, not at the ordering page or a PDF. How to Get Your Restaurant Menu into Google picks up from there.
To see what a synced menu looks like on a page before connecting anything, the Steuard demo shows all four layouts and the tabs on sample data, and Steuard itself ships a Demo Mode so you can try the layouts on your own site first.
Checklist
- Decide: ordering only, menu only, or both. Both is the usual answer.
- Order button at the top of the site, pointed at your Toast Online Ordering link.
- Confirm each location is on Essentials or higher before buying a sync plugin.
- Create the Standard API credential with
menus:readand the Manage Integrations permission. - Connect, publish one Toast Menu post per menu, place it with the block.
- Set the refresh schedule; use Clear Menu Cache after a change you want live now.
- Hide website-only exceptions in Overrides, not in Toast.
- Point the Business Profile menu link at the menu page.